diff --git a/.gitignore b/.gitignore
index b2286e6fb..ff837a4d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,6 +45,7 @@ ipch/
*.db
*.opendb
packages/
+!examples/models/resources/models/obj/
# Ignore compiled binaries
*.o
diff --git a/CHANGELOG b/CHANGELOG
index 828da0ece..0197c1a37 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -30,6 +30,7 @@ Detailed changes:
[core] REVIEWED: Raspberry RPI/DRM keyboard blocking render loop (#1879) @luizpestana
[core] REVIEWED: Android multi-touch (#1869) by @humbe
[core] REVIEWED: Implemented GetGamepadName() for emscripten by @nbarkhina
+[core] REVIEWED: HighDPI support (#1987) by @ArnaudValensi
[rlgl] ADDED: rlUpdateVertexBufferElements() (#1915)
[rlgl] ADDED: rlActiveDrawBuffers() (#1911)
[rlgl] ADDED: rlEnableColorBlend()/rlDisableColorBlend()
@@ -43,6 +44,7 @@ Detailed changes:
[shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang
[shapes] ADDED: DrawLineBezierCubic() (#2021) by @SAOMDVN
[textures] ADDED: GetImageColor() #2024
+[textures] REMOVED: GenImagePerlinNoise()
[textures] RENAMED: GetTextureData() to LoadImageFromTexture()
[textures] RENAMED: GetScreenData() to LoadImageFromScreen()
[textures] REVIEWED: ExportImage() to use SaveFileData() (#1779)
@@ -63,6 +65,7 @@ Detailed changes:
[models] ADDED: GetModelBoundingBox()
[models] ADDED: DrawBillboardPro() (#1759) by @nobytesgiven
[models] ADDED: DrawCubeTextureRec() (#2001) by @tdgroot
+[models] ADDED: DrawCylinderEx() and DrawCylinderWiresEx() (#2049) by @Horrowind
[models] REMOVED: DrawBillboardEx()
[models] RENAMED: MeshBoundingBox() to GetMeshBoundingBox()
[models] RENAMED: MeshTangents() to GenMeshTangents()
@@ -86,9 +89,11 @@ Detailed changes:
[examples] ADDED: core_custom_frame_control
[examples] ADDED: core_basic_screen_manager
[examples] ADDED: core_split_screen (#1806) by @JeffM2501
-[examples] ADDED: core_2d_camera_smooth_pixelperfect (#1771) by @NotManyIdeasDev
-[examples] ADDED: shaders_shapes_outline (#1883) by @GoldenThumbs
-[examples] ADDED: models_magicavoxel_loading (#1940) by @procfxgen
+[examples] ADDED: core_smooth_pixelperfect (#1771) by @NotManyIdeasDev
+[examples] ADDED: shaders_texture_outline (#1883) by @GoldenThumbs
+[examples] ADDED: models_loading_vox (#1940) by @procfxgen
+[examples] REMOVED: models_material_pbr
+[examples] REMOVED: models_gltf_animation
[examples] REVIEWED: core_3d_picking
[examples] REVIEWED: core_input_mouse
[examples] REVIEWED: core_vr_simulator, RenderTexture usage
@@ -114,6 +119,7 @@ Detailed changes:
[examples] REVIEWED: raylib_opengl_interop
[examples] REVIEWED: rlgl_standalone.c
[examples] REVIEWED: Resources licenses
+[examples] REVIEWED: models resources reorganization
[build] ADDED: Zig build file (#2014) by @TommiSinivuo
[build] ADDED: Android VS2019 solution (#2013) by @Kronka
[build] REMOVED: VS2017 project, outdated
diff --git a/README.md b/README.md
index e07b2b16c..07077c5b2 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's specially well suited for prototyping, tooling, graphical applications, embedded systems and education.
-*NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no auto-debugging... just coding in the most pure spartan-programmers way.*
+*NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.*
Ready to learn? Jump to [code examples!](http://www.raylib.com/examples.html)
diff --git a/SPONSORS.md b/SPONSORS.md
index c308a513c..d128414ec 100644
--- a/SPONSORS.md
+++ b/SPONSORS.md
@@ -4,18 +4,11 @@
The following people is currently [**sponsoring raylib**](https://github.com/sponsors/raysan5) with a generous donation to allow improving and growing the project!
-Note that Sponsors donations vary between sponsors, I just decided not to make any distinction while listing them.
-
- Eric J. ([@ProfJski](https://github.com/ProfJski))
- - devdad ([@devdad](https://github.com/devdad))
- Zach Geis ([@zacgeis](https://github.com/zacgeis))
- minirop ([@minirop](https://github.com/minirop))
- Daniel Gómez ([@Koocachookies](https://github.com/Koocachookies))
- - Sergio ([@anidealgift](https://github.com/anidealgift))
- Marc Agüera ([@maguera93](https://github.com/maguera93))
- - Pau Fernández ([@pauek](https://github.com/pauek))
- - Snowminx ([@Gamerfiend](https://github.com/Gamerfiend))
- - NimbusFox ([@NimbusFox](https://github.com/NimbusFox))
- Robin Mattheussen ([@romatthe](https://github.com/romatthe))
- Grant Haywood ([@cinterloper](https://github.com/cinterloper))
- Terry Nguyen ([@terrehbyte](https://github.com/terrehbyte))
@@ -25,10 +18,17 @@ Note that Sponsors donations vary between sponsors, I just decided not to make a
- cob ([@majorcob](https://github.com/majorcob))
- Samuel Batista ([@gamedevsam](https://github.com/gamedevsam))
- Merlyn Morgan-Graham ([@kavika13](https://github.com/kavika13))
- - Toby4213 ([@Toby4213](https://github.com/Toby4213))
- linus ([@hochbaum](https://github.com/hochbaum))
- Nawarian ([@nawarian](https://github.com/nawarian) - [thephp.website](https://thephp.website/))
-
+ - kenzie ([@sme-ek](https://github.com/sme-ek))
+ - Allan Regush ([@AllanRegush](https://github.com/AllanRegush))
+ - Jeffery Myers ([@JeffM2501](https://github.com/ProfJski))
+ - Ryan Roden-Corrent ([@rcorre](https://github.com/ProfJski))
+ - michaelfiber ([@michaelfiber](https://github.com/ProfJski))
+ - Nikhilesh S ([@nikki93](https://github.com/ProfJski))
+ - kevinabraun ([@kevinabraun](https://github.com/ProfJski))
+ - Matthew Owens ([@MatthewOwens](https://github.com/ProfJski))
+ - Tim Eilers ([@eilerstim](https://github.com/ProfJski))
### Past raylib GitHub Sponsors
@@ -49,10 +49,20 @@ The following people has **sponsored raylib** in the past, allowing the project
- James Ghawaly ([@jghawaly](https://github.com/jghawaly))
- jack ([@Jack-Ji](https://github.com/Jack-Ji))
- Guido Offermans ([@jghawaly](https://github.com/GuidoOffermans))
+ - devdad ([@devdad](https://github.com/devdad))
+ - Pau Fernández ([@pauek](https://github.com/pauek))
+ - Sergio ([@anidealgift](https://github.com/anidealgift))
+ - Snowminx ([@Gamerfiend](https://github.com/Gamerfiend))
+ - NimbusFox ([@NimbusFox](https://github.com/NimbusFox))
+ - Shylie ([@Shylie](https://github.com/Shylie))
+ - Livio Dal Maso ([@Humeur](https://github.com/Humeur))
+ - Diego Vaccher ([@denny0754](https://github.com/denny0754))
+ - Ricardo Alcantara ([@ricardoalcantara](https://github.com/ricardoalcantara))
+ - Toby4213 ([@Toby4213](https://github.com/Toby4213))
### Notes for Current/Past raylib Sponsor
- - **If you are not on the list, feel free to send a PR to add you if desired.**
- - **If you want your personal webpage listed along your GitHub account, feel free to send a PR to add it.**
- - **If you prefer not to listed in this list, feel free to send a PR to remove it.**
+ - If you are not on the list, feel free to send a PR to be added (if desired).
+ - If you want your personal webpage or project listed, feel free to send a PR to be added.
+ - If you prefer not to be in this list, feel free to send a PR to be remove.
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index d102eb4cb..6ade96861 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -73,7 +73,6 @@ if (${PLATFORM} MATCHES "Android")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_world_screen.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
- list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_material_pbr.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_cubicmap.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_skybox.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
diff --git a/examples/Makefile b/examples/Makefile
index d98256387..c16dbed53 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -378,6 +378,7 @@ endif
# Define all object files required
CORE = \
core/core_basic_window \
+ core/core_basic_screen_manager \
core/core_input_keys \
core/core_input_mouse \
core/core_input_mouse_wheel \
@@ -401,7 +402,9 @@ CORE = \
core/core_loading_thread \
core/core_quat_conversion \
core/core_window_flags \
- core/core_split_screen
+ core/core_split_screen \
+ core/core_smooth_pixelperfect \
+ core/core_custom_frame_control
SHAPES = \
shapes/shapes_basic_shapes \
@@ -440,7 +443,7 @@ TEXTURES = \
textures/textures_bunnymark \
textures/textures_blend_modes \
textures/textures_draw_tiled \
- textures/textures_poly
+ textures/textures_polygon
TEXT = \
text/text_raylib_fonts \
@@ -462,17 +465,17 @@ MODELS = \
models/models_cubicmap \
models/models_first_person_maze \
models/models_geometric_shapes \
- models/models_material_pbr \
models/models_mesh_generation \
models/models_mesh_picking \
models/models_loading \
+ models/models_loading_vox \
+ models/models_loading_gltf \
models/models_orthographic_projection \
models/models_rlgl_solar_system \
models/models_skybox \
models/models_yaw_pitch_roll \
models/models_heightmap \
- models/models_waving_cubes \
- models/models_magicavoxel_loading
+ models/models_waving_cubes
SHADERS = \
shaders/shaders_model_shader \
@@ -483,6 +486,7 @@ SHADERS = \
shaders/shaders_raymarching \
shaders/shaders_texture_drawing \
shaders/shaders_texture_waves \
+ shaders/shaders_texture_outline \
shaders/shaders_julia_set \
shaders/shaders_eratosthenes \
shaders/shaders_basic_lighting \
diff --git a/examples/Makefile.Web b/examples/Makefile.Web
new file mode 100644
index 000000000..7089c5fd9
--- /dev/null
+++ b/examples/Makefile.Web
@@ -0,0 +1,1052 @@
+#**************************************************************************************************
+#
+# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5
+#
+# Copyright (c) 2013-2021 Ramon Santamaria (@raysan5)
+#
+# This software is provided "as-is", without any express or implied warranty. In no event
+# will the authors be held liable for any damages arising from the use of this software.
+#
+# Permission is granted to anyone to use this software for any purpose, including commercial
+# applications, and to alter it and redistribute it freely, subject to the following restrictions:
+#
+# 1. The origin of this software must not be misrepresented; you must not claim that you
+# wrote the original software. If you use this software in a product, an acknowledgment
+# in the product documentation would be appreciated but is not required.
+#
+# 2. Altered source versions must be plainly marked as such, and must not be misrepresented
+# as being the original software.
+#
+# 3. This notice may not be removed or altered from any source distribution.
+#
+#**************************************************************************************************
+
+.PHONY: all clean
+
+# Define required raylib variables
+PROJECT_NAME ?= raylib_examples
+RAYLIB_VERSION ?= 4.0.0
+RAYLIB_PATH ?= ..
+
+# Define default options
+
+# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
+PLATFORM ?= PLATFORM_DESKTOP
+
+# Locations of your newly installed library and associated headers. See ../src/Makefile
+# On Linux, if you have installed raylib but cannot compile the examples, check that
+# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations.
+# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED.
+# To enable compile-time linking to a special version of libraylib.so, change these variables here.
+# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below.
+# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime,
+# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH.
+# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths.
+DESTDIR ?= /usr/local
+RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib
+# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files.
+RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include
+
+# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
+RAYLIB_LIBTYPE ?= STATIC
+
+# Build mode for project: DEBUG or RELEASE
+BUILD_MODE ?= RELEASE
+
+# Use external GLFW library instead of rglfw module
+# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3
+USE_EXTERNAL_GLFW ?= FALSE
+
+# Use Wayland display server protocol on Linux desktop
+# by default it uses X11 windowing system
+USE_WAYLAND_DISPLAY ?= FALSE
+
+# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ # No uname.exe on MinGW!, but OS=Windows_NT on Windows!
+ # ifeq ($(UNAME),Msys) -> Windows
+ ifeq ($(OS),Windows_NT)
+ PLATFORM_OS=WINDOWS
+ else
+ UNAMEOS=$(shell uname)
+ ifeq ($(UNAMEOS),Linux)
+ PLATFORM_OS=LINUX
+ endif
+ ifeq ($(UNAMEOS),FreeBSD)
+ PLATFORM_OS=BSD
+ endif
+ ifeq ($(UNAMEOS),OpenBSD)
+ PLATFORM_OS=BSD
+ endif
+ ifeq ($(UNAMEOS),NetBSD)
+ PLATFORM_OS=BSD
+ endif
+ ifeq ($(UNAMEOS),DragonFly)
+ PLATFORM_OS=BSD
+ endif
+ ifeq ($(UNAMEOS),Darwin)
+ PLATFORM_OS=OSX
+ endif
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ UNAMEOS=$(shell uname)
+ ifeq ($(UNAMEOS),Linux)
+ PLATFORM_OS=LINUX
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ UNAMEOS=$(shell uname)
+ ifeq ($(UNAMEOS),Linux)
+ PLATFORM_OS=LINUX
+ endif
+endif
+
+# RAYLIB_PATH adjustment for different platforms.
+# If using GNU make, we can get the full path to the top of the tree. Windows? BSD?
+# Required for ldconfig or other tools that do not perform path expansion.
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),LINUX)
+ RAYLIB_PREFIX ?= ..
+ RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX))
+ endif
+endif
+# Default path for raylib on Raspberry Pi, if installed in different path, update it!
+# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki.
+# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX.
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ RAYLIB_PATH ?= /home/pi/raylib
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ RAYLIB_PATH ?= /home/pi/raylib
+endif
+
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # Emscripten required variables
+ EMSDK_PATH ?= C:/emsdk
+ EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten
+ CLANG_PATH = $(EMSDK_PATH)/upstream/bin
+ PYTHON_PATH = $(EMSDK_PATH)/python/3.9.2-1_64bit
+ NODE_PATH = $(EMSDK_PATH)/node/14.15.5_64bit/bin
+ export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH)
+endif
+
+# Define raylib release directory for compiled library.
+# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version
+RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src
+
+# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries
+# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH
+# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux
+# without formal installation from ../src/Makefile. It aids portability and is useful if you have
+# multiple versions of raylib, have raylib installed to a non-standard location, or want to
+# bundle libraylib.so with your game. Change it to your liking.
+# NOTE: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH,
+# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH,
+# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
+# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute.
+# To see which libraries a built example is linking to, ldd core/core_basic_window;
+# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing.
+EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH)
+
+# Define default C compiler: gcc
+# NOTE: define g++ compiler if using C++
+CC = gcc
+
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),OSX)
+ # OSX default compiler
+ CC = clang
+ endif
+ ifeq ($(PLATFORM_OS),BSD)
+ # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler
+ CC = clang
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ ifeq ($(USE_RPI_CROSS_COMPILER),TRUE)
+ # Define RPI cross-compiler
+ #CC = armv6j-hardfloat-linux-gnueabi-gcc
+ CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # HTML5 emscripten compiler
+ # WARNING: To compile to HTML5, code must be redesigned
+ # to use emscripten.h and emscripten_set_main_loop()
+ CC = emcc
+endif
+
+# Define default make program
+MAKE = make
+
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ MAKE = mingw32-make
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_ANDROID)
+ MAKE = mingw32-make
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ MAKE = mingw32-make
+endif
+
+# Define compiler flags:
+# -O1 defines optimization level
+# -g include debug information on compilation
+# -s strip unnecessary data from build
+# -Wall turns on most, but not all, compiler warnings
+# -std=c99 defines C language mode (standard C from 1999 revision)
+# -std=gnu99 defines C language mode (GNU C from 1999 revision)
+# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
+# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
+CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result
+
+ifeq ($(BUILD_MODE),DEBUG)
+ CFLAGS += -g
+ ifeq ($(PLATFORM),PLATFORM_WEB)
+ CFLAGS += -s ASSERTIONS=1 --profiling
+ endif
+else
+ ifeq ($(PLATFORM),PLATFORM_WEB)
+ CFLAGS += -Os
+ else
+ CFLAGS += -s -O1
+ endif
+endif
+
+# Additional flags for compiler (if desired)
+#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),LINUX)
+ ifeq ($(RAYLIB_LIBTYPE),STATIC)
+ CFLAGS += -D_DEFAULT_SOURCE
+ endif
+ ifeq ($(RAYLIB_LIBTYPE),SHARED)
+ # Explicitly enable runtime link to libraylib.so
+ CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
+ endif
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ CFLAGS += -std=gnu99
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ CFLAGS += -std=gnu99 -DEGL_NO_X11
+endif
+
+# Define include paths for required headers
+# NOTE: Some external/extras libraries could be required (stb, physac, easings...)
+INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYLIB_PATH)/src/extras
+
+# Define additional directories containing required header files
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ # RPI required libraries
+ INCLUDE_PATHS += -I/opt/vc/include
+ INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux
+ INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ # DRM required libraries
+ INCLUDE_PATHS += -I/usr/include/libdrm
+endif
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),BSD)
+ # Consider -L$(RAYLIB_H_INSTALL_PATH)
+ INCLUDE_PATHS += -I/usr/local/include
+ endif
+ ifeq ($(PLATFORM_OS),LINUX)
+ INCLUDE_PATHS += -I$(RAYLIB_H_INSTALL_PATH)
+ endif
+endif
+
+# Define library paths containing required libs.
+LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
+
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ # resource file contains windows executable icon and properties
+ LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data
+ # -Wl,--subsystem,windows hides the console window
+ ifeq ($(BUILD_MODE), RELEASE)
+ LDFLAGS += -Wl,--subsystem,windows
+ endif
+ endif
+ ifeq ($(PLATFORM_OS),BSD)
+ # Consider -L$(RAYLIB_INSTALL_PATH)
+ LDFLAGS += -L. -Lsrc -L/usr/local/lib
+ endif
+ ifeq ($(PLATFORM_OS),LINUX)
+ # Reset everything.
+ # Precedence: immediately local, installed version, raysan5 provided libs
+ LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # -Os # size optimization
+ # -O2 # optimization level 2, if used, also set --memory-init-file 0
+ # -s USE_GLFW=3 # Use glfw3 library (context/input management)
+ # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL!
+ # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB)
+ # -s USE_PTHREADS=1 # multithreading support
+ # -s WASM=0 # disable Web Assembly, emitted by default
+ # -s ASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS
+ # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data
+ # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off)
+ # --profiling # include information for code profiling
+ # --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
+ # --preload-file resources # specify a resources folder for data compilation
+ # --source-map-base # allow debugging in browser with source map
+ LDFLAGS += -s USE_GLFW=3 -s ASYNCIFY
+
+ # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way,
+ # we can compile same code for ALL platforms with no change required, but, working on bigger
+ # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw
+ # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference.
+
+ # NOTE: Additional compilate flags for TOTAL_MEMORY, FORCE_FILESYSTEM and resources loading
+ # are specified per-example for optimization
+
+ # Define a custom shell .html and output extension
+ LDFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html
+ EXT = .html
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ LDFLAGS += -L/opt/vc/lib
+endif
+
+# Define any libraries required on linking
+# if you want to link libraries (libname.so or libname.a), use the -lname
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ # Libraries for Windows desktop compilation
+ # NOTE: WinMM library required to set high-res timer resolution
+ LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm
+ # Required for physac examples
+ LDLIBS += -static -lpthread
+ endif
+ ifeq ($(PLATFORM_OS),LINUX)
+ # Libraries for Debian GNU/Linux desktop compiling
+ # NOTE: Required packages: libegl1-mesa-dev
+ LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt
+
+ # On X11 requires also below libraries
+ LDLIBS += -lX11
+ # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
+ #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
+
+ # On Wayland windowing system, additional libraries requires
+ ifeq ($(USE_WAYLAND_DISPLAY),TRUE)
+ LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon
+ endif
+ # Explicit link to libc
+ ifeq ($(RAYLIB_LIBTYPE),SHARED)
+ LDLIBS += -lc
+ endif
+ endif
+ ifeq ($(PLATFORM_OS),OSX)
+ # Libraries for OSX 10.9 desktop compiling
+ # NOTE: Required packages: libopenal-dev libegl1-mesa-dev
+ LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo
+ endif
+ ifeq ($(PLATFORM_OS),BSD)
+ # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
+ # NOTE: Required packages: mesa-libs
+ LDLIBS = -lraylib -lGL -lpthread -lm
+
+ # On XWindow requires also below libraries
+ LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
+ endif
+ ifeq ($(USE_EXTERNAL_GLFW),TRUE)
+ # NOTE: It could require additional packages installed: libglfw3-dev
+ LDLIBS += -lglfw
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ # Libraries for Raspberry Pi compiling
+ # NOTE: Required packages: libasound2-dev (ALSA)
+ LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ # Libraries for DRM compiling
+ # NOTE: Required packages: libasound2-dev (ALSA)
+ LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lgbm -ldrm -ldl
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # Libraries for web (HTML5) compiling
+ LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.a
+endif
+
+# Define all object files required
+CORE = \
+ core/core_basic_window \
+ core/core_basic_screen_manager \
+ core/core_input_keys \
+ core/core_input_mouse \
+ core/core_input_mouse_wheel \
+ core/core_input_gamepad \
+ core/core_input_multitouch \
+ core/core_input_gestures \
+ core/core_2d_camera \
+ core/core_2d_camera_platformer \
+ core/core_3d_camera_mode \
+ core/core_3d_camera_free \
+ core/core_3d_camera_first_person \
+ core/core_3d_picking \
+ core/core_world_screen \
+ core/core_custom_logging \
+ core/core_window_letterbox \
+ core/core_drop_files \
+ core/core_random_values \
+ core/core_scissor_test \
+ core/core_storage_values \
+ core/core_vr_simulator \
+ core/core_loading_thread \
+ core/core_quat_conversion \
+ core/core_window_flags \
+ core/core_split_screen \
+ core/core_smooth_pixelperfect \
+ core/core_custom_frame_control
+
+SHAPES = \
+ shapes/shapes_basic_shapes \
+ shapes/shapes_bouncing_ball \
+ shapes/shapes_colors_palette \
+ shapes/shapes_logo_raylib \
+ shapes/shapes_logo_raylib_anim \
+ shapes/shapes_rectangle_scaling \
+ shapes/shapes_lines_bezier \
+ shapes/shapes_collision_area \
+ shapes/shapes_following_eyes \
+ shapes/shapes_easings_ball_anim \
+ shapes/shapes_easings_box_anim \
+ shapes/shapes_easings_rectangle_array \
+ shapes/shapes_draw_ring \
+ shapes/shapes_draw_circle_sector \
+ shapes/shapes_draw_rectangle_rounded
+
+TEXTURES = \
+ textures/textures_logo_raylib \
+ textures/textures_mouse_painting \
+ textures/textures_rectangle \
+ textures/textures_srcrec_dstrec \
+ textures/textures_image_drawing \
+ textures/textures_image_generation \
+ textures/textures_image_loading \
+ textures/textures_image_processing \
+ textures/textures_image_text \
+ textures/textures_to_image \
+ textures/textures_raw_data \
+ textures/textures_particles_blending \
+ textures/textures_npatch_drawing \
+ textures/textures_background_scrolling \
+ textures/textures_sprite_button \
+ textures/textures_sprite_explosion \
+ textures/textures_bunnymark \
+ textures/textures_blend_modes \
+ textures/textures_draw_tiled \
+ textures/textures_polygon
+
+TEXT = \
+ text/text_raylib_fonts \
+ text/text_font_spritefont \
+ text/text_font_loading \
+ text/text_font_filters \
+ text/text_font_sdf \
+ text/text_format_text \
+ text/text_input_box \
+ text/text_writing_anim \
+ text/text_rectangle_bounds \
+ text/text_unicode \
+ text/text_draw_3d
+
+MODELS = \
+ models/models_animation \
+ models/models_billboard \
+ models/models_box_collisions \
+ models/models_cubicmap \
+ models/models_first_person_maze \
+ models/models_geometric_shapes \
+ models/models_mesh_generation \
+ models/models_mesh_picking \
+ models/models_loading \
+ models/models_loading_vox \
+ models/models_loading_gltf \
+ models/models_orthographic_projection \
+ models/models_rlgl_solar_system \
+ models/models_skybox \
+ models/models_yaw_pitch_roll \
+ models/models_heightmap \
+ models/models_waving_cubes
+
+SHADERS = \
+ shaders/shaders_model_shader \
+ shaders/shaders_shapes_textures \
+ shaders/shaders_custom_uniform \
+ shaders/shaders_postprocessing \
+ shaders/shaders_palette_switch \
+ shaders/shaders_raymarching \
+ shaders/shaders_texture_drawing \
+ shaders/shaders_texture_waves \
+ shaders/shaders_texture_outline \
+ shaders/shaders_julia_set \
+ shaders/shaders_eratosthenes \
+ shaders/shaders_basic_lighting \
+ shaders/shaders_fog \
+ shaders/shaders_simple_mask \
+ shaders/shaders_spotlight \
+ shaders/shaders_hot_reloading \
+ shaders/shaders_mesh_instancing \
+ shaders/shaders_multi_sample2d
+
+AUDIO = \
+ audio/audio_module_playing \
+ audio/audio_music_stream \
+ audio/audio_raw_stream \
+ audio/audio_sound_loading \
+ audio/audio_multichannel_sound
+
+PHYSICS = \
+ physics/physics_demo \
+ physics/physics_friction \
+ physics/physics_movement \
+ physics/physics_restitution \
+ physics/physics_shatter
+
+CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
+
+# Default target entry
+all: $(CORE) $(SHAPES) $(TEXT) $(TEXTURES) $(MODELS) $(SHADERS) $(AUDIO) $(PHYSICS)
+
+core: $(CORE)
+shapes: $(SHAPES)
+textures: $(TEXTURES)
+text: $(TEXT)
+models: $(MODELS)
+shaders: $(SHADERS)
+audio: $(AUDIO)
+physics: $(PHYSICS)
+
+# Compile CORE examples
+core/core_basic_window: core/core_basic_window.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_basic_screen_manager: core/core_basic_screen_manager.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_input_keys: core/core_input_keys.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_input_mouse: core/core_input_mouse.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_input_mouse_wheel: core/core_input_mouse_wheel.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_input_gamepad: core/core_input_gamepad.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file core/resources/ps3.png@resources/ps3.png \
+ --preload-file core/resources/xbox.png@resources/xbox.png
+
+core/core_input_multitouch: core/core_input_multitouch.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_input_gestures: core/core_input_gestures.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_2d_camera: core/core_2d_camera.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_2d_camera_platformer: core/core_2d_camera_platformer.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_3d_camera_mode: core/core_3d_camera_mode.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_3d_camera_free: core/core_3d_camera_free.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_3d_camera_first_person: core/core_3d_camera_first_person.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_3d_picking: core/core_3d_picking.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_world_screen: core/core_world_screen.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_custom_logging: core/core_custom_logging.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_window_letterbox: core/core_window_letterbox.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_drop_files: core/core_drop_files.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1
+
+core/core_random_values: core/core_random_values.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_scissor_test: core/core_scissor_test.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_storage_values: core/core_storage_values.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1
+
+core/core_vr_simulator: core/core_vr_simulator.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file core/resources/distortion100.fs@resources/distortion100.fs
+
+# NOTE: To use multi-threading raylib must be compiled with multi-theading support (-s USE_PTHREADS=1)
+core/core_loading_thread: core/core_loading_thread.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s USE_PTHREADS=1
+
+core/core_quat_conversion: core/core_quat_conversion.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_window_flags: core/core_window_flags.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_split_screen: core/core_split_screen.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_smooth_pixelperfect: core/core_smooth_pixelperfect.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+core/core_custom_frame_control: core/core_custom_frame_control.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+# Compile SHAPES examples
+shapes/shapes_basic_shapes: shapes/shapes_basic_shapes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_bouncing_ball: shapes/shapes_bouncing_ball.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_colors_palette: shapes/shapes_colors_palette.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_logo_raylib: shapes/shapes_logo_raylib.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_logo_raylib_anim: shapes/shapes_logo_raylib_anim.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_rectangle_scaling: shapes/shapes_rectangle_scaling.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_lines_bezier: shapes/shapes_lines_bezier.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_collision_area: shapes/shapes_collision_area.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_following_eyes: shapes/shapes_following_eyes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_easings_box_anim: shapes/shapes_easings_box_anim.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_easings_rectangle_array: shapes/shapes_easings_rectangle_array.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_draw_ring: shapes/shapes_draw_ring.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_draw_circle_sector: shapes/shapes_draw_circle_sector.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+shapes/shapes_draw_rectangle_rounded: shapes/shapes_draw_rectangle_rounded.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+# Compile TEXTURES examples
+textures/textures_logo_raylib: textures/textures_logo_raylib.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png
+
+textures/textures_mouse_painting: textures/textures_mouse_painting.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+textures/textures_rectangle: textures/textures_rectangle.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/scarfy.png@resources/scarfy.png
+
+textures/textures_srcrec_dstrec: textures/textures_srcrec_dstrec.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/scarfy.png@resources/scarfy.png
+
+textures/textures_image_loading: textures/textures_image_loading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png
+
+textures/textures_image_drawing: textures/textures_image_drawing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png \
+ --preload-file textures/resources/parrots.png@resources/parrots.png \
+ --preload-file textures/resources/cat.png@resources/cat.png
+
+textures/textures_image_generation: textures/textures_image_generation.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864
+
+textures/textures_image_processing: textures/textures_image_processing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/parrots.png@resources/parrots.png
+
+textures/textures_image_text: textures/textures_image_text.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file textures/resources/parrots.png@resources/parrots.png \
+ --preload-file textures/resources/KAISG.ttf@resources/KAISG.ttf
+
+textures/textures_to_image: textures/textures_to_image.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png
+
+textures/textures_raw_data: textures/textures_raw_data.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/fudesumi.raw@resources/fudesumi.raw
+
+textures/textures_particles_blending: textures/textures_particles_blending.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/spark_flame.png@resources/spark_flame.png
+
+textures/textures_npatch_drawing: textures/textures_npatch_drawing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/ninepatch_button.png@resources/ninepatch_button.png
+
+textures/textures_background_scrolling: textures/textures_background_scrolling.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \
+ --preload-file textures/resources/cyberpunk_street_midground.png@resources/cyberpunk_street_midground.png \
+ --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png
+
+textures/textures_sprite_button: textures/textures_sprite_button.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/button.png@resources/button.png \
+ --preload-file textures/resources/buttonfx.wav@resources/buttonfx.wav
+
+textures/textures_sprite_explosion: textures/textures_sprite_explosion.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/explosion.png@resources/explosion.png \
+ --preload-file textures/resources/boom.wav@resources/boom.wav
+
+textures/textures_bunnymark: textures/textures_bunnymark.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/wabbit_alpha.png@resources/wabbit_alpha.png
+
+textures/textures_blend_modes: textures/textures_blend_modes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s ASYNCIFY \
+ --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \
+ --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png
+
+textures/textures_draw_tiled: textures/textures_draw_tiled.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s ASYNCIFY \
+ --preload-file textures/resources/patterns.png@resources/patterns.png
+
+textures/textures_polygon: textures/textures_polygon.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file textures/resources/cat.png@resources/cat.png
+
+# Compile TEXT examples
+text/text_raylib_fonts: text/text_raylib_fonts.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file text/resources/fonts/alagard.png@resources/fonts/alagard.png \
+ --preload-file text/resources/fonts/pixelplay.png@resources/fonts/pixelplay.png \
+ --preload-file text/resources/fonts/mecha.png@resources/fonts/mecha.png \
+ --preload-file text/resources/fonts/setback.png@resources/fonts/setback.png \
+ --preload-file text/resources/fonts/romulus.png@resources/fonts/romulus.png \
+ --preload-file text/resources/fonts/pixantiqua.png@resources/fonts/pixantiqua.png \
+ --preload-file text/resources/fonts/alpha_beta.png@resources/fonts/alpha_beta.png \
+ --preload-file text/resources/fonts/jupiter_crash.png@resources/fonts/jupiter_crash.png
+
+text/text_font_spritefont: text/text_font_spritefont.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file text/resources/custom_mecha.png@resources/custom_mecha.png \
+ --preload-file text/resources/custom_alagard.png@resources/custom_alagard.png \
+ --preload-file text/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png
+
+text/text_font_loading: text/text_font_loading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file text/resources/pixantiqua.fnt@resources/pixantiqua.fnt \
+ --preload-file text/resources/pixantiqua.png@resources/pixantiqua.png \
+ --preload-file text/resources/pixantiqua.ttf@resources/pixantiqua.ttf
+
+text/text_font_filters: text/text_font_filters.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file text/resources/KAISG.ttf@resources/KAISG.ttf
+
+text/text_font_sdf: text/text_font_sdf.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file text/resources/anonymous_pro_bold.ttf@resources/anonymous_pro_bold.ttf \
+ --preload-file text/resources/shaders/glsl100/sdf.fs@resources/shaders/glsl100/sdf.fs
+
+text/text_format_text: text/text_format_text.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+text/text_input_box: text/text_input_box.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+text/text_writing_anim: text/text_writing_anim.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+text/text_rectangle_bounds: text/text_rectangle_bounds.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+text/text_unicode: text/text_unicode.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \
+ --preload-file text/resources/dejavu.png@resources/dejavu.png \
+ --preload-file text/resources/noto_cjk.fnt@resources/noto_cjk.fnt \
+ --preload-file text/resources/noto_cjk.png@resources/noto_cjk.png \
+ --preload-file text/resources/symbola.fnt@resources/symbola.fnt \
+ --preload-file text/resources/symbola.png@resources/symbola.png
+
+text/text_draw_3d: text/text_draw_3d.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs
+
+# Compile MODELS examples
+models/models_animation: models/models_animation.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file models/resources/models/iqm/guy.iqm@resources/models/iqm/guy.iqm \
+ --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \
+ --preload-file models/resources/models/iqm/guyanim.iqm@resources/models/iqm/guyanim.iqm
+
+models/models_billboard: models/models_billboard.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file models/resources/billboard.png@resources/billboard.png
+
+models/models_box_collisions: models/models_box_collisions.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+models/models_cubicmap: models/models_cubicmap.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file models/resources/cubicmap.png@resources/cubicmap.png \
+ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png
+
+models/models_first_person_maze: models/models_first_person_maze.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file models/resources/cubicmap.png@resources/cubicmap.png \
+ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png
+
+models/models_geometric_shapes: models/models_geometric_shapes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+models/models_mesh_generation: models/models_mesh_generation.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+models/models_mesh_picking: models/models_mesh_picking.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file models/resources/models/obj/turret.obj@resources/models/obj/turret.obj \
+ --preload-file models/resources/models/obj/turret_diffuse.png@resources/models/obj/turret_diffuse.png
+
+models/models_loading: models/models_loading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file models/resources/models/obj/castle.obj@resources/models/obj/castle.obj \
+ --preload-file models/resources/models/obj/castle_diffuse.png@resources/models/obj/castle_diffuse.png
+
+models/models_loading_vox: models/models_loading_vox.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file models/resources/models/vox/chr_knight.vox@resources/models/vox/chr_knight.vox \
+ --preload-file models/resources/models/vox/chr_sword.vox@resources/models/vox/chr_sword.vox \
+ --preload-file models/resources/models/vox/monu9.vox@resources/models/vox/monu9.vox
+
+models/models_loading_gltf: models/models_loading_gltf.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file models/resources/models/gltf/raylib_32x32.glb@resources/models/gltf/raylib_32x32.glb \
+ --preload-file models/resources/models/gltf/girl.glb@resources/models/gltf/girl.glb \
+ --preload-file models/resources/models/gltf/rigged_figure.glb@resources/models/gltf/rigged_figure.glb \
+ --preload-file models/resources/models/gltf/GearboxAssy.glb@resources/models/gltf/GearboxAssy.glb \
+ --preload-file models/resources/models/gltf/BoxAnimated.glb@resources/models/gltf/BoxAnimated.glb \
+ --preload-file models/resources/models/gltf/AnimatedTriangle.gltf@resources/models/gltf/AnimatedTriangle.gltf \
+ --preload-file models/resources/models/gltf/AnimatedMorphCube.glb@resources/models/gltf/AnimatedMorphCube.glb \
+ --preload-file models/resources/models/gltf/vertex_colored_object.glb@resources/models/gltf/vertex_colored_object.glb
+
+models/models_orthographic_projection: models/models_orthographic_projection.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+models/models_rlgl_solar_system: models/models_rlgl_solar_system.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+models/models_skybox: models/models_skybox.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 \
+ --preload-file models/resources/dresden_square_2k.hdr@resources/dresden_square_2k.hdr \
+ --preload-file models/resources/shaders/glsl100/skybox.vs@resources/shaders/glsl100/skybox.vs \
+ --preload-file models/resources/shaders/glsl100/skybox.fs@resources/shaders/glsl100/skybox.fs \
+ --preload-file models/resources/shaders/glsl100/cubemap.vs@resources/shaders/glsl100/cubemap.vs \
+ --preload-file models/resources/shaders/glsl100/cubemap.fs@resources/shaders/glsl100/cubemap.fs
+
+models/models_yaw_pitch_roll: models/models_yaw_pitch_roll.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file models/resources/models/gltf/plane/plane.gltf@resources/models/gltf/plane/plane.gltf \
+ --preload-file models/resources/models/gltf/plane/plane_diffuse.png@resources/models/gltf/plane/plane_diffuse.png
+
+models/models_heightmap: models/models_heightmap.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file models/resources/heightmap.png@resources/heightmap.png
+
+models/models_waving_cubes: models/models_waving_cubes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+
+# Compile SHADER examples
+shaders/shaders_model_shader: shaders/shaders_model_shader.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file shaders/resources/models/watermill.obj@resources/models/watermill.obj \
+ --preload-file shaders/resources/models/watermill_diffuse.png@resources/models/watermill_diffuse.png \
+ --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs
+
+shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \
+ --preload-file shaders/resources/shaders/glsl100/base.vs@resources/shaders/glsl100/base.vs \
+ --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs
+
+shaders/shaders_custom_uniform: shaders/shaders_custom_uniform.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file shaders/resources/models/barracks.obj@resources/models/barracks.obj \
+ --preload-file shaders/resources/models/barracks_diffuse.png@resources/models/barracks_diffuse.png \
+ --preload-file shaders/resources/shaders/glsl100/swirl.fs@resources/shaders/glsl100/swirl.fs
+
+shaders/shaders_postprocessing: shaders/shaders_postprocessing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file shaders/resources/models/church.obj@resources/models/church.obj \
+ --preload-file shaders/resources/models/church_diffuse.png@resources/models/church_diffuse.png \
+ --preload-file shaders/resources/shaders/glsl100@resources/shaders/glsl100
+
+shaders/shaders_palette_switch: shaders/shaders_palette_switch.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/palette_switch.fs@resources/shaders/glsl100/palette_switch.fs
+
+shaders/shaders_raymarching: shaders/shaders_raymarching.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/raymarching.fs@resources/shaders/glsl100/raymarching.fs
+
+shaders/shaders_texture_drawing: shaders/shaders_texture_drawing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs
+
+shaders/shaders_texture_waves: shaders/shaders_texture_waves.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/space.png@resources/space.png \
+ --preload-file shaders/resources/shaders/glsl100/wave.fs@resources/shaders/glsl100/wave.fs
+
+shaders/shaders_julia_set: shaders/shaders_julia_set.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/julia_set.fs@resources/shaders/glsl100/julia_set.fs
+
+shaders/shaders_eratosthenes: shaders/shaders_eratosthenes.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs
+
+shaders/shaders_basic_lighting: shaders/shaders_basic_lighting.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \
+ --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs \
+ --preload-file shaders/resources/shaders/glsl100/base_lighting.vs@resources/shaders/glsl100/base_lighting.vs
+
+shaders/shaders_fog: shaders/shaders_fog.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \
+ --preload-file shaders/resources/shaders/glsl100/fog.fs@resources/shaders/glsl100/fog.fs \
+ --preload-file shaders/resources/shaders/glsl100/base_lighting.vs@resources/shaders/glsl100/base_lighting.vs
+
+shaders/shaders_simple_mask: shaders/shaders_simple_mask.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/plasma.png@resources/plasma.png \
+ --preload-file shaders/resources/mask.png@resources/mask.png \
+ --preload-file shaders/resources/shaders/glsl100/mask.fs@resources/shaders/glsl100/mask.fs
+
+shaders/shaders_spotlight: shaders/shaders_spotlight.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/raysan.png@resources/raysan.png \
+ --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs
+
+shaders/shaders_hot_reloading: shaders/shaders_hot_reloading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 \
+ --preload-file shaders/resources/shaders/glsl100/reload.fs@resources/shaders/glsl100/reload.fs
+
+shaders/shaders_mesh_instancing: shaders/shaders_mesh_instancing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs \
+ --preload-file shaders/resources/shaders/glsl100/base_lighting_instanced.vs@resources/shaders/glsl100/base_lighting_instanced.vs
+
+shaders/shaders_multi_sample2d: shaders/shaders_multi_sample2d.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/color_mix.fs@resources/shaders/glsl100/color_mix.fs
+
+shaders/shaders_texture_outline: shaders/shaders_texture_outline.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file shaders/resources/shaders/glsl100/outline.fs@resources/shaders/glsl100/outline.fs \
+ --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png
+
+# Compile AUDIO examples
+audio/audio_module_playing: audio/audio_module_playing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file audio/resources/mini1111.xm@resources/mini1111.xm
+
+audio/audio_music_stream: audio/audio_music_stream.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \
+ --preload-file audio/resources/country.mp3@resources/country.mp3
+
+audio/audio_raw_stream: audio/audio_raw_stream.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864
+
+audio/audio_sound_loading: audio/audio_sound_loading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file audio/resources/sound.wav@resources/sound.wav \
+ --preload-file audio/resources/target.ogg@resources/target.ogg
+
+audio/audio_multichannel_sound: audio/audio_multichannel_sound.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
+ --preload-file audio/resources/sound.wav@resources/sound.wav \
+ --preload-file audio/resources/target.ogg@resources/target.ogg
+
+# Compile PHYSICS examples
+# NOTE: To use multi-threading raylib must be compiled with multi-theading support (-s USE_PTHREADS=1)
+physics/physics_demo: physics/physics_demo.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1
+
+physics/physics_friction: physics/physics_friction.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1
+
+physics/physics_movement: physics/physics_movement.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1
+
+physics/physics_restitution: physics/physics_restitution.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1
+
+physics/physics_shatter: physics/physics_shatter.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1
+
+
+# Clean everything
+clean:
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ del *.o *.exe /s
+ endif
+ ifeq ($(PLATFORM_OS),LINUX)
+ find . -type f -executable -delete
+ rm -fv *.o
+ endif
+ ifeq ($(PLATFORM_OS),OSX)
+ find . -type f -perm +ugo+x -delete
+ rm -f *.o
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ find . -type f -executable -delete
+ rm -fv *.o
+endif
+ifeq ($(PLATFORM),PLATFORM_DRM)
+ find . -type f -executable -delete
+ rm -fv *.o
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ del *.o *.html *.js
+endif
+ @echo Cleaning done
+
diff --git a/examples/README.md b/examples/README.md
index 6a366972f..14d566b23 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -1,3 +1,21 @@
+## Building the Examples
+
+The examples assume you have already built the `raylib` library in `../src`.
+
+### With GNU make
+
+- `make` builds all examples
+- `make [module]` builds all examples for a particular module (e.g `make core`)
+
+### With Zig
+
+The [Zig](https://ziglang.org/) toolchain can compile `C` and `C++` in addition to `Zig`.
+You may find it easier to use than other toolchains, especially when it comes to cross-compiling.
+
+- `zig build` to compile all examples
+- `zig build [module]` to compile all examples for a module (e.g. `zig build core`)
+- `zig build [example]` to compile _and run_ a particular example (e.g. `zig build core_basic_window`)
+
## EXAMPLES LIST
### category: core
@@ -110,7 +128,7 @@ Examples using raylib models functionality, including models loading/generation
| 72 | [models_cubicmap](models/models_cubicmap.c) |
| ray | |
| 73 | [models_first_person_maze](models/models_first_person_maze.c) |
| ray | |
| 74 | [models_geometric_shapes](models/models_geometric_shapes.c) |
| ray | |
-| 75 | [models_material_pbr](models/models_material_pbr.c) |
| ray | |
+| 75 | [...]() | | ray | |
| 76 | [models_mesh_generation](models/models_mesh_generation.c) |
| ray | |
| 77 | [models_mesh_picking](models/models_mesh_picking.c) |
| [Joel Davis](https://github.com/joeld42) | |
| 78 | [models_loading](models/models_loading.c) |
| ray | |
diff --git a/examples/build.zig b/examples/build.zig
new file mode 100644
index 000000000..c05808bf7
--- /dev/null
+++ b/examples/build.zig
@@ -0,0 +1,86 @@
+const std = @import("std");
+const builtin = @import("builtin");
+
+fn add_module(comptime module: []const u8, b: *std.build.Builder, target: std.zig.CrossTarget) !*std.build.Step {
+ // Standard release options allow the person running `zig build` to select
+ // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
+ const mode = b.standardReleaseOptions();
+
+ const all = b.step(module, "All " ++ module ++ " examples");
+ const dir = try std.fs.cwd().openDir(
+ module,
+ .{ .iterate = true },
+ );
+ var iter = dir.iterate();
+ while (try iter.next()) |entry| {
+ if (entry.kind != .File) continue;
+ const extension_idx = std.mem.lastIndexOf(u8, entry.name, ".c") orelse continue;
+ const name = entry.name[0..extension_idx];
+ const path = try std.fs.path.join(b.allocator, &.{ module, entry.name });
+
+ // zig's mingw headers do not include pthread.h
+ if (std.mem.eql(u8, "core_loading_thread", name) and target.getOsTag() == .windows) continue;
+
+ const exe = b.addExecutable(name, path);
+ exe.setTarget(target);
+ exe.setBuildMode(mode);
+ exe.linkLibC();
+ exe.addObjectFile(switch (target.getOsTag()) {
+ .windows => "../src/raylib.lib",
+ .linux => "../src/libraylib.a",
+ else => @panic("Unsupported OS"),
+ });
+
+ exe.addIncludeDir("../src");
+ exe.addIncludeDir("../src/external");
+ exe.addIncludeDir("../src/external/glfw/include");
+
+ switch (exe.target.toTarget().os.tag) {
+ .windows => {
+ exe.linkSystemLibrary("winmm");
+ exe.linkSystemLibrary("gdi32");
+ exe.linkSystemLibrary("opengl32");
+ exe.addIncludeDir("external/glfw/deps/mingw");
+ },
+ .linux => {
+ exe.linkSystemLibrary("GL");
+ exe.linkSystemLibrary("rt");
+ exe.linkSystemLibrary("dl");
+ exe.linkSystemLibrary("m");
+ exe.linkSystemLibrary("X11");
+ },
+ else => {
+ @panic("Unsupported OS");
+ },
+ }
+
+ exe.setOutputDir(module);
+
+ var run = exe.run();
+ run.step.dependOn(&b.addInstallArtifact(exe).step);
+ run.cwd = module;
+ b.step(name, name).dependOn(&run.step);
+ all.dependOn(&exe.step);
+ }
+ return all;
+}
+
+pub fn build(b: *std.build.Builder) !void {
+ // Standard target options allows the person running `zig build` to choose
+ // what target to build for. Here we do not override the defaults, which
+ // means any target is allowed, and the default is native. Other options
+ // for restricting supported target set are available.
+ const target = b.standardTargetOptions(.{});
+
+ const all = b.getInstallStep();
+
+ all.dependOn(try add_module("audio", b, target));
+ all.dependOn(try add_module("core", b, target));
+ all.dependOn(try add_module("models", b, target));
+ all.dependOn(try add_module("others", b, target));
+ all.dependOn(try add_module("physics", b, target));
+ all.dependOn(try add_module("shaders", b, target));
+ all.dependOn(try add_module("shapes", b, target));
+ all.dependOn(try add_module("text", b, target));
+ all.dependOn(try add_module("textures", b, target));
+}
diff --git a/examples/core/core_basic_screen_manager.c b/examples/core/core_basic_screen_manager.c
index 9c19d862b..6051f1752 100644
--- a/examples/core/core_basic_screen_manager.c
+++ b/examples/core/core_basic_screen_manager.c
@@ -38,15 +38,15 @@ int main(void)
SetTargetFPS(60); // Set desired framerate (frames-per-second)
//--------------------------------------------------------------------------------------
-
+
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
- switch(currentScreen)
+ switch(currentScreen)
{
- case LOGO:
+ case LOGO:
{
// TODO: Update LOGO screen variables here!
@@ -58,7 +58,7 @@ int main(void)
currentScreen = TITLE;
}
} break;
- case TITLE:
+ case TITLE:
{
// TODO: Update TITLE screen variables here!
@@ -69,16 +69,16 @@ int main(void)
}
} break;
case GAMEPLAY:
- {
+ {
// TODO: Update GAMEPLAY screen variables here!
// Press enter to change to ENDING screen
if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP))
{
currentScreen = ENDING;
- }
+ }
} break;
- case ENDING:
+ case ENDING:
{
// TODO: Update ENDING screen variables here!
@@ -86,63 +86,63 @@ int main(void)
if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP))
{
currentScreen = TITLE;
- }
+ }
} break;
default: break;
}
//----------------------------------------------------------------------------------
-
+
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
-
+
ClearBackground(RAYWHITE);
-
- switch(currentScreen)
+
+ switch(currentScreen)
{
- case LOGO:
+ case LOGO:
{
// TODO: Draw LOGO screen here!
DrawText("LOGO SCREEN", 20, 20, 40, LIGHTGRAY);
DrawText("WAIT for 2 SECONDS...", 290, 220, 20, GRAY);
-
+
} break;
- case TITLE:
+ case TITLE:
{
// TODO: Draw TITLE screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, GREEN);
DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN);
DrawText("PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN", 120, 220, 20, DARKGREEN);
-
+
} break;
case GAMEPLAY:
- {
+ {
// TODO: Draw GAMEPLAY screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, PURPLE);
DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON);
DrawText("PRESS ENTER or TAP to JUMP to ENDING SCREEN", 130, 220, 20, MAROON);
} break;
- case ENDING:
+ case ENDING:
{
// TODO: Draw ENDING screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, BLUE);
DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE);
DrawText("PRESS ENTER or TAP to RETURN to TITLE SCREEN", 120, 220, 20, DARKBLUE);
-
+
} break;
default: break;
}
-
+
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
-
+
// TODO: Unload all loaded data (textures, fonts, audio) here!
-
+
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
diff --git a/examples/core/core_quat_conversion.c b/examples/core/core_quat_conversion.c
index f3c9b757e..a60e40007 100644
--- a/examples/core/core_quat_conversion.c
+++ b/examples/core/core_quat_conversion.c
@@ -10,7 +10,7 @@
*
* Example contributed by Chris Camacho (@chriscamacho) and reviewed by Ramon Santamaria (@raysan5)
*
-* Copyright (c) 2020 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5)
+* Copyright (c) 2020-2021 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@@ -32,15 +32,23 @@ int main(void)
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
- camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
+ camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
- Mesh mesh = GenMeshCylinder(0.2f, 1.0f, 32);
- Model model = LoadModelFromMesh(mesh);
+ // Load a cylinder model for testing
+ Model model = LoadModelFromMesh(GenMeshCylinder(0.2f, 1.0f, 32));
- // Some required variables
+ // Generic quaternion for operations
Quaternion q1 = { 0 };
- Matrix m1 = { 0 }, m2 = { 0 }, m3 = { 0 }, m4 = { 0 };
- Vector3 v1 = { 0 }, v2 = { 0 };
+
+ // Transform matrices required to draw 4 cylinders
+ Matrix m1 = { 0 };
+ Matrix m2 = { 0 };
+ Matrix m3 = { 0 };
+ Matrix m4 = { 0 };
+
+ // Generic vectors for rotations
+ Vector3 v1 = { 0 };
+ Vector3 v2 = { 0 };
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -50,6 +58,10 @@ int main(void)
{
// Update
//--------------------------------------------------------------------------------------
+ if (v2.x < 0) v2.x += PI*2;
+ if (v2.y < 0) v2.y += PI*2;
+ if (v2.z < 0) v2.z += PI*2;
+
if (!IsKeyDown(KEY_SPACE))
{
v1.x += 0.01f;
@@ -68,7 +80,7 @@ int main(void)
q1 = QuaternionFromMatrix(m1);
m3 = QuaternionToMatrix(q1);
- v2 = QuaternionToEuler(q1);
+ v2 = QuaternionToEuler(q1); // Angles returned in radians
m4 = MatrixRotateZYX(v2);
//--------------------------------------------------------------------------------------
@@ -83,10 +95,13 @@ int main(void)
model.transform = m1;
DrawModel(model, (Vector3){ -1, 0, 0 }, 1.0f, RED);
+
model.transform = m2;
DrawModel(model, (Vector3){ 1, 0, 0 }, 1.0f, RED);
+
model.transform = m3;
DrawModel(model, (Vector3){ 0, 0, 0 }, 1.0f, RED);
+
model.transform = m4;
DrawModel(model, (Vector3){ 0, 0, -1 }, 1.0f, RED);
@@ -94,23 +109,13 @@ int main(void)
EndMode3D();
- if (v2.x < 0) v2.x += PI*2;
- if (v2.y < 0) v2.y += PI*2;
- if (v2.z < 0) v2.z += PI*2;
+ DrawText(TextFormat("%2.3f", v1.x), 20, 20, 20, (v1.x == v2.x)? GREEN: BLACK);
+ DrawText(TextFormat("%2.3f", v1.y), 20, 40, 20, (v1.y == v2.y)? GREEN: BLACK);
+ DrawText(TextFormat("%2.3f", v1.z), 20, 60, 20, (v1.z == v2.z)? GREEN: BLACK);
- Color cx,cy,cz;
- cx = cy = cz = BLACK;
- if (v1.x == v2.x) cx = GREEN;
- if (v1.y == v2.y) cy = GREEN;
- if (v1.z == v2.z) cz = GREEN;
-
- DrawText(TextFormat("%2.3f", v1.x), 20, 20, 20, cx);
- DrawText(TextFormat("%2.3f", v1.y), 20, 40, 20, cy);
- DrawText(TextFormat("%2.3f", v1.z), 20, 60, 20, cz);
-
- DrawText(TextFormat("%2.3f", v2.x), 200, 20, 20, cx);
- DrawText(TextFormat("%2.3f", v2.y), 200, 40, 20, cy);
- DrawText(TextFormat("%2.3f", v2.z), 200, 60, 20, cz);
+ DrawText(TextFormat("%2.3f", v2.x), 200, 20, 20, (v1.x == v2.x)? GREEN: BLACK);
+ DrawText(TextFormat("%2.3f", v2.y), 200, 40, 20, (v1.y == v2.y)? GREEN: BLACK);
+ DrawText(TextFormat("%2.3f", v2.z), 200, 60, 20, (v1.z == v2.z)? GREEN: BLACK);
EndDrawing();
//----------------------------------------------------------------------------------
diff --git a/examples/core/core_random_values.c b/examples/core/core_random_values.c
index 260e708cc..b44b5faf4 100644
--- a/examples/core/core_random_values.c
+++ b/examples/core/core_random_values.c
@@ -20,10 +20,12 @@ int main(void)
InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values");
- int framesCounter = 0; // Variable used to count frames
+ // SetRandomSeed(0xaabbccff); // Set a custom random seed if desired, by default: "time(NULL)"
int randValue = GetRandomValue(-8, 5); // Get a random integer number between -8 and 5 (both included)
-
+
+ int framesCounter = 0; // Variable used to count frames
+
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
diff --git a/examples/core/core_2d_camera_smooth_pixelperfect.c b/examples/core/core_smooth_pixelperfect.c
similarity index 96%
rename from examples/core/core_2d_camera_smooth_pixelperfect.c
rename to examples/core/core_smooth_pixelperfect.c
index 75ffe262a..e0c6d1976 100644
--- a/examples/core/core_2d_camera_smooth_pixelperfect.c
+++ b/examples/core/core_smooth_pixelperfect.c
@@ -1,118 +1,117 @@
-/*******************************************************************************************
-*
-* raylib [core] example - smooth pixel-perfect camera
-*
-* This example has been created using raylib 3.7 (www.raylib.com)
-* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-* Example contributed by Giancamillo Alessandroni (@NotManyIdeasDev) and
-* reviewed by Ramon Santamaria (@raysan5)
-*
-* Copyright (c) 2021 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#include // Required for: sinf(), cosf()
-
-int main(void)
-{
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
-
- const int virtualScreenWidth = 160;
- const int virtualScreenHeight = 90;
-
- const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth;
-
- InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera");
-
- Camera2D worldSpaceCamera = { 0 }; // Game world camera
- worldSpaceCamera.zoom = 1.0f;
-
- Camera2D screenSpaceCamera = { 0 }; // Smoothing camera
- screenSpaceCamera.zoom = 1.0f;
-
- RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight); // This is where we'll draw all our objects.
-
- Rectangle rec01 = { 70.0f, 35.0f, 20.0f, 20.0f };
- Rectangle rec02 = { 90.0f, 55.0f, 30.0f, 10.0f };
- Rectangle rec03 = { 80.0f, 65.0f, 15.0f, 25.0f };
-
- // The target's height is flipped (in the source Rectangle), due to OpenGL reasons
- Rectangle sourceRec = { 0.0f, 0.0f, (float)target.texture.width, -(float)target.texture.height };
- Rectangle destRec = { -virtualRatio, -virtualRatio, screenWidth + (virtualRatio*2), screenHeight + (virtualRatio*2) };
-
- Vector2 origin = { 0.0f, 0.0f };
-
- float rotation = 0.0f;
-
- float cameraX = 0.0f;
- float cameraY = 0.0f;
-
- SetTargetFPS(60);
- //--------------------------------------------------------------------------------------
-
- // Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update
- //----------------------------------------------------------------------------------
- rotation += 60.0f*GetFrameTime(); // Rotate the rectangles, 60 degrees per second
-
- // Make the camera move to demonstrate the effect
- cameraX = (sinf(GetTime())*50.0f) - 10.0f;
- cameraY = cosf(GetTime())*30.0f;
-
- // Set the camera's target to the values computed above
- screenSpaceCamera.target = (Vector2){ cameraX, cameraY };
-
- // Round worldSpace coordinates, keep decimals into screenSpace coordinates
- worldSpaceCamera.target.x = (int)screenSpaceCamera.target.x;
- screenSpaceCamera.target.x -= worldSpaceCamera.target.x;
- screenSpaceCamera.target.x *= virtualRatio;
-
- worldSpaceCamera.target.y = (int)screenSpaceCamera.target.y;
- screenSpaceCamera.target.y -= worldSpaceCamera.target.y;
- screenSpaceCamera.target.y *= virtualRatio;
-
- //----------------------------------------------------------------------------------
-
- // Draw
- //----------------------------------------------------------------------------------
- BeginTextureMode(target);
- ClearBackground(RAYWHITE);
-
- BeginMode2D(worldSpaceCamera);
- DrawRectanglePro(rec01, origin, rotation, BLACK);
- DrawRectanglePro(rec02, origin, -rotation, RED);
- DrawRectanglePro(rec03, origin, rotation + 45.0f, BLUE);
- EndMode2D();
- EndTextureMode();
-
- BeginDrawing();
- ClearBackground(RED);
-
- BeginMode2D(screenSpaceCamera);
- DrawTexturePro(target.texture, sourceRec, destRec, origin, 0.0f, WHITE);
- EndMode2D();
-
- DrawText(TextFormat("Screen resolution: %ix%i", screenWidth, screenHeight), 10, 10, 20, DARKBLUE);
- DrawText(TextFormat("World resolution: %ix%i", virtualScreenWidth, virtualScreenHeight), 10, 40, 20, DARKGREEN);
- DrawFPS(GetScreenWidth() - 95, 10);
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
-
- // De-Initialization
- //--------------------------------------------------------------------------------------
- UnloadRenderTexture(target); // Unload render texture
-
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
-
- return 0;
+/*******************************************************************************************
+*
+* raylib [core] example - smooth pixel-perfect camera
+*
+* This example has been created using raylib 3.7 (www.raylib.com)
+* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
+*
+* Example contributed by Giancamillo Alessandroni (@NotManyIdeasDev) and
+* reviewed by Ramon Santamaria (@raysan5)
+*
+* Copyright (c) 2021 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5)
+*
+********************************************************************************************/
+
+#include "raylib.h"
+
+#include // Required for: sinf(), cosf()
+
+int main(void)
+{
+ // Initialization
+ //--------------------------------------------------------------------------------------
+ const int screenWidth = 800;
+ const int screenHeight = 450;
+
+ const int virtualScreenWidth = 160;
+ const int virtualScreenHeight = 90;
+
+ const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth;
+
+ InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera");
+
+ Camera2D worldSpaceCamera = { 0 }; // Game world camera
+ worldSpaceCamera.zoom = 1.0f;
+
+ Camera2D screenSpaceCamera = { 0 }; // Smoothing camera
+ screenSpaceCamera.zoom = 1.0f;
+
+ RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight); // This is where we'll draw all our objects.
+
+ Rectangle rec01 = { 70.0f, 35.0f, 20.0f, 20.0f };
+ Rectangle rec02 = { 90.0f, 55.0f, 30.0f, 10.0f };
+ Rectangle rec03 = { 80.0f, 65.0f, 15.0f, 25.0f };
+
+ // The target's height is flipped (in the source Rectangle), due to OpenGL reasons
+ Rectangle sourceRec = { 0.0f, 0.0f, (float)target.texture.width, -(float)target.texture.height };
+ Rectangle destRec = { -virtualRatio, -virtualRatio, screenWidth + (virtualRatio*2), screenHeight + (virtualRatio*2) };
+
+ Vector2 origin = { 0.0f, 0.0f };
+
+ float rotation = 0.0f;
+
+ float cameraX = 0.0f;
+ float cameraY = 0.0f;
+
+ SetTargetFPS(60);
+ //--------------------------------------------------------------------------------------
+
+ // Main game loop
+ while (!WindowShouldClose()) // Detect window close button or ESC key
+ {
+ // Update
+ //----------------------------------------------------------------------------------
+ rotation += 60.0f*GetFrameTime(); // Rotate the rectangles, 60 degrees per second
+
+ // Make the camera move to demonstrate the effect
+ cameraX = (sinf(GetTime())*50.0f) - 10.0f;
+ cameraY = cosf(GetTime())*30.0f;
+
+ // Set the camera's target to the values computed above
+ screenSpaceCamera.target = (Vector2){ cameraX, cameraY };
+
+ // Round worldSpace coordinates, keep decimals into screenSpace coordinates
+ worldSpaceCamera.target.x = (int)screenSpaceCamera.target.x;
+ screenSpaceCamera.target.x -= worldSpaceCamera.target.x;
+ screenSpaceCamera.target.x *= virtualRatio;
+
+ worldSpaceCamera.target.y = (int)screenSpaceCamera.target.y;
+ screenSpaceCamera.target.y -= worldSpaceCamera.target.y;
+ screenSpaceCamera.target.y *= virtualRatio;
+ //----------------------------------------------------------------------------------
+
+ // Draw
+ //----------------------------------------------------------------------------------
+ BeginTextureMode(target);
+ ClearBackground(RAYWHITE);
+
+ BeginMode2D(worldSpaceCamera);
+ DrawRectanglePro(rec01, origin, rotation, BLACK);
+ DrawRectanglePro(rec02, origin, -rotation, RED);
+ DrawRectanglePro(rec03, origin, rotation + 45.0f, BLUE);
+ EndMode2D();
+ EndTextureMode();
+
+ BeginDrawing();
+ ClearBackground(RED);
+
+ BeginMode2D(screenSpaceCamera);
+ DrawTexturePro(target.texture, sourceRec, destRec, origin, 0.0f, WHITE);
+ EndMode2D();
+
+ DrawText(TextFormat("Screen resolution: %ix%i", screenWidth, screenHeight), 10, 10, 20, DARKBLUE);
+ DrawText(TextFormat("World resolution: %ix%i", virtualScreenWidth, virtualScreenHeight), 10, 40, 20, DARKGREEN);
+ DrawFPS(GetScreenWidth() - 95, 10);
+ EndDrawing();
+ //----------------------------------------------------------------------------------
+ }
+
+ // De-Initialization
+ //--------------------------------------------------------------------------------------
+ UnloadRenderTexture(target); // Unload render texture
+
+ CloseWindow(); // Close window and OpenGL context
+ //--------------------------------------------------------------------------------------
+
+ return 0;
}
\ No newline at end of file
diff --git a/examples/core/core_smooth_pixelperfect.png b/examples/core/core_smooth_pixelperfect.png
new file mode 100644
index 000000000..d3b6ce012
Binary files /dev/null and b/examples/core/core_smooth_pixelperfect.png differ
diff --git a/examples/core/core_split_screen.c b/examples/core/core_split_screen.c
index 31c3fb4bf..c05c0b32d 100644
--- a/examples/core/core_split_screen.c
+++ b/examples/core/core_split_screen.c
@@ -22,7 +22,7 @@ void DrawScene(void)
{
int count = 5;
float spacing = 4;
-
+
// Grid of cube trees on a plane to make a "world"
DrawPlane((Vector3){ 0, 0, 0 }, (Vector2){ 50, 50 }, BEIGE); // Simple world plane
@@ -73,10 +73,10 @@ int main(void)
cameraPlayer2.position.y = 3.0f;
RenderTexture screenPlayer2 = LoadRenderTexture(screenWidth / 2, screenHeight);
-
+
// Build a flipped rectangle the size of the split view to use for drawing later
Rectangle splitScreenRect = { 0.0f, 0.0f, (float)screenPlayer1.texture.width, (float)-screenPlayer1.texture.height };
-
+
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -122,7 +122,7 @@ int main(void)
BeginMode3D(cameraPlayer1);
DrawScene();
EndMode3D();
- DrawText("PLAYER1 W/S to move", 0, 0, 20, RED);
+ DrawText("PLAYER1 W/S to move", 10, 10, 20, RED);
EndTextureMode();
// Draw Player2 view to the render texture
@@ -131,7 +131,7 @@ int main(void)
BeginMode3D(cameraPlayer2);
DrawScene();
EndMode3D();
- DrawText("PLAYER2 UP/DOWN to move", 0, 0, 20, BLUE);
+ DrawText("PLAYER2 UP/DOWN to move", 10, 10, 20, BLUE);
EndTextureMode();
// Draw both views render textures to the screen side by side
@@ -147,7 +147,7 @@ int main(void)
UnloadRenderTexture(screenPlayer1); // Unload render texture
UnloadRenderTexture(screenPlayer2); // Unload render texture
UnloadTexture(textureGrid); // Unload texture
-
+
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
diff --git a/examples/core/core_split_screen.png b/examples/core/core_split_screen.png
index 20cd2ead9..eace9027b 100644
Binary files a/examples/core/core_split_screen.png and b/examples/core/core_split_screen.png differ
diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c
index 4fde9baf3..0a375c905 100644
--- a/examples/models/models_animation.c
+++ b/examples/models/models_animation.c
@@ -37,17 +37,17 @@ int main(void)
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
- camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
+ camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
- Model model = LoadModel("resources/guy/guy.iqm"); // Load the animated model mesh and basic data
- Texture2D texture = LoadTexture("resources/guy/guytex.png"); // Load model texture and set material
- SetMaterialTexture(&model.materials[0], MATERIAL_MAP_DIFFUSE, texture); // Set model material map texture
+ Model model = LoadModel("resources/models/iqm/guy.iqm"); // Load the animated model mesh and basic data
+ Texture2D texture = LoadTexture("resources/models/iqm/guytex.png"); // Load model texture and set material
+ SetMaterialTexture(&model.materials[0], MATERIAL_MAP_DIFFUSE, texture); // Set model material map texture
Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position
// Load animation data
- int animsCount = 0;
- ModelAnimation *anims = LoadModelAnimations("resources/guy/guyanim.iqm", &animsCount);
+ unsigned int animsCount = 0;
+ ModelAnimation *anims = LoadModelAnimations("resources/models/iqm/guyanim.iqm", &animsCount);
int animFrameCounter = 0;
SetCameraMode(camera, CAMERA_FREE); // Set free camera mode
diff --git a/examples/models/models_gltf_animation.c b/examples/models/models_gltf_animation.c
deleted file mode 100644
index 69df2982b..000000000
--- a/examples/models/models_gltf_animation.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************************
-*
-* raylib [models] example - Load 3d gltf model with animations and play them
-*
-* This example has been created using raylib 3.5 (www.raylib.com)
-* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-* Example contributed by Hristo Stamenov (@object71) and reviewed by Ramon Santamaria (@raysan5)
-*
-* Copyright (c) 2021 Hristo Stamenov (@object71) and Ramon Santamaria (@raysan5)
-*
-********************************************************************************************
-*
-* To export a model from blender, make sure it is not posed, the vertices need to be in the
-* same position as they would be in edit mode.
-* and that the scale of your models is set to 0. Scaling can be done from the export menu.
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#include
-
-
-int main(void)
-{
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
-
- InitWindow(screenWidth, screenHeight, "raylib [models] example - model animation");
-
- // Define the camera to look into our 3d world
- Camera camera = { 0 };
- camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
- camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
- camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
- camera.fovy = 45.0f; // Camera field-of-view Y
- camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
-
- Model model = LoadModel("resources/gltf/rigged_figure.glb"); // Load the animated model mesh and
- // basic data
-// Texture2D texture = LoadTexture("resources/guy/guytex.png"); // Load model texture and set material
-// SetMaterialTexture(&model.materials[0], MAP_DIFFUSE, texture); // Set model material map texture
-
- Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position
-
- // Load animation data
- int animsCount = 0;
- ModelAnimation *anims = LoadModelAnimations("resources/gltf/rigged_figure.glb", &animsCount);
- int animFrameCounter = 0;
- int animationDirection = 1;
-
- SetCameraMode(camera, CAMERA_FREE); // Set free camera mode
-
- SetTargetFPS(30); // Set our game to run at 60 frames-per-second
- //--------------------------------------------------------------------------------------
-
- // Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update
- //----------------------------------------------------------------------------------
- UpdateCamera(&camera);
-
- // Play animation when spacebar is held down
- if (IsKeyDown(KEY_SPACE))
- {
- animFrameCounter += animationDirection;
-
- if (animFrameCounter >= anims[0].frameCount || animFrameCounter <= 0)
- {
- animationDirection *= -1;
- animFrameCounter += animationDirection;
- }
-
- UpdateModelAnimation(model, anims[0], animFrameCounter);
- }
- //----------------------------------------------------------------------------------
-
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
-
- ClearBackground(RAYWHITE);
-
- BeginMode3D(camera);
-
- DrawModelEx(model, position, (Vector3){ 1.0f, 0.0f, 0.0f }, -90.0f, (Vector3){ 1.0f, 1.0f, 1.0f }, WHITE);
-
- for (int i = 0; i < model.boneCount; i++)
- {
- DrawSphere(anims[0].framePoses[animFrameCounter][i].translation, 0.01f, RED);
- }
-
- DrawGrid(10, 1.0f); // Draw a grid
-
- EndMode3D();
-
- DrawText("PRESS SPACE to PLAY MODEL ANIMATION", 10, 10, 20, MAROON);
- DrawText("(cc4) Rigged Figure by @Cesium", screenWidth - 200, screenHeight - 20, 10, GRAY);
-
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
-
- // De-Initialization
- //--------------------------------------------------------------------------------------
-// UnloadTexture(texture); // Unload texture
-
- // Unload model animations data
- for (int i = 0; i < animsCount; i++) UnloadModelAnimation(anims[i]);
- RL_FREE(anims);
-
- UnloadModel(model); // Unload model
-
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
-
- return 0;
-}
diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c
index 16f122ee8..0c9b702b6 100644
--- a/examples/models/models_loading.c
+++ b/examples/models/models_loading.c
@@ -4,17 +4,19 @@
*
* raylib supports multiple models file formats:
*
-* - OBJ > Text file, must include vertex position-texcoords-normals information,
-* if files references some .mtl materials file, it will be loaded (or try to)
-* - GLTF > Modern text/binary file format, includes lot of information and it could
-* also reference external files, raylib will try loading mesh and materials data
-* - IQM > Binary file format including mesh vertex data but also animation data,
-* raylib can load .iqm animations.
+* - OBJ > Text file format. Must include vertex position-texcoords-normals information,
+* if files references some .mtl materials file, it will be loaded (or try to).
+* - GLTF > Text/binary file format. Includes lot of information and it could
+* also reference external files, raylib will try loading mesh and materials data.
+* - IQM > Binary file format. Includes mesh vertex data but also animation data,
+* raylib can load .iqm animations.
+* - VOX > Binary file format. MagikaVoxel mesh format:
+* https://github.com/ephtracy/voxel-model/blob/master/MagicaVoxel-file-format-vox.txt
*
-* This example has been created using raylib 2.6 (www.raylib.com)
+* This example has been created using raylib 4.0 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
-* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5)
+* Copyright (c) 2014-2021 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@@ -37,13 +39,13 @@ int main(void)
camera.fovy = 45.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
- Model model = LoadModel("resources/models/castle.obj"); // Load model
- Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture
- model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set map diffuse texture
+ Model model = LoadModel("resources/models/obj/castle.obj"); // Load model
+ Texture2D texture = LoadTexture("resources/models/obj/castle_diffuse.png"); // Load model texture
+ model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set map diffuse texture
- Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position
+ Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position
- BoundingBox bounds = GetMeshBoundingBox(model.meshes[0]); // Set model bounds
+ BoundingBox bounds = GetMeshBoundingBox(model.meshes[0]); // Set model bounds
// NOTE: bounds are calculated from the original size of the model,
// if model is scaled on drawing, bounds must be also scaled
diff --git a/examples/models/models_gltf_model.c b/examples/models/models_loading_gltf.c
similarity index 66%
rename from examples/models/models_gltf_model.c
rename to examples/models/models_loading_gltf.c
index 3f843c9d4..fe79afecc 100644
--- a/examples/models/models_gltf_model.c
+++ b/examples/models/models_loading_gltf.c
@@ -1,27 +1,24 @@
/*******************************************************************************************
*
-* raylib [models] example - Load 3d gltf model
+* raylib [models] example - Load models gltf
*
* This example has been created using raylib 3.5 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
+* NOTE: To export a model from Blender, make sure it is not posed, the vertices need to be
+* in the same position as they would be in edit mode.
+* Also make sure the scale parameter of your models is set to 0.0,
+* scaling can be applied from the export menu.
+*
* Example contributed by Hristo Stamenov (@object71) and reviewed by Ramon Santamaria (@raysan5)
*
* Copyright (c) 2021 Hristo Stamenov (@object71) and Ramon Santamaria (@raysan5)
*
-********************************************************************************************
-*
-* To export a model from blender, make sure it is not posed, the vertices need to be in the
-* same position as they would be in edit mode.
-* and that the scale of your models is set to 0. Scaling can be done from the export menu.
-*
********************************************************************************************/
#include "raylib.h"
-#include
-
-#define MAX_MODELS 8
+#define MAX_GLTF_MODELS 8
int main(void)
{
@@ -40,16 +37,16 @@ int main(void)
camera.fovy = 45.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
- Model model[MAX_MODELS] = { 0 };
-
- model[0] = LoadModel("resources/gltf/raylib_32x32.glb");
- model[1] = LoadModel("resources/gltf/rigged_figure.glb");
- model[2] = LoadModel("resources/gltf/GearboxAssy.glb");
- model[3] = LoadModel("resources/gltf/BoxAnimated.glb");
- model[4] = LoadModel("resources/gltf/AnimatedTriangle.gltf");
- model[5] = LoadModel("resources/gltf/AnimatedMorphCube.glb");
- model[6] = LoadModel("resources/gltf/vertex_colored_object.glb");
- model[7] = LoadModel("resources/gltf/girl.glb");
+ // Load some models
+ Model model[MAX_GLTF_MODELS] = { 0 };
+ model[0] = LoadModel("resources/models/gltf/raylib_32x32.glb");
+ model[1] = LoadModel("resources/models/gltf/rigged_figure.glb");
+ model[2] = LoadModel("resources/models/gltf/GearboxAssy.glb");
+ model[3] = LoadModel("resources/models/gltf/BoxAnimated.glb");
+ model[4] = LoadModel("resources/models/gltf/AnimatedTriangle.gltf");
+ model[5] = LoadModel("resources/models/gltf/AnimatedMorphCube.glb");
+ model[6] = LoadModel("resources/models/gltf/vertex_colored_object.glb");
+ model[7] = LoadModel("resources/models/gltf/girl.glb");
int currentModel = 0;
@@ -65,19 +62,20 @@ int main(void)
{
// Update
//----------------------------------------------------------------------------------
- UpdateCamera(&camera);
+ UpdateCamera(&camera); // Update our camera with inputs
if (IsKeyReleased(KEY_RIGHT))
{
currentModel++;
- if (currentModel == MAX_MODELS) currentModel = 0;
+ if (currentModel == MAX_GLTF_MODELS) currentModel = 0;
}
if (IsKeyReleased(KEY_LEFT))
{
currentModel--;
- if (currentModel < 0) currentModel = MAX_MODELS - 1;
+ if (currentModel < 0) currentModel = MAX_GLTF_MODELS - 1;
}
+ //----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
@@ -87,8 +85,7 @@ int main(void)
BeginMode3D(camera);
- DrawModelEx(model[currentModel], position, (Vector3){ 0.0f, 1.0f, 0.0f }, 180.0f, (Vector3){ 2.0f, 2.0f, 2.0f }, WHITE);
-
+ DrawModel(model[currentModel], position, 1.0f, WHITE);
DrawGrid(10, 1.0f); // Draw a grid
EndMode3D();
@@ -99,7 +96,7 @@ int main(void)
// De-Initialization
//--------------------------------------------------------------------------------------
- for (int i = 0; i < MAX_MODELS; i++) UnloadModel(model[i]); // Unload models
+ for (int i = 0; i < MAX_GLTF_MODELS; i++) UnloadModel(model[i]); // Unload models
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
diff --git a/examples/models/models_gltf_model.png b/examples/models/models_loading_gltf.png
similarity index 100%
rename from examples/models/models_gltf_model.png
rename to examples/models/models_loading_gltf.png
diff --git a/examples/models/models_loading_vox.c b/examples/models/models_loading_vox.c
new file mode 100644
index 000000000..7836cdd3f
--- /dev/null
+++ b/examples/models/models_loading_vox.c
@@ -0,0 +1,130 @@
+/*******************************************************************************************
+*
+* raylib [models] example - Load models vox (MagicaVoxel)
+*
+* This example has been created using raylib 4.0 (www.raylib.com)
+* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
+*
+* Example contributed by Johann Nadalutti (@procfxgen) and reviewed by Ramon Santamaria (@raysan5)
+*
+* Copyright (c) 2021 Johann Nadalutti (@procfxgen) and Ramon Santamaria (@raysan5)
+*
+********************************************************************************************/
+
+#include "raylib.h"
+
+#include "raymath.h" // Required for: MatrixTranslate()
+
+#define MAX_VOX_FILES 3
+
+int main(void)
+{
+ // Initialization
+ //--------------------------------------------------------------------------------------
+ const int screenWidth = 800;
+ const int screenHeight = 450;
+
+ const char *voxFileNames[] = {
+ "resources/models/vox/chr_knight.vox",
+ "resources/models/vox/chr_sword.vox",
+ "resources/models/vox/monu9.vox"
+ };
+
+ InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading");
+
+ // Define the camera to look into our 3d world
+ Camera camera = { 0 };
+ camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
+ camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
+ camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
+ camera.fovy = 45.0f; // Camera field-of-view Y
+ camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
+
+ // Load MagicaVoxel files
+ Model models[MAX_VOX_FILES] = { 0 };
+
+ for (int i = 0; i < MAX_VOX_FILES; i++)
+ {
+ // Load VOX file and measure time
+ double t0 = GetTime()*1000.0;
+ models[i] = LoadModel(voxFileNames[i]);
+ double t1 = GetTime()*1000.0;
+
+ TraceLog(LOG_WARNING, TextFormat("[%s] File loaded in %.3f ms", voxFileNames[i], t1 - t0));
+
+ // Compute model translation matrix to center model on draw position (0, 0 , 0)
+ BoundingBox bb = GetModelBoundingBox(models[i]);
+ Vector3 center = { 0 };
+ center.x = bb.min.x + (((bb.max.x - bb.min.x)/2));
+ center.z = bb.min.z + (((bb.max.z - bb.min.z)/2));
+
+ Matrix matTranslate = MatrixTranslate(-center.x, 0, -center.z);
+ models[i].transform = matTranslate;
+ }
+
+ int currentModel = 0;
+
+ SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode
+
+ SetTargetFPS(60); // Set our game to run at 60 frames-per-second
+ //--------------------------------------------------------------------------------------
+
+ // Main game loop
+ while (!WindowShouldClose()) // Detect window close button or ESC key
+ {
+ // Update
+ //----------------------------------------------------------------------------------
+ UpdateCamera(&camera); // Update our camera to orbit
+
+ // Cycle between models on mouse click
+ if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) currentModel = (currentModel + 1)%MAX_VOX_FILES;
+
+ // Cycle between models on key pressed
+ if (IsKeyPressed(KEY_RIGHT))
+ {
+ currentModel++;
+ if (currentModel >= MAX_VOX_FILES) currentModel = 0;
+ }
+ else if (IsKeyPressed(KEY_LEFT))
+ {
+ currentModel--;
+ if (currentModel < 0) currentModel = MAX_VOX_FILES - 1;
+ }
+ //----------------------------------------------------------------------------------
+
+ // Draw
+ //----------------------------------------------------------------------------------
+ BeginDrawing();
+
+ ClearBackground(RAYWHITE);
+
+ // Draw 3D model
+ BeginMode3D(camera);
+
+ DrawModel(models[currentModel], (Vector3){ 0, 0, 0 }, 1.0f, WHITE);
+ DrawGrid(10, 1.0);
+
+ EndMode3D();
+
+ // Display info
+ DrawRectangle(10, 400, 310, 30, Fade(SKYBLUE, 0.5f));
+ DrawRectangleLines(10, 400, 310, 30, Fade(DARKBLUE, 0.5f));
+ DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE);
+ DrawText(TextFormat("File: %s", GetFileName(voxFileNames[currentModel])), 10, 10, 20, GRAY);
+
+ EndDrawing();
+ //----------------------------------------------------------------------------------
+ }
+
+ // De-Initialization
+ //--------------------------------------------------------------------------------------
+ // Unload models data (GPU VRAM)
+ for (int i = 0; i < MAX_VOX_FILES; i++) UnloadModel(models[i]);
+
+ CloseWindow(); // Close window and OpenGL context
+ //--------------------------------------------------------------------------------------
+
+ return 0;
+}
+
+
diff --git a/examples/models/models_loading_vox.png b/examples/models/models_loading_vox.png
new file mode 100644
index 000000000..417d887e4
Binary files /dev/null and b/examples/models/models_loading_vox.png differ
diff --git a/examples/models/models_magicavoxel_loading.c b/examples/models/models_magicavoxel_loading.c
deleted file mode 100644
index fd268f079..000000000
--- a/examples/models/models_magicavoxel_loading.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************************
-*
-* raylib [models] example - magicavoxel loader and viewer
-*
-* This example has been created using raylib 3.8 (www.raylib.com)
-* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-* Example contributed by Johann Nadalutti
-*
-* Copyright (c) 2021 Johann Nadalutti
-*
-********************************************************************************************/
-
-#include "raylib.h"
-#include "raymath.h"
-
-#include
-
-
-// VOX Files to load and view
-
-#define NUM_VOX_FILES 3
-
-const char* szVoxFiles[] = {
- "resources/vox/chr_knight.vox",
- "resources/vox/chr_sword.vox",
- "resources/vox/monu9.vox"
-};
-
-
-int main(void)
-{
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
-
- InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading");
-
- // Load MagicaVoxel files
- Model models[NUM_VOX_FILES] = { 0 };
-
- for (int i = 0; i < NUM_VOX_FILES; i++)
- {
- // Load MagicaVoxel File and build model
- double t0, t1;
- t0 = GetTime() * 1000.0;
-
- models[i] = LoadModel(szVoxFiles[i]);
-
- t1 = GetTime() * 1000.0;
- TraceLog(LOG_INFO, TextFormat("Vox <%s> loaded in %f ms", GetFileName(szVoxFiles[i]), t1 - t0));
-
- //Compute model's center matrix
- BoundingBox bb = GetModelBoundingBox(models[i]);
- Vector3 center;
- center.x = bb.min.x + (((bb.max.x - bb.min.x) / 2));
- center.z = bb.min.z + (((bb.max.z - bb.min.z) / 2));
-
- Matrix matP = MatrixTranslate(-center.x, 0, -center.z);
- models[i].transform = matP;
-
-
- }
-
-
- // Define the camera to look into our 3d world
- Camera camera = { { 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 };
-
- // Model drawing position
- Vector3 position = { 0.0f, 0.0f, 0.0f };
-
- int currentModel = 0;
-
-
-
- SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode
-
- SetTargetFPS(60); // Set our game to run at 60 frames-per-second
-
- //--------------------------------------------------------------------------------------
- // Main game loop
- //--------------------------------------------------------------------------------------
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- //--------------------------------------------------------------------------------------
- // Update
- //----------------------------------------------------------------------------------
- UpdateCamera(&camera); // Update internal camera and our camera
-
- if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
- {
- currentModel = (currentModel + 1) % NUM_VOX_FILES; // Cycle between models
- }
-
- if (IsKeyPressed(KEY_RIGHT))
- {
- currentModel++;
- if (currentModel >= NUM_VOX_FILES) currentModel = 0;
- }
- else if (IsKeyPressed(KEY_LEFT))
- {
- currentModel--;
- if (currentModel < 0) currentModel = NUM_VOX_FILES - 1;
- }
-
- //----------------------------------------------------------------------------------
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
-
- ClearBackground(RAYWHITE);
-
- //Display model
- BeginMode3D(camera);
-
- Vector3 rotAxis = { 1,0,0 };
- Vector3 scale = { 1,1,1 };
-
-
- DrawModelEx(models[currentModel], position, rotAxis, 0, scale, WHITE);
- //DrawModelWiresEx(models[currentModel], position, rotAxis, -90.0f, scale, BLACK);
-
- DrawGrid(10, 1.0);
-
- EndMode3D();
-
- //Display debug infos
- DrawRectangle(30, 400, 310, 30, Fade(SKYBLUE, 0.5f));
- DrawRectangleLines(30, 400, 310, 30, Fade(DARKBLUE, 0.5f));
- DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE);
-
- DrawText(GetFileName(szVoxFiles[currentModel]), 100, 10, 20, DARKBLUE);
-
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
-
- // De-Initialization
- //--------------------------------------------------------------------------------------
-
- // Unload models data (GPU VRAM)
- for (int i = 0; i < NUM_VOX_FILES; i++) UnloadModel(models[i]);
-
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
-
- return 0;
-}
-
-
diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c
deleted file mode 100644
index 48bdfd885..000000000
--- a/examples/models/models_material_pbr.c
+++ /dev/null
@@ -1,543 +0,0 @@
-/*******************************************************************************************
-*
-* raylib [models] example - PBR material
-*
-* NOTE: This example requires raylib OpenGL 3.3 for shaders support and only #version 330
-* is currently supported. OpenGL ES 2.0 platforms are not supported at the moment.
-*
-* This example has been created using raylib 1.8 (www.raylib.com)
-* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-* Copyright (c) 2017 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-#include "raymath.h"
-#include "rlgl.h"
-
-#include
-
-#define RLIGHTS_IMPLEMENTATION
-#include "rlights.h"
-
-#if defined(PLATFORM_DESKTOP)
- #define GLSL_VERSION 330
-#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
- #define GLSL_VERSION 100
-#endif
-
-#define CUBEMAP_SIZE 1024 // Cubemap texture size
-#define IRRADIANCE_SIZE 32 // Irradiance texture size
-#define PREFILTERED_SIZE 256 // Prefiltered HDR environment texture size
-#define BRDF_SIZE 512 // BRDF LUT texture size
-#define LIGHT_DISTANCE 1000.0f
-#define LIGHT_HEIGHT 1.0f
-
-// PBR texture maps generation
-static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format); // Generate cubemap (6 faces) from equirectangular (panorama) texture
-static TextureCubemap GenTextureIrradiance(Shader shader, TextureCubemap cubemap, int size); // Generate irradiance cubemap using cubemap texture
-static TextureCubemap GenTexturePrefilter(Shader shader, TextureCubemap cubemap, int size); // Generate prefilter cubemap using cubemap texture
-static Texture2D GenTextureBRDF(Shader shader, int size); // Generate a generic BRDF texture
-
-// PBR material loading
-static Material LoadMaterialPBR(Color albedo, float metalness, float roughness);
-
-int main(void)
-{
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
-
- SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available)
- InitWindow(screenWidth, screenHeight, "raylib [models] example - pbr material");
-
- // Define the camera to look into our 3d world
- Camera camera = { 0 };
- camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; // Camera position
- camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point
- camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
- camera.fovy = 45.0f; // Camera field-of-view Y
- camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
-
- // Load model and PBR material
- Model model = LoadModel("resources/pbr/trooper.obj");
-
- // Mesh tangents are generated... and uploaded to GPU
- // NOTE: New VBO for tangents is generated at default location and also binded to mesh VAO
- //MeshTangents(&model.meshes[0]);
-
- model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f);
-
- // Create lights
- // NOTE: Lights are added to an internal lights pool automatically
- CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader);
- CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader);
- CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader);
- CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader);
-
- SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode
-
- SetTargetFPS(60); // Set our game to run at 60 frames-per-second
- //--------------------------------------------------------------------------------------
-
- // Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update
- //----------------------------------------------------------------------------------
- UpdateCamera(&camera); // Update camera
-
- // Send to material PBR shader camera view position
- float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z };
- SetShaderValue(model.materials[0].shader, model.materials[0].shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3);
- //----------------------------------------------------------------------------------
-
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
-
- ClearBackground(RAYWHITE);
-
- BeginMode3D(camera);
-
- DrawModel(model, Vector3Zero(), 1.0f, WHITE);
-
- DrawGrid(10, 1.0f);
-
- EndMode3D();
-
- DrawFPS(10, 10);
-
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
-
- // De-Initialization
- //--------------------------------------------------------------------------------------
- UnloadMaterial(model.materials[0]); // Unload material: shader and textures
-
- UnloadModel(model); // Unload model
-
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
-
- return 0;
-}
-
-// Load PBR material (Supports: ALBEDO, NORMAL, METALNESS, ROUGHNESS, AO, EMMISIVE, HEIGHT maps)
-// NOTE: PBR shader is loaded inside this function
-static Material LoadMaterialPBR(Color albedo, float metalness, float roughness)
-{
- Material mat = LoadMaterialDefault(); // Initialize material to default
-
- // Load PBR shader (requires several maps)
- mat.shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs", GLSL_VERSION),
- TextFormat("resources/shaders/glsl%i/pbr.fs", GLSL_VERSION));
-
- // Get required locations points for PBR material
- // NOTE: Those location names must be available and used in the shader code
- mat.shader.locs[SHADER_LOC_MAP_ALBEDO] = GetShaderLocation(mat.shader, "albedo.sampler");
- mat.shader.locs[SHADER_LOC_MAP_METALNESS] = GetShaderLocation(mat.shader, "metalness.sampler");
- mat.shader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(mat.shader, "normals.sampler");
- mat.shader.locs[SHADER_LOC_MAP_ROUGHNESS] = GetShaderLocation(mat.shader, "roughness.sampler");
- mat.shader.locs[SHADER_LOC_MAP_OCCLUSION] = GetShaderLocation(mat.shader, "occlusion.sampler");
- //mat.shader.locs[SHADER_LOC_MAP_EMISSION] = GetShaderLocation(mat.shader, "emission.sampler");
- //mat.shader.locs[SHADER_LOC_MAP_HEIGHT] = GetShaderLocation(mat.shader, "height.sampler");
- mat.shader.locs[SHADER_LOC_MAP_IRRADIANCE] = GetShaderLocation(mat.shader, "irradianceMap");
- mat.shader.locs[SHADER_LOC_MAP_PREFILTER] = GetShaderLocation(mat.shader, "prefilterMap");
- mat.shader.locs[SHADER_LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT");
-
- // Set view matrix location
- mat.shader.locs[SHADER_LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel");
- //mat.shader.locs[SHADER_LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view");
- mat.shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos");
-
- // Set PBR standard maps
- mat.maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/pbr/trooper_albedo.png");
- mat.maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/pbr/trooper_normals.png");
- mat.maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/pbr/trooper_metalness.png");
- mat.maps[MATERIAL_MAP_ROUGHNESS].texture = LoadTexture("resources/pbr/trooper_roughness.png");
- mat.maps[MATERIAL_MAP_OCCLUSION].texture = LoadTexture("resources/pbr/trooper_ao.png");
-
- // Set textures filtering for better quality
- SetTextureFilter(mat.maps[MATERIAL_MAP_ALBEDO].texture, TEXTURE_FILTER_BILINEAR);
- SetTextureFilter(mat.maps[MATERIAL_MAP_NORMAL].texture, TEXTURE_FILTER_BILINEAR);
- SetTextureFilter(mat.maps[MATERIAL_MAP_METALNESS].texture, TEXTURE_FILTER_BILINEAR);
- SetTextureFilter(mat.maps[MATERIAL_MAP_ROUGHNESS].texture, TEXTURE_FILTER_BILINEAR);
- SetTextureFilter(mat.maps[MATERIAL_MAP_OCCLUSION].texture, TEXTURE_FILTER_BILINEAR);
-
- // Enable sample usage in shader for assigned textures
- SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT);
- SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT);
- SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT);
- SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT);
- SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT);
-
- int renderModeLoc = GetShaderLocation(mat.shader, "renderMode");
- SetShaderValue(mat.shader, renderModeLoc, (int[1]){ 0 }, SHADER_UNIFORM_INT);
-
- // Set up material properties color
- mat.maps[MATERIAL_MAP_ALBEDO].color = albedo;
- mat.maps[MATERIAL_MAP_NORMAL].color = (Color){ 128, 128, 255, 255 };
- mat.maps[MATERIAL_MAP_METALNESS].value = metalness;
- mat.maps[MATERIAL_MAP_ROUGHNESS].value = roughness;
- mat.maps[MATERIAL_MAP_OCCLUSION].value = 1.0f;
- mat.maps[MATERIAL_MAP_EMISSION].value = 0.5f;
- mat.maps[MATERIAL_MAP_HEIGHT].value = 0.5f;
-
- // Generate cubemap from panorama texture
- //--------------------------------------------------------------------------------------------------------
- Texture2D panorama = LoadTexture("resources/dresden_square_2k.hdr");
-
- // Load equirectangular to cubemap shader
- Shader shdrCubemap = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs", GLSL_VERSION),
- TextFormat("resources/shaders/glsl%i/pbr.fs", GLSL_VERSION));
-
- SetShaderValue(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT);
- TextureCubemap cubemap = GenTextureCubemap(shdrCubemap, panorama, CUBEMAP_SIZE, PIXELFORMAT_UNCOMPRESSED_R32G32B32);
- UnloadTexture(panorama);
- UnloadShader(shdrCubemap);
- //--------------------------------------------------------------------------------------------------------
-
- // Generate irradiance map from cubemap texture
- //--------------------------------------------------------------------------------------------------------
- // Load irradiance (GI) calculation shader
- Shader shdrIrradiance = LoadShader(TextFormat("resources/shaders/glsl%i/skybox.vs", GLSL_VERSION),
- TextFormat("resources/shaders/glsl%i/irradiance.fs", GLSL_VERSION));
-
- SetShaderValue(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT);
- mat.maps[MATERIAL_MAP_IRRADIANCE].texture = GenTextureIrradiance(shdrIrradiance, cubemap, IRRADIANCE_SIZE);
- UnloadShader(shdrIrradiance);
- //--------------------------------------------------------------------------------------------------------
-
- // Generate prefilter map from cubemap texture
- //--------------------------------------------------------------------------------------------------------
- // Load reflection prefilter calculation shader
- Shader shdrPrefilter = LoadShader(TextFormat("resources/shaders/glsl%i/skybox.vs", GLSL_VERSION),
- TextFormat("resources/shaders/glsl%i/prefilter.fs", GLSL_VERSION));
-
- SetShaderValue(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT);
- mat.maps[MATERIAL_MAP_PREFILTER].texture = GenTexturePrefilter(shdrPrefilter, cubemap, PREFILTERED_SIZE);
- UnloadTexture(cubemap);
- UnloadShader(shdrPrefilter);
- //--------------------------------------------------------------------------------------------------------
-
- // Generate BRDF (bidirectional reflectance distribution function) texture (using shader)
- //--------------------------------------------------------------------------------------------------------
- Shader shdrBRDF = LoadShader(TextFormat("resources/shaders/glsl%i/brdf.vs", GLSL_VERSION),
- TextFormat("resources/shaders/glsl%i/brdf.fs", GLSL_VERSION));
-
- mat.maps[MATERIAL_MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, BRDF_SIZE);
- UnloadShader(shdrBRDF);
- //--------------------------------------------------------------------------------------------------------
-
- return mat;
-}
-
-// Texture maps generation (PBR)
-//-------------------------------------------------------------------------------------------
-// Generate cubemap texture from HDR texture
-static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format)
-{
- TextureCubemap cubemap = { 0 };
-
- rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube
-
- // STEP 1: Setup framebuffer
- //------------------------------------------------------------------------------------------
- unsigned int rbo = rlLoadTextureDepth(size, size, true);
- cubemap.id = rlLoadTextureCubemap(NULL, size, format);
-
- unsigned int fbo = rlLoadFramebuffer(size, size);
- rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0);
- rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0);
-
- // Check if framebuffer is complete with attachments (valid)
- if (rlFramebufferComplete(fbo)) TraceLog(LOG_INFO, "FBO: [ID %i] Framebuffer object created successfully", fbo);
- //------------------------------------------------------------------------------------------
-
- // STEP 2: Draw to framebuffer
- //------------------------------------------------------------------------------------------
- // NOTE: Shader is used to convert HDR equirectangular environment map to cubemap equivalent (6 faces)
- rlEnableShader(shader.id);
-
- // Define projection matrix and send it to shader
- Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], matFboProjection);
-
- // Define view matrix for every side of the cubemap
- Matrix fboViews[6] = {
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f })
- };
-
- rlViewport(0, 0, size, size); // Set viewport to current fbo dimensions
-
- // Activate and enable texture for drawing to cubemap faces
- rlActiveTextureSlot(0);
- rlEnableTexture(panorama.id);
-
- for (int i = 0; i < 6; i++)
- {
- // Set the view matrix for the current cube face
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]);
-
- // Select the current cubemap face attachment for the fbo
- // WARNING: This function by default enables->attach->disables fbo!!!
- rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, 0);
- rlEnableFramebuffer(fbo);
-
- // Load and draw a cube, it uses the current enabled texture
- rlClearScreenBuffers();
- rlLoadDrawCube();
-
- // ALTERNATIVE: Try to use internal batch system to draw the cube instead of rlLoadDrawCube
- // for some reason this method does not work, maybe due to cube triangles definition? normals pointing out?
- // TODO: Investigate this issue...
- //rlSetTexture(panorama.id); // WARNING: It must be called after enabling current framebuffer if using internal batch system!
- //rlClearScreenBuffers();
- //DrawCubeV(Vector3Zero(), Vector3One(), WHITE);
- //rlDrawRenderBatchActive();
- }
- //------------------------------------------------------------------------------------------
-
- // STEP 3: Unload framebuffer and reset state
- //------------------------------------------------------------------------------------------
- rlDisableShader(); // Unbind shader
- rlDisableTexture(); // Unbind texture
- rlDisableFramebuffer(); // Unbind framebuffer
- rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer)
-
- // Reset viewport dimensions to default
- rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight());
- rlEnableBackfaceCulling();
- //------------------------------------------------------------------------------------------
-
- cubemap.width = size;
- cubemap.height = size;
- cubemap.mipmaps = 1;
- cubemap.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
-
- return cubemap;
-}
-
-// Generate irradiance texture using cubemap data
-static TextureCubemap GenTextureIrradiance(Shader shader, TextureCubemap cubemap, int size)
-{
- TextureCubemap irradiance = { 0 };
-
- rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube
-
- // STEP 1: Setup framebuffer
- //------------------------------------------------------------------------------------------
- unsigned int rbo = rlLoadTextureDepth(size, size, true);
- irradiance.id = rlLoadTextureCubemap(NULL, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32);
-
- unsigned int fbo = rlLoadFramebuffer(size, size);
- rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0);
- rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0);
- //------------------------------------------------------------------------------------------
-
- // STEP 2: Draw to framebuffer
- //------------------------------------------------------------------------------------------
- // NOTE: Shader is used to solve diffuse integral by convolution to create an irradiance cubemap
- rlEnableShader(shader.id);
-
- // Define projection matrix and send it to shader
- Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], matFboProjection);
-
- // Define view matrix for every side of the cubemap
- Matrix fboViews[6] = {
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f })
- };
-
- rlActiveTextureSlot(0);
- rlEnableTextureCubemap(cubemap.id);
-
- rlViewport(0, 0, size, size); // Set viewport to current fbo dimensions
-
- for (int i = 0; i < 6; i++)
- {
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]);
- rlFramebufferAttach(fbo, irradiance.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, 0);
-
- rlEnableFramebuffer(fbo);
- rlClearScreenBuffers();
- rlLoadDrawCube();
- }
- //------------------------------------------------------------------------------------------
-
- // STEP 3: Unload framebuffer and reset state
- //------------------------------------------------------------------------------------------
- rlDisableShader(); // Unbind shader
- rlDisableTexture(); // Unbind texture
- rlDisableFramebuffer(); // Unbind framebuffer
- rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer)
-
- // Reset viewport dimensions to default
- rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight());
- rlEnableBackfaceCulling();
- //------------------------------------------------------------------------------------------
-
- irradiance.width = size;
- irradiance.height = size;
- irradiance.mipmaps = 1;
- irradiance.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
-
- return irradiance;
-}
-
-// Generate prefilter texture using cubemap data
-static TextureCubemap GenTexturePrefilter(Shader shader, TextureCubemap cubemap, int size)
-{
- TextureCubemap prefilter = { 0 };
-
- rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube
-
- // STEP 1: Setup framebuffer
- //------------------------------------------------------------------------------------------
- unsigned int rbo = rlLoadTextureDepth(size, size, true);
- prefilter.id = rlLoadTextureCubemap(NULL, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32);
- rlTextureParameters(prefilter.id, RL_TEXTURE_MIN_FILTER, RL_TEXTURE_FILTER_MIP_LINEAR);
-
- unsigned int fbo = rlLoadFramebuffer(size, size);
- rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0);
- rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0);
- //------------------------------------------------------------------------------------------
-
- // Generate mipmaps for the prefiltered HDR texture
- //glGenerateMipmap(GL_TEXTURE_CUBE_MAP); // TODO!
-
- // STEP 2: Draw to framebuffer
- //------------------------------------------------------------------------------------------
- // NOTE: Shader is used to prefilter HDR and store data into mipmap levels
-
- // Define projection matrix and send it to shader
- Matrix fboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
- rlEnableShader(shader.id);
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], fboProjection);
-
- // Define view matrix for every side of the cubemap
- Matrix fboViews[6] = {
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }),
- MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f })
- };
-
- rlActiveTextureSlot(0);
- rlEnableTextureCubemap(cubemap.id);
-
- // TODO: Locations should be taken out of this function... too shader dependant...
- int roughnessLoc = rlGetLocationUniform(shader.id, "roughness");
-
- rlEnableFramebuffer(fbo);
-
- #define MAX_MIPMAP_LEVELS 5 // Max number of prefilter texture mipmaps
-
- for (int mip = 0; mip < MAX_MIPMAP_LEVELS; mip++)
- {
- // Resize framebuffer according to mip-level size.
- unsigned int mipWidth = size*(int)powf(0.5f, (float)mip);
- unsigned int mipHeight = size*(int)powf(0.5f, (float)mip);
-
- rlViewport(0, 0, mipWidth, mipHeight);
-
- //glBindRenderbuffer(GL_RENDERBUFFER, rbo);
- //glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, mipWidth, mipHeight);
-
- float roughness = (float)mip/(float)(MAX_MIPMAP_LEVELS - 1);
- rlSetUniform(roughnessLoc, &roughness, SHADER_UNIFORM_FLOAT, 1);
-
- for (int i = 0; i < 6; i++)
- {
- rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]);
- rlFramebufferAttach(fbo, prefilter.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, mip);
-
- rlClearScreenBuffers();
- rlLoadDrawCube();
- }
- }
- //------------------------------------------------------------------------------------------
-
- // STEP 3: Unload framebuffer and reset state
- //------------------------------------------------------------------------------------------
- rlDisableShader(); // Unbind shader
- rlDisableTexture(); // Unbind texture
- rlDisableFramebuffer(); // Unbind framebuffer
- rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer)
-
- // Reset viewport dimensions to default
- rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight());
- rlEnableBackfaceCulling();
- //------------------------------------------------------------------------------------------
-
- prefilter.width = size;
- prefilter.height = size;
- prefilter.mipmaps = MAX_MIPMAP_LEVELS;
- prefilter.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
-
- return prefilter;
-}
-
-// Generate BRDF texture using cubemap data
-// TODO: Review implementation: https://github.com/HectorMF/BRDFGenerator
-static Texture2D GenTextureBRDF(Shader shader, int size)
-{
- Texture2D brdf = { 0 };
-
- // STEP 1: Setup framebuffer
- //------------------------------------------------------------------------------------------
- unsigned int rbo = rlLoadTextureDepth(size, size, true);
- brdf.id = rlLoadTexture(NULL, size, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1);
-
- unsigned int fbo = rlLoadFramebuffer(size, size);
- rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0);
- rlFramebufferAttach(fbo, brdf.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0);
- //------------------------------------------------------------------------------------------
-
- // STEP 2: Draw to framebuffer
- //------------------------------------------------------------------------------------------
- // NOTE: Render BRDF LUT into a quad using FBO
- rlEnableShader(shader.id);
-
- rlViewport(0, 0, size, size);
-
- rlEnableFramebuffer(fbo);
- rlClearScreenBuffers();
-
- rlLoadDrawQuad();
- //------------------------------------------------------------------------------------------
-
- // STEP 3: Unload framebuffer and reset state
- //------------------------------------------------------------------------------------------
- rlDisableShader(); // Unbind shader
- rlDisableTexture(); // Unbind texture
- rlDisableFramebuffer(); // Unbind framebuffer
- rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer)
-
- // Reset viewport dimensions to default
- rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight());
- //------------------------------------------------------------------------------------------
-
- brdf.width = size;
- brdf.height = size;
- brdf.mipmaps = 1;
- brdf.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
-
- return brdf;
-}
diff --git a/examples/models/models_material_pbr.png b/examples/models/models_material_pbr.png
deleted file mode 100644
index 86ba01b0f..000000000
Binary files a/examples/models/models_material_pbr.png and /dev/null differ
diff --git a/examples/models/models_mesh_picking.c b/examples/models/models_mesh_picking.c
index 0ac70907b..f48683e4a 100644
--- a/examples/models/models_mesh_picking.c
+++ b/examples/models/models_mesh_picking.c
@@ -31,16 +31,16 @@ int main(void)
camera.target = (Vector3){ 0.0f, 8.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
- camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
+ camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
Ray ray = { 0 }; // Picking ray
- Model tower = LoadModel("resources/models/turret.obj"); // Load OBJ model
- Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load model texture
- tower.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set model diffuse texture
+ Model tower = LoadModel("resources/models/obj/turret.obj"); // Load OBJ model
+ Texture2D texture = LoadTexture("resources/models/obj/turret_diffuse.png"); // Load model texture
+ tower.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set model diffuse texture
- Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position
- BoundingBox towerBBox = GetMeshBoundingBox(tower.meshes[0]); // Get mesh bounding box
+ Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position
+ BoundingBox towerBBox = GetMeshBoundingBox(tower.meshes[0]); // Get mesh bounding box
// Ground quad
Vector3 g0 = (Vector3){ -50.0f, 0.0f, -50.0f };
diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c
index 168d61f61..dd202617e 100644
--- a/examples/models/models_skybox.c
+++ b/examples/models/models_skybox.c
@@ -10,8 +10,9 @@
********************************************************************************************/
#include "raylib.h"
+
#include "rlgl.h"
-#include "raymath.h"
+#include "raymath.h" // Required for: MatrixPerspective(), MatrixLookAt()
#if defined(PLATFORM_DESKTOP)
#define GLSL_VERSION 330
diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c
index 70fe84777..19d5edc74 100644
--- a/examples/models/models_yaw_pitch_roll.c
+++ b/examples/models/models_yaw_pitch_roll.c
@@ -7,12 +7,13 @@
*
* Example contributed by Berni (@Berni8k) and reviewed by Ramon Santamaria (@raysan5)
*
-* Copyright (c) 2017 Berni (@Berni8k) and Ramon Santamaria (@raysan5)
+* Copyright (c) 2017-2021 Berni (@Berni8k) and Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
-#include "raymath.h"
+
+#include "raymath.h" // Required for: MatrixRotateXYZ()
int main(void)
{
@@ -33,7 +34,7 @@ int main(void)
// Model loading
// NOTE: Diffuse map loaded automatically
- Model model = LoadModel("resources/plane/plane.gltf");
+ Model model = LoadModel("resources/models/gltf/plane/plane.gltf");
float pitch = 0.0f;
float roll = 0.0f;
@@ -78,7 +79,6 @@ int main(void)
model.transform = MatrixRotateXYZ((Vector3){ DEG2RAD*pitch, DEG2RAD*yaw, DEG2RAD*roll });
//----------------------------------------------------------------------------------
-
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
diff --git a/examples/models/resources/LICENSE.md b/examples/models/resources/LICENSE.md
index 6483ae849..c47ac186d 100644
--- a/examples/models/resources/LICENSE.md
+++ b/examples/models/resources/LICENSE.md
@@ -1,20 +1,23 @@
| resource | author | licence | notes |
| :------------------- | :---------: | :------ | :---- |
-| models/castle.obj,
models/castle_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/bridge.obj,
models/bridge_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/house.obj,
models/house_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/market.obj,
models/market_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/turret.obj,
models/turret_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/well.obj,
models/well_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
-| models/cube.obj,
models/cube_diffuse.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
-| models/vertex_colored_object.iqm | ❔ | ❔ | - |
+| models/obj/castle.obj,
models/castle_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/bridge.obj,
models/bridge_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/house.obj,
models/house_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/market.obj,
models/market_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/turret.obj,
models/turret_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/well.obj,
models/well_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - |
+| models/obj/cube.obj,
models/cube_diffuse.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
+| models/iqm/guy.iqm,
models/iqm/guyanim.iqm,
models/iqm/guytex.png,
models/iqm/guy.blend | [@culacant](https://github.com/culacant) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
+| models/iqm/vertex_colored_object.iqm | ❔ | ❔ | - |
+| models/gltf/plane/plane.gltf,
models/gltf/plane/plane.bin,
models/gltf/plane/plane_diffuse.png | [GiaHanLam](https://sketchfab.com/GiaHanLam) | [CC-BY](https://creativecommons.org/licenses/by/4.0/) | Used by: [`models_yaw_pitch_roll.c`](https://github.com/raysan5/raylib/blob/master/examples/models/models_yaw_pitch_roll.c)
+| models/gltf/... | _various_ | Check [LICENSE](https://github.com/raysan5/raylib/blob/master/examples/models/resources/models/gltf/LICENSE) | - |
+| models/vox/chr_knight.vox | ❔ | ❔ | - |
+| models/vox/chr_sword.vox | ❔ | ❔ | - |
+| models/vox/monu9.vox | ❔ | ❔ | - |
| billboard.png | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
| cubicmap.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
| cubicmap_atlas.png | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
| heightmap.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
| dresden_square_1k.hdr | [HDRIHaven](https://hdrihaven.com/hdri/?h=dresden_square) | [CC0](https://hdrihaven.com/p/license.php) | - |
| dresden_square_2k.hdr | [HDRIHaven](https://hdrihaven.com/hdri/?h=dresden_square) | [CC0](https://hdrihaven.com/p/license.php) | - |
-| skybox.png | ❔ | ❔ | - |
-| **guy/...** | [@culacant](https://github.com/culacant) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) |
-| **plane/...** | [GiaHanLam](https://sketchfab.com/GiaHanLam) | [CC-BY](https://creativecommons.org/licenses/by/4.0/) | Used by: [`models_yaw_pitch_roll.c`](https://github.com/raysan5/raylib/blob/master/examples/models/models_yaw_pitch_roll.c)
-| **gltf/...** | _various_ | [LICENSE](https://github.com/raysan5/raylib/blob/master/examples/models/resources/gltf/LICENSE) | - |
+| skybox.png | ❔ | ❔ | - |
\ No newline at end of file
diff --git a/examples/models/resources/gltf/AnimatedMorphCube.glb b/examples/models/resources/models/gltf/AnimatedMorphCube.glb
similarity index 100%
rename from examples/models/resources/gltf/AnimatedMorphCube.glb
rename to examples/models/resources/models/gltf/AnimatedMorphCube.glb
diff --git a/examples/models/resources/gltf/AnimatedTriangle.gltf b/examples/models/resources/models/gltf/AnimatedTriangle.gltf
similarity index 100%
rename from examples/models/resources/gltf/AnimatedTriangle.gltf
rename to examples/models/resources/models/gltf/AnimatedTriangle.gltf
diff --git a/examples/models/resources/gltf/BoxAnimated.glb b/examples/models/resources/models/gltf/BoxAnimated.glb
similarity index 100%
rename from examples/models/resources/gltf/BoxAnimated.glb
rename to examples/models/resources/models/gltf/BoxAnimated.glb
diff --git a/examples/models/resources/gltf/GearboxAssy.glb b/examples/models/resources/models/gltf/GearboxAssy.glb
similarity index 100%
rename from examples/models/resources/gltf/GearboxAssy.glb
rename to examples/models/resources/models/gltf/GearboxAssy.glb
diff --git a/examples/models/resources/gltf/LICENSE b/examples/models/resources/models/gltf/LICENSE
similarity index 100%
rename from examples/models/resources/gltf/LICENSE
rename to examples/models/resources/models/gltf/LICENSE
diff --git a/examples/models/resources/gltf/girl.glb b/examples/models/resources/models/gltf/girl.glb
similarity index 100%
rename from examples/models/resources/gltf/girl.glb
rename to examples/models/resources/models/gltf/girl.glb
diff --git a/examples/models/resources/plane/LICENSE b/examples/models/resources/models/gltf/plane/LICENSE
similarity index 100%
rename from examples/models/resources/plane/LICENSE
rename to examples/models/resources/models/gltf/plane/LICENSE
diff --git a/examples/models/resources/plane/plane.bin b/examples/models/resources/models/gltf/plane/plane.bin
similarity index 100%
rename from examples/models/resources/plane/plane.bin
rename to examples/models/resources/models/gltf/plane/plane.bin
diff --git a/examples/models/resources/plane/plane.gltf b/examples/models/resources/models/gltf/plane/plane.gltf
similarity index 100%
rename from examples/models/resources/plane/plane.gltf
rename to examples/models/resources/models/gltf/plane/plane.gltf
diff --git a/examples/models/resources/plane/plane_diffuse.png b/examples/models/resources/models/gltf/plane/plane_diffuse.png
similarity index 100%
rename from examples/models/resources/plane/plane_diffuse.png
rename to examples/models/resources/models/gltf/plane/plane_diffuse.png
diff --git a/examples/models/resources/gltf/raylib_32x32.glb b/examples/models/resources/models/gltf/raylib_32x32.glb
similarity index 100%
rename from examples/models/resources/gltf/raylib_32x32.glb
rename to examples/models/resources/models/gltf/raylib_32x32.glb
diff --git a/examples/models/resources/gltf/rigged_figure.glb b/examples/models/resources/models/gltf/rigged_figure.glb
similarity index 100%
rename from examples/models/resources/gltf/rigged_figure.glb
rename to examples/models/resources/models/gltf/rigged_figure.glb
diff --git a/examples/models/resources/gltf/vertex_colored_object.glb b/examples/models/resources/models/gltf/vertex_colored_object.glb
similarity index 100%
rename from examples/models/resources/gltf/vertex_colored_object.glb
rename to examples/models/resources/models/gltf/vertex_colored_object.glb
diff --git a/examples/models/resources/guy/guy.blend b/examples/models/resources/models/iqm/guy.blend
similarity index 100%
rename from examples/models/resources/guy/guy.blend
rename to examples/models/resources/models/iqm/guy.blend
diff --git a/examples/models/resources/guy/guy.iqm b/examples/models/resources/models/iqm/guy.iqm
similarity index 100%
rename from examples/models/resources/guy/guy.iqm
rename to examples/models/resources/models/iqm/guy.iqm
diff --git a/examples/models/resources/guy/guyanim.iqm b/examples/models/resources/models/iqm/guyanim.iqm
similarity index 100%
rename from examples/models/resources/guy/guyanim.iqm
rename to examples/models/resources/models/iqm/guyanim.iqm
diff --git a/examples/models/resources/guy/guytex.png b/examples/models/resources/models/iqm/guytex.png
similarity index 100%
rename from examples/models/resources/guy/guytex.png
rename to examples/models/resources/models/iqm/guytex.png
diff --git a/examples/models/resources/models/vertex_colored_object.iqm b/examples/models/resources/models/iqm/vertex_colored_object.iqm
similarity index 100%
rename from examples/models/resources/models/vertex_colored_object.iqm
rename to examples/models/resources/models/iqm/vertex_colored_object.iqm
diff --git a/examples/models/resources/models/bridge.obj b/examples/models/resources/models/obj/bridge.obj
similarity index 100%
rename from examples/models/resources/models/bridge.obj
rename to examples/models/resources/models/obj/bridge.obj
diff --git a/examples/models/resources/models/bridge_diffuse.png b/examples/models/resources/models/obj/bridge_diffuse.png
similarity index 100%
rename from examples/models/resources/models/bridge_diffuse.png
rename to examples/models/resources/models/obj/bridge_diffuse.png
diff --git a/examples/models/resources/models/castle.obj b/examples/models/resources/models/obj/castle.obj
similarity index 100%
rename from examples/models/resources/models/castle.obj
rename to examples/models/resources/models/obj/castle.obj
diff --git a/examples/models/resources/models/castle_diffuse.png b/examples/models/resources/models/obj/castle_diffuse.png
similarity index 100%
rename from examples/models/resources/models/castle_diffuse.png
rename to examples/models/resources/models/obj/castle_diffuse.png
diff --git a/examples/models/resources/models/cube.obj b/examples/models/resources/models/obj/cube.obj
similarity index 100%
rename from examples/models/resources/models/cube.obj
rename to examples/models/resources/models/obj/cube.obj
diff --git a/examples/models/resources/models/cube_diffuse.png b/examples/models/resources/models/obj/cube_diffuse.png
similarity index 100%
rename from examples/models/resources/models/cube_diffuse.png
rename to examples/models/resources/models/obj/cube_diffuse.png
diff --git a/examples/models/resources/models/house.obj b/examples/models/resources/models/obj/house.obj
similarity index 100%
rename from examples/models/resources/models/house.obj
rename to examples/models/resources/models/obj/house.obj
diff --git a/examples/models/resources/models/house_diffuse.png b/examples/models/resources/models/obj/house_diffuse.png
similarity index 100%
rename from examples/models/resources/models/house_diffuse.png
rename to examples/models/resources/models/obj/house_diffuse.png
diff --git a/examples/models/resources/models/market.obj b/examples/models/resources/models/obj/market.obj
similarity index 100%
rename from examples/models/resources/models/market.obj
rename to examples/models/resources/models/obj/market.obj
diff --git a/examples/models/resources/models/market_diffuse.png b/examples/models/resources/models/obj/market_diffuse.png
similarity index 100%
rename from examples/models/resources/models/market_diffuse.png
rename to examples/models/resources/models/obj/market_diffuse.png
diff --git a/examples/models/resources/models/turret.obj b/examples/models/resources/models/obj/turret.obj
similarity index 100%
rename from examples/models/resources/models/turret.obj
rename to examples/models/resources/models/obj/turret.obj
diff --git a/examples/models/resources/models/turret_diffuse.png b/examples/models/resources/models/obj/turret_diffuse.png
similarity index 100%
rename from examples/models/resources/models/turret_diffuse.png
rename to examples/models/resources/models/obj/turret_diffuse.png
diff --git a/examples/models/resources/models/well.obj b/examples/models/resources/models/obj/well.obj
similarity index 100%
rename from examples/models/resources/models/well.obj
rename to examples/models/resources/models/obj/well.obj
diff --git a/examples/models/resources/models/well_diffuse.png b/examples/models/resources/models/obj/well_diffuse.png
similarity index 100%
rename from examples/models/resources/models/well_diffuse.png
rename to examples/models/resources/models/obj/well_diffuse.png
diff --git a/examples/models/resources/models/vox/LICENSE b/examples/models/resources/models/vox/LICENSE
new file mode 100644
index 000000000..afb6608df
--- /dev/null
+++ b/examples/models/resources/models/vox/LICENSE
@@ -0,0 +1,9 @@
+The following models are provided by the official github repo of voxel-model format by MagikaVoxel developer @ephtracy
+
+GitHub official repo: https://github.com/ephtracy/voxel-model
+
+ - chr_knight.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/character/chr_knight.vox
+ - chr_sword.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/character/chr_sword.vox
+ - monu9.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/monument/monu9.vox
+
+Worth mentioning there is no license specified for the models yet: https://github.com/ephtracy/voxel-model/issues/22
diff --git a/examples/models/resources/vox/chr_knight.vox b/examples/models/resources/models/vox/chr_knight.vox
similarity index 100%
rename from examples/models/resources/vox/chr_knight.vox
rename to examples/models/resources/models/vox/chr_knight.vox
diff --git a/examples/models/resources/vox/chr_sword.vox b/examples/models/resources/models/vox/chr_sword.vox
similarity index 100%
rename from examples/models/resources/vox/chr_sword.vox
rename to examples/models/resources/models/vox/chr_sword.vox
diff --git a/examples/models/resources/vox/monu9.vox b/examples/models/resources/models/vox/monu9.vox
similarity index 100%
rename from examples/models/resources/vox/monu9.vox
rename to examples/models/resources/models/vox/monu9.vox
diff --git a/examples/models/resources/pbr/trooper.obj b/examples/models/resources/pbr/trooper.obj
deleted file mode 100644
index 8342149b4..000000000
--- a/examples/models/resources/pbr/trooper.obj
+++ /dev/null
@@ -1,18312 +0,0 @@
-# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
-# File Created: 26.04.2017 15:31:30
-
-#
-# object asdf
-#
-
-v 0.000000 0.622922 0.713143
-v 0.000000 0.729854 0.627920
-v 0.000000 0.786583 0.636084
-v 0.000000 1.045946 0.570983
-v 0.000000 1.031233 0.544927
-v 0.000000 1.298009 0.514342
-v 0.000000 1.149254 0.538029
-v 0.000000 0.849328 0.558225
-v 0.000000 1.010490 0.528641
-v 0.000000 0.812325 0.602129
-v 0.000000 0.826873 0.574585
-v 0.000000 0.598750 0.710767
-v 0.000000 0.597623 0.667964
-v 0.084179 0.001562 0.626712
-v 0.000000 0.019620 0.500428
-v 0.169721 0.247278 0.492525
-v 0.000000 0.672880 0.668161
-v 0.151477 0.524575 0.652958
-v 0.131329 0.580069 0.661848
-v 0.114890 0.690102 0.619225
-v 0.089181 0.737425 0.627349
-v 0.053560 0.774530 0.633427
-v 0.049246 0.664280 0.667001
-v 0.186382 0.271672 0.580150
-v 0.311559 0.308788 0.348438
-v 0.378840 0.342231 0.214617
-v 0.183507 0.569029 0.586468
-v 0.209450 0.536520 0.545413
-v 0.198080 0.521331 0.574546
-v 0.267398 0.403558 0.503948
-v 0.256089 0.441711 0.491998
-v 0.285742 0.459568 0.464178
-v 0.306543 0.432843 0.469860
-v 0.165325 0.437671 0.633861
-v 0.247099 0.266255 0.460384
-v 0.411737 0.577071 0.405239
-v 0.391126 0.593584 0.404410
-v 0.423157 0.665068 0.384484
-v 0.450381 0.650863 0.385873
-v 0.455839 0.767810 0.367329
-v 0.485703 0.759030 0.374794
-v 0.459863 0.861942 0.364012
-v 0.441495 0.926861 0.380699
-v 0.464600 0.938004 0.400564
-v 0.486272 0.860457 0.381569
-v 0.412950 0.958719 0.400066
-v 0.433231 0.969863 0.422984
-v 0.384666 0.993819 0.454111
-v 0.373370 0.975991 0.421316
-v 0.268595 1.001637 0.475054
-v 0.282018 1.019372 0.506357
-v 0.140747 1.022724 0.522858
-v 0.142861 1.038352 0.553143
-v 0.382002 0.526733 0.421956
-v 0.358027 0.549805 0.420654
-v 0.283231 1.129298 0.472519
-v 0.407676 1.103160 0.412405
-v 0.142742 1.145411 0.517657
-v 0.475980 1.051464 0.381820
-v 0.436937 1.273467 0.377742
-v 0.509148 1.215159 0.336059
-v 0.304083 1.289812 0.450362
-v 0.143813 1.298790 0.497732
-v 0.110535 0.005395 0.599741
-v 0.144636 0.007877 0.604104
-v 0.293295 0.114109 0.276156
-v 0.260152 0.107644 0.254081
-v 0.197065 0.074325 0.379573
-v 0.227388 0.078784 0.397485
-v 0.237847 0.407594 0.541883
-v 0.231621 0.449564 0.516437
-v 0.160737 0.631269 0.602314
-v 0.444186 0.859839 0.371886
-v 0.434630 0.774993 0.376796
-v 0.411293 0.784139 0.372012
-v 0.403227 0.683902 0.400076
-v 0.388978 0.692028 0.396861
-v 0.369494 0.625951 0.429479
-v 0.358286 0.634576 0.424258
-v 0.342018 0.588721 0.453890
-v 0.331282 0.598798 0.447604
-v 0.289939 0.540541 0.495245
-v 0.281628 0.555508 0.488272
-v 0.309166 0.574121 0.466919
-v 0.261032 0.532563 0.515138
-v 0.258024 0.548682 0.507222
-v 0.202005 0.604862 0.553457
-v 0.205910 0.611484 0.542729
-v 0.223742 0.580733 0.532442
-v 0.221625 0.567634 0.541178
-v 0.178827 0.658546 0.552711
-v 0.173035 0.649694 0.573047
-v 0.125737 0.710486 0.599078
-v 0.141059 0.725485 0.557956
-v 0.098129 0.758054 0.597822
-v 0.108767 0.774398 0.560327
-v 0.061667 0.811050 0.570191
-v 0.057506 0.797335 0.602919
-v 0.154331 0.735616 0.545874
-v 0.190511 0.669141 0.544146
-v 0.120866 0.788022 0.551539
-v 0.065878 0.831958 0.557455
-v 0.439622 0.164783 0.046454
-v 0.403369 0.158676 0.035724
-v 0.454695 0.393247 0.013123
-v 0.498859 0.652598 0.320131
-v 0.478108 0.569070 0.289071
-v 0.518749 0.756759 0.340138
-v 0.527035 0.864085 0.351082
-v 0.550736 0.898387 0.334364
-v 0.544386 1.063371 0.335370
-v 0.545633 0.957967 0.341651
-v 0.533646 1.144131 0.326771
-v 0.422309 0.390526 0.007474
-v 0.113420 0.036204 0.643019
-v 0.134754 0.038875 0.643369
-v 0.135221 0.496068 0.699086
-v 0.113959 0.491977 0.697827
-v 0.100398 0.533113 0.702830
-v 0.121035 0.544521 0.704907
-v 0.076885 0.568295 0.706604
-v 0.093612 0.585987 0.709064
-v 0.041615 0.592176 0.710046
-v 0.050283 0.614831 0.711977
-v 0.432885 0.496493 0.293853
-v 0.400949 0.430460 0.265742
-v 0.096783 0.628475 0.664271
-v 0.052102 0.724350 0.626520
-v 0.138353 1.005327 0.509887
-v 0.263014 0.984554 0.465959
-v 0.365811 0.960416 0.411823
-v 0.394256 0.940253 0.388419
-v 0.410052 0.910315 0.375204
-v 0.419575 0.862522 0.366444
-v 0.380631 0.699220 0.401037
-v 0.349108 0.645921 0.427353
-v 0.323965 0.614964 0.450672
-v 0.278554 0.580382 0.490828
-v 0.300994 0.592376 0.471315
-v 0.254464 0.581187 0.510285
-v 0.215870 0.620817 0.535316
-v 0.557803 0.755616 0.295922
-v 0.546731 0.661016 0.259888
-v 0.531596 0.568778 0.214190
-v 0.503308 0.414580 0.027689
-v 0.523063 0.514749 0.176710
-v 0.512466 0.454397 0.115234
-v 0.566009 0.866797 0.314610
-v 0.335534 0.135443 0.125461
-v 0.370979 0.144594 0.147925
-v 0.133099 0.006781 0.635881
-v 0.115421 0.004489 0.635349
-v 0.107225 0.496826 0.657458
-v 0.098172 0.534477 0.662574
-v 0.078210 0.567301 0.665019
-v 0.042684 0.588742 0.667999
-v 0.138654 0.035774 0.498835
-v 0.177433 0.045028 0.511062
-v 0.232130 0.302131 0.350816
-v 0.394011 0.379101 0.048138
-v 0.329111 0.350753 0.175490
-v 0.508459 0.549937 -0.030999
-v 0.447154 0.538399 -0.038645
-v 0.521728 0.703778 -0.084572
-v 0.462647 0.692239 -0.093682
-v 0.541601 0.885421 -0.147515
-v 0.482814 0.888664 -0.158438
-v 0.406864 0.426440 0.035170
-v 0.422535 0.552211 -0.000368
-v 0.437495 0.703889 -0.055161
-v 0.460158 0.902545 -0.122292
-v 0.511690 0.951481 0.370465
-v 0.119837 0.785737 0.545637
-v 0.065203 0.830441 0.550092
-v 0.000000 0.847636 0.551977
-v 0.318931 0.563527 0.473299
-v 0.325282 0.505009 0.439221
-v 0.347680 0.478912 0.441207
-v 0.233389 0.598793 0.525692
-v 0.241209 0.558521 0.519476
-v 0.239296 0.542350 0.529470
-v 0.216445 0.488345 0.537085
-v 0.216352 0.460240 0.561593
-v 0.135568 0.289508 0.673741
-v 0.114279 0.286852 0.673442
-v 0.109956 0.290610 0.632618
-v 0.462678 0.445515 0.162601
-v 0.475992 0.504367 0.232227
-v 0.419538 0.415538 0.178370
-v 0.084165 0.004645 0.599219
-v 0.084146 0.352002 0.640173
-v 0.084146 0.482690 0.655758
-v 0.078088 0.516461 0.660174
-v 0.061269 0.547527 0.662898
-v 0.033034 0.565643 0.665350
-v 0.000000 0.572762 0.665373
-v 0.000000 0.569438 0.693598
-v 0.061279 0.544283 0.690643
-v 0.084179 0.479331 0.683015
-v 0.033134 0.562394 0.692770
-v 0.078102 0.513276 0.687002
-v 0.084179 0.347638 0.662632
-v 0.084179 0.353069 0.668186
-v 0.084179 0.340460 0.666706
-v -0.151477 0.524575 0.652958
-v -0.183508 0.569029 0.586468
-v -0.131329 0.580069 0.661848
-v -0.160737 0.631269 0.602314
-v -0.052102 0.724350 0.626520
-v -0.053560 0.774530 0.633427
-v -0.049247 0.664280 0.667001
-v -0.311559 0.308788 0.348438
-v -0.293295 0.114109 0.276156
-v -0.378840 0.342231 0.214617
-v -0.370979 0.144594 0.147925
-v -0.198080 0.521331 0.574546
-v -0.209450 0.536520 0.545413
-v -0.267398 0.403558 0.503948
-v -0.306543 0.432843 0.469860
-v -0.256090 0.441711 0.491998
-v -0.285742 0.459568 0.464178
-v -0.165325 0.437671 0.633861
-v -0.247100 0.266255 0.460384
-v -0.227388 0.078784 0.397485
-v -0.411737 0.577071 0.405239
-v -0.450381 0.650863 0.385873
-v -0.391126 0.593584 0.404410
-v -0.423157 0.665068 0.384484
-v -0.485704 0.759030 0.374794
-v -0.455839 0.767810 0.367329
-v -0.459864 0.861942 0.364012
-v -0.486272 0.860457 0.381569
-v -0.441495 0.926861 0.380699
-v -0.464600 0.938004 0.400564
-v -0.433231 0.969863 0.422984
-v -0.412950 0.958719 0.400066
-v -0.282018 1.019372 0.506357
-v -0.268596 1.001637 0.475054
-v -0.384666 0.993819 0.454111
-v -0.373370 0.975991 0.421316
-v -0.142861 1.038352 0.553143
-v -0.140747 1.022724 0.522858
-v -0.478108 0.569070 0.289071
-v -0.498859 0.652598 0.320131
-v -0.518749 0.756759 0.340138
-v -0.527035 0.864085 0.351082
-v -0.382002 0.526733 0.421956
-v -0.358028 0.549805 0.420654
-v -0.283231 1.129298 0.472519
-v -0.407676 1.103160 0.412405
-v -0.142742 1.145411 0.517657
-v -0.511691 0.951481 0.370465
-v -0.475980 1.051464 0.381820
-v -0.436937 1.273467 0.377742
-v -0.509148 1.215159 0.336059
-v -0.304083 1.289812 0.450362
-v -0.143813 1.298790 0.497732
-v -0.115421 0.004489 0.635349
-v -0.110535 0.005395 0.599741
-v -0.133099 0.006781 0.635881
-v -0.144636 0.007877 0.604104
-v -0.197066 0.074325 0.379573
-v -0.260152 0.107644 0.254081
-v -0.335534 0.135443 0.125461
-v -0.177433 0.045028 0.511062
-v -0.138654 0.035774 0.498835
-v -0.237847 0.407594 0.541883
-v -0.231621 0.449564 0.516437
-v -0.186382 0.271672 0.580150
-v -0.057506 0.797335 0.602919
-v -0.098130 0.758054 0.597822
-v -0.089181 0.737425 0.627349
-v -0.125738 0.710486 0.599078
-v -0.114890 0.690102 0.619225
-v -0.202006 0.604862 0.553457
-v -0.173035 0.649694 0.573047
-v -0.221625 0.567634 0.541178
-v -0.261032 0.532563 0.515138
-v -0.289939 0.540541 0.495245
-v -0.369494 0.625951 0.429479
-v -0.403228 0.683902 0.400076
-v -0.434630 0.774993 0.376796
-v -0.444187 0.859839 0.371886
-v -0.394256 0.940253 0.388419
-v -0.410053 0.910315 0.375204
-v -0.263014 0.984554 0.465959
-v -0.365811 0.960416 0.411823
-v -0.138353 1.005327 0.509887
-v -0.342018 0.588721 0.453890
-v -0.325282 0.505009 0.439221
-v -0.318931 0.563527 0.473299
-v -0.419575 0.862522 0.366444
-v -0.411293 0.784139 0.372012
-v -0.388978 0.692028 0.396861
-v -0.358286 0.634576 0.424258
-v -0.331282 0.598798 0.447604
-v -0.309166 0.574121 0.466919
-v -0.281628 0.555508 0.488272
-v -0.258024 0.548682 0.507222
-v -0.223743 0.580733 0.532442
-v -0.205910 0.611484 0.542729
-v -0.178827 0.658546 0.552711
-v -0.141059 0.725485 0.557956
-v -0.108768 0.774398 0.560327
-v -0.061667 0.811050 0.570191
-v -0.190511 0.669141 0.544146
-v -0.154331 0.735616 0.545874
-v -0.120866 0.788022 0.551539
-v -0.065878 0.831958 0.557455
-v -0.566009 0.866797 0.314610
-v -0.557803 0.755616 0.295922
-v -0.403369 0.158676 0.035724
-v -0.422309 0.390526 0.007474
-v -0.439623 0.164783 0.046454
-v -0.454695 0.393247 0.013123
-v -0.232130 0.302131 0.350816
-v -0.329112 0.350753 0.175490
-v -0.169721 0.247278 0.492525
-v -0.394011 0.379101 0.048138
-v -0.113420 0.036204 0.643019
-v -0.134754 0.038875 0.643369
-v -0.114279 0.286852 0.673442
-v -0.135568 0.289508 0.673741
-v -0.121036 0.544521 0.704907
-v -0.100398 0.533113 0.702830
-v -0.135221 0.496068 0.699086
-v -0.113959 0.491977 0.697827
-v -0.093612 0.585987 0.709064
-v -0.076885 0.568295 0.706604
-v -0.050284 0.614831 0.711977
-v -0.041615 0.592176 0.710046
-v -0.347680 0.478912 0.441207
-v -0.400949 0.430460 0.265742
-v -0.432885 0.496493 0.293853
-v -0.419538 0.415538 0.178370
-v -0.475992 0.504367 0.232227
-v -0.546731 0.661016 0.259888
-v -0.096783 0.628475 0.664271
-v -0.380631 0.699220 0.401037
-v -0.349108 0.645921 0.427353
-v -0.323965 0.614964 0.450672
-v -0.278554 0.580382 0.490828
-v -0.300994 0.592376 0.471315
-v -0.254465 0.581187 0.510285
-v -0.233389 0.598793 0.525692
-v -0.215870 0.620817 0.535316
-v -0.065203 0.830441 0.550092
-v -0.119838 0.785737 0.545637
-v -0.550737 0.898387 0.334364
-v -0.533646 1.144131 0.326771
-v -0.544386 1.063371 0.335370
-v -0.508459 0.549937 -0.030999
-v -0.503308 0.414580 0.027689
-v -0.042684 0.588742 0.667999
-v -0.078210 0.567301 0.665019
-v -0.098173 0.534477 0.662574
-v -0.107225 0.496826 0.657458
-v -0.109956 0.290610 0.632618
-v -0.084165 0.004645 0.599219
-v -0.216445 0.488345 0.537085
-v -0.216353 0.460240 0.561593
-v -0.239297 0.542350 0.529470
-v -0.241209 0.558521 0.519476
-v -0.447154 0.538399 -0.038645
-v -0.521729 0.703778 -0.084572
-v -0.462647 0.692239 -0.093682
-v -0.541601 0.885421 -0.147515
-v -0.482814 0.888664 -0.158438
-v -0.406864 0.426440 0.035170
-v -0.422535 0.552211 -0.000368
-v -0.437495 0.703889 -0.055161
-v -0.460158 0.902545 -0.122292
-v -0.512467 0.454397 0.115234
-v -0.462678 0.445515 0.162601
-v -0.545633 0.957967 0.341651
-v -0.523063 0.514749 0.176710
-v -0.531596 0.568778 0.214190
-v -0.084146 0.352002 0.640173
-v -0.084146 0.482690 0.655758
-v -0.078088 0.516461 0.660174
-v -0.061269 0.547527 0.662898
-v -0.033034 0.565643 0.665350
-v -0.033135 0.562394 0.692770
-v -0.078102 0.513276 0.687002
-v -0.084179 0.479331 0.683015
-v -0.061279 0.544283 0.690643
-v -0.084179 0.001562 0.626712
-v -0.084179 0.340460 0.666706
-v -0.084179 0.347638 0.662632
-v -0.084179 0.353069 0.668186
-v 0.472678 0.498641 0.495580
-v 0.455134 0.363052 0.415115
-v 0.495820 0.677998 0.552178
-v 0.508480 0.873301 0.617343
-v 0.418954 1.198035 0.746808
-v 0.226891 1.228586 0.775409
-v 0.000000 1.239688 0.783618
-v 0.507938 0.922792 0.636298
-v 0.498280 1.034902 0.679668
-v 0.463011 1.172257 0.732715
-v 0.526901 0.501753 0.487367
-v 0.503139 0.380206 0.406528
-v 0.557002 0.682570 0.546605
-v 0.557258 0.890442 0.616173
-v 0.440330 1.260757 0.756994
-v 0.237063 1.291562 0.788802
-v 0.000000 1.303438 0.798479
-v 0.551565 1.044372 0.673726
-v 0.519555 1.199309 0.727544
-v 0.578629 0.860338 0.602969
-v 0.453456 0.387867 0.009125
-v 0.514033 0.413414 0.006748
-v 0.538383 0.540815 -0.041315
-v 0.563228 0.698624 -0.097146
-v 0.578629 0.889788 -0.165692
-v 0.401001 1.304767 0.242620
-v 0.335796 1.309552 0.340186
-v 0.121185 1.312348 0.465164
-v 0.000000 1.311687 0.475739
-v 0.556904 0.925710 -0.185852
-v 0.553961 0.965324 -0.221030
-v 0.547991 1.040282 -0.269386
-v 0.533706 1.185715 -0.306229
-v 0.460050 0.394654 0.460563
-v 0.507153 0.403294 0.446925
-v 0.485571 1.116606 0.710684
-v 0.535991 1.130023 0.705238
-v 0.542214 1.125565 -0.298134
-v 0.531238 0.518132 0.263921
-v 0.559660 0.689425 0.272826
-v 0.578629 0.873101 0.278899
-v 0.557889 0.905482 0.281533
-v 0.551597 1.042421 0.292352
-v 0.539814 1.135696 0.301089
-v 0.518906 1.213291 0.458865
-v 0.454415 0.367847 0.251116
-v 0.507363 0.391047 0.248269
-v 0.521461 1.231712 -0.295396
-v 0.551526 1.040605 -0.117034
-v 0.544234 1.105747 -0.107437
-v 0.462265 1.300027 0.118026
-v 0.521878 1.217109 0.125659
-v 0.497751 1.296740 -0.210064
-v 0.439391 1.282255 0.525135
-v 0.237065 1.307015 0.594925
-v 0.000000 1.310493 0.630779
-v 0.457592 0.372454 0.442336
-v 0.504071 0.386924 0.431313
-v 0.509748 1.274034 -0.264504
-v 0.457855 0.385287 0.432539
-v 0.454862 0.383365 0.250964
-v 0.455654 0.378042 0.411305
-v 0.460638 1.175477 0.718840
-v 0.417039 1.199882 0.732548
-v 0.495675 0.682478 0.538474
-v 0.472448 0.503090 0.481931
-v 0.508165 0.878296 0.603678
-v 0.225296 1.229162 0.761042
-v 0.000000 1.239799 0.766477
-v 0.497310 1.039942 0.666166
-v 0.507395 0.928064 0.622852
-v 0.483919 1.120965 0.697020
-v 0.459794 0.402406 0.446365
-v 0.496029 0.399310 0.418886
-v 0.524404 0.529557 0.264265
-v 0.499299 0.405394 0.253953
-v 0.496064 0.396443 0.403086
-v 0.493704 1.202905 0.706920
-v 0.491877 1.222469 0.271484
-v 0.432994 1.237217 0.726031
-v 0.406565 1.283041 0.245873
-v 0.545063 0.682278 0.529418
-v 0.548665 0.682341 0.276431
-v 0.514660 0.503906 0.469355
-v 0.558168 0.861778 0.586649
-v 0.561787 0.869876 0.282683
-v 0.227789 1.268357 0.761172
-v 0.344000 1.286400 0.347772
-v 0.123232 1.293313 0.475684
-v 0.000000 1.276835 0.764351
-v 0.000000 1.291718 0.487812
-v 0.544438 0.891741 0.598331
-v 0.547857 0.901451 0.284972
-v 0.533694 1.044316 0.657349
-v 0.542418 1.041574 0.280644
-v 0.541725 0.940231 0.285367
-v 0.538157 0.929880 0.613045
-v 0.523336 1.130394 0.687416
-v 0.532723 1.127003 0.276865
-v 0.438828 1.287197 0.115931
-v 0.467218 1.288406 -0.109583
-v 0.497531 0.413366 0.432461
-v 0.417627 1.255699 0.520493
-v 0.573825 0.913823 -0.177280
-v 0.573955 0.895149 0.280376
-v 0.574051 0.881109 0.610551
-v 0.435214 1.306286 0.112960
-v 0.483731 1.303610 -0.110598
-v 0.460597 1.307026 -0.109257
-v 0.517924 1.185677 -0.279932
-v 0.527570 1.125716 -0.273598
-v 0.533346 1.041535 -0.244216
-v 0.538489 0.966120 -0.193288
-v 0.545807 0.923712 -0.158500
-v 0.559396 0.890681 -0.141981
-v 0.541768 0.699706 -0.078683
-v 0.522827 0.542499 -0.018996
-v 0.502348 0.421501 0.023788
-v 0.454188 0.400027 0.020421
-v 0.490524 1.185677 -0.282528
-v 0.493804 1.125716 -0.277663
-v 0.490550 1.185908 -0.305724
-v 0.493268 1.125560 -0.301537
-v 0.498703 1.041535 -0.252803
-v 0.498387 1.041395 -0.273887
-v 0.502402 0.966120 -0.203136
-v 0.501880 0.968429 -0.229786
-v 0.501328 0.910853 -0.182371
-v 0.501295 0.908990 -0.160008
-v 0.496870 0.699706 -0.084306
-v 0.496949 0.701241 -0.103441
-v 0.477537 0.542852 -0.032825
-v 0.477593 0.543778 -0.048374
-v 0.497124 1.262500 -0.242720
-v 0.509349 1.220731 -0.273629
-v 0.490045 1.279480 -0.202366
-v 0.485872 1.230418 -0.296101
-v 0.486558 1.220731 -0.276225
-v 0.478962 1.262500 -0.247944
-v 0.477158 1.274252 -0.264501
-v 0.467497 1.298303 -0.209259
-v 0.470183 1.284062 -0.202366
-v 0.516461 1.240163 -0.107947
-v 0.524456 1.220080 -0.155722
-v 0.534875 1.172294 -0.175250
-v 0.542633 1.125781 -0.154095
-v 0.534875 1.173073 -0.039573
-v 0.524411 1.219834 -0.058684
-v 0.540902 1.125098 -0.060120
-v 0.534875 1.111311 -0.107437
-v 0.534875 1.128549 -0.151332
-v 0.534875 1.237813 -0.108846
-v 0.534875 1.218874 -0.154189
-v 0.534875 1.128377 -0.063540
-v 0.534875 1.218432 -0.061318
-v 0.473441 1.302867 -0.010762
-v 0.452160 1.306359 -0.010008
-v 0.457523 1.287529 -0.009930
-v 0.529670 1.121062 -0.010335
-v 0.465373 1.263467 0.126383
-v 0.515162 1.259525 -0.190287
-v 0.507844 1.272916 -0.111218
-v 0.504476 1.273514 -0.025759
-v 0.526132 1.220835 -0.227576
-v 0.497090 1.270667 0.125320
-v 0.488818 1.255423 0.493359
-v 0.490346 1.237550 0.741165
-v 0.443790 1.189769 0.740555
-v 0.441632 1.192343 0.726499
-v 0.467913 1.224439 0.715903
-v 0.469037 1.237820 0.508236
-v 0.245138 1.311425 0.423078
-v 0.247845 1.290506 0.430310
-v 0.440425 1.267422 0.260726
-v 0.476756 1.273515 -0.009293
-v 0.482988 1.277877 -0.109284
-v 0.502717 1.204145 0.512725
-v 0.501746 1.227849 -0.007411
-v 0.505001 1.225114 -0.109696
-v -0.524404 0.529557 0.264265
-v -0.499299 0.405394 0.253953
-v -0.496064 0.396443 0.403086
-v -0.491877 1.222469 0.271484
-v -0.440425 1.267422 0.260726
-v -0.465373 1.263467 0.126383
-v -0.460050 0.394654 0.460563
-v -0.507153 0.403294 0.446925
-v -0.472678 0.498641 0.495580
-v -0.526901 0.501753 0.487367
-v -0.495820 0.677998 0.552178
-v -0.557002 0.682570 0.546605
-v -0.578629 0.860338 0.602969
-v -0.508480 0.873301 0.617343
-v -0.226891 1.228586 0.775409
-v -0.418954 1.198035 0.746808
-v -0.237063 1.291562 0.788802
-v -0.440330 1.260757 0.756994
-v -0.557258 0.890442 0.616173
-v -0.507938 0.922792 0.636298
-v -0.498280 1.034902 0.679668
-v -0.551565 1.044372 0.673726
-v -0.443790 1.189769 0.740555
-v -0.463011 1.172257 0.732715
-v -0.490346 1.237550 0.741165
-v -0.519555 1.199309 0.727544
-v -0.485571 1.116606 0.710684
-v -0.535991 1.130023 0.705238
-v -0.455134 0.363052 0.415115
-v -0.454415 0.367847 0.251116
-v -0.503139 0.380206 0.406528
-v -0.507363 0.391047 0.248269
-v -0.531238 0.518132 0.263921
-v -0.559660 0.689425 0.272826
-v -0.578629 0.873101 0.278899
-v -0.237065 1.307015 0.594925
-v -0.439391 1.282255 0.525135
-v -0.551597 1.042421 0.292352
-v -0.557889 0.905482 0.281533
-v -0.488818 1.255423 0.493359
-v -0.518906 1.213291 0.458865
-v -0.539814 1.135696 0.301089
-v -0.574051 0.881109 0.610551
-v -0.573955 0.895149 0.280376
-v -0.457592 0.372454 0.442336
-v -0.504071 0.386924 0.431313
-v -0.545063 0.682278 0.529418
-v -0.548665 0.682341 0.276431
-v -0.514660 0.503906 0.469355
-v -0.561787 0.869876 0.282683
-v -0.558168 0.861778 0.586649
-v -0.247845 1.290506 0.430310
-v -0.227789 1.268357 0.761172
-v -0.123232 1.293313 0.475684
-v -0.547857 0.901451 0.284972
-v -0.544438 0.891741 0.598331
-v -0.533694 1.044316 0.657349
-v -0.542418 1.041574 0.280644
-v -0.538157 0.929880 0.613045
-v -0.541725 0.940231 0.285367
-v -0.523336 1.130394 0.687416
-v -0.532723 1.127003 0.276865
-v -0.502717 1.204145 0.512725
-v -0.493704 1.202905 0.706920
-v -0.521878 1.217109 0.125659
-v -0.478962 1.262500 -0.247944
-v -0.477158 1.274252 -0.264501
-v -0.486558 1.220731 -0.276225
-v -0.485872 1.230418 -0.296101
-v -0.470183 1.284062 -0.202366
-v -0.467497 1.298303 -0.209259
-v -0.517924 1.185677 -0.279932
-v -0.527570 1.125716 -0.273598
-v -0.529670 1.121062 -0.010335
-v -0.533346 1.041535 -0.244216
-v -0.538489 0.966120 -0.193288
-v -0.559396 0.890681 -0.141981
-v -0.545807 0.923712 -0.158500
-v -0.541768 0.699706 -0.078683
-v -0.522827 0.542499 -0.018996
-v -0.502348 0.421501 0.023788
-v -0.514033 0.413414 0.006748
-v -0.453456 0.387867 0.009125
-v -0.538383 0.540815 -0.041315
-v -0.563228 0.698624 -0.097146
-v -0.578629 0.889788 -0.165692
-v -0.573825 0.913823 -0.177280
-v -0.556904 0.925710 -0.185852
-v -0.551526 1.040605 -0.117034
-v -0.245138 1.311425 0.423078
-v -0.335796 1.309552 0.340186
-v -0.401001 1.304767 0.242620
-v -0.462265 1.300027 0.118026
-v -0.121185 1.312348 0.465164
-v -0.497531 0.413366 0.432461
-v -0.454862 0.383365 0.250964
-v -0.455654 0.378042 0.411305
-v -0.457855 0.385287 0.432539
-v -0.441632 1.192343 0.726499
-v -0.460638 1.175477 0.718840
-v -0.495675 0.682478 0.538474
-v -0.472448 0.503090 0.481931
-v -0.508165 0.878296 0.603678
-v -0.417039 1.199882 0.732548
-v -0.225296 1.229162 0.761042
-v -0.497310 1.039942 0.666166
-v -0.507395 0.928064 0.622852
-v -0.483919 1.120965 0.697020
-v -0.454188 0.400027 0.020421
-v -0.459794 0.402406 0.446365
-v -0.496029 0.399310 0.418886
-v -0.467913 1.224439 0.715903
-v -0.432994 1.237217 0.726031
-v -0.469037 1.237820 0.508236
-v -0.496949 0.701241 -0.103441
-v -0.477593 0.543778 -0.048374
-v -0.553961 0.965324 -0.221030
-v -0.501880 0.968429 -0.229786
-v -0.547991 1.040282 -0.269386
-v -0.498387 1.041395 -0.273887
-v -0.542214 1.125565 -0.298134
-v -0.493268 1.125560 -0.301537
-v -0.501328 0.910853 -0.182371
-v -0.533706 1.185715 -0.306229
-v -0.490550 1.185908 -0.305724
-v -0.406565 1.283041 0.245873
-v -0.344000 1.286400 0.347772
-v -0.438828 1.287197 0.115931
-v -0.435214 1.306286 0.112960
-v -0.473441 1.302867 -0.010762
-v -0.452160 1.306359 -0.010008
-v -0.417627 1.255699 0.520493
-v -0.457523 1.287529 -0.009930
-v -0.467218 1.288406 -0.109583
-v -0.460597 1.307026 -0.109257
-v -0.493804 1.125716 -0.277663
-v -0.490524 1.185677 -0.282528
-v -0.498703 1.041535 -0.252803
-v -0.502402 0.966120 -0.203136
-v -0.501295 0.908990 -0.160008
-v -0.496870 0.699706 -0.084306
-v -0.477537 0.542852 -0.032825
-v -0.509349 1.220731 -0.273629
-v -0.497124 1.262500 -0.242720
-v -0.521461 1.231712 -0.295396
-v -0.509748 1.274034 -0.264504
-v -0.497751 1.296740 -0.210064
-v -0.490045 1.279480 -0.202366
-v -0.483731 1.303610 -0.110598
-v -0.501746 1.227849 -0.007411
-v -0.505001 1.225114 -0.109696
-v -0.524456 1.220080 -0.155722
-v -0.534875 1.172294 -0.175250
-v -0.526132 1.220835 -0.227576
-v -0.516461 1.240163 -0.107947
-v -0.507844 1.272916 -0.111218
-v -0.515162 1.259525 -0.190287
-v -0.524411 1.219834 -0.058684
-v -0.504476 1.273514 -0.025759
-v -0.497090 1.270667 0.125320
-v -0.544234 1.105747 -0.107437
-v -0.540902 1.125098 -0.060120
-v -0.542633 1.125781 -0.154095
-v -0.534875 1.111311 -0.107437
-v -0.534875 1.128549 -0.151332
-v -0.534875 1.237813 -0.108846
-v -0.534875 1.218874 -0.154189
-v -0.534875 1.173073 -0.039573
-v -0.534875 1.128377 -0.063540
-v -0.534875 1.218432 -0.061318
-v -0.476756 1.273515 -0.009293
-v -0.482988 1.277877 -0.109284
-v 0.000000 0.275313 -0.663685
-v 0.000000 0.401435 -0.692916
-v 0.000000 0.482880 -0.796468
-v 0.000000 0.553547 -0.851344
-v 0.000000 0.832426 -0.872868
-v 0.000000 0.893900 -0.856622
-v 0.000000 0.927457 -0.832146
-v 0.000000 1.131149 -0.815607
-v 0.000000 1.220981 -0.796999
-v 0.000000 1.284136 -0.768631
-v 0.000000 1.310340 -0.741967
-v 0.000000 0.743029 -0.878336
-v 0.000000 0.425120 -0.718862
-v 0.000000 1.403912 -0.699561
-v 0.000000 1.546331 -0.229220
-v 0.000000 1.540559 -0.376814
-v 0.000000 1.522687 -0.517027
-v 0.000000 1.479294 -0.625103
-v 0.000000 1.543301 -0.073087
-v 0.000000 1.533419 0.076839
-v 0.000000 1.516212 0.199947
-v 0.000000 1.346225 0.433512
-v 0.000000 1.420419 0.392736
-v 0.000000 1.484265 0.311647
-v 0.000000 1.296991 0.443624
-v 0.000000 1.027557 -0.826267
-v 0.000000 0.649856 -0.873601
-v 0.000000 0.378046 -0.678510
-v 0.000000 0.273635 -0.628613
-v 0.000000 1.296991 0.502498
-v 0.466306 0.386360 -0.136250
-v 0.454450 0.392430 -0.287917
-v 0.425859 0.398485 -0.412160
-v 0.368089 0.401568 -0.521642
-v 0.297157 0.403666 -0.596314
-v 0.205207 0.403504 -0.649593
-v 0.105847 0.402057 -0.682957
-v 0.480393 0.409301 -0.301310
-v 0.452650 0.418753 -0.431928
-v 0.390228 0.422728 -0.545312
-v 0.312241 0.424274 -0.619736
-v 0.215618 0.424967 -0.674609
-v 0.111099 0.424687 -0.705398
-v 0.639960 0.513162 -0.272312
-v 0.599536 0.452946 -0.199652
-v 0.565749 0.452970 -0.370140
-v 0.619839 0.518132 -0.424157
-v 0.571177 0.525431 -0.548174
-v 0.523320 0.460508 -0.502629
-v 0.494740 0.534493 -0.657377
-v 0.451475 0.468040 -0.610905
-v 0.395924 0.543049 -0.744076
-v 0.362309 0.473311 -0.693480
-v 0.123652 0.483032 -0.786924
-v 0.245744 0.479214 -0.754807
-v 0.265657 0.549179 -0.808178
-v 0.132838 0.553184 -0.842528
-v 0.661515 0.618840 -0.315200
-v 0.644798 0.622977 -0.442636
-v 0.595960 0.628675 -0.572599
-v 0.513801 0.635011 -0.677834
-v 0.409901 0.641868 -0.763748
-v 0.275951 0.645809 -0.830733
-v 0.136471 0.649791 -0.865248
-v 0.617504 0.863480 -0.269102
-v 0.648789 0.803643 -0.321878
-v 0.621909 0.816086 -0.447824
-v 0.582346 0.882561 -0.430587
-v 0.544359 0.883943 -0.558911
-v 0.574742 0.819434 -0.574193
-v 0.483138 0.885529 -0.663189
-v 0.504765 0.823740 -0.679602
-v 0.270124 0.894651 -0.811084
-v 0.274073 0.830747 -0.832120
-v 0.134353 0.831969 -0.865275
-v 0.126694 0.894325 -0.844375
-v 0.555684 0.924913 -0.215786
-v 0.542490 0.930013 -0.409367
-v 0.506223 0.929637 -0.540696
-v 0.453039 0.926990 -0.643237
-v 0.251092 0.934623 -0.761604
-v 0.131933 0.935714 -0.801735
-v 0.118270 0.928204 -0.817928
-v 0.541290 1.131051 -0.329770
-v 0.522547 1.221382 -0.333103
-v 0.527345 1.130042 -0.414468
-v 0.507335 1.220849 -0.419783
-v 0.466574 1.222041 -0.533019
-v 0.483032 1.131700 -0.538807
-v 0.401709 1.220497 -0.629408
-v 0.423966 1.131922 -0.637852
-v 0.499345 1.281729 -0.300617
-v 0.483534 1.282236 -0.412917
-v 0.440056 1.282233 -0.516511
-v 0.377487 1.282191 -0.611856
-v 0.305615 1.282151 -0.683800
-v 0.322480 1.219805 -0.699842
-v 0.218417 1.284231 -0.727081
-v 0.236803 1.222103 -0.751386
-v 0.135989 1.220931 -0.782210
-v 0.117495 1.283165 -0.757567
-v 0.445922 0.403746 -0.027623
-v 0.505883 0.408960 -0.050173
-v 0.468055 0.381464 -0.035311
-v 0.580665 0.890722 -0.197061
-v 0.138959 0.743105 -0.870690
-v 0.596701 0.725339 -0.578856
-v 0.516370 0.731493 -0.688300
-v 0.642316 0.719345 -0.447379
-v 0.661834 0.716038 -0.329195
-v 0.520064 0.454769 -0.062988
-v 0.548213 0.459164 -0.113006
-v 0.546190 0.422366 -0.110464
-v 0.592898 0.490111 -0.196279
-v 0.620879 0.540437 -0.260291
-v 0.638525 0.622410 -0.295973
-v 0.630203 0.789048 -0.299916
-v 0.608579 0.835674 -0.253307
-v 0.639084 0.716171 -0.308229
-v 0.579652 0.842662 -0.180699
-v 0.561758 0.716544 -0.140073
-v 0.443242 1.310225 -0.388568
-v 0.404913 1.310202 -0.498226
-v 0.349724 1.310198 -0.586795
-v 0.282673 1.309843 -0.654823
-v 0.198588 1.310222 -0.700834
-v 0.106783 1.310295 -0.731039
-v 0.385868 1.400122 -0.400909
-v 0.310421 1.467857 -0.390880
-v 0.266173 1.457967 -0.524738
-v 0.311280 1.398134 -0.549305
-v 0.103505 1.534730 -0.378049
-v 0.099605 1.515760 -0.515166
-v 0.098392 1.474770 -0.620740
-v 0.251767 1.392396 -0.618851
-v 0.196272 1.456735 -0.592215
-v 0.175834 1.395176 -0.666718
-v 0.098528 1.399139 -0.691758
-v 0.180286 1.497351 -0.508038
-v 0.205987 1.515010 -0.381370
-v 0.418065 1.396418 -0.086963
-v 0.401971 1.392277 0.064915
-v 0.338078 1.463460 0.067784
-v 0.344507 1.467198 -0.084766
-v 0.109455 1.537381 -0.075093
-v 0.108976 1.527873 0.075027
-v 0.225309 1.511005 0.071866
-v 0.230138 1.517579 -0.079762
-v 0.314399 1.385814 0.295828
-v 0.278741 1.440388 0.260842
-v 0.314098 1.453090 0.186838
-v 0.372752 1.383205 0.193041
-v 0.211867 1.461839 0.285578
-v 0.225744 1.402438 0.355029
-v 0.110084 1.478708 0.303265
-v 0.110939 1.417340 0.385419
-v 0.108071 1.511040 0.195934
-v 0.214860 1.493880 0.189970
-v 0.495293 1.130906 -0.311334
-v 0.486364 1.216647 -0.318528
-v 0.468907 1.289028 -0.251379
-v 0.473660 1.269780 -0.286016
-v 0.504737 0.925614 -0.191771
-v 0.507862 0.810263 -0.150418
-v 0.495591 0.714721 -0.119267
-v 0.491635 1.132654 -0.106675
-v 0.432580 1.329079 0.074886
-v 0.465204 1.286335 -0.088443
-v 0.450412 1.329108 -0.088832
-v 0.444194 1.291131 0.083885
-v 0.401969 1.292611 0.206764
-v 0.333440 1.292107 0.313494
-v 0.234143 1.294910 0.394789
-v 0.113326 1.296983 0.434097
-v 0.328881 1.326787 0.307695
-v 0.394160 1.326788 0.203723
-v 0.233009 1.336604 0.387698
-v 0.114571 1.344287 0.424379
-v 0.462744 1.311686 -0.259062
-v 0.109254 1.540182 -0.231520
-v 0.229079 1.519875 -0.231583
-v 0.343282 1.468938 -0.231173
-v 0.417230 1.398320 -0.239037
-v 0.471985 0.567307 -0.075478
-v 0.540053 0.567203 -0.095331
-v 0.136825 1.029733 -0.811013
-v 0.147588 1.027527 -0.794752
-v 0.249720 1.023759 -0.756375
-v 0.498972 1.029689 -0.542891
-v 0.441643 1.029899 -0.640491
-v 0.536198 1.028551 -0.419037
-v 0.547465 1.036499 -0.298053
-v 0.501330 1.041592 -0.279615
-v 0.258015 0.928087 -0.777295
-v 0.153096 1.129226 -0.801359
-v 0.162876 1.115404 -0.786713
-v 0.250912 1.115393 -0.756707
-v 0.455484 0.349625 -0.025968
-v 0.450950 0.357358 -0.135180
-v 0.438576 0.364976 -0.278590
-v 0.416686 0.370766 -0.404924
-v 0.359161 0.375531 -0.513272
-v 0.288606 0.376913 -0.584422
-v 0.201735 0.377912 -0.635053
-v 0.105106 0.378058 -0.667741
-v 0.278818 0.741071 -0.838910
-v 0.418408 0.737259 -0.769866
-v 0.566206 0.782571 -0.334788
-v 0.553921 0.735774 -0.319053
-v 0.527469 0.510938 -0.261160
-v 0.545175 0.507375 -0.277553
-v 0.569095 0.515103 -0.296617
-v 0.593006 0.554095 -0.321349
-v 0.605831 0.626748 -0.341959
-v 0.599099 0.764999 -0.356748
-v 0.585171 0.784938 -0.352159
-v 0.608177 0.717896 -0.357361
-v 0.529242 0.562382 -0.273853
-v 0.344794 1.128248 -0.717305
-v 0.367282 1.027340 -0.714399
-v 0.384778 0.927942 -0.710487
-v 0.402272 0.889632 -0.739208
-v 0.412484 0.828200 -0.759841
-v 0.365095 0.934093 -0.708841
-v 0.347186 1.025898 -0.709747
-v 0.255804 1.130180 -0.766157
-v 0.328548 1.115315 -0.714309
-v 0.401698 0.161159 0.035348
-v 0.377051 0.160724 0.006376
-v 0.368521 0.406688 0.091378
-v 0.343597 0.404088 0.094562
-v 0.413219 0.715576 0.027679
-v 0.436055 0.716322 0.023696
-v 0.382800 0.574088 0.054618
-v 0.404840 0.573925 0.050695
-v 0.331589 0.254574 0.135128
-v 0.303326 0.254948 0.136872
-v 0.320307 0.205128 0.145554
-v 0.292115 0.205551 0.145640
-v 0.432841 0.801786 0.021187
-v 0.455617 0.802996 0.018481
-v 0.337860 0.157653 0.114579
-v 0.311484 0.156788 0.114977
-v 0.295638 0.172621 0.137148
-v 0.324782 0.174236 0.135367
-v 0.415282 0.162208 0.019281
-v 0.349958 0.233448 -0.504833
-v 0.399038 0.215040 -0.405576
-v 0.285763 0.249069 -0.573785
-v 0.101710 0.271338 -0.652303
-v 0.421193 0.195600 -0.276785
-v 0.426462 0.177916 -0.130665
-v 0.198180 0.262088 -0.622766
-v 0.322960 0.231834 -0.482911
-v 0.365646 0.212881 -0.392210
-v 0.264730 0.247261 -0.545574
-v 0.094875 0.269410 -0.617867
-v 0.386129 0.193272 -0.273976
-v 0.391105 0.175399 -0.131456
-v 0.185617 0.260371 -0.590118
-v 0.480064 1.136059 0.081115
-v 0.487545 0.819099 0.080478
-v 0.432745 0.818974 0.083847
-v 0.467901 1.284465 0.089812
-v 0.445221 1.289194 0.217243
-v 0.375291 1.292107 0.352815
-v 0.263750 1.294910 0.452360
-v 0.127368 1.296983 0.489311
-v 0.500087 1.137085 0.083727
-v 0.507598 0.816962 0.082356
-v 0.378612 0.402151 -0.029888
-v 0.352383 0.438381 -0.235280
-v 0.352669 0.408344 -0.049001
-v 0.512539 0.970340 0.083013
-v 0.492501 0.970961 0.080783
-v 0.502190 0.964727 -0.102247
-v 0.363441 0.220628 0.091202
-v 0.555135 0.924435 -0.296496
-v 0.534707 0.472766 -0.108628
-v 0.385031 0.311832 -0.044641
-v 0.389544 0.345010 -0.250336
-v 0.374571 0.365985 -0.367508
-v 0.336980 0.385292 -0.460572
-v 0.282361 0.399908 -0.526535
-v 0.200756 0.413689 -0.577795
-v 0.104426 0.424403 -0.610495
-v 0.000000 0.426302 -0.622922
-v 0.000000 0.518012 -0.581708
-v 0.095767 0.514240 -0.569918
-v 0.181719 0.504288 -0.533168
-v 0.250913 0.491717 -0.481709
-v 0.303037 0.475351 -0.416525
-v 0.335127 0.460809 -0.336618
-v 0.000000 0.443393 -0.583372
-v 0.351251 0.330560 -0.061170
-v 0.353121 0.362843 -0.247197
-v 0.094819 0.437749 -0.574202
-v 0.180289 0.427513 -0.539896
-v 0.250278 0.414870 -0.491564
-v 0.303258 0.400518 -0.429420
-v 0.335573 0.384386 -0.350114
-v 0.308468 0.200412 0.127973
-v 0.366319 0.181806 0.035711
-v 0.368809 0.228761 0.029032
-v 0.314214 0.247332 0.123412
-v 0.307475 0.243242 0.115479
-v 0.360379 0.226428 0.028026
-v 0.303706 0.202899 0.120956
-v 0.356610 0.186085 0.033502
-v -0.466306 0.386360 -0.136250
-v -0.468055 0.381464 -0.035311
-v -0.450950 0.357358 -0.135180
-v -0.455484 0.349625 -0.025968
-v -0.425859 0.398485 -0.412160
-v -0.454450 0.392430 -0.287917
-v -0.416686 0.370766 -0.404924
-v -0.438576 0.364976 -0.278590
-v -0.368089 0.401568 -0.521642
-v -0.359161 0.375531 -0.513272
-v -0.297157 0.403666 -0.596314
-v -0.288606 0.376913 -0.584422
-v -0.105847 0.402057 -0.682957
-v -0.205207 0.403504 -0.649593
-v -0.105106 0.378058 -0.667741
-v -0.201735 0.377912 -0.635053
-v -0.480393 0.409301 -0.301310
-v -0.452650 0.418753 -0.431928
-v -0.390228 0.422728 -0.545312
-v -0.312241 0.424274 -0.619736
-v -0.215618 0.424967 -0.674609
-v -0.111099 0.424687 -0.705398
-v -0.599536 0.452946 -0.199652
-v -0.565749 0.452970 -0.370140
-v -0.639960 0.513162 -0.272312
-v -0.619839 0.518132 -0.424157
-v -0.523320 0.460508 -0.502629
-v -0.571177 0.525431 -0.548174
-v -0.451475 0.468040 -0.610905
-v -0.494740 0.534493 -0.657377
-v -0.362309 0.473311 -0.693480
-v -0.395924 0.543049 -0.744076
-v -0.245744 0.479214 -0.754807
-v -0.123652 0.483032 -0.786924
-v -0.265657 0.549179 -0.808178
-v -0.132838 0.553184 -0.842528
-v -0.661515 0.618840 -0.315200
-v -0.644798 0.622977 -0.442636
-v -0.595960 0.628675 -0.572599
-v -0.513801 0.635011 -0.677834
-v -0.409901 0.641868 -0.763748
-v -0.275951 0.645809 -0.830733
-v -0.136471 0.649791 -0.865248
-v -0.617504 0.863480 -0.269102
-v -0.648789 0.803643 -0.321878
-v -0.582346 0.882561 -0.430587
-v -0.621909 0.816086 -0.447824
-v -0.574742 0.819434 -0.574193
-v -0.544359 0.883943 -0.558911
-v -0.504765 0.823740 -0.679602
-v -0.483138 0.885529 -0.663189
-v -0.134353 0.831969 -0.865275
-v -0.126694 0.894325 -0.844375
-v -0.542490 0.930013 -0.409367
-v -0.506223 0.929637 -0.540696
-v -0.453039 0.926990 -0.643237
-v -0.384778 0.927942 -0.710487
-v -0.402272 0.889632 -0.739208
-v -0.258015 0.928087 -0.777295
-v -0.270124 0.894651 -0.811084
-v -0.118270 0.928204 -0.817928
-v -0.536198 1.028551 -0.419037
-v -0.547465 1.036499 -0.298053
-v -0.555135 0.924435 -0.296496
-v -0.555684 0.924913 -0.215786
-v -0.498972 1.029689 -0.542891
-v -0.441643 1.029899 -0.640491
-v -0.365095 0.934093 -0.708841
-v -0.251092 0.934623 -0.761604
-v -0.347186 1.025898 -0.709747
-v -0.249720 1.023759 -0.756375
-v -0.131933 0.935714 -0.801735
-v -0.147588 1.027527 -0.794752
-v -0.136825 1.029733 -0.811013
-v -0.541290 1.131051 -0.329770
-v -0.527345 1.130042 -0.414468
-v -0.522547 1.221382 -0.333103
-v -0.507335 1.220849 -0.419783
-v -0.483032 1.131700 -0.538807
-v -0.466574 1.222041 -0.533019
-v -0.423966 1.131922 -0.637852
-v -0.401709 1.220497 -0.629408
-v -0.499345 1.281729 -0.300617
-v -0.483534 1.282236 -0.412917
-v -0.440056 1.282233 -0.516511
-v -0.377487 1.282191 -0.611856
-v -0.322480 1.219805 -0.699842
-v -0.305615 1.282151 -0.683800
-v -0.236803 1.222103 -0.751386
-v -0.218417 1.284231 -0.727081
-v -0.135989 1.220931 -0.782210
-v -0.117495 1.283165 -0.757567
-v -0.462744 1.311686 -0.259062
-v -0.443242 1.310225 -0.388568
-v -0.404913 1.310202 -0.498226
-v -0.349724 1.310198 -0.586795
-v -0.282673 1.309843 -0.654823
-v -0.198588 1.310222 -0.700834
-v -0.106783 1.310295 -0.731039
-v -0.504737 0.925614 -0.191771
-v -0.501330 1.041592 -0.279615
-v -0.495293 1.130906 -0.311334
-v -0.486364 1.216647 -0.318528
-v -0.468907 1.289028 -0.251379
-v -0.473660 1.269780 -0.286016
-v -0.445922 0.403746 -0.027623
-v -0.505883 0.408960 -0.050173
-v -0.507862 0.810263 -0.150418
-v -0.579652 0.842662 -0.180699
-v -0.561758 0.716544 -0.140073
-v -0.495591 0.714721 -0.119267
-v -0.580665 0.890722 -0.197061
-v -0.138959 0.743105 -0.870690
-v -0.418408 0.737259 -0.769866
-v -0.278818 0.741071 -0.838910
-v -0.412484 0.828200 -0.759841
-v -0.274073 0.830747 -0.832120
-v -0.596701 0.725339 -0.578856
-v -0.516370 0.731493 -0.688300
-v -0.642316 0.719345 -0.447379
-v -0.661834 0.716038 -0.329195
-v -0.546190 0.422366 -0.110464
-v -0.520064 0.454769 -0.062988
-v -0.548213 0.459164 -0.113006
-v -0.620879 0.540437 -0.260291
-v -0.592898 0.490111 -0.196279
-v -0.638525 0.622410 -0.295973
-v -0.608579 0.835674 -0.253307
-v -0.630203 0.789048 -0.299916
-v -0.639084 0.716171 -0.308229
-v -0.553921 0.735774 -0.319053
-v -0.566206 0.782571 -0.334788
-v -0.534707 0.472766 -0.108628
-v -0.527469 0.510938 -0.261160
-v -0.545175 0.507375 -0.277553
-v -0.569095 0.515103 -0.296617
-v -0.593006 0.554095 -0.321349
-v -0.605831 0.626748 -0.341959
-v -0.585171 0.784938 -0.352159
-v -0.599099 0.764999 -0.356748
-v -0.608177 0.717896 -0.357361
-v -0.540053 0.567203 -0.095331
-v -0.471985 0.567307 -0.075478
-v -0.529242 0.562382 -0.273853
-v -0.385868 1.400122 -0.400909
-v -0.311280 1.398134 -0.549305
-v -0.251767 1.392396 -0.618851
-v -0.175834 1.395176 -0.666718
-v -0.098528 1.399139 -0.691758
-v -0.266173 1.457967 -0.524738
-v -0.310421 1.467857 -0.390880
-v -0.103505 1.534730 -0.378049
-v -0.099605 1.515760 -0.515166
-v -0.098392 1.474770 -0.620740
-v -0.196272 1.456735 -0.592215
-v -0.180286 1.497351 -0.508038
-v -0.205987 1.515010 -0.381370
-v -0.418065 1.396418 -0.086963
-v -0.344507 1.467198 -0.084766
-v -0.401971 1.392277 0.064915
-v -0.338078 1.463460 0.067784
-v -0.109455 1.537381 -0.075093
-v -0.108976 1.527873 0.075027
-v -0.230138 1.517579 -0.079762
-v -0.225309 1.511005 0.071866
-v -0.314399 1.385814 0.295828
-v -0.372752 1.383205 0.193041
-v -0.278741 1.440388 0.260842
-v -0.314098 1.453090 0.186838
-v -0.211867 1.461839 0.285578
-v -0.225744 1.402438 0.355029
-v -0.110939 1.417340 0.385419
-v -0.110084 1.478708 0.303265
-v -0.108071 1.511040 0.195934
-v -0.214860 1.493880 0.189970
-v -0.491635 1.132654 -0.106675
-v -0.465204 1.286335 -0.088443
-v -0.502190 0.964727 -0.102247
-v -0.444194 1.291131 0.083885
-v -0.480064 1.136059 0.081115
-v -0.432580 1.329079 0.074886
-v -0.450412 1.329108 -0.088832
-v -0.333440 1.292107 0.313494
-v -0.401969 1.292611 0.206764
-v -0.328881 1.326787 0.307695
-v -0.394160 1.326788 0.203723
-v -0.234143 1.294910 0.394789
-v -0.233009 1.336604 0.387698
-v -0.114571 1.344287 0.424379
-v -0.113326 1.296983 0.434097
-v -0.109254 1.540182 -0.231520
-v -0.229079 1.519875 -0.231583
-v -0.343282 1.468938 -0.231173
-v -0.417230 1.398320 -0.239037
-v -0.404840 0.573925 0.050695
-v -0.368521 0.406688 0.091378
-v -0.153096 1.129226 -0.801359
-v -0.250912 1.115393 -0.756707
-v -0.162876 1.115404 -0.786713
-v -0.328548 1.115315 -0.714309
-v -0.401698 0.161159 0.035348
-v -0.363441 0.220628 0.091202
-v -0.337860 0.157653 0.114579
-v -0.415282 0.162208 0.019281
-v -0.426462 0.177916 -0.130665
-v -0.421193 0.195600 -0.276785
-v -0.399038 0.215040 -0.405576
-v -0.349958 0.233448 -0.504833
-v -0.285763 0.249069 -0.573785
-v -0.101710 0.271338 -0.652303
-v -0.198180 0.262088 -0.622766
-v -0.436055 0.716322 0.023696
-v -0.344794 1.128248 -0.717305
-v -0.367282 1.027340 -0.714399
-v -0.255804 1.130180 -0.766157
-v -0.331589 0.254574 0.135128
-v -0.492501 0.970961 0.080783
-v -0.455617 0.802996 0.018481
-v -0.487545 0.819099 0.080478
-v -0.320307 0.205128 0.145554
-v -0.311484 0.156788 0.114977
-v -0.377051 0.160724 0.006376
-v -0.382800 0.574088 0.054618
-v -0.343597 0.404088 0.094562
-v -0.303326 0.254948 0.136872
-v -0.413219 0.715576 0.027679
-v -0.292115 0.205551 0.145640
-v -0.432841 0.801786 0.021187
-v -0.432745 0.818974 0.083847
-v -0.324782 0.174236 0.135367
-v -0.295638 0.172621 0.137148
-v -0.322960 0.231834 -0.482911
-v -0.365646 0.212881 -0.392210
-v -0.264730 0.247261 -0.545574
-v -0.094875 0.269410 -0.617867
-v -0.386129 0.193272 -0.273976
-v -0.391105 0.175399 -0.131456
-v -0.185617 0.260371 -0.590118
-v -0.445221 1.289194 0.217243
-v -0.467901 1.284465 0.089812
-v -0.375291 1.292107 0.352815
-v -0.263750 1.294910 0.452360
-v -0.127368 1.296983 0.489311
-v -0.512539 0.970340 0.083013
-v -0.500087 1.137085 0.083727
-v -0.366319 0.181806 0.035711
-v -0.368809 0.228761 0.029032
-v -0.374571 0.365985 -0.367508
-v -0.336980 0.385292 -0.460572
-v -0.282361 0.399908 -0.526535
-v -0.104426 0.424403 -0.610495
-v -0.389544 0.345010 -0.250336
-v -0.385031 0.311832 -0.044641
-v -0.200756 0.413689 -0.577795
-v -0.378612 0.402151 -0.029888
-v -0.352669 0.408344 -0.049001
-v -0.507598 0.816962 0.082356
-v -0.308468 0.200412 0.127973
-v -0.314214 0.247332 0.123412
-v -0.353121 0.362843 -0.247197
-v -0.352383 0.438381 -0.235280
-v -0.335573 0.384386 -0.350114
-v -0.335127 0.460809 -0.336618
-v -0.351251 0.330560 -0.061170
-v -0.094819 0.437749 -0.574202
-v -0.095767 0.514240 -0.569918
-v -0.180289 0.427513 -0.539896
-v -0.181719 0.504288 -0.533168
-v -0.250278 0.414870 -0.491564
-v -0.250913 0.491717 -0.481709
-v -0.303258 0.400518 -0.429420
-v -0.303037 0.475351 -0.416525
-v -0.307475 0.243242 0.115479
-v -0.360379 0.226428 0.028026
-v -0.303706 0.202899 0.120956
-v -0.356610 0.186085 0.033502
-v 0.045195 0.106111 0.726884
-v 0.000000 0.124316 0.731242
-v -0.045195 0.106111 0.726884
-v -0.063915 0.062158 0.716360
-v -0.045195 0.018206 0.705836
-v 0.000000 0.000000 0.701477
-v 0.045195 0.018206 0.705836
-v 0.063915 0.062158 0.716360
-v 0.039704 0.095512 0.747571
-v 0.000000 0.111505 0.751401
-v -0.039704 0.095512 0.747571
-v -0.056150 0.056899 0.738326
-v -0.039704 0.018286 0.729080
-v 0.000000 0.002292 0.725251
-v 0.039704 0.018286 0.729080
-v 0.056150 0.056899 0.738326
-v 0.024381 0.119402 0.730066
-v -0.024381 0.119402 0.730066
-v -0.058861 0.085869 0.722037
-v -0.058861 0.038447 0.710683
-v -0.024381 0.004915 0.702654
-v 0.024381 0.004915 0.702654
-v 0.058861 0.038447 0.710683
-v 0.058861 0.085869 0.722037
-v 0.021419 0.107188 0.750366
-v -0.021419 0.107188 0.750366
-v -0.051710 0.077729 0.743313
-v -0.051710 0.036068 0.733338
-v -0.021419 0.006610 0.726285
-v 0.021419 0.006610 0.726285
-v 0.051710 0.036068 0.733338
-v 0.051710 0.077729 0.743313
-v 0.000000 0.058196 0.733203
-v -0.037584 0.095022 0.740514
-v 0.000000 0.110160 0.744144
-v 0.037584 0.095022 0.740514
-v 0.053152 0.058473 0.731753
-v 0.037584 0.021924 0.722991
-v 0.000000 0.006786 0.719362
-v -0.037584 0.021924 0.722991
-v -0.053152 0.058473 0.731753
-v -0.058981 0.107430 0.632200
-v -0.064044 0.083671 0.626511
-v -0.058981 0.059912 0.620822
-v -0.045286 0.039630 0.615966
-v -0.024431 0.026312 0.612777
-v 0.000000 0.021387 0.611598
-v 0.024431 0.026312 0.612777
-v 0.045286 0.039630 0.615966
-v 0.058981 0.059912 0.620822
-v 0.064044 0.083671 0.626511
-v 0.058981 0.107430 0.632200
-v 0.045286 0.127712 0.637056
-v 0.024431 0.141031 0.640245
-v 0.000000 0.145955 0.641424
-v -0.024431 0.141031 0.640245
-v -0.045286 0.127712 0.637056
-v -0.015701 0.191440 0.662358
-v -0.029510 0.208600 0.659555
-v -0.047927 0.206062 0.647498
-v -0.052534 0.186364 0.638244
-v -0.038724 0.169204 0.641047
-v -0.020307 0.171742 0.653104
-v -0.027832 0.180575 0.695644
-v -0.041393 0.197977 0.692247
-v -0.059481 0.195683 0.679370
-v -0.064010 0.175987 0.669892
-v -0.050449 0.158585 0.673290
-v -0.032361 0.160879 0.686166
-v -0.016500 0.186147 0.678574
-v -0.021067 0.166450 0.669208
-v -0.039320 0.164034 0.656742
-v -0.053005 0.181315 0.653641
-v -0.048437 0.201012 0.663007
-v -0.030185 0.203428 0.675474
-v 0.062761 0.192783 0.661866
-v 0.048977 0.209954 0.658914
-v 0.030654 0.207413 0.646686
-v 0.026115 0.187701 0.637409
-v 0.039898 0.170530 0.640361
-v 0.058221 0.173071 0.652589
-v 0.050406 0.181970 0.694964
-v 0.036870 0.199368 0.691450
-v 0.018871 0.197059 0.678451
-v 0.014409 0.177351 0.668966
-v 0.027946 0.159954 0.672480
-v 0.045944 0.162263 0.685479
-v 0.061352 0.187275 0.678726
-v 0.056851 0.167565 0.669345
-v 0.038690 0.165140 0.656731
-v 0.025031 0.182424 0.653499
-v 0.029532 0.202134 0.662880
-v 0.047692 0.204559 0.675494
-v -0.072228 0.298449 0.698603
-v -0.072228 0.312687 0.653319
-v 0.080729 0.291987 0.704095
-v 0.080684 0.308771 0.651751
-v 0.061209 0.308457 0.651655
-v 0.061241 0.294422 0.697845
-v 0.060283 0.298627 0.698038
-v 0.060280 0.312685 0.653315
-v 0.080683 0.221337 0.651028
-v 0.080707 0.215851 0.672265
-v -0.072325 0.216169 0.672110
-v -0.072266 0.223066 0.647211
-v -0.063682 0.215894 0.672214
-v -0.063688 0.294407 0.697837
-v -0.063340 0.213876 0.679535
-v 0.080728 0.213876 0.679535
-v -0.063339 0.291987 0.704095
-v -0.072457 0.114034 0.635819
-v -0.072393 0.151119 0.651150
-v 0.080686 0.151134 0.651099
-v 0.080661 0.114068 0.635710
-v -0.072319 0.132879 0.676343
-v 0.080696 0.132879 0.676343
-v -0.072335 0.116302 0.671131
-v 0.080689 0.116302 0.671131
-v 0.022267 0.289779 0.700695
-v 0.020190 0.288298 0.705372
-v 0.009350 0.287210 0.708857
-v -0.001534 0.288308 0.705386
-v -0.003563 0.289779 0.700695
-v 0.022286 0.217834 0.678053
-v 0.020253 0.216353 0.682731
-v 0.009369 0.215265 0.686215
-v -0.001471 0.216363 0.682746
-v -0.003543 0.217834 0.678053
-v 0.009362 0.289776 0.700572
-v 0.009362 0.217862 0.677966
-v 0.078299 0.289779 0.700653
-v 0.075566 0.288303 0.705323
-v 0.059365 0.285897 0.713014
-v 0.042025 0.285897 0.713014
-v 0.025794 0.288314 0.705339
-v 0.023084 0.289779 0.700653
-v 0.078319 0.217827 0.678010
-v 0.075608 0.216351 0.682679
-v 0.059385 0.213945 0.690371
-v 0.042044 0.213945 0.690371
-v 0.025836 0.216363 0.682696
-v 0.023104 0.217827 0.678010
-v 0.050702 0.289857 0.700313
-v 0.050702 0.217906 0.677826
-v -0.004096 0.289777 0.700653
-v -0.007634 0.288299 0.705320
-v -0.023576 0.285895 0.713014
-v -0.040917 0.285895 0.713014
-v -0.056893 0.288314 0.705340
-v -0.060404 0.289777 0.700653
-v -0.004077 0.217820 0.678008
-v -0.007587 0.216343 0.682675
-v -0.023557 0.213938 0.690368
-v -0.040897 0.213938 0.690368
-v -0.056846 0.216357 0.682695
-v -0.060384 0.217820 0.678008
-v -0.032240 0.289838 0.700374
-v -0.032240 0.217884 0.677894
-v 0.080670 0.156545 0.641776
-v -0.072379 0.158415 0.640456
-v -0.003610 0.193106 0.675959
-v -0.008306 0.190821 0.683225
-v -0.044264 0.190821 0.683225
-v -0.048118 0.191864 0.679908
-v -0.003610 0.188319 0.674454
-v -0.008306 0.186035 0.681720
-v -0.044264 0.186035 0.681720
-v -0.048118 0.187078 0.678403
-v -0.048118 0.196367 0.665589
-v -0.003610 0.196367 0.665589
-v -0.048118 0.191580 0.664084
-v -0.003610 0.191580 0.664084
-v 0.070219 0.192991 0.676324
-v 0.065411 0.190820 0.683228
-v 0.029630 0.190820 0.683228
-v 0.025776 0.191864 0.679908
-v 0.070219 0.188205 0.674820
-v 0.065411 0.186034 0.681723
-v 0.029630 0.186034 0.681723
-v 0.025776 0.187078 0.678403
-v 0.025776 0.196367 0.665589
-v 0.070219 0.196367 0.665589
-v 0.025776 0.191580 0.664084
-v 0.070219 0.191580 0.664084
-v 0.073479 0.200727 0.682695
-v 0.068774 0.198767 0.688927
-v 0.030021 0.198767 0.688927
-v 0.026085 0.200727 0.682695
-v 0.073479 0.195940 0.681190
-v 0.068774 0.193981 0.687422
-v 0.030021 0.193981 0.687422
-v 0.026085 0.195940 0.681190
-v 0.026085 0.205229 0.668375
-v 0.073479 0.205229 0.668375
-v 0.026085 0.200443 0.666870
-v 0.073479 0.200443 0.666870
-v 0.070043 0.209345 0.685404
-v 0.065521 0.207384 0.691637
-v 0.030018 0.207384 0.691637
-v 0.026163 0.209345 0.685404
-v 0.070043 0.204558 0.683899
-v 0.065521 0.202598 0.690132
-v 0.030018 0.202598 0.690132
-v 0.026163 0.204558 0.683899
-v 0.026163 0.213847 0.671085
-v 0.070043 0.213847 0.671085
-v 0.026163 0.209061 0.669580
-v 0.070043 0.209061 0.669580
-v 0.013475 0.209399 0.685231
-v 0.008838 0.207365 0.691699
-v -0.044948 0.207365 0.691699
-v -0.068126 0.208904 0.686807
-v 0.013475 0.204613 0.683726
-v 0.008838 0.202579 0.690194
-v -0.044948 0.202579 0.690194
-v -0.068126 0.204117 0.685302
-v -0.069379 0.213847 0.671085
-v 0.013475 0.213847 0.671085
-v -0.069379 0.209061 0.669580
-v 0.013475 0.209061 0.669580
-v 0.003782 0.200633 0.682665
-v -0.000640 0.198669 0.688913
-v -0.044217 0.198669 0.688913
-v -0.047822 0.200633 0.682665
-v 0.003782 0.195847 0.681160
-v -0.000640 0.193882 0.687408
-v -0.044217 0.193882 0.687408
-v -0.047822 0.195847 0.681160
-v -0.047822 0.205136 0.668346
-v 0.003782 0.205136 0.668346
-v -0.047822 0.200349 0.666841
-v 0.003782 0.200349 0.666841
-v -0.071989 0.226043 0.675139
-v 0.080363 0.226036 0.675164
-v -0.050269 0.217877 0.701110
-v -0.053928 0.219802 0.694990
-v 0.080363 0.220942 0.691363
-v 0.006891 0.221067 0.690966
-v 0.012066 0.221067 0.690966
-v 0.071721 0.217877 0.701110
-v -0.006867 0.217877 0.701110
-v 0.025176 0.217877 0.701110
-v -0.071989 0.221257 0.673634
-v 0.080363 0.221249 0.673659
-v -0.050269 0.213091 0.699605
-v -0.053928 0.215015 0.693485
-v 0.080363 0.216155 0.689858
-v 0.006891 0.216281 0.689461
-v 0.012066 0.216281 0.689461
-v 0.071721 0.213091 0.699605
-v -0.006867 0.213091 0.699605
-v 0.025176 0.213091 0.699605
-v -0.064956 0.215367 0.692366
-v -0.064956 0.220153 0.693871
-v 0.009469 0.226039 0.675153
-v 0.009469 0.221253 0.673648
-v -0.071989 0.236253 0.678350
-v 0.080363 0.236245 0.678374
-v -0.050269 0.228086 0.704320
-v -0.053928 0.230011 0.698200
-v 0.080363 0.231151 0.694573
-v 0.006891 0.231276 0.694176
-v 0.012066 0.231276 0.694176
-v 0.071721 0.228086 0.704320
-v -0.006867 0.228086 0.704320
-v 0.025176 0.228086 0.704320
-v -0.071989 0.231466 0.676845
-v 0.080363 0.231459 0.676869
-v -0.050269 0.223300 0.702815
-v -0.053928 0.225225 0.696695
-v 0.080363 0.226365 0.693068
-v 0.006891 0.226490 0.692671
-v 0.012066 0.226490 0.692671
-v 0.071721 0.223300 0.702815
-v -0.006867 0.223300 0.702815
-v 0.025176 0.223300 0.702815
-v -0.064956 0.225576 0.695576
-v -0.064956 0.230363 0.697081
-v 0.009469 0.236248 0.678363
-v 0.009469 0.231462 0.676858
-v -0.046746 0.238940 0.707881
-v -0.049545 0.240909 0.701620
-v 0.070235 0.240909 0.701620
-v 0.065421 0.238940 0.707881
-v -0.008537 0.238940 0.707881
-v -0.004021 0.240909 0.701620
-v 0.026278 0.238940 0.707881
-v 0.022269 0.240909 0.701620
-v -0.046746 0.234154 0.706376
-v -0.049545 0.236122 0.700115
-v 0.070235 0.236122 0.700115
-v 0.065421 0.234154 0.706376
-v -0.008537 0.234154 0.706376
-v -0.004021 0.236122 0.700115
-v 0.026278 0.234154 0.706376
-v 0.022269 0.236122 0.700115
-v -0.049545 0.248509 0.677449
-v -0.049545 0.243723 0.675944
-v -0.004021 0.248509 0.677449
-v -0.004021 0.243723 0.675944
-v 0.022269 0.248509 0.677449
-v 0.070235 0.248509 0.677449
-v 0.022269 0.243723 0.675944
-v 0.070235 0.243723 0.675944
-v -0.071989 0.257502 0.685031
-v 0.080363 0.257495 0.685055
-v -0.050269 0.249336 0.711002
-v -0.053928 0.251261 0.704882
-v 0.080363 0.252401 0.701255
-v 0.006891 0.252526 0.700857
-v 0.012066 0.252526 0.700857
-v 0.071721 0.249336 0.711002
-v -0.006867 0.249336 0.711002
-v 0.025176 0.249336 0.711002
-v -0.071989 0.252716 0.683526
-v 0.080363 0.252708 0.683550
-v -0.050269 0.244550 0.709497
-v -0.053928 0.246474 0.703376
-v 0.080363 0.247615 0.699750
-v 0.006891 0.247740 0.699353
-v 0.012066 0.247740 0.699353
-v 0.071721 0.244550 0.709497
-v -0.006867 0.244550 0.709497
-v 0.025176 0.244550 0.709497
-v -0.064956 0.246826 0.702258
-v -0.064956 0.251613 0.703763
-v 0.009469 0.257498 0.685045
-v 0.009469 0.252712 0.683540
-v -0.046746 0.260085 0.714530
-v -0.049545 0.262054 0.708269
-v 0.070235 0.262054 0.708269
-v 0.065421 0.260085 0.714530
-v -0.008537 0.260085 0.714530
-v -0.004021 0.262054 0.708269
-v 0.026278 0.260085 0.714530
-v 0.022269 0.262054 0.708269
-v -0.046746 0.255299 0.713025
-v -0.049545 0.257267 0.706764
-v 0.070235 0.257267 0.706764
-v 0.065421 0.255299 0.713025
-v -0.008537 0.255299 0.713025
-v -0.004021 0.257267 0.706764
-v 0.026278 0.255299 0.713025
-v 0.022269 0.257267 0.706764
-v -0.049545 0.269654 0.684097
-v -0.049545 0.264868 0.682592
-v -0.004021 0.269654 0.684097
-v -0.004021 0.264868 0.682593
-v 0.022269 0.269654 0.684097
-v 0.070235 0.269654 0.684097
-v 0.022269 0.264868 0.682593
-v 0.070235 0.264868 0.682593
-v -0.071989 0.278810 0.691731
-v 0.080363 0.278803 0.691755
-v -0.050269 0.270644 0.717702
-v -0.053928 0.272569 0.711581
-v 0.080363 0.273709 0.707955
-v 0.006891 0.273834 0.707557
-v 0.012066 0.273834 0.707557
-v 0.071721 0.270644 0.717702
-v -0.006867 0.270644 0.717702
-v 0.025176 0.270644 0.717702
-v -0.071989 0.274024 0.690226
-v 0.080363 0.274017 0.690250
-v -0.050269 0.265858 0.716197
-v -0.053928 0.267782 0.710076
-v 0.080363 0.268923 0.706450
-v 0.006891 0.269048 0.706052
-v 0.012066 0.269048 0.706052
-v 0.071721 0.265858 0.716197
-v -0.006867 0.265858 0.716197
-v 0.025176 0.265858 0.716197
-v -0.064956 0.268134 0.708958
-v -0.064956 0.272921 0.710463
-v 0.009469 0.278806 0.691744
-v 0.009469 0.274020 0.690240
-v -0.062901 0.287276 0.701624
-v 0.080363 0.287266 0.701656
-v -0.044962 0.281179 0.721014
-v -0.056345 0.283658 0.713129
-v 0.080363 0.284244 0.711267
-v 0.006891 0.284369 0.710870
-v 0.012066 0.284369 0.710870
-v 0.071721 0.281179 0.721014
-v -0.006867 0.281179 0.721014
-v 0.025176 0.281179 0.721014
-v -0.062901 0.282490 0.700119
-v 0.080363 0.282479 0.700151
-v -0.044962 0.276393 0.719509
-v -0.056345 0.278872 0.711624
-v 0.080363 0.279457 0.709762
-v 0.006891 0.279582 0.709365
-v 0.012066 0.279582 0.709365
-v 0.071721 0.276393 0.719509
-v -0.006867 0.276393 0.719509
-v 0.025176 0.276393 0.719509
-v 0.009469 0.287271 0.701640
-v 0.009469 0.282485 0.700135
-v -0.009010 0.218793 0.692928
-v -0.012796 0.218793 0.692928
-v -0.012796 0.216921 0.698879
-v -0.009010 0.216921 0.698879
-v -0.009010 0.280736 0.712405
-v -0.012796 0.280736 0.712405
-v -0.012796 0.278865 0.718356
-v -0.009010 0.278865 0.718356
-v -0.041859 0.218793 0.692928
-v -0.045645 0.218793 0.692928
-v -0.045645 0.216921 0.698879
-v -0.041859 0.216921 0.698879
-v -0.041729 0.280736 0.712405
-v -0.045515 0.280736 0.712405
-v -0.045515 0.278865 0.718356
-v -0.041729 0.278865 0.718356
-v 0.030300 0.218793 0.692928
-v 0.026514 0.218793 0.692928
-v 0.026514 0.216921 0.698879
-v 0.030300 0.216921 0.698879
-v 0.030300 0.280736 0.712405
-v 0.026514 0.280736 0.712405
-v 0.026514 0.278865 0.718356
-v 0.030300 0.278865 0.718356
-v -0.071896 0.169696 0.656630
-v 0.080374 0.169696 0.656630
-v -0.041175 0.161282 0.683388
-v -0.044093 0.163812 0.675340
-v -0.065337 0.164090 0.674456
-v 0.080374 0.164335 0.673676
-v -0.071896 0.167221 0.664498
-v 0.006576 0.165674 0.669420
-v 0.016885 0.164042 0.674608
-v 0.012158 0.165674 0.669420
-v 0.074157 0.161282 0.683388
-v -0.001016 0.161282 0.683388
-v 0.040546 0.161282 0.683388
-v 0.036692 0.164042 0.674608
-v -0.071896 0.166290 0.655559
-v 0.080374 0.166290 0.655559
-v -0.041175 0.157876 0.682317
-v -0.044093 0.160406 0.674269
-v -0.065337 0.160684 0.673385
-v 0.080374 0.160930 0.672605
-v -0.071896 0.163816 0.663427
-v 0.006576 0.162268 0.668349
-v 0.016885 0.160637 0.673537
-v 0.012158 0.162268 0.668349
-v 0.074157 0.157876 0.682317
-v -0.001016 0.157876 0.682317
-v 0.040546 0.157876 0.682317
-v 0.036692 0.160637 0.673537
-v -0.018960 0.166290 0.655559
-v -0.018960 0.157876 0.682317
-v -0.020689 0.161282 0.683388
-v -0.020689 0.169696 0.656630
-v -0.022418 0.166290 0.655559
-v -0.022418 0.157876 0.682317
-v -0.022418 0.150312 0.650535
-v -0.018960 0.150312 0.650535
-v -0.022418 0.144723 0.678182
-v -0.018960 0.144723 0.678182
-v -0.022418 0.136348 0.668404
-v -0.018960 0.136348 0.668404
-v -0.001932 0.141164 0.669311
-v 0.001157 0.141164 0.669311
-v -0.001932 0.154131 0.651407
-v 0.001157 0.154131 0.651407
-v -0.002329 0.151537 0.649529
-v 0.001554 0.151537 0.649529
-v -0.002329 0.138571 0.667433
-v 0.001554 0.138571 0.667433
-v 0.025744 0.138814 0.672600
-v 0.030625 0.138814 0.672600
-v 0.025744 0.154152 0.651422
-v 0.030625 0.154152 0.651422
-v 0.024876 0.151537 0.649529
-v 0.031493 0.151537 0.649529
-v 0.024876 0.136200 0.670706
-v 0.031493 0.136200 0.670706
-v 0.009588 0.169696 0.656630
-v 0.009588 0.166290 0.655559
-v 0.047294 0.186886 0.698846
-v 0.041074 0.195470 0.697412
-v 0.030340 0.201216 0.691923
-v 0.021653 0.200439 0.685840
-v 0.012342 0.195382 0.677847
-v 0.008582 0.184456 0.671713
-v 0.012375 0.171698 0.670120
-v 0.031651 0.156278 0.678265
-v 0.040438 0.156864 0.684355
-v 0.049307 0.162929 0.692371
-v 0.051639 0.174611 0.697782
-v 0.035176 0.210072 0.695854
-v 0.043394 0.205703 0.700015
-v 0.027425 0.151596 0.672042
-v 0.020347 0.155651 0.668430
-v 0.019039 0.162676 0.671688
-v 0.049940 0.188159 0.694957
-v 0.043719 0.196743 0.693523
-v 0.032986 0.202488 0.688034
-v 0.024299 0.201712 0.681951
-v 0.014988 0.196655 0.673959
-v 0.011227 0.185729 0.667824
-v 0.015021 0.172971 0.666231
-v 0.034297 0.157551 0.674376
-v 0.043083 0.158137 0.680467
-v 0.051953 0.164202 0.688482
-v 0.054285 0.175883 0.693893
-v 0.037822 0.211345 0.691965
-v 0.046040 0.206976 0.696126
-v 0.030071 0.152869 0.668153
-v 0.022993 0.156924 0.664540
-v 0.021685 0.163949 0.667799
-v -0.030589 0.185510 0.698391
-v -0.036953 0.193985 0.697059
-v -0.047578 0.199819 0.691761
-v -0.056218 0.199532 0.685749
-v -0.065593 0.194724 0.677677
-v -0.069523 0.183933 0.671410
-v -0.066057 0.171077 0.669849
-v -0.047354 0.155111 0.677853
-v -0.038339 0.155613 0.684136
-v -0.029378 0.161384 0.692033
-v -0.026584 0.173134 0.697278
-v -0.042245 0.208357 0.695999
-v -0.034512 0.204028 0.699950
-v -0.051642 0.150181 0.672108
-v -0.058865 0.154641 0.668233
-v -0.059836 0.161761 0.671685
-v -0.027918 0.186726 0.694501
-v -0.034282 0.195201 0.693168
-v -0.044908 0.201035 0.687870
-v -0.053548 0.200748 0.681858
-v -0.062923 0.195940 0.673788
-v -0.066853 0.185148 0.667520
-v -0.063387 0.172293 0.665958
-v -0.044683 0.156327 0.673962
-v -0.035669 0.156828 0.680246
-v -0.026707 0.162600 0.688143
-v -0.023913 0.174350 0.693387
-v -0.039575 0.209573 0.692108
-v -0.031842 0.205244 0.696060
-v -0.048971 0.151397 0.668218
-v -0.056194 0.155857 0.664342
-v -0.057166 0.162976 0.667795
-v 0.000000 0.103257 0.749016
-v -0.018148 0.099602 0.748141
-v -0.033639 0.089706 0.745772
-v -0.043814 0.074641 0.742165
-v -0.047572 0.056992 0.737939
-v -0.043814 0.039343 0.733713
-v -0.033639 0.024278 0.730107
-v -0.018148 0.014383 0.727737
-v 0.000000 0.010728 0.726862
-v 0.018148 0.014383 0.727737
-v 0.033639 0.024278 0.730107
-v 0.043814 0.039343 0.733713
-v 0.047572 0.056992 0.737939
-v 0.043814 0.074641 0.742165
-v 0.033639 0.089706 0.745772
-v 0.018148 0.099602 0.748141
-v 0.000000 0.104790 0.743713
-v -0.018246 0.101117 0.742833
-v -0.033820 0.091167 0.740451
-v -0.044051 0.076021 0.736825
-v -0.047828 0.058277 0.732576
-v -0.044051 0.040532 0.728327
-v -0.033820 0.025386 0.724702
-v -0.018246 0.015437 0.722319
-v 0.000000 0.011763 0.721439
-v 0.018246 0.015437 0.722319
-v 0.033820 0.025386 0.724702
-v 0.044051 0.040532 0.728327
-v 0.047828 0.058277 0.732576
-v 0.044051 0.076021 0.736825
-v 0.033820 0.091167 0.740451
-v 0.018246 0.101117 0.742833
-# 1902 vertices
-
-vn 0.874367 0.142896 0.463750
-vn 0.839359 0.129826 0.527846
-vn 0.769638 0.335020 0.543525
-vn 0.769638 0.335020 0.543525
-vn 0.839359 0.129826 0.527846
-vn 0.750340 0.293327 0.592410
-vn 0.116849 0.176924 0.977264
-vn 0.301224 0.372748 0.877680
-vn 0.000000 0.212854 0.977084
-vn 0.000000 0.212854 0.977084
-vn 0.301224 0.372748 0.877680
-vn -0.000000 0.428954 0.903327
-vn 0.000000 0.212854 0.977084
-vn 0.000001 0.613691 0.789546
-vn 0.116849 0.176924 0.977264
-vn 0.116849 0.176924 0.977264
-vn 0.000001 0.613691 0.789546
-vn 0.275018 0.577380 0.768764
-vn 0.872814 -0.299764 0.385146
-vn 0.876645 -0.220403 0.427686
-vn 0.897861 -0.284137 0.336321
-vn 0.897861 -0.284137 0.336321
-vn 0.876645 -0.220403 0.427686
-vn 0.879104 -0.123736 0.460289
-vn 0.839359 0.129826 0.527846
-vn 0.878718 0.118805 0.462320
-vn 0.725880 0.010497 0.687741
-vn 0.736370 -0.009801 0.676508
-vn 0.667492 -0.004836 0.744601
-vn 0.650783 0.155178 0.743237
-vn 0.650783 0.155178 0.743237
-vn 0.667492 -0.004836 0.744601
-vn 0.558848 0.112880 0.821552
-vn 0.865779 -0.017836 0.500109
-vn 0.878718 0.118805 0.462320
-vn 0.874367 0.142896 0.463750
-vn 0.874367 0.142896 0.463750
-vn 0.878718 0.118805 0.462320
-vn 0.839359 0.129826 0.527846
-vn 0.872814 -0.299764 0.385146
-vn 0.667492 -0.004836 0.744601
-vn 0.868708 -0.239350 0.433656
-vn 0.868708 -0.239350 0.433656
-vn 0.667492 -0.004836 0.744601
-vn 0.736370 -0.009801 0.676508
-vn 0.872814 -0.299764 0.385146
-vn 0.868708 -0.239350 0.433656
-vn 0.876645 -0.220403 0.427686
-vn 0.876645 -0.220403 0.427686
-vn 0.868708 -0.239350 0.433656
-vn 0.899836 -0.220831 0.376203
-vn 0.563981 -0.086031 0.821294
-vn 0.506636 -0.080127 0.858428
-vn 0.423336 0.053240 0.904407
-vn 0.423336 0.053240 0.904407
-vn 0.506636 -0.080127 0.858428
-vn 0.328463 0.080054 0.941118
-vn 0.506636 -0.080127 0.858428
-vn 0.345092 -0.069681 0.935979
-vn 0.328463 0.080054 0.941118
-vn 0.328463 0.080054 0.941118
-vn 0.345092 -0.069681 0.935979
-vn 0.069472 0.062895 0.995599
-vn -0.102947 -0.125139 0.986784
-vn 0.094891 -0.123581 0.987787
-vn -0.231638 -0.421064 0.876954
-vn -0.231638 -0.421064 0.876954
-vn 0.094891 -0.123581 0.987787
-vn 0.160787 -0.314713 0.935469
-vn 0.267558 -0.406754 0.873478
-vn -0.072677 -0.707963 0.702500
-vn 0.160787 -0.314713 0.935469
-vn 0.160787 -0.314713 0.935469
-vn -0.072677 -0.707963 0.702500
-vn -0.231638 -0.421064 0.876954
-vn 0.298116 -0.370998 0.879481
-vn 0.138482 -0.732184 0.666881
-vn 0.328776 -0.398405 0.856259
-vn 0.328776 -0.398405 0.856259
-vn 0.138482 -0.732184 0.666881
-vn 0.086428 -0.753305 0.651967
-vn 0.175494 -0.359003 0.916689
-vn 0.078068 -0.775295 0.626756
-vn 0.298116 -0.370998 0.879481
-vn 0.298116 -0.370998 0.879481
-vn 0.078068 -0.775295 0.626756
-vn 0.138482 -0.732184 0.666881
-vn 0.000000 -0.331736 0.943372
-vn -0.000000 -0.773117 0.634263
-vn 0.175494 -0.359003 0.916689
-vn 0.175494 -0.359003 0.916689
-vn -0.000000 -0.773117 0.634263
-vn 0.078068 -0.775295 0.626756
-vn 0.345092 -0.069681 0.935979
-vn 0.094891 -0.123581 0.987787
-vn 0.069472 0.062895 0.995599
-vn 0.069472 0.062895 0.995599
-vn 0.094891 -0.123581 0.987787
-vn -0.102947 -0.125139 0.986784
-vn 0.563981 -0.086031 0.821294
-vn 0.756897 -0.413234 0.506304
-vn 0.506636 -0.080127 0.858428
-vn 0.506636 -0.080127 0.858428
-vn 0.756897 -0.413234 0.506304
-vn 0.755253 -0.322586 0.570553
-vn 0.506636 -0.080127 0.858428
-vn 0.755253 -0.322586 0.570553
-vn 0.345092 -0.069681 0.935979
-vn 0.345092 -0.069681 0.935979
-vn 0.755253 -0.322586 0.570553
-vn 0.712959 -0.201500 0.671630
-vn 0.094891 -0.123581 0.987787
-vn 0.345092 -0.069681 0.935979
-vn 0.646546 -0.091362 0.757385
-vn 0.646546 -0.091362 0.757385
-vn 0.345092 -0.069681 0.935979
-vn 0.712959 -0.201500 0.671630
-vn 0.599920 -0.116148 0.791584
-vn 0.563981 -0.086031 0.821294
-vn 0.490474 -0.015548 0.871317
-vn 0.490474 -0.015548 0.871317
-vn 0.563981 -0.086031 0.821294
-vn 0.423336 0.053240 0.904407
-vn 0.298116 -0.370998 0.879481
-vn 0.328776 -0.398405 0.856259
-vn 0.390125 0.174215 0.904130
-vn 0.390125 0.174215 0.904130
-vn 0.328776 -0.398405 0.856259
-vn 0.491149 0.152390 0.857642
-vn 0.298116 -0.370998 0.879481
-vn 0.390125 0.174215 0.904130
-vn 0.175494 -0.359003 0.916689
-vn 0.175494 -0.359003 0.916689
-vn 0.390125 0.174215 0.904130
-vn 0.230528 0.218428 0.948233
-vn 0.000000 -0.331736 0.943372
-vn 0.175494 -0.359003 0.916689
-vn -0.000000 0.233936 0.972252
-vn -0.000000 0.233936 0.972252
-vn 0.175494 -0.359003 0.916689
-vn 0.230528 0.218428 0.948233
-vn 0.160787 -0.314713 0.935469
-vn 0.094891 -0.123581 0.987787
-vn 0.595966 0.010468 0.802942
-vn 0.595966 0.010468 0.802942
-vn 0.094891 -0.123581 0.987787
-vn 0.646546 -0.091362 0.757385
-vn 0.540100 0.136136 0.830518
-vn 0.267558 -0.406754 0.873478
-vn 0.595966 0.010468 0.802942
-vn 0.595966 0.010468 0.802942
-vn 0.267558 -0.406754 0.873478
-vn 0.160787 -0.314713 0.935469
-vn 0.513045 0.085684 0.854075
-vn 0.491149 0.152390 0.857642
-vn 0.547185 0.096805 0.831395
-vn 0.547185 0.096805 0.831395
-vn 0.491149 0.152390 0.857642
-vn 0.540100 0.136136 0.830518
-vn 0.513045 0.085684 0.854075
-vn 0.385025 0.087869 0.918714
-vn 0.491149 0.152390 0.857642
-vn 0.491149 0.152390 0.857642
-vn 0.385025 0.087869 0.918714
-vn 0.390125 0.174215 0.904130
-vn 0.385025 0.087869 0.918714
-vn 0.208441 0.117321 0.970973
-vn 0.390125 0.174215 0.904130
-vn 0.390125 0.174215 0.904130
-vn 0.208441 0.117321 0.970973
-vn 0.230528 0.218428 0.948233
-vn 0.208441 0.117321 0.970973
-vn -0.000000 0.141983 0.989869
-vn 0.230528 0.218428 0.948233
-vn 0.230528 0.218428 0.948233
-vn -0.000000 0.141983 0.989869
-vn -0.000000 0.233936 0.972252
-vn 0.129730 -0.990616 -0.043006
-vn 0.072237 -0.977132 -0.199989
-vn 0.102817 -0.994359 -0.026060
-vn 0.102817 -0.994359 -0.026060
-vn 0.072237 -0.977132 -0.199989
-vn 0.116236 -0.981237 -0.153826
-vn 0.238279 -0.957056 -0.165130
-vn 0.244426 -0.956220 -0.160935
-vn 0.252548 -0.961968 -0.104105
-vn 0.252548 -0.961968 -0.104105
-vn 0.244426 -0.956220 -0.160935
-vn 0.257569 -0.961355 -0.097239
-vn 0.252548 -0.961968 -0.104105
-vn 0.257569 -0.961355 -0.097239
-vn 0.264099 -0.963244 -0.049115
-vn 0.264099 -0.963244 -0.049115
-vn 0.257569 -0.961355 -0.097239
-vn 0.275481 -0.960323 -0.043470
-vn 0.238279 -0.957056 -0.165130
-vn 0.286498 -0.934423 -0.211594
-vn 0.244426 -0.956220 -0.160935
-vn 0.244426 -0.956220 -0.160935
-vn 0.286498 -0.934423 -0.211594
-vn 0.219139 -0.948685 -0.227980
-vn 0.793372 0.044920 0.607078
-vn 0.736370 -0.009801 0.676508
-vn 0.815337 0.129486 0.564322
-vn 0.815337 0.129486 0.564322
-vn 0.736370 -0.009801 0.676508
-vn 0.650783 0.155178 0.743237
-vn 0.856568 -0.147677 0.494451
-vn 0.868708 -0.239350 0.433656
-vn 0.793372 0.044920 0.607078
-vn 0.793372 0.044920 0.607078
-vn 0.868708 -0.239350 0.433656
-vn 0.736370 -0.009801 0.676508
-vn 0.000000 0.852896 0.522081
-vn -0.000000 0.428954 0.903327
-vn 0.440421 0.756675 0.483190
-vn 0.440421 0.756675 0.483190
-vn -0.000000 0.428954 0.903327
-vn 0.301224 0.372748 0.877680
-vn 0.693408 0.534699 0.482993
-vn 0.436523 0.194338 0.878454
-vn 0.746743 0.367139 0.554603
-vn 0.746743 0.367139 0.554603
-vn 0.436523 0.194338 0.878454
-vn 0.577927 0.320953 0.750326
-vn 0.839359 0.129826 0.527846
-vn 0.804035 0.222201 0.551501
-vn 0.750340 0.293327 0.592410
-vn 0.750340 0.293327 0.592410
-vn 0.804035 0.222201 0.551501
-vn 0.795050 0.365669 0.483923
-vn 0.804035 0.222201 0.551501
-vn 0.725880 0.010497 0.687741
-vn 0.637792 0.094825 0.764349
-vn 0.725880 0.010497 0.687741
-vn 0.804035 0.222201 0.551501
-vn 0.839359 0.129826 0.527846
-vn 0.815337 0.129486 0.564322
-vn 0.650783 0.155178 0.743237
-vn 0.586426 0.081490 0.805893
-vn 0.586426 0.081490 0.805893
-vn 0.650783 0.155178 0.743237
-vn 0.583297 0.099180 0.806181
-vn 0.423336 0.053240 0.904407
-vn 0.328463 0.080054 0.941118
-vn 0.396273 0.237589 0.886859
-vn 0.396273 0.237589 0.886859
-vn 0.328463 0.080054 0.941118
-vn 0.332949 0.174518 0.926654
-vn 0.328463 0.080054 0.941118
-vn 0.069472 0.062895 0.995599
-vn 0.332949 0.174518 0.926654
-vn 0.332949 0.174518 0.926654
-vn 0.069472 0.062895 0.995599
-vn 0.176996 0.117972 0.977116
-vn -0.102947 -0.125139 0.986784
-vn -0.231638 -0.421064 0.876954
-vn 0.156160 -0.047093 0.986609
-vn -0.072677 -0.707963 0.702500
-vn 0.077064 -0.547430 0.833296
-vn -0.231638 -0.421064 0.876954
-vn -0.231638 -0.421064 0.876954
-vn 0.077064 -0.547430 0.833296
-vn -0.054624 -0.259423 0.964218
-vn 0.138482 -0.732184 0.666881
-vn 0.247673 -0.520936 0.816874
-vn 0.086428 -0.753305 0.651967
-vn 0.086428 -0.753305 0.651967
-vn 0.247673 -0.520936 0.816874
-vn 0.212866 -0.594441 0.775453
-vn 0.078068 -0.775295 0.626756
-vn 0.142005 -0.600231 0.787120
-vn 0.138482 -0.732184 0.666881
-vn 0.138482 -0.732184 0.666881
-vn 0.142005 -0.600231 0.787120
-vn 0.247673 -0.520936 0.816874
-vn -0.000000 -0.773117 0.634263
-vn -0.000000 -0.616413 0.787423
-vn 0.078068 -0.775295 0.626756
-vn 0.078068 -0.775295 0.626756
-vn -0.000000 -0.616413 0.787423
-vn 0.142005 -0.600231 0.787120
-vn 0.069472 0.062895 0.995599
-vn -0.102947 -0.125139 0.986784
-vn 0.176996 0.117972 0.977116
-vn 0.176996 0.117972 0.977116
-vn -0.102947 -0.125139 0.986784
-vn 0.156160 -0.047093 0.986609
-vn 0.490474 -0.015548 0.871317
-vn 0.423336 0.053240 0.904407
-vn 0.465482 0.198170 0.862586
-vn 0.465482 0.198170 0.862586
-vn 0.423336 0.053240 0.904407
-vn 0.396273 0.237589 0.886859
-vn 0.650783 0.155178 0.743237
-vn 0.558848 0.112880 0.821552
-vn 0.583297 0.099180 0.806181
-vn 0.558848 0.112880 0.821552
-vn 0.508399 -0.001748 0.861120
-vn 0.583297 0.099180 0.806181
-vn 0.583297 0.099180 0.806181
-vn 0.508399 -0.001748 0.861120
-vn 0.524770 0.165762 0.834949
-vn -0.231638 -0.421064 0.876954
-vn -0.054624 -0.259423 0.964218
-vn 0.156160 -0.047093 0.986609
-vn 0.156160 -0.047093 0.986609
-vn -0.054624 -0.259423 0.964218
-vn -0.223353 -0.078074 0.971606
-vn 0.176996 0.117972 0.977116
-vn 0.156160 -0.047093 0.986609
-vn -0.116952 0.164913 0.979350
-vn -0.116952 0.164913 0.979350
-vn 0.156160 -0.047093 0.986609
-vn -0.223353 -0.078074 0.971606
-vn 0.332949 0.174518 0.926654
-vn 0.176996 0.117972 0.977116
-vn 0.235208 0.242647 0.941169
-vn 0.235208 0.242647 0.941169
-vn 0.176996 0.117972 0.977116
-vn -0.116952 0.164913 0.979350
-vn 0.396273 0.237589 0.886859
-vn 0.332949 0.174518 0.926654
-vn 0.250798 0.356808 0.899882
-vn 0.250798 0.356808 0.899882
-vn 0.332949 0.174518 0.926654
-vn 0.235208 0.242647 0.941169
-vn 0.465482 0.198170 0.862586
-vn 0.396273 0.237589 0.886859
-vn 0.327185 0.359445 0.873927
-vn 0.327185 0.359445 0.873927
-vn 0.396273 0.237589 0.886859
-vn 0.250798 0.356808 0.899882
-vn 0.375740 0.369738 0.849772
-vn 0.476121 0.310210 0.822848
-vn 0.524770 0.165762 0.834949
-vn 0.524770 0.165762 0.834949
-vn 0.476121 0.310210 0.822848
-vn 0.583297 0.099180 0.806181
-vn 0.586426 0.081490 0.805893
-vn 0.583297 0.099180 0.806181
-vn 0.578466 0.274019 0.768304
-vn 0.578466 0.274019 0.768304
-vn 0.583297 0.099180 0.806181
-vn 0.476121 0.310210 0.822848
-vn 0.637792 0.094825 0.764349
-vn 0.701508 0.141475 0.698478
-vn 0.804035 0.222201 0.551501
-vn 0.804035 0.222201 0.551501
-vn 0.701508 0.141475 0.698478
-vn 0.693111 0.218075 0.687052
-vn 0.795050 0.365669 0.483923
-vn 0.804035 0.222201 0.551501
-vn 0.692277 0.290502 0.660576
-vn 0.692277 0.290502 0.660576
-vn 0.804035 0.222201 0.551501
-vn 0.693111 0.218075 0.687052
-vn 0.746743 0.367139 0.554603
-vn 0.795050 0.365669 0.483923
-vn 0.665432 0.371470 0.647465
-vn 0.665432 0.371470 0.647465
-vn 0.795050 0.365669 0.483923
-vn 0.692277 0.290502 0.660576
-vn 0.746743 0.367139 0.554603
-vn 0.665432 0.371470 0.647465
-vn 0.693408 0.534699 0.482993
-vn 0.693408 0.534699 0.482993
-vn 0.665432 0.371470 0.647465
-vn 0.565544 0.401306 0.720495
-vn 0.440421 0.756675 0.483190
-vn 0.395914 0.622562 0.675033
-vn 0.000000 0.852896 0.522081
-vn 0.000000 0.852896 0.522081
-vn 0.395914 0.622562 0.675033
-vn 0.000000 0.735528 0.677494
-vn 0.692277 0.290502 0.660576
-vn 0.492427 0.164830 0.854603
-vn 0.665432 0.371470 0.647465
-vn 0.665432 0.371470 0.647465
-vn 0.492427 0.164830 0.854603
-vn 0.511349 0.270648 0.815642
-vn 0.665432 0.371470 0.647465
-vn 0.511349 0.270648 0.815642
-vn 0.565544 0.401306 0.720495
-vn 0.565544 0.401306 0.720495
-vn 0.511349 0.270648 0.815642
-vn 0.410556 0.235873 0.880800
-vn 0.395914 0.622562 0.675033
-vn 0.283113 0.470702 0.835635
-vn 0.000000 0.735528 0.677494
-vn 0.000000 0.735528 0.677494
-vn 0.283113 0.470702 0.835635
-vn 0.000000 0.588858 0.808237
-vn 0.646546 -0.091362 0.757385
-vn 0.712959 -0.201500 0.671630
-vn 0.693830 -0.131650 0.708003
-vn 0.693830 -0.131650 0.708003
-vn 0.712959 -0.201500 0.671630
-vn 0.739324 -0.227264 0.633838
-vn 0.267558 -0.406754 0.873478
-vn 0.540100 0.136136 0.830518
-vn 0.328776 -0.398405 0.856259
-vn 0.328776 -0.398405 0.856259
-vn 0.540100 0.136136 0.830518
-vn 0.491149 0.152390 0.857642
-vn 0.328776 -0.398405 0.856259
-vn 0.086428 -0.753305 0.651967
-vn 0.267558 -0.406754 0.873478
-vn 0.267558 -0.406754 0.873478
-vn 0.086428 -0.753305 0.651967
-vn -0.072677 -0.707963 0.702500
-vn 0.086428 -0.753305 0.651967
-vn 0.212866 -0.594441 0.775453
-vn -0.072677 -0.707963 0.702500
-vn -0.072677 -0.707963 0.702500
-vn 0.212866 -0.594441 0.775453
-vn 0.077064 -0.547430 0.833296
-vn 0.302576 -0.139600 -0.942847
-vn 0.192392 -0.228822 -0.954267
-vn 0.292926 -0.140834 -0.945706
-vn 0.292926 -0.140834 -0.945706
-vn 0.192392 -0.228822 -0.954267
-vn 0.238326 -0.280306 -0.929855
-vn -0.885110 0.090062 -0.456583
-vn -0.908319 0.101642 -0.405740
-vn -0.901202 0.095876 -0.422661
-vn -0.838070 0.099633 -0.536388
-vn -0.885110 0.090062 -0.456583
-vn -0.872698 0.061052 -0.484429
-vn -0.872698 0.061052 -0.484429
-vn -0.885110 0.090062 -0.456583
-vn -0.901202 0.095876 -0.422661
-vn -0.906366 0.121056 -0.404780
-vn -0.918399 0.104092 -0.381717
-vn -0.908319 0.101642 -0.405740
-vn -0.908319 0.101642 -0.405740
-vn -0.918399 0.104092 -0.381717
-vn -0.901202 0.095876 -0.422661
-vn -0.838270 0.058952 -0.542059
-vn -0.848483 0.011890 -0.529089
-vn -0.841805 0.021328 -0.539360
-vn 0.004213 -0.178993 0.983841
-vn 0.005068 -0.169127 0.985581
-vn 0.000875 -0.119271 0.992861
-vn 0.000875 -0.119271 0.992861
-vn 0.005068 -0.169127 0.985581
-vn -0.000283 -0.119211 0.992869
-vn -0.028557 -0.125072 0.991737
-vn -0.030092 -0.127525 0.991379
-vn -0.033619 -0.126186 0.991437
-vn -0.033619 -0.126186 0.991437
-vn -0.030092 -0.127525 0.991379
-vn -0.033272 -0.126422 0.991418
-vn -0.009534 -0.119049 0.992843
-vn -0.012070 -0.128801 0.991597
-vn -0.028557 -0.125072 0.991737
-vn -0.028557 -0.125072 0.991737
-vn -0.012070 -0.128801 0.991597
-vn -0.030092 -0.127525 0.991379
-vn 0.008610 -0.088195 0.996066
-vn 0.006816 -0.096393 0.995320
-vn -0.009534 -0.119049 0.992843
-vn -0.009534 -0.119049 0.992843
-vn 0.006816 -0.096393 0.995320
-vn -0.012070 -0.128801 0.991597
-vn 0.008610 -0.088195 0.996066
-vn 0.000000 -0.094600 0.995515
-vn 0.006816 -0.096393 0.995320
-vn 0.006816 -0.096393 0.995320
-vn 0.000000 -0.094600 0.995515
-vn 0.000000 -0.097825 0.995204
-vn 0.629564 -0.097579 0.770797
-vn 0.897861 -0.284137 0.336321
-vn 0.827590 -0.457878 0.324718
-vn 0.599920 -0.116148 0.791584
-vn 0.827590 -0.457878 0.324718
-vn 0.753614 -0.507019 0.418327
-vn 0.753614 -0.507019 0.418327
-vn 0.794821 -0.533487 0.289225
-vn 0.692347 -0.561281 0.453452
-vn 0.794821 -0.533487 0.289225
-vn 0.753614 -0.507019 0.418327
-vn 0.827590 -0.457878 0.324718
-vn 0.712959 -0.201500 0.671630
-vn 0.755253 -0.322586 0.570553
-vn 0.739324 -0.227264 0.633838
-vn 0.739324 -0.227264 0.633838
-vn 0.755253 -0.322586 0.570553
-vn 0.757093 -0.350156 0.551544
-vn 0.756897 -0.413234 0.506304
-vn 0.753614 -0.507019 0.418327
-vn 0.692347 -0.561281 0.453452
-vn 0.599920 -0.116148 0.791584
-vn 0.753614 -0.507019 0.418327
-vn 0.563981 -0.086031 0.821294
-vn 0.563981 -0.086031 0.821294
-vn 0.753614 -0.507019 0.418327
-vn 0.756897 -0.413234 0.506304
-vn 0.559633 0.486693 0.670777
-vn 0.577927 0.320953 0.750326
-vn 0.275018 0.577380 0.768764
-vn 0.275018 0.577380 0.768764
-vn 0.577927 0.320953 0.750326
-vn 0.116849 0.176924 0.977264
-vn 0.769638 0.335020 0.543525
-vn 0.750340 0.293327 0.592410
-vn 0.559633 0.486693 0.670777
-vn 0.559633 0.486693 0.670777
-vn 0.750340 0.293327 0.592410
-vn 0.577927 0.320953 0.750326
-vn 0.235208 0.242647 0.941169
-vn -0.116952 0.164913 0.979350
-vn 0.517412 0.107566 0.848949
-vn 0.250798 0.356808 0.899882
-vn 0.235208 0.242647 0.941169
-vn 0.503238 0.171977 0.846862
-vn 0.503238 0.171977 0.846862
-vn 0.235208 0.242647 0.941169
-vn 0.517412 0.107566 0.848949
-vn 0.327185 0.359445 0.873927
-vn 0.250798 0.356808 0.899882
-vn 0.576598 0.119160 0.808292
-vn 0.576598 0.119160 0.808292
-vn 0.250798 0.356808 0.899882
-vn 0.503238 0.171977 0.846862
-vn 0.476121 0.310210 0.822848
-vn 0.375740 0.369738 0.849772
-vn 0.622963 0.010707 0.782178
-vn 0.622963 0.010707 0.782178
-vn 0.375740 0.369738 0.849772
-vn 0.613048 0.091494 0.784730
-vn 0.622963 0.010707 0.782178
-vn 0.578466 0.274019 0.768304
-vn 0.476121 0.310210 0.822848
-vn 0.578466 0.274019 0.768304
-vn 0.622963 0.010707 0.782178
-vn 0.600783 -0.009281 0.799358
-vn 0.701508 0.141475 0.698478
-vn 0.561162 0.016469 0.827542
-vn 0.693111 0.218075 0.687052
-vn 0.693111 0.218075 0.687052
-vn 0.561162 0.016469 0.827542
-vn 0.534016 0.096637 0.839934
-vn 0.693111 0.218075 0.687052
-vn 0.534016 0.096637 0.839934
-vn 0.692277 0.290502 0.660576
-vn 0.692277 0.290502 0.660576
-vn 0.534016 0.096637 0.839934
-vn 0.492427 0.164830 0.854603
-vn 0.433159 0.872883 -0.224608
-vn 0.000000 0.965908 -0.258887
-vn 0.420776 0.879811 -0.221087
-vn 0.420776 0.879811 -0.221087
-vn 0.000000 0.965908 -0.258887
-vn -0.000000 0.965233 -0.261391
-vn 0.775130 0.531844 -0.341050
-vn 0.689875 0.626450 -0.362813
-vn 0.662525 0.655485 -0.362491
-vn 0.654908 -0.078612 0.751609
-vn 0.646546 -0.091362 0.757385
-vn 0.693830 -0.131650 0.708003
-vn 0.547185 0.096805 0.831395
-vn 0.540100 0.136136 0.830518
-vn 0.580964 0.116968 0.805481
-vn 0.580964 0.116968 0.805481
-vn 0.540100 0.136136 0.830518
-vn 0.552821 0.127056 0.823557
-vn 0.238326 -0.280306 -0.929855
-vn 0.205507 -0.341339 -0.917199
-vn 0.413320 -0.375423 -0.829593
-vn 0.740528 -0.552831 0.382095
-vn 0.794821 -0.533487 0.289225
-vn 0.897861 -0.284137 0.336321
-vn 0.740528 -0.552831 0.382095
-vn 0.879104 -0.123736 0.460289
-vn 0.825383 0.027812 0.563888
-vn 0.879104 -0.123736 0.460289
-vn 0.740528 -0.552831 0.382095
-vn 0.897861 -0.284137 0.336321
-vn 0.275481 -0.960323 -0.043470
-vn 0.202619 -0.977154 -0.064148
-vn 0.264099 -0.963244 -0.049115
-vn 0.264099 -0.963244 -0.049115
-vn 0.202619 -0.977154 -0.064148
-vn 0.185660 -0.980159 -0.069421
-vn 0.005068 -0.169127 0.985581
-vn 0.004213 -0.178993 0.983841
-vn 0.005265 -0.232431 0.972599
-vn 0.005265 -0.232431 0.972599
-vn 0.004213 -0.178993 0.983841
-vn 0.001215 -0.234994 0.971996
-vn 0.946101 -0.091808 0.310587
-vn 0.947651 -0.069522 0.311647
-vn 0.933835 -0.126242 0.334685
-vn -0.363064 -0.930250 0.053092
-vn -0.385532 -0.921257 0.051487
-vn -0.687639 -0.725988 0.009737
-vn -0.687639 -0.725988 0.009737
-vn -0.385532 -0.921257 0.051487
-vn -0.709102 -0.705080 0.006041
-vn 0.000000 -0.999654 0.026321
-vn 0.000000 -0.998690 0.051159
-vn -0.363064 -0.930250 0.053092
-vn -0.363064 -0.930250 0.053092
-vn 0.000000 -0.998690 0.051159
-vn -0.385532 -0.921257 0.051487
-vn -0.900188 -0.434837 0.024056
-vn -0.913375 -0.402924 0.058299
-vn -0.980424 -0.151736 0.125481
-vn -0.980424 -0.151736 0.125481
-vn -0.913375 -0.402924 0.058299
-vn -0.980182 -0.136745 0.143330
-vn -0.687639 -0.725988 0.009737
-vn -0.709102 -0.705080 0.006041
-vn -0.900188 -0.434837 0.024056
-vn -0.900188 -0.434837 0.024056
-vn -0.709102 -0.705080 0.006041
-vn -0.913375 -0.402924 0.058299
-vn -0.994612 -0.017356 0.102202
-vn -0.994065 -0.017268 0.107409
-vn -0.980182 -0.136745 0.143330
-vn -0.980182 -0.136745 0.143330
-vn -0.994065 -0.017268 0.107409
-vn -0.980424 -0.151736 0.125481
-vn 0.000000 -0.031297 -0.999510
-vn -0.002828 -0.032587 -0.999465
-vn -0.008149 -0.028624 -0.999557
-vn 0.072237 -0.977132 -0.199989
-vn 0.219139 -0.948685 -0.227980
-vn 0.116236 -0.981237 -0.153826
-vn 0.116236 -0.981237 -0.153826
-vn 0.219139 -0.948685 -0.227980
-vn 0.286498 -0.934423 -0.211594
-vn -0.035271 -0.981040 -0.190571
-vn 0.035271 -0.981040 -0.190571
-vn 0.000000 -0.993771 -0.111439
-vn 0.823204 0.041899 0.566197
-vn 0.877209 0.129252 0.462382
-vn 0.815337 0.129486 0.564322
-vn 0.815337 0.129486 0.564322
-vn 0.877209 0.129252 0.462382
-vn 0.793372 0.044920 0.607078
-vn 0.605520 0.092760 0.790405
-vn 0.823204 0.041899 0.566197
-vn 0.586426 0.081490 0.805893
-vn 0.586426 0.081490 0.805893
-vn 0.823204 0.041899 0.566197
-vn 0.815337 0.129486 0.564322
-vn 0.676738 0.161385 0.718318
-vn 0.605520 0.092760 0.790405
-vn 0.578466 0.274019 0.768304
-vn 0.578466 0.274019 0.768304
-vn 0.605520 0.092760 0.790405
-vn 0.586426 0.081490 0.805893
-vn 0.375740 0.369738 0.849772
-vn 0.327185 0.359445 0.873927
-vn 0.613048 0.091494 0.784730
-vn 0.613048 0.091494 0.784730
-vn 0.327185 0.359445 0.873927
-vn 0.576598 0.119160 0.808292
-vn 0.524770 0.165762 0.834949
-vn 0.465482 0.198170 0.862586
-vn 0.375740 0.369738 0.849772
-vn 0.375740 0.369738 0.849772
-vn 0.465482 0.198170 0.862586
-vn 0.327185 0.359445 0.873927
-vn 0.508399 -0.001748 0.861120
-vn 0.490474 -0.015548 0.871317
-vn 0.524770 0.165762 0.834949
-vn 0.524770 0.165762 0.834949
-vn 0.490474 -0.015548 0.871317
-vn 0.465482 0.198170 0.862586
-vn 0.629564 -0.097579 0.770797
-vn 0.599920 -0.116148 0.791584
-vn 0.508399 -0.001748 0.861120
-vn 0.508399 -0.001748 0.861120
-vn 0.599920 -0.116148 0.791584
-vn 0.490474 -0.015548 0.871317
-vn 0.629564 -0.097579 0.770797
-vn 0.827590 -0.457878 0.324718
-vn 0.599920 -0.116148 0.791584
-vn 0.856568 -0.147677 0.494451
-vn 0.877209 0.129252 0.462382
-vn 0.865779 -0.017836 0.500109
-vn 0.877209 0.129252 0.462382
-vn 0.856568 -0.147677 0.494451
-vn 0.793372 0.044920 0.607078
-vn 0.946101 -0.091808 0.310587
-vn 0.921518 -0.135700 0.363854
-vn 0.947651 -0.069522 0.311647
-vn 0.885192 -0.082688 0.457819
-vn 0.921518 -0.135700 0.363854
-vn 0.856568 -0.147677 0.494451
-vn 0.856568 -0.147677 0.494451
-vn 0.921518 -0.135700 0.363854
-vn 0.868708 -0.239350 0.433656
-vn 0.868708 -0.239350 0.433656
-vn 0.921518 -0.135700 0.363854
-vn 0.899836 -0.220831 0.376203
-vn 0.329487 0.646995 0.687630
-vn 0.275018 0.577380 0.768764
-vn 0.000001 0.672206 0.740364
-vn 0.000001 0.672206 0.740364
-vn 0.275018 0.577380 0.768764
-vn 0.000001 0.613691 0.789546
-vn 0.630978 0.528192 0.568225
-vn 0.559633 0.486693 0.670777
-vn 0.329487 0.646995 0.687630
-vn 0.329487 0.646995 0.687630
-vn 0.559633 0.486693 0.670777
-vn 0.275018 0.577380 0.768764
-vn 0.829124 0.305410 0.468271
-vn 0.769638 0.335020 0.543525
-vn 0.630978 0.528192 0.568225
-vn 0.630978 0.528192 0.568225
-vn 0.769638 0.335020 0.543525
-vn 0.559633 0.486693 0.670777
-vn 0.903662 0.091606 0.418334
-vn 0.874367 0.142896 0.463750
-vn 0.829124 0.305410 0.468271
-vn 0.829124 0.305410 0.468271
-vn 0.874367 0.142896 0.463750
-vn 0.769638 0.335020 0.543525
-vn 0.874367 0.142896 0.463750
-vn 0.903662 0.091606 0.418334
-vn 0.865779 -0.017836 0.500109
-vn 0.903662 0.091606 0.418334
-vn 0.885192 -0.082688 0.457819
-vn 0.865779 -0.017836 0.500109
-vn 0.885192 -0.082688 0.457819
-vn 0.856568 -0.147677 0.494451
-vn 0.865779 -0.017836 0.500109
-vn 0.689875 0.626450 -0.362813
-vn 0.433159 0.872883 -0.224608
-vn 0.662525 0.655485 -0.362491
-vn 0.662525 0.655485 -0.362491
-vn 0.433159 0.872883 -0.224608
-vn 0.420776 0.879811 -0.221087
-vn 0.565544 0.401306 0.720495
-vn 0.410556 0.235873 0.880800
-vn 0.395914 0.622562 0.675033
-vn 0.395914 0.622562 0.675033
-vn 0.410556 0.235873 0.880800
-vn 0.283113 0.470702 0.835635
-vn 0.440421 0.756675 0.483190
-vn 0.693408 0.534699 0.482993
-vn 0.395914 0.622562 0.675033
-vn 0.395914 0.622562 0.675033
-vn 0.693408 0.534699 0.482993
-vn 0.565544 0.401306 0.720495
-vn 0.436523 0.194338 0.878454
-vn 0.693408 0.534699 0.482993
-vn 0.301224 0.372748 0.877680
-vn 0.301224 0.372748 0.877680
-vn 0.693408 0.534699 0.482993
-vn 0.440421 0.756675 0.483190
-vn 0.301224 0.372748 0.877680
-vn 0.116849 0.176924 0.977264
-vn 0.436523 0.194338 0.878454
-vn 0.436523 0.194338 0.878454
-vn 0.116849 0.176924 0.977264
-vn 0.577927 0.320953 0.750326
-vn -0.838070 0.099633 -0.536388
-vn -0.872698 0.061052 -0.484429
-vn -0.838270 0.058952 -0.542059
-vn -0.838270 0.058952 -0.542059
-vn -0.872698 0.061052 -0.484429
-vn -0.848483 0.011890 -0.529089
-vn 0.205507 -0.341339 -0.917199
-vn 0.238326 -0.280306 -0.929855
-vn 0.178952 -0.332850 -0.925844
-vn 0.178952 -0.332850 -0.925844
-vn 0.238326 -0.280306 -0.929855
-vn 0.192392 -0.228822 -0.954267
-vn 0.178952 -0.332850 -0.925844
-vn 0.203434 -0.333613 -0.920498
-vn 0.205507 -0.341339 -0.917199
-vn 0.205507 -0.341339 -0.917199
-vn 0.203434 -0.333613 -0.920498
-vn 0.201669 -0.331943 -0.921490
-vn 0.203434 -0.333613 -0.920498
-vn 0.163755 -0.336085 -0.927487
-vn 0.201669 -0.331943 -0.921490
-vn 0.201669 -0.331943 -0.921490
-vn 0.163755 -0.336085 -0.927487
-vn 0.153812 -0.338506 -0.928308
-vn -0.848483 0.011890 -0.529089
-vn -0.857799 0.017740 -0.513679
-vn -0.841805 0.021328 -0.539360
-vn -0.841805 0.021328 -0.539360
-vn -0.857799 0.017740 -0.513679
-vn -0.852988 -0.069459 -0.517289
-vn -0.857799 0.017740 -0.513679
-vn -0.850491 -0.071994 -0.521040
-vn -0.852988 -0.069459 -0.517289
-vn -0.850491 -0.071994 -0.521040
-vn -0.846858 -0.092154 -0.523774
-vn -0.852988 -0.069459 -0.517289
-vn -0.852988 -0.069459 -0.517289
-vn -0.846858 -0.092154 -0.523774
-vn -0.847084 -0.090957 -0.523617
-vn -0.846858 -0.092154 -0.523774
-vn -0.856333 -0.079551 -0.510260
-vn -0.847084 -0.090957 -0.523617
-vn -0.847084 -0.090957 -0.523617
-vn -0.856333 -0.079551 -0.510260
-vn -0.858056 -0.079184 -0.507414
-vn 0.478460 -0.790217 0.382927
-vn 0.740528 -0.552831 0.382095
-vn 0.276535 -0.885349 0.373744
-vn 0.740528 -0.552831 0.382095
-vn 0.590636 -0.714540 0.374942
-vn 0.794821 -0.533487 0.289225
-vn 0.750340 0.293327 0.592410
-vn 0.795050 0.365669 0.483923
-vn 0.577927 0.320953 0.750326
-vn 0.577927 0.320953 0.750326
-vn 0.795050 0.365669 0.483923
-vn 0.746743 0.367139 0.554603
-vn 0.646546 -0.091362 0.757385
-vn 0.654908 -0.078612 0.751609
-vn 0.595966 0.010468 0.802942
-vn 0.595966 0.010468 0.802942
-vn 0.654908 -0.078612 0.751609
-vn 0.645955 0.010511 0.763303
-vn 0.540100 0.136136 0.830518
-vn 0.595966 0.010468 0.802942
-vn 0.552821 0.127056 0.823557
-vn 0.552821 0.127056 0.823557
-vn 0.595966 0.010468 0.802942
-vn 0.645955 0.010511 0.763303
-vn 0.251850 0.142172 0.957266
-vn -0.000000 0.162236 0.986752
-vn 0.148083 0.146979 0.977992
-vn 0.148083 0.146979 0.977992
-vn -0.000000 0.162236 0.986752
-vn 0.000000 0.141845 0.989889
-vn 0.309236 0.165615 0.936453
-vn 0.419722 0.109486 0.901025
-vn 0.258902 0.164100 0.951862
-vn 0.419722 0.109486 0.901025
-vn 0.251850 0.142172 0.957266
-vn 0.258902 0.164100 0.951862
-vn 0.251850 0.142172 0.957266
-vn 0.148083 0.146979 0.977992
-vn 0.258902 0.164100 0.951862
-vn 0.419722 0.109486 0.901025
-vn 0.612309 0.047674 0.789180
-vn 0.564812 0.045085 0.823987
-vn 0.612309 0.047674 0.789180
-vn 0.419722 0.109486 0.901025
-vn 0.606936 0.075890 0.791119
-vn 0.419722 0.109486 0.901025
-vn 0.543709 0.088666 0.834577
-vn 0.606936 0.075890 0.791119
-vn 0.419722 0.109486 0.901025
-vn 0.454197 0.114604 0.883499
-vn 0.543709 0.088666 0.834577
-vn 0.454197 0.114604 0.883499
-vn 0.419722 0.109486 0.901025
-vn 0.309236 0.165615 0.936453
-vn 0.669690 0.002394 0.742637
-vn 0.671572 0.000921 0.740939
-vn 0.564812 0.045085 0.823987
-vn 0.671572 0.000921 0.740939
-vn 0.643622 0.003589 0.765335
-vn 0.564812 0.045085 0.823987
-vn 0.643622 0.003589 0.765335
-vn 0.639898 0.000849 0.768459
-vn 0.564812 0.045085 0.823987
-vn 0.612309 0.047674 0.789180
-vn 0.636922 0.014002 0.770801
-vn 0.564812 0.045085 0.823987
-vn 0.636922 0.014002 0.770801
-vn 0.657122 0.006114 0.753760
-vn 0.564812 0.045085 0.823987
-vn 0.564812 0.045085 0.823987
-vn 0.657122 0.006114 0.753760
-vn 0.669690 0.002394 0.742637
-vn 0.643622 0.003589 0.765335
-vn 0.683680 -0.002210 0.729778
-vn 0.639898 0.000849 0.768459
-vn 0.639898 0.000849 0.768459
-vn 0.683680 -0.002210 0.729778
-vn 0.627582 -0.013520 0.778433
-vn 0.683680 -0.002210 0.729778
-vn 0.640471 -0.013126 0.767870
-vn 0.627582 -0.013520 0.778433
-vn 0.667492 -0.004836 0.744601
-vn 0.629564 -0.097579 0.770797
-vn 0.558848 0.112880 0.821552
-vn 0.558848 0.112880 0.821552
-vn 0.629564 -0.097579 0.770797
-vn 0.508399 -0.001748 0.861120
-vn 0.897861 -0.284137 0.336321
-vn 0.629564 -0.097579 0.770797
-vn 0.872814 -0.299764 0.385146
-vn 0.629564 -0.097579 0.770797
-vn 0.667492 -0.004836 0.744601
-vn 0.872814 -0.299764 0.385146
-vn 0.600783 -0.009281 0.799358
-vn 0.676738 0.161385 0.718318
-vn 0.578466 0.274019 0.768304
-vn 0.676738 0.161385 0.718318
-vn 0.561162 0.016469 0.827542
-vn 0.701508 0.141475 0.698478
-vn 0.561162 0.016469 0.827542
-vn 0.676738 0.161385 0.718318
-vn 0.600783 -0.009281 0.799358
-vn 0.701508 0.141475 0.698478
-vn 0.637792 0.094825 0.764349
-vn 0.676738 0.161385 0.718318
-vn 0.676738 0.161385 0.718318
-vn 0.637792 0.094825 0.764349
-vn 0.605520 0.092760 0.790405
-vn 0.637792 0.094825 0.764349
-vn 0.725880 0.010497 0.687741
-vn 0.605520 0.092760 0.790405
-vn 0.605520 0.092760 0.790405
-vn 0.725880 0.010497 0.687741
-vn 0.823204 0.041899 0.566197
-vn 0.725880 0.010497 0.687741
-vn 0.878718 0.118805 0.462320
-vn 0.823204 0.041899 0.566197
-vn 0.823204 0.041899 0.566197
-vn 0.878718 0.118805 0.462320
-vn 0.877209 0.129252 0.462382
-vn 0.878718 0.118805 0.462320
-vn 0.865779 -0.017836 0.500109
-vn 0.877209 0.129252 0.462382
-vn 0.000875 -0.119271 0.992861
-vn -0.000283 -0.119211 0.992869
-vn -0.033272 -0.126422 0.991418
-vn -0.033272 -0.126422 0.991418
-vn -0.000283 -0.119211 0.992869
-vn -0.033619 -0.126186 0.991437
-vn -0.995493 -0.030523 0.089784
-vn -0.993894 -0.047100 0.099785
-vn -0.986612 -0.094408 0.132977
-vn 0.921518 -0.135700 0.363854
-vn 0.885192 -0.082688 0.457819
-vn 0.947651 -0.069522 0.311647
-vn 0.740528 -0.552831 0.382095
-vn 0.478460 -0.790217 0.382927
-vn 0.590636 -0.714540 0.374942
-vn 0.692347 -0.561281 0.453452
-vn 0.590636 -0.714540 0.374942
-vn 0.662696 -0.571306 0.484194
-vn 0.662696 -0.571306 0.484194
-vn 0.590636 -0.714540 0.374942
-vn 0.478460 -0.790217 0.382927
-vn 0.756897 -0.413234 0.506304
-vn 0.692347 -0.561281 0.453452
-vn 0.729157 -0.440006 0.524142
-vn 0.729157 -0.440006 0.524142
-vn 0.692347 -0.561281 0.453452
-vn 0.662696 -0.571306 0.484194
-vn 0.755253 -0.322586 0.570553
-vn 0.756897 -0.413234 0.506304
-vn 0.757093 -0.350156 0.551544
-vn 0.757093 -0.350156 0.551544
-vn 0.756897 -0.413234 0.506304
-vn 0.729157 -0.440006 0.524142
-vn -0.994065 -0.017268 0.107409
-vn -0.994612 -0.017356 0.102202
-vn -0.995493 -0.030523 0.089784
-vn -0.995493 -0.030523 0.089784
-vn -0.994612 -0.017356 0.102202
-vn -0.993894 -0.047100 0.099785
-vn 0.692347 -0.561281 0.453452
-vn 0.794821 -0.533487 0.289225
-vn 0.590636 -0.714540 0.374942
-vn 0.897861 -0.284137 0.336321
-vn 0.794821 -0.533487 0.289225
-vn 0.827590 -0.457878 0.324718
-vn 0.072237 -0.977132 -0.199989
-vn 0.035271 -0.981040 -0.190571
-vn 0.219139 -0.948685 -0.227980
-vn 0.219139 -0.948685 -0.227980
-vn 0.035271 -0.981040 -0.190571
-vn -0.000000 -0.979515 -0.201370
-vn 0.006740 -0.119147 0.992854
-vn -0.014744 -0.114681 0.993293
-vn 0.010643 -0.117305 0.993039
-vn 0.010643 -0.117305 0.993039
-vn -0.014744 -0.114681 0.993293
-vn -0.016403 -0.114530 0.993284
-vn 0.001677 -0.122098 0.992517
-vn 0.006740 -0.119147 0.992854
-vn 0.002947 -0.126501 0.991962
-vn 0.002947 -0.126501 0.991962
-vn 0.006740 -0.119147 0.992854
-vn 0.010643 -0.117305 0.993039
-vn -0.015049 -0.110728 0.993737
-vn -0.008436 -0.120558 0.992670
-vn 0.002947 -0.126501 0.991962
-vn 0.002947 -0.126501 0.991962
-vn -0.008436 -0.120558 0.992670
-vn 0.001677 -0.122098 0.992517
-vn -0.004325 -0.103474 0.994623
-vn -0.007502 -0.104044 0.994544
-vn -0.015049 -0.110728 0.993737
-vn -0.015049 -0.110728 0.993737
-vn -0.007502 -0.104044 0.994544
-vn -0.008436 -0.120558 0.992670
-vn -0.005018 -0.111652 0.993735
-vn -0.005159 -0.111410 0.993761
-vn -0.004325 -0.103474 0.994623
-vn -0.004325 -0.103474 0.994623
-vn -0.005159 -0.111410 0.993761
-vn -0.007502 -0.104044 0.994544
-vn -0.000000 -0.103656 0.994613
-vn 0.000000 -0.104054 0.994572
-vn -0.005018 -0.111652 0.993735
-vn -0.005018 -0.111652 0.993735
-vn 0.000000 -0.104054 0.994572
-vn -0.005159 -0.111410 0.993761
-vn 0.383256 0.917388 0.107303
-vn 0.381629 0.918042 0.107509
-vn 0.000001 0.993140 0.116931
-vn 0.000001 0.993140 0.116931
-vn 0.381629 0.918042 0.107509
-vn -0.000000 0.993137 0.116961
-vn 0.944421 0.326503 0.038270
-vn 0.996158 0.087056 0.009500
-vn 0.944072 0.327512 0.038261
-vn 0.944072 0.327512 0.038261
-vn 0.996158 0.087056 0.009500
-vn 0.996136 0.087303 0.009553
-vn 0.383256 0.917388 0.107303
-vn 0.734848 0.673668 0.078545
-vn 0.381629 0.918042 0.107509
-vn 0.381629 0.918042 0.107509
-vn 0.734848 0.673668 0.078545
-vn 0.733828 0.674769 0.078632
-vn 0.944421 0.326503 0.038270
-vn 0.944072 0.327512 0.038261
-vn 0.734848 0.673668 0.078545
-vn 0.734848 0.673668 0.078545
-vn 0.944072 0.327512 0.038261
-vn 0.733828 0.674769 0.078632
-vn 0.999999 0.000168 -0.001210
-vn 0.999999 0.000474 -0.001197
-vn 0.999999 0.000133 -0.001444
-vn 0.999999 0.000474 -0.001197
-vn 0.999999 0.000168 -0.001210
-vn 0.996136 0.087303 0.009553
-vn 0.999999 0.000474 -0.001197
-vn 0.996136 0.087303 0.009553
-vn 0.996158 0.087056 0.009500
-vn 1.000000 0.000059 -0.000503
-vn 1.000000 0.000066 -0.000537
-vn 0.999999 -0.000103 -0.001265
-vn 0.999999 0.000168 -0.001210
-vn 0.999999 -0.000103 -0.001265
-vn 1.000000 0.000066 -0.000537
-vn 0.999999 -0.000103 -0.001265
-vn 0.999999 0.000168 -0.001210
-vn 0.999999 0.000133 -0.001444
-vn -0.874368 0.142892 0.463748
-vn -0.769637 0.335024 0.543524
-vn -0.839359 0.129821 0.527847
-vn -0.769637 0.335024 0.543524
-vn -0.750336 0.293332 0.592412
-vn -0.839359 0.129821 0.527847
-vn -0.116849 0.176925 0.977263
-vn 0.000000 0.212854 0.977084
-vn -0.301220 0.372748 0.877682
-vn 0.000000 0.212854 0.977084
-vn -0.000000 0.428954 0.903327
-vn -0.301220 0.372748 0.877682
-vn 0.000000 0.212854 0.977084
-vn -0.116849 0.176925 0.977263
-vn 0.000001 0.613691 0.789546
-vn -0.116849 0.176925 0.977263
-vn -0.275020 0.577380 0.768763
-vn 0.000001 0.613691 0.789546
-vn -0.872815 -0.299763 0.385144
-vn -0.897861 -0.284137 0.336321
-vn -0.876646 -0.220404 0.427685
-vn -0.897861 -0.284137 0.336321
-vn -0.879103 -0.123735 0.460291
-vn -0.876646 -0.220404 0.427685
-vn -0.839359 0.129821 0.527847
-vn -0.725879 0.010493 0.687742
-vn -0.878719 0.118802 0.462319
-vn -0.736369 -0.009801 0.676509
-vn -0.650778 0.155174 0.743242
-vn -0.667494 -0.004835 0.744600
-vn -0.650778 0.155174 0.743242
-vn -0.558854 0.112881 0.821547
-vn -0.667494 -0.004835 0.744600
-vn -0.865777 -0.017836 0.500112
-vn -0.874368 0.142892 0.463748
-vn -0.878719 0.118802 0.462319
-vn -0.874368 0.142892 0.463748
-vn -0.839359 0.129821 0.527847
-vn -0.878719 0.118802 0.462319
-vn -0.872815 -0.299763 0.385144
-vn -0.868708 -0.239350 0.433657
-vn -0.667494 -0.004835 0.744600
-vn -0.868708 -0.239350 0.433657
-vn -0.736369 -0.009801 0.676509
-vn -0.667494 -0.004835 0.744600
-vn -0.872815 -0.299763 0.385144
-vn -0.876646 -0.220404 0.427685
-vn -0.868708 -0.239350 0.433657
-vn -0.876646 -0.220404 0.427685
-vn -0.899836 -0.220835 0.376201
-vn -0.868708 -0.239350 0.433657
-vn -0.563982 -0.086031 0.821293
-vn -0.423338 0.053242 0.904406
-vn -0.506635 -0.080128 0.858429
-vn -0.423338 0.053242 0.904406
-vn -0.328468 0.080050 0.941117
-vn -0.506635 -0.080128 0.858429
-vn -0.506635 -0.080128 0.858429
-vn -0.328468 0.080050 0.941117
-vn -0.345102 -0.069683 0.935975
-vn -0.328468 0.080050 0.941117
-vn -0.069477 0.062895 0.995599
-vn -0.345102 -0.069683 0.935975
-vn 0.102959 -0.125140 0.986782
-vn 0.231638 -0.421065 0.876954
-vn -0.094883 -0.123582 0.987788
-vn 0.231638 -0.421065 0.876954
-vn -0.160782 -0.314716 0.935469
-vn -0.094883 -0.123582 0.987788
-vn -0.267556 -0.406753 0.873479
-vn -0.160782 -0.314716 0.935469
-vn 0.072677 -0.707963 0.702500
-vn -0.160782 -0.314716 0.935469
-vn 0.231638 -0.421065 0.876954
-vn 0.072677 -0.707963 0.702500
-vn -0.298116 -0.370998 0.879481
-vn -0.328776 -0.398405 0.856259
-vn -0.138480 -0.732187 0.666877
-vn -0.328776 -0.398405 0.856259
-vn -0.086429 -0.753305 0.651967
-vn -0.138480 -0.732187 0.666877
-vn -0.175494 -0.359003 0.916689
-vn -0.298116 -0.370998 0.879481
-vn -0.078068 -0.775295 0.626756
-vn -0.298116 -0.370998 0.879481
-vn -0.138480 -0.732187 0.666877
-vn -0.078068 -0.775295 0.626756
-vn 0.000000 -0.331736 0.943372
-vn -0.175494 -0.359003 0.916689
-vn -0.000000 -0.773117 0.634263
-vn -0.175494 -0.359003 0.916689
-vn -0.078068 -0.775295 0.626756
-vn -0.000000 -0.773117 0.634263
-vn -0.345102 -0.069683 0.935975
-vn -0.069477 0.062895 0.995599
-vn -0.094883 -0.123582 0.987788
-vn -0.069477 0.062895 0.995599
-vn 0.102959 -0.125140 0.986782
-vn -0.094883 -0.123582 0.987788
-vn -0.563982 -0.086031 0.821293
-vn -0.506635 -0.080128 0.858429
-vn -0.756897 -0.413234 0.506304
-vn -0.506635 -0.080128 0.858429
-vn -0.755254 -0.322587 0.570552
-vn -0.756897 -0.413234 0.506304
-vn -0.506635 -0.080128 0.858429
-vn -0.345102 -0.069683 0.935975
-vn -0.755254 -0.322587 0.570552
-vn -0.345102 -0.069683 0.935975
-vn -0.712964 -0.201500 0.671625
-vn -0.755254 -0.322587 0.570552
-vn -0.094883 -0.123582 0.987788
-vn -0.646545 -0.091367 0.757385
-vn -0.345102 -0.069683 0.935975
-vn -0.646545 -0.091367 0.757385
-vn -0.712964 -0.201500 0.671625
-vn -0.345102 -0.069683 0.935975
-vn -0.599921 -0.116149 0.791584
-vn -0.490471 -0.015544 0.871319
-vn -0.563982 -0.086031 0.821293
-vn -0.490471 -0.015544 0.871319
-vn -0.423338 0.053242 0.904406
-vn -0.563982 -0.086031 0.821293
-vn -0.298116 -0.370998 0.879481
-vn -0.390125 0.174215 0.904130
-vn -0.328776 -0.398405 0.856259
-vn -0.390125 0.174215 0.904130
-vn -0.491149 0.152390 0.857642
-vn -0.328776 -0.398405 0.856259
-vn -0.298116 -0.370998 0.879481
-vn -0.175494 -0.359003 0.916689
-vn -0.390125 0.174215 0.904130
-vn -0.175494 -0.359003 0.916689
-vn -0.230528 0.218428 0.948233
-vn -0.390125 0.174215 0.904130
-vn 0.000000 -0.331736 0.943372
-vn -0.000000 0.233936 0.972252
-vn -0.175494 -0.359003 0.916689
-vn -0.000000 0.233936 0.972252
-vn -0.230528 0.218428 0.948233
-vn -0.175494 -0.359003 0.916689
-vn -0.160782 -0.314716 0.935469
-vn -0.595966 0.010468 0.802941
-vn -0.094883 -0.123582 0.987788
-vn -0.595966 0.010468 0.802941
-vn -0.646545 -0.091367 0.757385
-vn -0.094883 -0.123582 0.987788
-vn -0.540099 0.136138 0.830518
-vn -0.595966 0.010468 0.802941
-vn -0.267556 -0.406753 0.873479
-vn -0.595966 0.010468 0.802941
-vn -0.160782 -0.314716 0.935469
-vn -0.267556 -0.406753 0.873479
-vn -0.513045 0.085684 0.854075
-vn -0.547185 0.096805 0.831395
-vn -0.491149 0.152390 0.857642
-vn -0.547185 0.096805 0.831395
-vn -0.540099 0.136138 0.830518
-vn -0.491149 0.152390 0.857642
-vn -0.513045 0.085684 0.854075
-vn -0.491149 0.152390 0.857642
-vn -0.385025 0.087869 0.918714
-vn -0.491149 0.152390 0.857642
-vn -0.390125 0.174215 0.904130
-vn -0.385025 0.087869 0.918714
-vn -0.385025 0.087869 0.918714
-vn -0.390125 0.174215 0.904130
-vn -0.208441 0.117321 0.970973
-vn -0.390125 0.174215 0.904130
-vn -0.230528 0.218428 0.948233
-vn -0.208441 0.117321 0.970973
-vn -0.208441 0.117321 0.970973
-vn -0.230528 0.218428 0.948233
-vn -0.000000 0.141983 0.989869
-vn -0.230528 0.218428 0.948233
-vn -0.000000 0.233936 0.972252
-vn -0.000000 0.141983 0.989869
-vn -0.129730 -0.990616 -0.043006
-vn -0.102818 -0.994359 -0.026060
-vn -0.072237 -0.977132 -0.199989
-vn -0.102818 -0.994359 -0.026060
-vn -0.116236 -0.981237 -0.153826
-vn -0.072237 -0.977132 -0.199989
-vn -0.238285 -0.957055 -0.165127
-vn -0.252549 -0.961967 -0.104105
-vn -0.244430 -0.956219 -0.160933
-vn -0.252549 -0.961967 -0.104105
-vn -0.257569 -0.961354 -0.097240
-vn -0.244430 -0.956219 -0.160933
-vn -0.252549 -0.961967 -0.104105
-vn -0.264099 -0.963244 -0.049115
-vn -0.257569 -0.961354 -0.097240
-vn -0.264099 -0.963244 -0.049115
-vn -0.275481 -0.960323 -0.043470
-vn -0.257569 -0.961354 -0.097240
-vn -0.238285 -0.957055 -0.165127
-vn -0.244430 -0.956219 -0.160933
-vn -0.286498 -0.934423 -0.211593
-vn -0.244430 -0.956219 -0.160933
-vn -0.219139 -0.948685 -0.227979
-vn -0.286498 -0.934423 -0.211593
-vn -0.793375 0.044918 0.607073
-vn -0.815336 0.129486 0.564323
-vn -0.736369 -0.009801 0.676509
-vn -0.815336 0.129486 0.564323
-vn -0.650778 0.155174 0.743242
-vn -0.736369 -0.009801 0.676509
-vn -0.856567 -0.147677 0.494454
-vn -0.793375 0.044918 0.607073
-vn -0.868708 -0.239350 0.433657
-vn -0.793375 0.044918 0.607073
-vn -0.736369 -0.009801 0.676509
-vn -0.868708 -0.239350 0.433657
-vn 0.000000 0.852896 0.522081
-vn -0.440416 0.756677 0.483190
-vn -0.000000 0.428954 0.903327
-vn -0.440416 0.756677 0.483190
-vn -0.301220 0.372748 0.877682
-vn -0.000000 0.428954 0.903327
-vn -0.693405 0.534698 0.482998
-vn -0.746744 0.367133 0.554606
-vn -0.436515 0.194333 0.878459
-vn -0.746744 0.367133 0.554606
-vn -0.577924 0.320947 0.750331
-vn -0.436515 0.194333 0.878459
-vn -0.839359 0.129821 0.527847
-vn -0.750336 0.293332 0.592412
-vn -0.804042 0.222216 0.551485
-vn -0.750336 0.293332 0.592412
-vn -0.795047 0.365673 0.483925
-vn -0.804042 0.222216 0.551485
-vn -0.804042 0.222216 0.551485
-vn -0.637787 0.094809 0.764355
-vn -0.725879 0.010493 0.687742
-vn -0.725879 0.010493 0.687742
-vn -0.839359 0.129821 0.527847
-vn -0.804042 0.222216 0.551485
-vn -0.815336 0.129486 0.564323
-vn -0.586431 0.081488 0.805890
-vn -0.650778 0.155174 0.743242
-vn -0.586431 0.081488 0.805890
-vn -0.583298 0.099182 0.806180
-vn -0.650778 0.155174 0.743242
-vn -0.423338 0.053242 0.904406
-vn -0.396273 0.237589 0.886859
-vn -0.328468 0.080050 0.941117
-vn -0.396273 0.237589 0.886859
-vn -0.332958 0.174510 0.926653
-vn -0.328468 0.080050 0.941117
-vn -0.328468 0.080050 0.941117
-vn -0.332958 0.174510 0.926653
-vn -0.069477 0.062895 0.995599
-vn -0.332958 0.174510 0.926653
-vn -0.176995 0.117973 0.977116
-vn -0.069477 0.062895 0.995599
-vn 0.102959 -0.125140 0.986782
-vn -0.156165 -0.047092 0.986608
-vn 0.231638 -0.421065 0.876954
-vn 0.072677 -0.707963 0.702500
-vn 0.231638 -0.421065 0.876954
-vn -0.077064 -0.547431 0.833295
-vn 0.231638 -0.421065 0.876954
-vn 0.054624 -0.259422 0.964218
-vn -0.077064 -0.547431 0.833295
-vn -0.138480 -0.732187 0.666877
-vn -0.086429 -0.753305 0.651967
-vn -0.247668 -0.520946 0.816869
-vn -0.086429 -0.753305 0.651967
-vn -0.212866 -0.594441 0.775453
-vn -0.247668 -0.520946 0.816869
-vn -0.078068 -0.775295 0.626756
-vn -0.138480 -0.732187 0.666877
-vn -0.142004 -0.600232 0.787119
-vn -0.138480 -0.732187 0.666877
-vn -0.247668 -0.520946 0.816869
-vn -0.142004 -0.600232 0.787119
-vn -0.000000 -0.773117 0.634263
-vn -0.078068 -0.775295 0.626756
-vn -0.000000 -0.616413 0.787423
-vn -0.078068 -0.775295 0.626756
-vn -0.142004 -0.600232 0.787119
-vn -0.000000 -0.616413 0.787423
-vn -0.069477 0.062895 0.995599
-vn -0.176995 0.117973 0.977116
-vn 0.102959 -0.125140 0.986782
-vn -0.176995 0.117973 0.977116
-vn -0.156165 -0.047092 0.986608
-vn 0.102959 -0.125140 0.986782
-vn -0.490471 -0.015544 0.871319
-vn -0.465480 0.198176 0.862586
-vn -0.423338 0.053242 0.904406
-vn -0.465480 0.198176 0.862586
-vn -0.396273 0.237589 0.886859
-vn -0.423338 0.053242 0.904406
-vn -0.650778 0.155174 0.743242
-vn -0.583298 0.099182 0.806180
-vn -0.558854 0.112881 0.821547
-vn -0.558854 0.112881 0.821547
-vn -0.583298 0.099182 0.806180
-vn -0.508398 -0.001751 0.861120
-vn -0.583298 0.099182 0.806180
-vn -0.524767 0.165762 0.834951
-vn -0.508398 -0.001751 0.861120
-vn 0.231638 -0.421065 0.876954
-vn -0.156165 -0.047092 0.986608
-vn 0.054624 -0.259422 0.964218
-vn -0.156165 -0.047092 0.986608
-vn 0.223344 -0.078069 0.971608
-vn 0.054624 -0.259422 0.964218
-vn -0.176995 0.117973 0.977116
-vn 0.116951 0.164914 0.979350
-vn -0.156165 -0.047092 0.986608
-vn 0.116951 0.164914 0.979350
-vn 0.223344 -0.078069 0.971608
-vn -0.156165 -0.047092 0.986608
-vn -0.332958 0.174510 0.926653
-vn -0.235209 0.242648 0.941169
-vn -0.176995 0.117973 0.977116
-vn -0.235209 0.242648 0.941169
-vn 0.116951 0.164914 0.979350
-vn -0.176995 0.117973 0.977116
-vn -0.396273 0.237589 0.886859
-vn -0.250798 0.356808 0.899882
-vn -0.332958 0.174510 0.926653
-vn -0.250798 0.356808 0.899882
-vn -0.235209 0.242648 0.941169
-vn -0.332958 0.174510 0.926653
-vn -0.465480 0.198176 0.862586
-vn -0.327185 0.359445 0.873927
-vn -0.396273 0.237589 0.886859
-vn -0.327185 0.359445 0.873927
-vn -0.250798 0.356808 0.899882
-vn -0.396273 0.237589 0.886859
-vn -0.375740 0.369738 0.849772
-vn -0.524767 0.165762 0.834951
-vn -0.476121 0.310210 0.822848
-vn -0.524767 0.165762 0.834951
-vn -0.583298 0.099182 0.806180
-vn -0.476121 0.310210 0.822848
-vn -0.586431 0.081488 0.805890
-vn -0.578472 0.274016 0.768300
-vn -0.583298 0.099182 0.806180
-vn -0.578472 0.274016 0.768300
-vn -0.476121 0.310210 0.822848
-vn -0.583298 0.099182 0.806180
-vn -0.637787 0.094809 0.764355
-vn -0.804042 0.222216 0.551485
-vn -0.701511 0.141462 0.698478
-vn -0.804042 0.222216 0.551485
-vn -0.693125 0.218098 0.687030
-vn -0.701511 0.141462 0.698478
-vn -0.795047 0.365673 0.483925
-vn -0.692277 0.290506 0.660575
-vn -0.804042 0.222216 0.551485
-vn -0.692277 0.290506 0.660575
-vn -0.693125 0.218098 0.687030
-vn -0.804042 0.222216 0.551485
-vn -0.746744 0.367133 0.554606
-vn -0.665438 0.371469 0.647459
-vn -0.795047 0.365673 0.483925
-vn -0.665438 0.371469 0.647459
-vn -0.692277 0.290506 0.660575
-vn -0.795047 0.365673 0.483925
-vn -0.746744 0.367133 0.554606
-vn -0.693405 0.534698 0.482998
-vn -0.665438 0.371469 0.647459
-vn -0.693405 0.534698 0.482998
-vn -0.565548 0.401311 0.720490
-vn -0.665438 0.371469 0.647459
-vn -0.440416 0.756677 0.483190
-vn 0.000000 0.852896 0.522081
-vn -0.395912 0.622565 0.675031
-vn 0.000000 0.852896 0.522081
-vn 0.000000 0.735528 0.677494
-vn -0.395912 0.622565 0.675031
-vn -0.692277 0.290506 0.660575
-vn -0.665438 0.371469 0.647459
-vn -0.492427 0.164830 0.854603
-vn -0.665438 0.371469 0.647459
-vn -0.511353 0.270647 0.815640
-vn -0.492427 0.164830 0.854603
-vn -0.665438 0.371469 0.647459
-vn -0.565548 0.401311 0.720490
-vn -0.511353 0.270647 0.815640
-vn -0.565548 0.401311 0.720490
-vn -0.410565 0.235886 0.880792
-vn -0.511353 0.270647 0.815640
-vn -0.395912 0.622565 0.675031
-vn 0.000000 0.735528 0.677494
-vn -0.283113 0.470702 0.835635
-vn 0.000000 0.735528 0.677494
-vn 0.000000 0.588858 0.808237
-vn -0.283113 0.470702 0.835635
-vn -0.646545 -0.091367 0.757385
-vn -0.693829 -0.131658 0.708002
-vn -0.712964 -0.201500 0.671625
-vn -0.693829 -0.131658 0.708002
-vn -0.739324 -0.227264 0.633838
-vn -0.712964 -0.201500 0.671625
-vn -0.267556 -0.406753 0.873479
-vn -0.328776 -0.398405 0.856259
-vn -0.540099 0.136138 0.830518
-vn -0.328776 -0.398405 0.856259
-vn -0.491149 0.152390 0.857642
-vn -0.540099 0.136138 0.830518
-vn -0.328776 -0.398405 0.856259
-vn -0.267556 -0.406753 0.873479
-vn -0.086429 -0.753305 0.651967
-vn -0.267556 -0.406753 0.873479
-vn 0.072677 -0.707963 0.702500
-vn -0.086429 -0.753305 0.651967
-vn -0.086429 -0.753305 0.651967
-vn 0.072677 -0.707963 0.702500
-vn -0.212866 -0.594441 0.775453
-vn 0.072677 -0.707963 0.702500
-vn -0.077064 -0.547431 0.833295
-vn -0.212866 -0.594441 0.775453
-vn -0.302568 -0.139599 -0.942849
-vn -0.292919 -0.140833 -0.945709
-vn -0.192392 -0.228822 -0.954267
-vn -0.292919 -0.140833 -0.945709
-vn -0.238326 -0.280305 -0.929855
-vn -0.192392 -0.228822 -0.954267
-vn 0.885111 0.090062 -0.456582
-vn 0.901202 0.095875 -0.422662
-vn 0.908319 0.101640 -0.405741
-vn 0.838070 0.099637 -0.536387
-vn 0.872698 0.061054 -0.484428
-vn 0.885111 0.090062 -0.456582
-vn 0.872698 0.061054 -0.484428
-vn 0.901202 0.095875 -0.422662
-vn 0.885111 0.090062 -0.456582
-vn 0.906363 0.121056 -0.404786
-vn 0.908319 0.101640 -0.405741
-vn 0.918398 0.104089 -0.381720
-vn 0.908319 0.101640 -0.405741
-vn 0.901202 0.095875 -0.422662
-vn 0.918398 0.104089 -0.381720
-vn 0.838271 0.058954 -0.542057
-vn 0.841805 0.021328 -0.539360
-vn 0.848484 0.011890 -0.529087
-vn -0.004213 -0.178993 0.983841
-vn -0.000875 -0.119271 0.992861
-vn -0.005068 -0.169127 0.985581
-vn -0.000875 -0.119271 0.992861
-vn 0.000283 -0.119211 0.992869
-vn -0.005068 -0.169127 0.985581
-vn 0.028557 -0.125072 0.991737
-vn 0.033619 -0.126186 0.991437
-vn 0.030091 -0.127525 0.991379
-vn 0.033619 -0.126186 0.991437
-vn 0.033272 -0.126422 0.991418
-vn 0.030091 -0.127525 0.991379
-vn 0.009534 -0.119049 0.992843
-vn 0.028557 -0.125072 0.991737
-vn 0.012070 -0.128801 0.991597
-vn 0.028557 -0.125072 0.991737
-vn 0.030091 -0.127525 0.991379
-vn 0.012070 -0.128801 0.991597
-vn -0.008610 -0.088195 0.996066
-vn 0.009534 -0.119049 0.992843
-vn -0.006816 -0.096394 0.995320
-vn 0.009534 -0.119049 0.992843
-vn 0.012070 -0.128801 0.991597
-vn -0.006816 -0.096394 0.995320
-vn -0.008610 -0.088195 0.996066
-vn -0.006816 -0.096394 0.995320
-vn 0.000000 -0.094600 0.995515
-vn -0.006816 -0.096394 0.995320
-vn 0.000000 -0.097825 0.995204
-vn 0.000000 -0.094600 0.995515
-vn -0.629564 -0.097579 0.770797
-vn -0.827590 -0.457878 0.324718
-vn -0.897861 -0.284137 0.336321
-vn -0.599921 -0.116149 0.791584
-vn -0.753614 -0.507019 0.418327
-vn -0.827590 -0.457878 0.324718
-vn -0.753614 -0.507019 0.418327
-vn -0.692347 -0.561281 0.453452
-vn -0.794821 -0.533487 0.289225
-vn -0.794821 -0.533487 0.289225
-vn -0.827590 -0.457878 0.324718
-vn -0.753614 -0.507019 0.418327
-vn -0.712964 -0.201500 0.671625
-vn -0.739324 -0.227264 0.633838
-vn -0.755254 -0.322587 0.570552
-vn -0.739324 -0.227264 0.633838
-vn -0.757093 -0.350156 0.551544
-vn -0.755254 -0.322587 0.570552
-vn -0.756897 -0.413234 0.506304
-vn -0.692347 -0.561281 0.453452
-vn -0.753614 -0.507019 0.418327
-vn -0.599921 -0.116149 0.791584
-vn -0.563982 -0.086031 0.821293
-vn -0.753614 -0.507019 0.418327
-vn -0.563982 -0.086031 0.821293
-vn -0.756897 -0.413234 0.506304
-vn -0.753614 -0.507019 0.418327
-vn -0.559636 0.486691 0.670775
-vn -0.275020 0.577380 0.768763
-vn -0.577924 0.320947 0.750331
-vn -0.275020 0.577380 0.768763
-vn -0.116849 0.176925 0.977263
-vn -0.577924 0.320947 0.750331
-vn -0.769637 0.335024 0.543524
-vn -0.559636 0.486691 0.670775
-vn -0.750336 0.293332 0.592412
-vn -0.559636 0.486691 0.670775
-vn -0.577924 0.320947 0.750331
-vn -0.750336 0.293332 0.592412
-vn -0.235209 0.242648 0.941169
-vn -0.517412 0.107566 0.848949
-vn 0.116951 0.164914 0.979350
-vn -0.250798 0.356808 0.899882
-vn -0.503238 0.171977 0.846862
-vn -0.235209 0.242648 0.941169
-vn -0.503238 0.171977 0.846862
-vn -0.517412 0.107566 0.848949
-vn -0.235209 0.242648 0.941169
-vn -0.327185 0.359445 0.873927
-vn -0.576598 0.119160 0.808292
-vn -0.250798 0.356808 0.899882
-vn -0.576598 0.119160 0.808292
-vn -0.503238 0.171977 0.846862
-vn -0.250798 0.356808 0.899882
-vn -0.476121 0.310210 0.822848
-vn -0.622967 0.010702 0.782175
-vn -0.375740 0.369738 0.849772
-vn -0.622967 0.010702 0.782175
-vn -0.613048 0.091494 0.784730
-vn -0.375740 0.369738 0.849772
-vn -0.622967 0.010702 0.782175
-vn -0.476121 0.310210 0.822848
-vn -0.578472 0.274016 0.768300
-vn -0.578472 0.274016 0.768300
-vn -0.600779 -0.009294 0.799361
-vn -0.622967 0.010702 0.782175
-vn -0.701511 0.141462 0.698478
-vn -0.693125 0.218098 0.687030
-vn -0.561167 0.016480 0.827539
-vn -0.693125 0.218098 0.687030
-vn -0.534016 0.096637 0.839934
-vn -0.561167 0.016480 0.827539
-vn -0.693125 0.218098 0.687030
-vn -0.692277 0.290506 0.660575
-vn -0.534016 0.096637 0.839934
-vn -0.692277 0.290506 0.660575
-vn -0.492427 0.164830 0.854603
-vn -0.534016 0.096637 0.839934
-vn -0.433159 0.872884 -0.224606
-vn -0.420776 0.879811 -0.221087
-vn 0.000000 0.965908 -0.258887
-vn -0.420776 0.879811 -0.221087
-vn -0.000000 0.965233 -0.261391
-vn 0.000000 0.965908 -0.258887
-vn -0.775173 0.531858 -0.340932
-vn -0.662547 0.655515 -0.362398
-vn -0.689916 0.626465 -0.362709
-vn -0.654905 -0.078622 0.751610
-vn -0.693829 -0.131658 0.708002
-vn -0.646545 -0.091367 0.757385
-vn -0.547185 0.096805 0.831395
-vn -0.580964 0.116968 0.805481
-vn -0.540099 0.136138 0.830518
-vn -0.580964 0.116968 0.805481
-vn -0.552822 0.127057 0.823556
-vn -0.540099 0.136138 0.830518
-vn -0.238326 -0.280305 -0.929855
-vn -0.413320 -0.375423 -0.829593
-vn -0.205507 -0.341339 -0.917199
-vn -0.740528 -0.552831 0.382095
-vn -0.897861 -0.284137 0.336321
-vn -0.794821 -0.533487 0.289225
-vn -0.740528 -0.552831 0.382095
-vn -0.825379 0.027816 0.563894
-vn -0.879103 -0.123735 0.460291
-vn -0.879103 -0.123735 0.460291
-vn -0.897861 -0.284137 0.336321
-vn -0.740528 -0.552831 0.382095
-vn -0.275481 -0.960323 -0.043470
-vn -0.264099 -0.963244 -0.049115
-vn -0.202615 -0.977155 -0.064149
-vn -0.264099 -0.963244 -0.049115
-vn -0.185655 -0.980160 -0.069422
-vn -0.202615 -0.977155 -0.064149
-vn -0.005068 -0.169127 0.985581
-vn -0.005265 -0.232431 0.972599
-vn -0.004213 -0.178993 0.983841
-vn -0.005265 -0.232431 0.972599
-vn -0.001215 -0.234994 0.971996
-vn -0.004213 -0.178993 0.983841
-vn -0.946101 -0.091808 0.310587
-vn -0.933835 -0.126242 0.334685
-vn -0.947651 -0.069522 0.311647
-vn 0.363064 -0.930250 0.053092
-vn 0.687639 -0.725988 0.009737
-vn 0.385532 -0.921257 0.051487
-vn 0.687639 -0.725988 0.009737
-vn 0.709098 -0.705084 0.006035
-vn 0.385532 -0.921257 0.051487
-vn 0.000000 -0.999654 0.026321
-vn 0.363064 -0.930250 0.053092
-vn 0.000000 -0.998690 0.051159
-vn 0.363064 -0.930250 0.053092
-vn 0.385532 -0.921257 0.051487
-vn 0.000000 -0.998690 0.051159
-vn 0.900186 -0.434841 0.024039
-vn 0.980425 -0.151730 0.125476
-vn 0.913375 -0.402926 0.058283
-vn 0.980425 -0.151730 0.125476
-vn 0.980184 -0.136733 0.143331
-vn 0.913375 -0.402926 0.058283
-vn 0.687639 -0.725988 0.009737
-vn 0.900186 -0.434841 0.024039
-vn 0.709098 -0.705084 0.006035
-vn 0.900186 -0.434841 0.024039
-vn 0.913375 -0.402926 0.058283
-vn 0.709098 -0.705084 0.006035
-vn 0.994612 -0.017356 0.102202
-vn 0.980184 -0.136733 0.143331
-vn 0.994065 -0.017268 0.107409
-vn 0.980184 -0.136733 0.143331
-vn 0.980425 -0.151730 0.125476
-vn 0.994065 -0.017268 0.107409
-vn 0.002828 -0.032587 -0.999465
-vn 0.000000 -0.031297 -0.999510
-vn 0.008149 -0.028624 -0.999557
-vn 0.000000 -0.031297 -0.999510
-vn 0.002828 -0.032587 -0.999465
-vn -0.002828 -0.032587 -0.999465
-vn -0.072237 -0.977132 -0.199989
-vn -0.116236 -0.981237 -0.153826
-vn -0.219139 -0.948685 -0.227979
-vn -0.116236 -0.981237 -0.153826
-vn -0.286498 -0.934423 -0.211593
-vn -0.219139 -0.948685 -0.227979
-vn 0.035271 -0.981040 -0.190571
-vn -0.035271 -0.981040 -0.190571
-vn -0.000000 -0.979515 -0.201370
-vn -0.823208 0.041906 0.566191
-vn -0.815336 0.129486 0.564323
-vn -0.877212 0.129258 0.462376
-vn -0.815336 0.129486 0.564323
-vn -0.793375 0.044918 0.607073
-vn -0.877212 0.129258 0.462376
-vn -0.605525 0.092770 0.790401
-vn -0.586431 0.081488 0.805890
-vn -0.823208 0.041906 0.566191
-vn -0.586431 0.081488 0.805890
-vn -0.815336 0.129486 0.564323
-vn -0.823208 0.041906 0.566191
-vn -0.676740 0.161393 0.718314
-vn -0.578472 0.274016 0.768300
-vn -0.605525 0.092770 0.790401
-vn -0.578472 0.274016 0.768300
-vn -0.586431 0.081488 0.805890
-vn -0.605525 0.092770 0.790401
-vn -0.375740 0.369738 0.849772
-vn -0.613048 0.091494 0.784730
-vn -0.327185 0.359445 0.873927
-vn -0.613048 0.091494 0.784730
-vn -0.576598 0.119160 0.808292
-vn -0.327185 0.359445 0.873927
-vn -0.524767 0.165762 0.834951
-vn -0.375740 0.369738 0.849772
-vn -0.465480 0.198176 0.862586
-vn -0.375740 0.369738 0.849772
-vn -0.327185 0.359445 0.873927
-vn -0.465480 0.198176 0.862586
-vn -0.508398 -0.001751 0.861120
-vn -0.524767 0.165762 0.834951
-vn -0.490471 -0.015544 0.871319
-vn -0.524767 0.165762 0.834951
-vn -0.465480 0.198176 0.862586
-vn -0.490471 -0.015544 0.871319
-vn -0.629564 -0.097579 0.770797
-vn -0.508398 -0.001751 0.861120
-vn -0.599921 -0.116149 0.791584
-vn -0.508398 -0.001751 0.861120
-vn -0.490471 -0.015544 0.871319
-vn -0.599921 -0.116149 0.791584
-vn -0.629564 -0.097579 0.770797
-vn -0.599921 -0.116149 0.791584
-vn -0.827590 -0.457878 0.324718
-vn -0.856567 -0.147677 0.494454
-vn -0.865777 -0.017836 0.500112
-vn -0.877212 0.129258 0.462376
-vn -0.877212 0.129258 0.462376
-vn -0.793375 0.044918 0.607073
-vn -0.856567 -0.147677 0.494454
-vn -0.946101 -0.091808 0.310587
-vn -0.947651 -0.069522 0.311647
-vn -0.921518 -0.135702 0.363854
-vn -0.885192 -0.082688 0.457819
-vn -0.856567 -0.147677 0.494454
-vn -0.921518 -0.135702 0.363854
-vn -0.856567 -0.147677 0.494454
-vn -0.868708 -0.239350 0.433657
-vn -0.921518 -0.135702 0.363854
-vn -0.868708 -0.239350 0.433657
-vn -0.899836 -0.220835 0.376201
-vn -0.921518 -0.135702 0.363854
-vn -0.329491 0.646994 0.687629
-vn 0.000001 0.672206 0.740364
-vn -0.275020 0.577380 0.768763
-vn 0.000001 0.672206 0.740364
-vn 0.000001 0.613691 0.789546
-vn -0.275020 0.577380 0.768763
-vn -0.630979 0.528195 0.568222
-vn -0.329491 0.646994 0.687629
-vn -0.559636 0.486691 0.670775
-vn -0.329491 0.646994 0.687629
-vn -0.275020 0.577380 0.768763
-vn -0.559636 0.486691 0.670775
-vn -0.829128 0.305413 0.468263
-vn -0.630979 0.528195 0.568222
-vn -0.769637 0.335024 0.543524
-vn -0.630979 0.528195 0.568222
-vn -0.559636 0.486691 0.670775
-vn -0.769637 0.335024 0.543524
-vn -0.903664 0.091600 0.418331
-vn -0.829128 0.305413 0.468263
-vn -0.874368 0.142892 0.463748
-vn -0.829128 0.305413 0.468263
-vn -0.769637 0.335024 0.543524
-vn -0.874368 0.142892 0.463748
-vn -0.874368 0.142892 0.463748
-vn -0.865777 -0.017836 0.500112
-vn -0.903664 0.091600 0.418331
-vn -0.903664 0.091600 0.418331
-vn -0.865777 -0.017836 0.500112
-vn -0.885192 -0.082688 0.457819
-vn -0.885192 -0.082688 0.457819
-vn -0.865777 -0.017836 0.500112
-vn -0.856567 -0.147677 0.494454
-vn -0.689916 0.626465 -0.362709
-vn -0.662547 0.655515 -0.362398
-vn -0.433159 0.872884 -0.224606
-vn -0.662547 0.655515 -0.362398
-vn -0.420776 0.879811 -0.221087
-vn -0.433159 0.872884 -0.224606
-vn -0.565548 0.401311 0.720490
-vn -0.395912 0.622565 0.675031
-vn -0.410565 0.235886 0.880792
-vn -0.395912 0.622565 0.675031
-vn -0.283113 0.470702 0.835635
-vn -0.410565 0.235886 0.880792
-vn -0.440416 0.756677 0.483190
-vn -0.395912 0.622565 0.675031
-vn -0.693405 0.534698 0.482998
-vn -0.395912 0.622565 0.675031
-vn -0.565548 0.401311 0.720490
-vn -0.693405 0.534698 0.482998
-vn -0.436515 0.194333 0.878459
-vn -0.301220 0.372748 0.877682
-vn -0.693405 0.534698 0.482998
-vn -0.301220 0.372748 0.877682
-vn -0.440416 0.756677 0.483190
-vn -0.693405 0.534698 0.482998
-vn -0.301220 0.372748 0.877682
-vn -0.436515 0.194333 0.878459
-vn -0.116849 0.176925 0.977263
-vn -0.436515 0.194333 0.878459
-vn -0.577924 0.320947 0.750331
-vn -0.116849 0.176925 0.977263
-vn 0.838070 0.099637 -0.536387
-vn 0.838271 0.058954 -0.542057
-vn 0.872698 0.061054 -0.484428
-vn 0.838271 0.058954 -0.542057
-vn 0.848484 0.011890 -0.529087
-vn 0.872698 0.061054 -0.484428
-vn -0.205507 -0.341339 -0.917199
-vn -0.178952 -0.332850 -0.925844
-vn -0.238326 -0.280305 -0.929855
-vn -0.178952 -0.332850 -0.925844
-vn -0.192392 -0.228822 -0.954267
-vn -0.238326 -0.280305 -0.929855
-vn -0.178952 -0.332850 -0.925844
-vn -0.205507 -0.341339 -0.917199
-vn -0.203431 -0.333613 -0.920499
-vn -0.205507 -0.341339 -0.917199
-vn -0.201666 -0.331943 -0.921490
-vn -0.203431 -0.333613 -0.920499
-vn -0.203431 -0.333613 -0.920499
-vn -0.201666 -0.331943 -0.921490
-vn -0.163755 -0.336084 -0.927487
-vn -0.201666 -0.331943 -0.921490
-vn -0.153812 -0.338505 -0.928308
-vn -0.163755 -0.336084 -0.927487
-vn 0.848484 0.011890 -0.529087
-vn 0.841805 0.021328 -0.539360
-vn 0.857799 0.017740 -0.513679
-vn 0.841805 0.021328 -0.539360
-vn 0.852988 -0.069459 -0.517289
-vn 0.857799 0.017740 -0.513679
-vn 0.857799 0.017740 -0.513679
-vn 0.852988 -0.069459 -0.517289
-vn 0.850491 -0.071994 -0.521040
-vn 0.850491 -0.071994 -0.521040
-vn 0.852988 -0.069459 -0.517289
-vn 0.846858 -0.092154 -0.523774
-vn 0.852988 -0.069459 -0.517289
-vn 0.847084 -0.090957 -0.523617
-vn 0.846858 -0.092154 -0.523774
-vn 0.846858 -0.092154 -0.523774
-vn 0.847084 -0.090957 -0.523617
-vn 0.856333 -0.079551 -0.510260
-vn 0.847084 -0.090957 -0.523617
-vn 0.858056 -0.079184 -0.507414
-vn 0.856333 -0.079551 -0.510260
-vn 0.000000 -0.932573 -0.360982
-vn 0.000000 -0.932573 -0.360982
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.932573 -0.360982
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.976110 -0.217278
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.976110 -0.217278
-vn 0.000000 -0.976110 -0.217278
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.953392 -0.301735
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.972069 -0.234696
-vn 0.000000 -0.264205 -0.964467
-vn 0.000000 -0.264205 -0.964467
-vn 0.000000 -0.264205 -0.964467
-vn 0.000000 -0.264205 -0.964467
-vn 0.000000 -0.264205 -0.964467
-vn 0.000000 -0.264205 -0.964467
-vn -0.478456 -0.790218 0.382931
-vn -0.276536 -0.885350 0.373742
-vn -0.740528 -0.552831 0.382095
-vn -0.740528 -0.552831 0.382095
-vn -0.794821 -0.533487 0.289225
-vn -0.590635 -0.714541 0.374944
-vn -0.750336 0.293332 0.592412
-vn -0.577924 0.320947 0.750331
-vn -0.795047 0.365673 0.483925
-vn -0.577924 0.320947 0.750331
-vn -0.746744 0.367133 0.554606
-vn -0.795047 0.365673 0.483925
-vn -0.646545 -0.091367 0.757385
-vn -0.595966 0.010468 0.802941
-vn -0.654905 -0.078622 0.751610
-vn -0.595966 0.010468 0.802941
-vn -0.645965 0.010516 0.763295
-vn -0.654905 -0.078622 0.751610
-vn -0.540099 0.136138 0.830518
-vn -0.552822 0.127057 0.823556
-vn -0.595966 0.010468 0.802941
-vn -0.552822 0.127057 0.823556
-vn -0.645965 0.010516 0.763295
-vn -0.595966 0.010468 0.802941
-vn -0.251850 0.142173 0.957266
-vn -0.148081 0.146979 0.977992
-vn -0.000000 0.162236 0.986752
-vn -0.148081 0.146979 0.977992
-vn 0.000000 0.141845 0.989889
-vn -0.000000 0.162236 0.986752
-vn -0.309238 0.165614 0.936453
-vn -0.258904 0.164100 0.951861
-vn -0.419722 0.109486 0.901025
-vn -0.419722 0.109486 0.901025
-vn -0.258904 0.164100 0.951861
-vn -0.251850 0.142173 0.957266
-vn -0.251850 0.142173 0.957266
-vn -0.258904 0.164100 0.951861
-vn -0.148081 0.146979 0.977992
-vn -0.419722 0.109486 0.901025
-vn -0.564812 0.045086 0.823987
-vn -0.612310 0.047672 0.789179
-vn -0.612310 0.047672 0.789179
-vn -0.606924 0.075892 0.791128
-vn -0.419722 0.109486 0.901025
-vn -0.419722 0.109486 0.901025
-vn -0.606924 0.075892 0.791128
-vn -0.543709 0.088666 0.834577
-vn -0.419722 0.109486 0.901025
-vn -0.543709 0.088666 0.834577
-vn -0.454197 0.114604 0.883499
-vn -0.454197 0.114604 0.883499
-vn -0.309238 0.165614 0.936453
-vn -0.419722 0.109486 0.901025
-vn -0.669690 0.002394 0.742637
-vn -0.564812 0.045086 0.823987
-vn -0.671572 0.000921 0.740939
-vn -0.671572 0.000921 0.740939
-vn -0.564812 0.045086 0.823987
-vn -0.643622 0.003589 0.765335
-vn -0.643622 0.003589 0.765335
-vn -0.564812 0.045086 0.823987
-vn -0.639893 0.000847 0.768464
-vn -0.612310 0.047672 0.789179
-vn -0.564812 0.045086 0.823987
-vn -0.636933 0.013998 0.770792
-vn -0.636933 0.013998 0.770792
-vn -0.564812 0.045086 0.823987
-vn -0.657122 0.006114 0.753760
-vn -0.564812 0.045086 0.823987
-vn -0.669690 0.002394 0.742637
-vn -0.657122 0.006114 0.753760
-vn -0.643622 0.003589 0.765335
-vn -0.639893 0.000847 0.768464
-vn -0.683680 -0.002210 0.729779
-vn -0.639893 0.000847 0.768464
-vn -0.627557 -0.013526 0.778453
-vn -0.683680 -0.002210 0.729779
-vn -0.683680 -0.002210 0.729779
-vn -0.627557 -0.013526 0.778453
-vn -0.640497 -0.013131 0.767849
-vn -0.667494 -0.004835 0.744600
-vn -0.558854 0.112881 0.821547
-vn -0.629564 -0.097579 0.770797
-vn -0.558854 0.112881 0.821547
-vn -0.508398 -0.001751 0.861120
-vn -0.629564 -0.097579 0.770797
-vn -0.897861 -0.284137 0.336321
-vn -0.872815 -0.299763 0.385144
-vn -0.629564 -0.097579 0.770797
-vn -0.629564 -0.097579 0.770797
-vn -0.872815 -0.299763 0.385144
-vn -0.667494 -0.004835 0.744600
-vn -0.600779 -0.009294 0.799361
-vn -0.578472 0.274016 0.768300
-vn -0.676740 0.161393 0.718314
-vn -0.676740 0.161393 0.718314
-vn -0.701511 0.141462 0.698478
-vn -0.561167 0.016480 0.827539
-vn -0.561167 0.016480 0.827539
-vn -0.600779 -0.009294 0.799361
-vn -0.676740 0.161393 0.718314
-vn -0.701511 0.141462 0.698478
-vn -0.676740 0.161393 0.718314
-vn -0.637787 0.094809 0.764355
-vn -0.676740 0.161393 0.718314
-vn -0.605525 0.092770 0.790401
-vn -0.637787 0.094809 0.764355
-vn -0.637787 0.094809 0.764355
-vn -0.605525 0.092770 0.790401
-vn -0.725879 0.010493 0.687742
-vn -0.605525 0.092770 0.790401
-vn -0.823208 0.041906 0.566191
-vn -0.725879 0.010493 0.687742
-vn -0.725879 0.010493 0.687742
-vn -0.823208 0.041906 0.566191
-vn -0.878719 0.118802 0.462319
-vn -0.823208 0.041906 0.566191
-vn -0.877212 0.129258 0.462376
-vn -0.878719 0.118802 0.462319
-vn -0.878719 0.118802 0.462319
-vn -0.877212 0.129258 0.462376
-vn -0.865777 -0.017836 0.500112
-vn -0.000875 -0.119271 0.992861
-vn 0.033272 -0.126422 0.991418
-vn 0.000283 -0.119211 0.992869
-vn 0.033272 -0.126422 0.991418
-vn 0.033619 -0.126186 0.991437
-vn 0.000283 -0.119211 0.992869
-vn 0.995493 -0.030523 0.089784
-vn 0.986612 -0.094408 0.132977
-vn 0.993894 -0.047100 0.099785
-vn -0.921518 -0.135702 0.363854
-vn -0.947651 -0.069522 0.311647
-vn -0.885192 -0.082688 0.457819
-vn -0.740528 -0.552831 0.382095
-vn -0.590635 -0.714541 0.374944
-vn -0.478456 -0.790218 0.382931
-vn -0.692347 -0.561281 0.453452
-vn -0.662695 -0.571305 0.484196
-vn -0.590635 -0.714541 0.374944
-vn -0.662695 -0.571305 0.484196
-vn -0.478456 -0.790218 0.382931
-vn -0.590635 -0.714541 0.374944
-vn -0.756897 -0.413234 0.506304
-vn -0.729157 -0.440006 0.524142
-vn -0.692347 -0.561281 0.453452
-vn -0.729157 -0.440006 0.524142
-vn -0.662695 -0.571305 0.484196
-vn -0.692347 -0.561281 0.453452
-vn -0.755254 -0.322587 0.570552
-vn -0.757093 -0.350156 0.551544
-vn -0.756897 -0.413234 0.506304
-vn -0.757093 -0.350156 0.551544
-vn -0.729157 -0.440006 0.524142
-vn -0.756897 -0.413234 0.506304
-vn 0.994065 -0.017268 0.107409
-vn 0.995493 -0.030523 0.089784
-vn 0.994612 -0.017356 0.102202
-vn 0.995493 -0.030523 0.089784
-vn 0.993894 -0.047100 0.099785
-vn 0.994612 -0.017356 0.102202
-vn -0.692347 -0.561281 0.453452
-vn -0.590635 -0.714541 0.374944
-vn -0.794821 -0.533487 0.289225
-vn -0.897861 -0.284137 0.336321
-vn -0.827590 -0.457878 0.324718
-vn -0.794821 -0.533487 0.289225
-vn -0.072237 -0.977132 -0.199989
-vn -0.219139 -0.948685 -0.227979
-vn -0.035271 -0.981040 -0.190571
-vn -0.219139 -0.948685 -0.227979
-vn -0.000000 -0.979515 -0.201370
-vn -0.035271 -0.981040 -0.190571
-vn -0.006740 -0.119147 0.992854
-vn -0.010643 -0.117305 0.993039
-vn 0.014744 -0.114681 0.993293
-vn -0.010643 -0.117305 0.993039
-vn 0.016403 -0.114530 0.993284
-vn 0.014744 -0.114681 0.993293
-vn -0.001677 -0.122098 0.992517
-vn -0.002947 -0.126501 0.991962
-vn -0.006740 -0.119147 0.992854
-vn -0.002947 -0.126501 0.991962
-vn -0.010643 -0.117305 0.993039
-vn -0.006740 -0.119147 0.992854
-vn 0.015048 -0.110728 0.993737
-vn -0.002947 -0.126501 0.991962
-vn 0.008436 -0.120558 0.992670
-vn -0.002947 -0.126501 0.991962
-vn -0.001677 -0.122098 0.992517
-vn 0.008436 -0.120558 0.992670
-vn 0.004324 -0.103474 0.994623
-vn 0.015048 -0.110728 0.993737
-vn 0.007501 -0.104044 0.994544
-vn 0.015048 -0.110728 0.993737
-vn 0.008436 -0.120558 0.992670
-vn 0.007501 -0.104044 0.994544
-vn 0.005018 -0.111652 0.993735
-vn 0.004324 -0.103474 0.994623
-vn 0.005159 -0.111410 0.993761
-vn 0.004324 -0.103474 0.994623
-vn 0.007501 -0.104044 0.994544
-vn 0.005159 -0.111410 0.993761
-vn -0.000000 -0.103656 0.994613
-vn 0.005018 -0.111652 0.993735
-vn 0.000000 -0.104054 0.994572
-vn 0.005018 -0.111652 0.993735
-vn 0.005159 -0.111410 0.993761
-vn 0.000000 -0.104054 0.994572
-vn -0.383264 0.917386 0.107289
-vn 0.000001 0.993140 0.116931
-vn -0.381628 0.918043 0.107501
-vn 0.000001 0.993140 0.116931
-vn -0.000000 0.993137 0.116961
-vn -0.381628 0.918043 0.107501
-vn -0.944421 0.326503 0.038270
-vn -0.944072 0.327512 0.038261
-vn -0.996158 0.087056 0.009500
-vn -0.944072 0.327512 0.038261
-vn -0.996136 0.087303 0.009553
-vn -0.996158 0.087056 0.009500
-vn -0.383264 0.917386 0.107289
-vn -0.381628 0.918043 0.107501
-vn -0.734851 0.673666 0.078540
-vn -0.381628 0.918043 0.107501
-vn -0.733828 0.674769 0.078632
-vn -0.734851 0.673666 0.078540
-vn -0.944421 0.326503 0.038270
-vn -0.734851 0.673666 0.078540
-vn -0.944072 0.327512 0.038261
-vn -0.734851 0.673666 0.078540
-vn -0.733828 0.674769 0.078632
-vn -0.944072 0.327512 0.038261
-vn 0.000000 -0.993771 -0.111439
-vn 0.000000 -0.993771 -0.111439
-vn -0.035271 -0.981040 -0.190571
-vn 0.000000 0.198064 0.980189
-vn 0.000000 -0.117199 0.993109
-vn 0.000000 0.198064 0.980189
-vn 0.000000 -0.117199 0.993109
-vn 0.000000 -0.117199 0.993109
-vn 0.000000 0.198064 0.980189
-vn 0.000000 -0.116642 0.993174
-vn 0.000000 -0.116642 0.993174
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.116642 0.993174
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.116648 0.993173
-vn 0.000000 -0.116648 0.993173
-vn 0.000000 -0.116628 0.993176
-vn 0.000000 -0.116648 0.993173
-vn 0.000000 -0.116628 0.993176
-vn 0.000000 -0.116628 0.993176
-vn -0.999999 0.000168 -0.001210
-vn -0.999999 0.000474 -0.001197
-vn -0.996136 0.087303 0.009553
-vn 0.000000 0.493608 0.869684
-vn 0.000000 0.493608 0.869684
-vn 0.000000 0.198064 0.980189
-vn 0.000000 0.493608 0.869684
-vn 0.000000 0.198064 0.980189
-vn 0.000000 0.198064 0.980189
-vn 0.000000 -0.714981 0.699144
-vn 0.000000 -0.714981 0.699144
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.714981 0.699144
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.441037 0.897489
-vn 0.000000 -0.116649 0.993173
-vn 0.000000 -0.116628 0.993176
-vn 0.000000 -0.116628 0.993176
-vn 0.000000 -0.116642 0.993174
-vn 0.000000 -0.116628 0.993176
-vn 0.000000 -0.116642 0.993174
-vn 0.000000 -0.116642 0.993174
-vn -0.999999 0.000474 -0.001197
-vn -0.999999 0.000168 -0.001210
-vn -0.999999 0.000133 -0.001444
-vn -0.999999 0.000474 -0.001197
-vn -0.996158 0.087056 0.009500
-vn -0.996136 0.087303 0.009553
-vn -1.000000 0.000059 -0.000503
-vn -0.999999 -0.000103 -0.001265
-vn -1.000000 0.000066 -0.000537
-vn -0.999999 0.000168 -0.001210
-vn -0.999999 -0.000103 -0.001265
-vn -0.999999 0.000133 -0.001444
-vn 0.000000 -0.116739 0.993163
-vn 0.000000 -0.116648 0.993173
-vn 0.000000 -0.116648 0.993173
-vn -0.999999 -0.000103 -0.001265
-vn -0.999999 0.000168 -0.001210
-vn -1.000000 0.000066 -0.000537
-vn -0.984694 0.174160 -0.006738
-vn -0.980089 0.198515 -0.004173
-vn -0.983212 0.180337 -0.027797
-vn -0.808708 -0.587341 -0.031976
-vn -0.494936 -0.863469 -0.097259
-vn -0.708309 -0.701790 -0.076086
-vn 0.339143 -0.505622 0.793302
-vn 0.299846 -0.516749 0.801912
-vn 0.182952 -0.354088 0.917143
-vn 0.182952 -0.354088 0.917143
-vn 0.299846 -0.516749 0.801912
-vn 0.154745 -0.355795 0.921664
-vn 0.182952 -0.354088 0.917143
-vn 0.154745 -0.355795 0.921664
-vn 0.116745 -0.319879 0.940238
-vn 0.116745 -0.319879 0.940238
-vn 0.154745 -0.355795 0.921664
-vn 0.109565 -0.318437 0.941591
-vn 0.109565 -0.318437 0.941591
-vn 0.131033 -0.317293 0.939231
-vn 0.116745 -0.319879 0.940238
-vn 0.116745 -0.319879 0.940238
-vn 0.131033 -0.317293 0.939231
-vn 0.138390 -0.332970 0.932727
-vn 0.067684 -0.219277 0.973312
-vn 0.144281 -0.209043 0.967204
-vn 0.071452 -0.215752 0.973830
-vn 0.071452 -0.215752 0.973830
-vn 0.144281 -0.209043 0.967204
-vn 0.158943 -0.205989 0.965560
-vn -0.000000 -0.227028 0.973888
-vn 0.067684 -0.219277 0.973312
-vn -0.000000 -0.224410 0.974495
-vn -0.000000 -0.224410 0.974495
-vn 0.067684 -0.219277 0.973312
-vn 0.071452 -0.215752 0.973830
-vn 0.138390 -0.332970 0.932727
-vn 0.142304 -0.333246 0.932039
-vn 0.149920 -0.347308 0.925690
-vn 0.149920 -0.347308 0.925690
-vn 0.142304 -0.333246 0.932039
-vn 0.161840 -0.334626 0.928350
-vn 0.161840 -0.334626 0.928350
-vn 0.142304 -0.333246 0.932039
-vn 0.166593 -0.330885 0.928850
-vn 0.191886 -0.210924 0.958484
-vn 0.196009 -0.235372 0.951935
-vn 0.196192 -0.207154 0.958434
-vn 0.196192 -0.207154 0.958434
-vn 0.196009 -0.235372 0.951935
-vn 0.196607 -0.228696 0.953438
-vn 0.178410 -0.306737 0.934924
-vn 0.188830 -0.293149 0.937234
-vn 0.196009 -0.235372 0.951935
-vn 0.196009 -0.235372 0.951935
-vn 0.188830 -0.293149 0.937234
-vn 0.196607 -0.228696 0.953438
-vn 0.345594 -0.929888 0.125990
-vn 0.390945 -0.918337 -0.061799
-vn 0.357049 -0.929812 0.089253
-vn 0.357049 -0.929812 0.089253
-vn 0.390945 -0.918337 -0.061799
-vn 0.396515 -0.915703 -0.065292
-vn 0.984334 -0.176055 0.009521
-vn 0.983848 -0.178923 0.005394
-vn 0.980679 -0.195518 0.006376
-vn 0.990796 -0.135356 0.001687
-vn 0.983848 -0.178923 0.005394
-vn 0.991086 -0.133014 0.007440
-vn 0.991086 -0.133014 0.007440
-vn 0.983848 -0.178923 0.005394
-vn 0.984334 -0.176055 0.009521
-vn 0.991086 -0.133014 0.007440
-vn 0.998589 0.052790 0.005722
-vn 0.990796 -0.135356 0.001687
-vn 0.990796 -0.135356 0.001687
-vn 0.998589 0.052790 0.005722
-vn 0.997021 0.077063 0.003255
-vn 0.095426 0.992875 0.071360
-vn 0.284211 0.955066 0.084101
-vn 0.083437 0.994889 0.056877
-vn 0.083437 0.994889 0.056877
-vn 0.284211 0.955066 0.084101
-vn 0.322783 0.944059 0.067556
-vn 0.000000 0.999116 0.042032
-vn 0.095426 0.992875 0.071360
-vn -0.000000 0.999216 0.039578
-vn -0.000000 0.999216 0.039578
-vn 0.095426 0.992875 0.071360
-vn 0.083437 0.994889 0.056877
-vn 0.993002 0.117935 0.006226
-vn 0.999247 0.038797 0.000740
-vn 0.996380 0.085006 0.000430
-vn 0.996380 0.085006 0.000430
-vn 0.999247 0.038797 0.000740
-vn 0.998947 0.045842 0.001757
-vn 0.615919 0.785318 0.062605
-vn 0.893410 0.448498 0.025842
-vn 0.682062 0.729639 0.049171
-vn 0.682062 0.729639 0.049171
-vn 0.893410 0.448498 0.025842
-vn 0.914969 0.402789 0.024342
-vn 0.893410 0.448498 0.025842
-vn 0.978147 0.207638 0.010723
-vn 0.914969 0.402789 0.024342
-vn 0.914969 0.402789 0.024342
-vn 0.978147 0.207638 0.010723
-vn 0.983245 0.182196 0.005792
-vn 0.756449 0.653385 0.029548
-vn 0.997021 0.077063 0.003255
-vn 0.823527 0.566803 0.023172
-vn 0.823527 0.566803 0.023172
-vn 0.997021 0.077063 0.003255
-vn 0.998589 0.052790 0.005722
-vn 0.363218 -0.788030 0.497072
-vn 0.354110 -0.803703 0.478192
-vn 0.339143 -0.505622 0.793302
-vn 0.339143 -0.505622 0.793302
-vn 0.354110 -0.803703 0.478192
-vn 0.299846 -0.516749 0.801912
-vn 0.161840 -0.334626 0.928350
-vn 0.166593 -0.330885 0.928850
-vn 0.178410 -0.306737 0.934924
-vn 0.178410 -0.306737 0.934924
-vn 0.166593 -0.330885 0.928850
-vn 0.188830 -0.293149 0.937234
-vn 0.978147 0.207638 0.010723
-vn 0.993002 0.117935 0.006226
-vn 0.983245 0.182196 0.005792
-vn 0.983245 0.182196 0.005792
-vn 0.993002 0.117935 0.006226
-vn 0.996380 0.085006 0.000430
-vn -0.993452 0.113575 -0.012418
-vn -0.993500 0.113826 0.000749
-vn -0.983596 0.179257 -0.020171
-vn -0.983596 0.179257 -0.020171
-vn -0.993500 0.113826 0.000749
-vn -0.984694 0.174160 -0.006738
-vn -0.993500 0.113826 0.000749
-vn -0.993452 0.113575 -0.012418
-vn -0.985935 -0.166960 -0.007524
-vn -0.985935 -0.166960 -0.007524
-vn -0.993452 0.113575 -0.012418
-vn -0.975625 -0.218711 -0.017944
-vn -0.324453 -0.809413 -0.489470
-vn -0.095583 -0.992659 -0.074102
-vn -0.119524 -0.861339 -0.493770
-vn -0.095583 -0.992659 -0.074102
-vn -0.000000 -0.997673 -0.068181
-vn -0.119524 -0.861339 -0.493770
-vn -0.000000 -0.997673 -0.068181
-vn 0.000000 -0.871316 -0.490722
-vn -0.119524 -0.861339 -0.493770
-vn -0.985935 -0.166960 -0.007524
-vn -0.975625 -0.218711 -0.017944
-vn -0.959190 -0.282414 -0.014033
-vn -0.959190 -0.282414 -0.014033
-vn -0.975625 -0.218711 -0.017944
-vn -0.965709 -0.258960 -0.018602
-vn -0.996490 -0.080699 -0.022271
-vn -0.998432 -0.055875 -0.003518
-vn -0.996882 -0.076594 -0.018986
-vn -0.996882 -0.076594 -0.018986
-vn -0.998432 -0.055875 -0.003518
-vn -0.997107 -0.075791 -0.005838
-vn -0.965301 -0.259102 -0.032545
-vn -0.969905 -0.243373 -0.007371
-vn -0.996490 -0.080699 -0.022271
-vn -0.996490 -0.080699 -0.022271
-vn -0.969905 -0.243373 -0.007371
-vn -0.998432 -0.055875 -0.003518
-vn -0.850012 -0.526176 -0.024864
-vn -0.969905 -0.243373 -0.007371
-vn -0.965301 -0.259102 -0.032545
-vn -0.969905 -0.243373 -0.007371
-vn -0.850012 -0.526176 -0.024864
-vn -0.808708 -0.587341 -0.031976
-vn -0.965301 -0.259102 -0.032545
-vn -0.791469 -0.609184 -0.049722
-vn -0.850012 -0.526176 -0.024864
-vn 0.914969 0.402789 0.024342
-vn 0.983245 0.182196 0.005792
-vn 0.945131 0.326041 0.020602
-vn -0.767409 -0.563943 0.305045
-vn -0.979545 -0.197391 -0.039099
-vn -0.772660 -0.348538 0.530583
-vn -0.772660 -0.348538 0.530583
-vn -0.979545 -0.197391 -0.039099
-vn -0.990615 -0.133182 -0.030719
-vn -0.755223 -0.652355 0.063808
-vn -0.973639 -0.218470 -0.065558
-vn -0.767409 -0.563943 0.305045
-vn -0.767409 -0.563943 0.305045
-vn -0.973639 -0.218470 -0.065558
-vn -0.979545 -0.197391 -0.039099
-vn -0.707233 -0.162804 0.687980
-vn -0.738957 0.055017 0.671503
-vn -0.985507 -0.169473 0.007393
-vn -0.738957 0.055017 0.671503
-vn -0.761618 0.252637 0.596751
-vn -0.985507 -0.169473 0.007393
-vn -0.997107 -0.075791 -0.005838
-vn -0.998432 -0.055875 -0.003518
-vn -0.775408 0.330567 0.538023
-vn -0.761618 0.252637 0.596751
-vn -0.998432 -0.055875 -0.003518
-vn -0.985507 -0.169473 0.007393
-vn -0.985935 -0.166960 -0.007524
-vn -0.959190 -0.282414 -0.014033
-vn -0.820751 0.061453 0.567972
-vn -0.820751 0.061453 0.567972
-vn -0.959190 -0.282414 -0.014033
-vn -0.804082 0.167348 0.570480
-vn -0.993500 0.113826 0.000749
-vn -0.985935 -0.166960 -0.007524
-vn -0.724913 0.292702 0.623560
-vn -0.724913 0.292702 0.623560
-vn -0.985935 -0.166960 -0.007524
-vn -0.820751 0.061453 0.567972
-vn -0.984694 0.174160 -0.006738
-vn -0.993500 0.113826 0.000749
-vn -0.771535 0.304529 0.558566
-vn -0.771535 0.304529 0.558566
-vn -0.993500 0.113826 0.000749
-vn -0.724913 0.292702 0.623560
-vn -0.980089 0.198515 -0.004173
-vn -0.984694 0.174160 -0.006738
-vn -0.740815 0.342903 0.577590
-vn -0.740815 0.342903 0.577590
-vn -0.984694 0.174160 -0.006738
-vn -0.771535 0.304529 0.558566
-vn 0.385018 -0.919892 -0.074557
-vn 0.396515 -0.915703 -0.065292
-vn 0.386712 -0.919150 -0.074949
-vn 0.386712 -0.919150 -0.074949
-vn 0.396515 -0.915703 -0.065292
-vn 0.390945 -0.918337 -0.061799
-vn 0.985997 -0.166579 0.007890
-vn 0.984334 -0.176055 0.009521
-vn 0.982751 -0.184689 0.009457
-vn 0.982751 -0.184689 0.009457
-vn 0.984334 -0.176055 0.009521
-vn 0.982479 -0.186010 0.011654
-vn 0.993671 -0.112316 0.001790
-vn 0.991086 -0.133014 0.007440
-vn 0.985997 -0.166579 0.007890
-vn 0.985997 -0.166579 0.007890
-vn 0.991086 -0.133014 0.007440
-vn 0.984334 -0.176055 0.009521
-vn 0.995237 0.097405 0.003889
-vn 0.998589 0.052790 0.005722
-vn 0.993671 -0.112316 0.001790
-vn 0.993671 -0.112316 0.001790
-vn 0.998589 0.052790 0.005722
-vn 0.991086 -0.133014 0.007440
-vn 0.998589 0.052790 0.005722
-vn 0.995237 0.097405 0.003889
-vn 0.823527 0.566803 0.023172
-vn 0.823527 0.566803 0.023172
-vn 0.995237 0.097405 0.003889
-vn 0.761245 0.647906 0.026911
-vn 0.574631 -0.446587 -0.685827
-vn 0.996550 0.082383 -0.010068
-vn 0.998947 0.045842 0.001757
-vn 0.082937 0.995311 0.049767
-vn 0.322783 0.944059 0.067556
-vn 0.135626 0.988292 0.069896
-vn 0.135626 0.988292 0.069896
-vn 0.322783 0.944059 0.067556
-vn 0.180265 0.982087 0.054868
-vn 0.180265 0.982087 0.054868
-vn 0.322783 0.944059 0.067556
-vn 0.429327 0.901377 0.056555
-vn 0.011871 0.999709 0.020995
-vn 0.083437 0.994889 0.056877
-vn 0.082937 0.995311 0.049767
-vn 0.000000 0.999970 0.007701
-vn -0.000000 0.999216 0.039578
-vn 0.011871 0.999709 0.020995
-vn 0.011871 0.999709 0.020995
-vn -0.000000 0.999216 0.039578
-vn 0.083437 0.994889 0.056877
-vn 0.363218 -0.788030 0.497072
-vn 0.345594 -0.929888 0.125990
-vn 0.354110 -0.803703 0.478192
-vn 0.354110 -0.803703 0.478192
-vn 0.345594 -0.929888 0.125990
-vn 0.357049 -0.929812 0.089253
-vn 0.982423 -0.186181 0.013505
-vn 0.982479 -0.186010 0.011654
-vn 0.984334 -0.176055 0.009521
-vn -0.983596 0.179257 -0.020171
-vn -0.984694 0.174160 -0.006738
-vn -0.984046 0.174020 -0.037009
-vn -0.959190 -0.282414 -0.014033
-vn -0.965709 -0.258960 -0.018602
-vn -0.997107 -0.075791 -0.005838
-vn -0.997107 -0.075791 -0.005838
-vn -0.965709 -0.258960 -0.018602
-vn -0.996882 -0.076594 -0.018986
-vn -0.959190 -0.282414 -0.014033
-vn -0.997107 -0.075791 -0.005838
-vn -0.804082 0.167348 0.570480
-vn -0.804082 0.167348 0.570480
-vn -0.997107 -0.075791 -0.005838
-vn -0.775408 0.330567 0.538023
-vn 0.138390 -0.332970 0.932727
-vn 0.131033 -0.317293 0.939231
-vn 0.134867 -0.315546 0.939277
-vn -0.999569 0.028846 0.005434
-vn -0.999550 0.029492 0.005516
-vn -0.998069 0.045238 0.042564
-vn -0.998069 0.045238 0.042564
-vn -0.999550 0.029492 0.005516
-vn -0.997809 0.049679 0.043688
-vn -0.998069 0.045238 0.042564
-vn -0.997809 0.049679 0.043688
-vn -0.995800 0.065592 0.063883
-vn -0.995800 0.065592 0.063883
-vn -0.997809 0.049679 0.043688
-vn -0.995888 0.066977 0.061000
-vn -0.507293 -0.858759 -0.072022
-vn -0.515410 -0.853105 -0.081018
-vn -0.811258 -0.584646 0.007064
-vn -0.811258 -0.584646 0.007064
-vn -0.515410 -0.853105 -0.081018
-vn -0.818825 -0.574042 0.001045
-vn -0.995708 0.084216 0.038390
-vn -0.992675 0.109002 0.052112
-vn -0.995703 0.084333 0.038251
-vn -0.995703 0.084333 0.038251
-vn -0.992675 0.109002 0.052112
-vn -0.992674 0.108503 0.053153
-vn -0.995703 0.084333 0.038251
-vn -0.999464 0.014411 0.029383
-vn -0.995708 0.084216 0.038390
-vn -0.995708 0.084216 0.038390
-vn -0.999464 0.014411 0.029383
-vn -0.999501 0.014175 0.028222
-vn -0.249117 -0.963466 -0.098359
-vn -0.247950 -0.964620 -0.089610
-vn -0.104406 -0.994097 -0.029509
-vn -0.104406 -0.994097 -0.029509
-vn -0.247950 -0.964620 -0.089610
-vn -0.106145 -0.993954 -0.028067
-vn -0.000000 -0.999979 -0.006475
-vn -0.104406 -0.994097 -0.029509
-vn -0.000000 -0.999971 -0.007637
-vn -0.000000 -0.999971 -0.007637
-vn -0.104406 -0.994097 -0.029509
-vn -0.106145 -0.993954 -0.028067
-vn -0.990700 -0.134435 0.020989
-vn -0.998261 -0.056077 0.018160
-vn -0.990656 -0.134478 0.022719
-vn -0.990656 -0.134478 0.022719
-vn -0.998261 -0.056077 0.018160
-vn -0.998293 -0.055357 0.018610
-vn -0.990700 -0.134435 0.020989
-vn -0.990656 -0.134478 0.022719
-vn -0.959183 -0.281844 0.023066
-vn -0.959183 -0.281844 0.023066
-vn -0.990656 -0.134478 0.022719
-vn -0.957430 -0.287103 0.029993
-vn -0.959183 -0.281844 0.023066
-vn -0.957430 -0.287103 0.029993
-vn -0.818825 -0.574042 0.001045
-vn -0.818825 -0.574042 0.001045
-vn -0.957430 -0.287103 0.029993
-vn -0.811258 -0.584646 0.007064
-vn -0.999569 0.028846 0.005434
-vn -0.969840 0.166099 0.178388
-vn -0.999550 0.029492 0.005516
-vn -0.999550 0.029492 0.005516
-vn -0.969840 0.166099 0.178388
-vn -0.994998 0.093231 -0.035887
-vn -0.994625 0.082784 0.062195
-vn -0.995800 0.065592 0.063883
-vn -0.994644 0.081683 0.063330
-vn -0.994644 0.081683 0.063330
-vn -0.995800 0.065592 0.063883
-vn -0.995888 0.066977 0.061000
-vn -0.992675 0.109002 0.052112
-vn -0.994625 0.082784 0.062195
-vn -0.992674 0.108503 0.053153
-vn -0.992674 0.108503 0.053153
-vn -0.994625 0.082784 0.062195
-vn -0.994644 0.081683 0.063330
-vn -0.999501 0.014175 0.028222
-vn -0.999464 0.014411 0.029383
-vn -0.998261 -0.056077 0.018160
-vn -0.998261 -0.056077 0.018160
-vn -0.999464 0.014411 0.029383
-vn -0.998293 -0.055357 0.018610
-vn -0.417566 0.902141 -0.108536
-vn -0.426749 0.902770 -0.053783
-vn -0.440343 0.896429 0.050135
-vn -0.440343 0.896429 0.050135
-vn -0.426749 0.902770 -0.053783
-vn -0.446303 0.893472 0.050214
-vn -0.448052 0.757634 -0.474595
-vn -0.446061 0.791914 -0.417015
-vn -0.417566 0.902141 -0.108536
-vn -0.417566 0.902141 -0.108536
-vn -0.446061 0.791914 -0.417015
-vn -0.426749 0.902770 -0.053783
-vn -0.319057 -0.035786 -0.947060
-vn -0.328251 -0.031289 -0.944072
-vn -0.404581 0.077599 -0.911204
-vn -0.404581 0.077599 -0.911204
-vn -0.328251 -0.031289 -0.944072
-vn -0.359800 0.075412 -0.929977
-vn -0.169298 0.324929 -0.930462
-vn -0.263657 0.363905 -0.893341
-vn -0.180314 0.325379 -0.928232
-vn -0.180314 0.325379 -0.928232
-vn -0.263657 0.363905 -0.893341
-vn -0.290602 0.358700 -0.887065
-vn -0.169298 0.324929 -0.930462
-vn -0.180314 0.325379 -0.928232
-vn -0.212363 0.301851 -0.929402
-vn -0.212363 0.301851 -0.929402
-vn -0.180314 0.325379 -0.928232
-vn -0.235126 0.317229 -0.918739
-vn -0.085991 0.008774 -0.996257
-vn -0.085479 -0.001567 -0.996339
-vn -0.212106 -0.072179 -0.974577
-vn -0.212106 -0.072179 -0.974577
-vn -0.085479 -0.001567 -0.996339
-vn -0.239693 -0.077290 -0.967767
-vn 0.000000 -0.057309 -0.998357
-vn -0.085479 -0.001567 -0.996339
-vn 0.000000 -0.050714 -0.998713
-vn 0.000000 -0.050714 -0.998713
-vn -0.085479 -0.001567 -0.996339
-vn -0.085991 0.008774 -0.996257
-vn -0.255352 0.293656 -0.921174
-vn -0.212363 0.301851 -0.929402
-vn -0.235126 0.317229 -0.918739
-vn -0.263699 0.309474 -0.913613
-vn -0.262790 0.310576 -0.913501
-vn -0.290612 0.326849 -0.899285
-vn -0.290612 0.326849 -0.899285
-vn -0.262790 0.310576 -0.913501
-vn -0.305134 0.314478 -0.898886
-vn -0.310643 0.219722 -0.924783
-vn -0.276780 0.226506 -0.933856
-vn -0.263699 0.309474 -0.913613
-vn -0.263699 0.309474 -0.913613
-vn -0.276780 0.226506 -0.933856
-vn -0.262790 0.310576 -0.913501
-vn -0.276780 0.226506 -0.933856
-vn -0.310643 0.219722 -0.924783
-vn -0.359800 0.075412 -0.929977
-vn -0.359800 0.075412 -0.929977
-vn -0.310643 0.219722 -0.924783
-vn -0.404581 0.077599 -0.911204
-vn -0.446303 0.893472 0.050214
-vn -0.415109 0.907407 0.065557
-vn -0.440343 0.896429 0.050135
-vn -0.440343 0.896429 0.050135
-vn -0.415109 0.907407 0.065557
-vn -0.410226 0.909524 0.066933
-vn -0.405249 0.503584 -0.763005
-vn -0.446061 0.791914 -0.417015
-vn -0.436406 0.498474 -0.749049
-vn -0.436406 0.498474 -0.749049
-vn -0.446061 0.791914 -0.417015
-vn -0.448052 0.757634 -0.474595
-vn -0.263657 0.363905 -0.893341
-vn -0.405249 0.503584 -0.763005
-vn -0.290602 0.358700 -0.887065
-vn -0.290602 0.358700 -0.887065
-vn -0.405249 0.503584 -0.763005
-vn -0.436406 0.498474 -0.749049
-vn -0.305134 0.314478 -0.898886
-vn -0.255352 0.293656 -0.921174
-vn -0.290612 0.326849 -0.899285
-vn -0.290612 0.326849 -0.899285
-vn -0.255352 0.293656 -0.921174
-vn -0.235126 0.317229 -0.918739
-vn -0.850012 -0.526176 -0.024864
-vn -0.791469 -0.609184 -0.049722
-vn -0.539402 -0.840642 -0.048634
-vn -0.539402 -0.840642 -0.048634
-vn -0.791469 -0.609184 -0.049722
-vn -0.488009 -0.871020 -0.056324
-vn 0.562710 0.825931 0.034560
-vn 0.541816 0.839771 0.034923
-vn 0.761245 0.647906 0.026911
-vn 0.761245 0.647906 0.026911
-vn 0.541816 0.839771 0.034923
-vn 0.823527 0.566803 0.023172
-vn 0.495577 0.867646 0.039930
-vn 0.756449 0.653385 0.029548
-vn 0.541816 0.839771 0.034923
-vn 0.541816 0.839771 0.034923
-vn 0.756449 0.653385 0.029548
-vn 0.823527 0.566803 0.023172
-vn 0.138390 -0.332970 0.932727
-vn 0.134867 -0.315546 0.939277
-vn 0.142304 -0.333246 0.932039
-vn 0.980679 -0.195518 0.006376
-vn 0.981678 -0.190277 0.010176
-vn 0.984334 -0.176055 0.009521
-vn 0.981678 -0.190277 0.010176
-vn 0.982423 -0.186181 0.013505
-vn 0.984334 -0.176055 0.009521
-vn -0.984694 0.174160 -0.006738
-vn -0.983212 0.180337 -0.027797
-vn -0.985848 0.161528 -0.044851
-vn -0.984694 0.174160 -0.006738
-vn -0.985848 0.161528 -0.044851
-vn -0.984046 0.174020 -0.037009
-vn 0.075421 -0.342512 -0.936481
-vn 0.088936 -0.352542 -0.931560
-vn 0.080619 -0.343276 -0.935768
-vn 0.080619 -0.343276 -0.935768
-vn 0.088936 -0.352542 -0.931560
-vn 0.094136 -0.352187 -0.931184
-vn 0.088936 -0.352542 -0.931560
-vn 0.110062 -0.360826 -0.926116
-vn 0.094136 -0.352187 -0.931184
-vn 0.094136 -0.352187 -0.931184
-vn 0.110062 -0.360826 -0.926116
-vn 0.115215 -0.359361 -0.926059
-vn 0.731212 -0.381836 -0.565270
-vn 0.099908 -0.581232 -0.807581
-vn 0.713582 -0.257949 -0.651354
-vn 0.713582 -0.257949 -0.651354
-vn 0.099908 -0.581232 -0.807581
-vn 0.071198 -0.408463 -0.909994
-vn 0.713582 -0.257949 -0.651354
-vn 0.071198 -0.408463 -0.909994
-vn 0.723566 -0.082382 -0.685321
-vn 0.723566 -0.082382 -0.685321
-vn 0.071198 -0.408463 -0.909994
-vn 0.051319 -0.202061 -0.978028
-vn 0.731212 -0.381836 -0.565270
-vn 0.574631 -0.446587 -0.685827
-vn 0.099908 -0.581232 -0.807581
-vn 0.099908 -0.581232 -0.807581
-vn 0.574631 -0.446587 -0.685827
-vn 0.108229 -0.493339 -0.863078
-vn 0.108229 -0.493339 -0.863078
-vn 0.092628 -0.376477 -0.921784
-vn 0.080619 -0.343276 -0.935768
-vn 0.080619 -0.343276 -0.935768
-vn 0.092628 -0.376477 -0.921784
-vn 0.075421 -0.342512 -0.936481
-vn 0.080859 -0.444705 -0.892020
-vn 0.092628 -0.376477 -0.921784
-vn 0.108229 -0.493339 -0.863078
-vn 0.574631 -0.446587 -0.685827
-vn 0.080859 -0.444705 -0.892020
-vn 0.108229 -0.493339 -0.863078
-vn 0.723566 -0.082382 -0.685321
-vn 0.051319 -0.202061 -0.978028
-vn 0.668540 0.161888 -0.725842
-vn 0.668540 0.161888 -0.725842
-vn 0.051319 -0.202061 -0.978028
-vn -0.006508 0.083612 -0.996477
-vn 0.000000 -0.871316 -0.490722
-vn -0.000000 -0.514402 -0.857549
-vn -0.119524 -0.861339 -0.493770
-vn -0.119524 -0.861339 -0.493770
-vn -0.000000 -0.514402 -0.857549
-vn -0.192801 -0.483418 -0.853894
-vn -0.476271 -0.348677 -0.807211
-vn -0.324453 -0.809413 -0.489470
-vn -0.192801 -0.483418 -0.853894
-vn -0.192801 -0.483418 -0.853894
-vn -0.324453 -0.809413 -0.489470
-vn -0.119524 -0.861339 -0.493770
-vn -0.879217 -0.280086 -0.385394
-vn -0.658652 -0.695759 -0.286526
-vn -0.702167 -0.425692 -0.570743
-vn -0.702167 -0.425692 -0.570743
-vn -0.658652 -0.695759 -0.286526
-vn -0.491332 -0.797984 -0.349020
-vn -0.658652 -0.695759 -0.286526
-vn -0.879217 -0.280086 -0.385394
-vn -0.833807 -0.528564 -0.159328
-vn -0.833807 -0.528564 -0.159328
-vn -0.879217 -0.280086 -0.385394
-vn -0.957276 -0.214865 -0.193535
-vn 0.446710 0.893463 0.046633
-vn 0.166799 0.985578 0.028524
-vn 0.429327 0.901377 0.056555
-vn 0.429327 0.901377 0.056555
-vn 0.166799 0.985578 0.028524
-vn 0.216363 0.975064 0.049360
-vn -0.324453 -0.809413 -0.489470
-vn -0.491332 -0.797984 -0.349020
-vn -0.253349 -0.964463 -0.075004
-vn -0.494936 -0.863469 -0.097259
-vn -0.491332 -0.797984 -0.349020
-vn -0.658652 -0.695759 -0.286526
-vn -0.956032 -0.272734 -0.107795
-vn -0.813515 -0.572091 -0.104428
-vn -0.957276 -0.214865 -0.193535
-vn -0.957276 -0.214865 -0.193535
-vn -0.813515 -0.572091 -0.104428
-vn -0.833807 -0.528564 -0.159328
-vn 0.429327 0.901377 0.056555
-vn 0.216363 0.975064 0.049360
-vn 0.180265 0.982087 0.054868
-vn -0.780359 -0.622831 -0.055866
-vn -0.944473 -0.323507 -0.057569
-vn -0.755223 -0.652355 0.063808
-vn -0.755223 -0.652355 0.063808
-vn -0.944473 -0.323507 -0.057569
-vn -0.973639 -0.218470 -0.065558
-vn -0.763261 0.075432 0.641672
-vn -0.759621 -0.099247 0.642749
-vn -0.998456 -0.051981 0.019606
-vn -0.998456 -0.051981 0.019606
-vn -0.759621 -0.099247 0.642749
-vn -0.997150 -0.075336 -0.004072
-vn -0.805391 0.217929 0.551228
-vn -0.763261 0.075432 0.641672
-vn -0.998707 -0.048248 0.015984
-vn -0.998707 -0.048248 0.015984
-vn -0.763261 0.075432 0.641672
-vn -0.998456 -0.051981 0.019606
-vn -0.775685 0.361202 0.517538
-vn -0.805391 0.217929 0.551228
-vn -0.999627 -0.020816 0.017698
-vn -0.999627 -0.020816 0.017698
-vn -0.805391 0.217929 0.551228
-vn -0.998707 -0.048248 0.015984
-vn -0.999627 -0.020816 0.017698
-vn -0.999782 0.020752 0.002261
-vn -0.775685 0.361202 0.517538
-vn -0.775685 0.361202 0.517538
-vn -0.999782 0.020752 0.002261
-vn -0.740592 0.322814 0.589333
-vn -0.999782 0.020752 0.002261
-vn -0.998303 0.058229 0.000632
-vn -0.740592 0.322814 0.589333
-vn -0.740592 0.322814 0.589333
-vn -0.998303 0.058229 0.000632
-vn -0.728818 0.284083 0.622994
-vn -0.773857 0.304856 0.555164
-vn -0.728818 0.284083 0.622994
-vn -0.990513 0.137395 0.002445
-vn -0.990513 0.137395 0.002445
-vn -0.728818 0.284083 0.622994
-vn -0.998303 0.058229 0.000632
-vn -0.738957 0.055017 0.671503
-vn -0.707233 -0.162804 0.687980
-vn -0.763261 0.075432 0.641672
-vn -0.763261 0.075432 0.641672
-vn -0.707233 -0.162804 0.687980
-vn -0.759621 -0.099247 0.642749
-vn -0.761618 0.252637 0.596751
-vn -0.738957 0.055017 0.671503
-vn -0.805391 0.217929 0.551228
-vn -0.805391 0.217929 0.551228
-vn -0.738957 0.055017 0.671503
-vn -0.763261 0.075432 0.641672
-vn -0.775408 0.330567 0.538023
-vn -0.761618 0.252637 0.596751
-vn -0.775685 0.361202 0.517538
-vn -0.775685 0.361202 0.517538
-vn -0.761618 0.252637 0.596751
-vn -0.805391 0.217929 0.551228
-vn -0.740592 0.322814 0.589333
-vn -0.804082 0.167348 0.570480
-vn -0.775685 0.361202 0.517538
-vn -0.775685 0.361202 0.517538
-vn -0.804082 0.167348 0.570480
-vn -0.775408 0.330567 0.538023
-vn -0.740592 0.322814 0.589333
-vn -0.820751 0.061453 0.567972
-vn -0.804082 0.167348 0.570480
-vn -0.724913 0.292702 0.623560
-vn -0.820751 0.061453 0.567972
-vn -0.728818 0.284083 0.622994
-vn -0.728818 0.284083 0.622994
-vn -0.820751 0.061453 0.567972
-vn -0.740592 0.322814 0.589333
-vn -0.773857 0.304856 0.555164
-vn -0.771535 0.304529 0.558566
-vn -0.728818 0.284083 0.622994
-vn -0.728818 0.284083 0.622994
-vn -0.771535 0.304529 0.558566
-vn -0.724913 0.292702 0.623560
-vn -0.771535 0.304529 0.558566
-vn -0.773857 0.304856 0.555164
-vn -0.740815 0.342903 0.577590
-vn -0.740815 0.342903 0.577590
-vn -0.773857 0.304856 0.555164
-vn -0.969840 0.166099 0.178388
-vn -0.759621 -0.099247 0.642749
-vn -0.772660 -0.348538 0.530583
-vn -0.997150 -0.075336 -0.004072
-vn -0.997150 -0.075336 -0.004072
-vn -0.772660 -0.348538 0.530583
-vn -0.990615 -0.133182 -0.030719
-vn -0.656028 -0.418182 0.628292
-vn -0.627242 -0.676188 0.386443
-vn -0.772660 -0.348538 0.530583
-vn -0.772660 -0.348538 0.530583
-vn -0.627242 -0.676188 0.386443
-vn -0.767409 -0.563943 0.305045
-vn 0.600495 0.443647 -0.665270
-vn 0.004398 0.419539 -0.907726
-vn 0.554377 0.702479 -0.446307
-vn 0.554377 0.702479 -0.446307
-vn 0.004398 0.419539 -0.907726
-vn 0.010368 0.800881 -0.598734
-vn 0.554377 0.702479 -0.446307
-vn 0.010368 0.800881 -0.598734
-vn 0.517246 0.846290 -0.127473
-vn 0.517246 0.846290 -0.127473
-vn 0.010368 0.800881 -0.598734
-vn 0.051864 0.975168 -0.215306
-vn -0.627242 -0.676188 0.386443
-vn -0.634100 -0.764086 0.118699
-vn -0.767409 -0.563943 0.305045
-vn -0.767409 -0.563943 0.305045
-vn -0.634100 -0.764086 0.118699
-vn -0.755223 -0.652355 0.063808
-vn -0.780359 -0.622831 -0.055866
-vn -0.755223 -0.652355 0.063808
-vn -0.634100 -0.764086 0.118699
-vn 0.517246 0.846290 -0.127473
-vn 0.051864 0.975168 -0.215306
-vn 0.494071 0.869415 -0.003328
-vn 0.494071 0.869415 -0.003328
-vn 0.051864 0.975168 -0.215306
-vn 0.145820 0.989051 -0.022703
-vn -0.707233 -0.162804 0.687980
-vn -0.656028 -0.418182 0.628292
-vn -0.759621 -0.099247 0.642749
-vn -0.759621 -0.099247 0.642749
-vn -0.656028 -0.418182 0.628292
-vn -0.772660 -0.348538 0.530583
-vn 0.668540 0.161888 -0.725842
-vn -0.006508 0.083612 -0.996477
-vn 0.600495 0.443647 -0.665270
-vn 0.600495 0.443647 -0.665270
-vn -0.006508 0.083612 -0.996477
-vn 0.004398 0.419539 -0.907726
-vn -0.923588 -0.380903 -0.043567
-vn -0.951043 -0.307690 -0.029046
-vn -0.985507 -0.169473 0.007393
-vn -0.833807 -0.528564 -0.159328
-vn -0.813515 -0.572091 -0.104428
-vn -0.708309 -0.701790 -0.076086
-vn -0.494936 -0.863469 -0.097259
-vn -0.808708 -0.587341 -0.031976
-vn -0.539402 -0.840642 -0.048634
-vn -0.994998 0.093231 -0.035887
-vn -0.969840 0.166099 0.178388
-vn -0.990513 0.137395 0.002445
-vn -0.990513 0.137395 0.002445
-vn -0.969840 0.166099 0.178388
-vn -0.773857 0.304856 0.555164
-vn 0.969531 0.242434 0.035143
-vn 0.984202 0.176837 0.008696
-vn 0.971231 0.238135 0.001538
-vn 0.984202 0.176837 0.008696
-vn 0.668540 0.161888 -0.725842
-vn 0.971231 0.238135 0.001538
-vn 0.668540 0.161888 -0.725842
-vn 0.600495 0.443647 -0.665270
-vn 0.971231 0.238135 0.001538
-vn 0.554377 0.702479 -0.446307
-vn 0.971231 0.238135 0.001538
-vn 0.600495 0.443647 -0.665270
-vn 0.967156 0.254168 -0.002830
-vn 0.969531 0.242434 0.035143
-vn 0.885029 0.465465 0.008081
-vn 0.885029 0.465465 0.008081
-vn 0.969531 0.242434 0.035143
-vn 0.932362 0.360030 0.032846
-vn 0.956121 0.292541 0.015885
-vn 0.844338 0.533959 0.044504
-vn 0.945131 0.326041 0.020602
-vn 0.945131 0.326041 0.020602
-vn 0.844338 0.533959 0.044504
-vn 0.789936 0.611456 0.046072
-vn 0.996550 0.082383 -0.010068
-vn 0.993936 0.109771 -0.006474
-vn 0.996380 0.085006 0.000430
-vn 0.993936 0.109771 -0.006474
-vn 0.989557 0.144091 0.003808
-vn 0.996380 0.085006 0.000430
-vn 0.996380 0.085006 0.000430
-vn 0.989557 0.144091 0.003808
-vn 0.983245 0.182196 0.005792
-vn 0.723566 -0.082382 -0.685321
-vn 0.995327 0.096478 -0.003944
-vn 0.713582 -0.257949 -0.651354
-vn 0.996550 0.082383 -0.010068
-vn 0.713582 -0.257949 -0.651354
-vn 0.993936 0.109771 -0.006474
-vn 0.713582 -0.257949 -0.651354
-vn 0.995327 0.096478 -0.003944
-vn 0.993936 0.109771 -0.006474
-vn 0.668540 0.161888 -0.725842
-vn 0.984202 0.176837 0.008696
-vn 0.723566 -0.082382 -0.685321
-vn 0.723566 -0.082382 -0.685321
-vn 0.984202 0.176837 0.008696
-vn 0.995327 0.096478 -0.003944
-vn 0.510928 0.859417 0.018820
-vn 0.453914 0.680417 0.575321
-vn 0.512047 0.858797 0.016581
-vn 0.512047 0.858797 0.016581
-vn 0.453914 0.680417 0.575321
-vn 0.449290 0.674456 0.585873
-vn 0.126933 0.991885 0.007160
-vn 0.135281 0.990653 -0.017479
-vn 0.173425 0.735723 -0.654703
-vn 0.173425 0.735723 -0.654703
-vn 0.135281 0.990653 -0.017479
-vn 0.182289 0.709418 -0.680806
-vn 0.178828 0.405350 -0.896500
-vn 0.173425 0.735723 -0.654703
-vn 0.182289 0.709418 -0.680806
-vn 0.453914 0.680417 0.575321
-vn 0.435398 0.431875 0.789881
-vn 0.449290 0.674456 0.585873
-vn 0.603657 0.376752 -0.702606
-vn 0.609064 0.605926 -0.511757
-vn 0.616263 0.596857 -0.513792
-vn 0.248653 0.725676 0.641534
-vn 0.274003 0.415746 0.867224
-vn 0.258900 0.717586 0.646561
-vn 0.126933 0.991885 0.007160
-vn 0.248653 0.725676 0.641534
-vn 0.135281 0.990653 -0.017479
-vn 0.135281 0.990653 -0.017479
-vn 0.248653 0.725676 0.641534
-vn 0.258900 0.717586 0.646561
-vn 0.510928 0.859417 0.018820
-vn 0.512047 0.858797 0.016581
-vn 0.609064 0.605926 -0.511757
-vn 0.609064 0.605926 -0.511757
-vn 0.512047 0.858797 0.016581
-vn 0.616263 0.596857 -0.513792
-vn 0.844338 0.533959 0.044504
-vn 0.956121 0.292541 0.015885
-vn 0.885029 0.465465 0.008081
-vn 0.885029 0.465465 0.008081
-vn 0.956121 0.292541 0.015885
-vn 0.967156 0.254168 -0.002830
-vn 0.494071 0.869415 -0.003328
-vn 0.145820 0.989051 -0.022703
-vn 0.446710 0.893463 0.046633
-vn 0.446710 0.893463 0.046633
-vn 0.145820 0.989051 -0.022703
-vn 0.166799 0.985578 0.028524
-vn -0.780359 -0.622831 -0.055866
-vn -0.813515 -0.572091 -0.104428
-vn -0.944473 -0.323507 -0.057569
-vn -0.944473 -0.323507 -0.057569
-vn -0.813515 -0.572091 -0.104428
-vn -0.956032 -0.272734 -0.107795
-vn 0.989557 0.144091 0.003808
-vn 0.983787 0.179160 0.008038
-vn 0.983245 0.182196 0.005792
-vn 0.956121 0.292541 0.015885
-vn 0.945131 0.326041 0.020602
-vn 0.983787 0.179160 0.008038
-vn 0.945131 0.326041 0.020602
-vn 0.983245 0.182196 0.005792
-vn 0.983787 0.179160 0.008038
-vn 0.713582 -0.257949 -0.651354
-vn 0.996550 0.082383 -0.010068
-vn 0.731212 -0.381836 -0.565270
-vn 0.996550 0.082383 -0.010068
-vn 0.574631 -0.446587 -0.685827
-vn 0.731212 -0.381836 -0.565270
-vn 0.996550 0.082383 -0.010068
-vn 0.996380 0.085006 0.000430
-vn 0.998947 0.045842 0.001757
-vn -0.998432 -0.055875 -0.003518
-vn -0.761618 0.252637 0.596751
-vn -0.775408 0.330567 0.538023
-vn -0.969905 -0.243373 -0.007371
-vn -0.923588 -0.380903 -0.043567
-vn -0.985507 -0.169473 0.007393
-vn -0.923588 -0.380903 -0.043567
-vn -0.969905 -0.243373 -0.007371
-vn -0.808708 -0.587341 -0.031976
-vn -0.998432 -0.055875 -0.003518
-vn -0.969905 -0.243373 -0.007371
-vn -0.985507 -0.169473 0.007393
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.885029 0.465465 0.008081
-vn 0.932362 0.360030 0.032846
-vn 0.494071 0.869415 -0.003328
-vn 0.494071 0.869415 -0.003328
-vn 0.932362 0.360030 0.032846
-vn 0.517246 0.846290 -0.127473
-vn 0.446710 0.893463 0.046633
-vn 0.844338 0.533959 0.044504
-vn 0.494071 0.869415 -0.003328
-vn 0.494071 0.869415 -0.003328
-vn 0.844338 0.533959 0.044504
-vn 0.885029 0.465465 0.008081
-vn 0.932362 0.360030 0.032846
-vn 0.969531 0.242434 0.035143
-vn 0.971231 0.238135 0.001538
-vn 0.554377 0.702479 -0.446307
-vn 0.932362 0.360030 0.032846
-vn 0.971231 0.238135 0.001538
-vn 0.932362 0.360030 0.032846
-vn 0.554377 0.702479 -0.446307
-vn 0.517246 0.846290 -0.127473
-vn 0.429327 0.901377 0.056555
-vn 0.789936 0.611456 0.046072
-vn 0.446710 0.893463 0.046633
-vn 0.446710 0.893463 0.046633
-vn 0.789936 0.611456 0.046072
-vn 0.844338 0.533959 0.044504
-vn 0.682062 0.729639 0.049171
-vn 0.914969 0.402789 0.024342
-vn 0.789936 0.611456 0.046072
-vn 0.789936 0.611456 0.046072
-vn 0.914969 0.402789 0.024342
-vn 0.945131 0.326041 0.020602
-vn 0.284211 0.955066 0.084101
-vn 0.615919 0.785318 0.062605
-vn 0.322783 0.944059 0.067556
-vn 0.322783 0.944059 0.067556
-vn 0.615919 0.785318 0.062605
-vn 0.682062 0.729639 0.049171
-vn 0.144281 -0.209043 0.967204
-vn 0.191886 -0.210924 0.958484
-vn 0.158943 -0.205989 0.965560
-vn 0.158943 -0.205989 0.965560
-vn 0.191886 -0.210924 0.958484
-vn 0.196192 -0.207154 0.958434
-vn -0.247950 -0.964620 -0.089610
-vn -0.249117 -0.963466 -0.098359
-vn -0.507293 -0.858759 -0.072022
-vn -0.507293 -0.858759 -0.072022
-vn -0.249117 -0.963466 -0.098359
-vn -0.515410 -0.853105 -0.081018
-vn -0.212106 -0.072179 -0.974577
-vn -0.239693 -0.077290 -0.967767
-vn -0.319057 -0.035786 -0.947060
-vn -0.319057 -0.035786 -0.947060
-vn -0.239693 -0.077290 -0.967767
-vn -0.328251 -0.031289 -0.944072
-vn -0.253470 -0.964963 -0.067819
-vn -0.253349 -0.964463 -0.075004
-vn -0.488009 -0.871020 -0.056324
-vn -0.488009 -0.871020 -0.056324
-vn -0.253349 -0.964463 -0.075004
-vn -0.539402 -0.840642 -0.048634
-vn 0.322783 0.944059 0.067556
-vn 0.682062 0.729639 0.049171
-vn 0.429327 0.901377 0.056555
-vn 0.429327 0.901377 0.056555
-vn 0.682062 0.729639 0.049171
-vn 0.789936 0.611456 0.046072
-vn -0.491332 -0.797984 -0.349020
-vn -0.494936 -0.863469 -0.097259
-vn -0.253349 -0.964463 -0.075004
-vn 0.322783 0.944059 0.067556
-vn 0.082937 0.995311 0.049767
-vn 0.083437 0.994889 0.056877
-vn -0.324453 -0.809413 -0.489470
-vn -0.476271 -0.348677 -0.807211
-vn -0.491332 -0.797984 -0.349020
-vn -0.491332 -0.797984 -0.349020
-vn -0.476271 -0.348677 -0.807211
-vn -0.702167 -0.425692 -0.570743
-vn -0.324453 -0.809413 -0.489470
-vn -0.253349 -0.964463 -0.075004
-vn -0.095583 -0.992659 -0.074102
-vn -0.095583 -0.992659 -0.074102
-vn -0.253349 -0.964463 -0.075004
-vn -0.253470 -0.964963 -0.067819
-vn -0.253349 -0.964463 -0.075004
-vn -0.494936 -0.863469 -0.097259
-vn -0.539402 -0.840642 -0.048634
-vn -0.833807 -0.528564 -0.159328
-vn -0.494936 -0.863469 -0.097259
-vn -0.658652 -0.695759 -0.286526
-vn -0.494936 -0.863469 -0.097259
-vn -0.833807 -0.528564 -0.159328
-vn -0.708309 -0.701790 -0.076086
-vn -0.708309 -0.701790 -0.076086
-vn -0.813515 -0.572091 -0.104428
-vn -0.745659 -0.659800 -0.093041
-vn -0.764602 -0.641682 -0.060234
-vn -0.813515 -0.572091 -0.104428
-vn -0.780359 -0.622831 -0.055866
-vn -0.813515 -0.572091 -0.104428
-vn -0.764602 -0.641682 -0.060234
-vn -0.745659 -0.659800 -0.093041
-vn -0.780359 -0.622831 -0.055866
-vn -0.634100 -0.764086 0.118699
-vn -0.764602 -0.641682 -0.060234
-vn -0.808708 -0.587341 -0.031976
-vn -0.850012 -0.526176 -0.024864
-vn -0.539402 -0.840642 -0.048634
-vn -0.708309 -0.701790 -0.076086
-vn -0.923588 -0.380903 -0.043567
-vn -0.808708 -0.587341 -0.031976
-vn -0.923588 -0.380903 -0.043567
-vn -0.708309 -0.701790 -0.076086
-vn -0.745659 -0.659800 -0.093041
-vn -0.745659 -0.659800 -0.093041
-vn -0.764602 -0.641682 -0.060234
-vn -0.923588 -0.380903 -0.043567
-vn -0.764602 -0.641682 -0.060234
-vn -0.951043 -0.307690 -0.029046
-vn -0.923588 -0.380903 -0.043567
-vn -0.634100 -0.764086 0.118699
-vn -0.951043 -0.307690 -0.029046
-vn -0.764602 -0.641682 -0.060234
-vn -0.951043 -0.307690 -0.029046
-vn -0.634100 -0.764086 0.118699
-vn -0.627242 -0.676188 0.386443
-vn -0.656028 -0.418182 0.628292
-vn -0.951043 -0.307690 -0.029046
-vn -0.627242 -0.676188 0.386443
-vn -0.707233 -0.162804 0.687980
-vn -0.951043 -0.307690 -0.029046
-vn -0.656028 -0.418182 0.628292
-vn -0.985507 -0.169473 0.007393
-vn -0.951043 -0.307690 -0.029046
-vn -0.707233 -0.162804 0.687980
-vn 0.984694 0.174160 -0.006738
-vn 0.983212 0.180337 -0.027797
-vn 0.980089 0.198515 -0.004173
-vn 0.808708 -0.587341 -0.031976
-vn 0.708309 -0.701790 -0.076086
-vn 0.494936 -0.863469 -0.097259
-vn -0.339143 -0.505622 0.793302
-vn -0.182952 -0.354088 0.917143
-vn -0.299846 -0.516749 0.801912
-vn -0.182952 -0.354088 0.917143
-vn -0.154745 -0.355795 0.921664
-vn -0.299846 -0.516749 0.801912
-vn -0.182952 -0.354088 0.917143
-vn -0.116745 -0.319879 0.940238
-vn -0.154745 -0.355795 0.921664
-vn -0.116745 -0.319879 0.940238
-vn -0.109565 -0.318437 0.941591
-vn -0.154745 -0.355795 0.921664
-vn -0.109565 -0.318437 0.941591
-vn -0.116745 -0.319879 0.940238
-vn -0.131033 -0.317293 0.939231
-vn -0.116745 -0.319879 0.940238
-vn -0.138390 -0.332971 0.932727
-vn -0.131033 -0.317293 0.939231
-vn -0.067684 -0.219277 0.973312
-vn -0.071452 -0.215752 0.973830
-vn -0.144281 -0.209043 0.967204
-vn -0.071452 -0.215752 0.973830
-vn -0.158943 -0.205989 0.965560
-vn -0.144281 -0.209043 0.967204
-vn -0.000000 -0.227028 0.973888
-vn -0.000000 -0.224410 0.974495
-vn -0.067684 -0.219277 0.973312
-vn -0.000000 -0.224410 0.974495
-vn -0.071452 -0.215752 0.973830
-vn -0.067684 -0.219277 0.973312
-vn -0.138390 -0.332971 0.932727
-vn -0.149920 -0.347308 0.925690
-vn -0.142304 -0.333246 0.932039
-vn -0.149920 -0.347308 0.925690
-vn -0.161840 -0.334626 0.928350
-vn -0.142304 -0.333246 0.932039
-vn -0.161840 -0.334626 0.928350
-vn -0.166593 -0.330885 0.928850
-vn -0.142304 -0.333246 0.932039
-vn -0.191886 -0.210924 0.958484
-vn -0.196192 -0.207154 0.958434
-vn -0.196009 -0.235372 0.951935
-vn -0.196192 -0.207154 0.958434
-vn -0.196607 -0.228696 0.953438
-vn -0.196009 -0.235372 0.951935
-vn -0.178410 -0.306737 0.934924
-vn -0.196009 -0.235372 0.951935
-vn -0.188830 -0.293149 0.937234
-vn -0.196009 -0.235372 0.951935
-vn -0.196607 -0.228696 0.953438
-vn -0.188830 -0.293149 0.937234
-vn -0.345594 -0.929888 0.125990
-vn -0.357049 -0.929812 0.089253
-vn -0.390945 -0.918337 -0.061799
-vn -0.357049 -0.929812 0.089253
-vn -0.396515 -0.915703 -0.065292
-vn -0.390945 -0.918337 -0.061799
-vn -0.984334 -0.176055 0.009521
-vn -0.980679 -0.195518 0.006376
-vn -0.983848 -0.178923 0.005394
-vn -0.990796 -0.135356 0.001687
-vn -0.991086 -0.133014 0.007440
-vn -0.983848 -0.178923 0.005394
-vn -0.991086 -0.133014 0.007440
-vn -0.984334 -0.176055 0.009521
-vn -0.983848 -0.178923 0.005394
-vn -0.991086 -0.133014 0.007440
-vn -0.990796 -0.135356 0.001687
-vn -0.998589 0.052790 0.005722
-vn -0.990796 -0.135356 0.001687
-vn -0.997021 0.077063 0.003255
-vn -0.998589 0.052790 0.005722
-vn -0.095426 0.992875 0.071360
-vn -0.083437 0.994889 0.056877
-vn -0.284211 0.955066 0.084101
-vn -0.083437 0.994889 0.056877
-vn -0.322783 0.944059 0.067556
-vn -0.284211 0.955066 0.084101
-vn 0.000000 0.999116 0.042032
-vn -0.000000 0.999216 0.039578
-vn -0.095426 0.992875 0.071360
-vn -0.000000 0.999216 0.039578
-vn -0.083437 0.994889 0.056877
-vn -0.095426 0.992875 0.071360
-vn -0.993002 0.117935 0.006226
-vn -0.996380 0.085006 0.000430
-vn -0.999247 0.038797 0.000740
-vn -0.996380 0.085006 0.000430
-vn -0.998947 0.045842 0.001757
-vn -0.999247 0.038797 0.000740
-vn -0.615919 0.785318 0.062605
-vn -0.682062 0.729639 0.049171
-vn -0.893410 0.448498 0.025842
-vn -0.682062 0.729639 0.049171
-vn -0.914969 0.402789 0.024342
-vn -0.893410 0.448498 0.025842
-vn -0.893410 0.448498 0.025842
-vn -0.914969 0.402789 0.024342
-vn -0.978147 0.207638 0.010723
-vn -0.914969 0.402789 0.024342
-vn -0.983245 0.182196 0.005792
-vn -0.978147 0.207638 0.010723
-vn -0.756449 0.653385 0.029548
-vn -0.823527 0.566803 0.023172
-vn -0.997021 0.077063 0.003255
-vn -0.823527 0.566803 0.023172
-vn -0.998589 0.052790 0.005722
-vn -0.997021 0.077063 0.003255
-vn -0.363218 -0.788030 0.497072
-vn -0.339143 -0.505622 0.793302
-vn -0.354110 -0.803703 0.478192
-vn -0.339143 -0.505622 0.793302
-vn -0.299846 -0.516749 0.801912
-vn -0.354110 -0.803703 0.478192
-vn -0.161840 -0.334626 0.928350
-vn -0.178410 -0.306737 0.934924
-vn -0.166593 -0.330885 0.928850
-vn -0.178410 -0.306737 0.934924
-vn -0.188830 -0.293149 0.937234
-vn -0.166593 -0.330885 0.928850
-vn -0.978147 0.207638 0.010723
-vn -0.983245 0.182196 0.005792
-vn -0.993002 0.117935 0.006226
-vn -0.983245 0.182196 0.005792
-vn -0.996380 0.085006 0.000430
-vn -0.993002 0.117935 0.006226
-vn 0.993452 0.113575 -0.012418
-vn 0.983596 0.179257 -0.020171
-vn 0.993500 0.113826 0.000749
-vn 0.983596 0.179257 -0.020171
-vn 0.984694 0.174160 -0.006738
-vn 0.993500 0.113826 0.000749
-vn 0.993500 0.113826 0.000749
-vn 0.985935 -0.166960 -0.007524
-vn 0.993452 0.113575 -0.012418
-vn 0.985935 -0.166960 -0.007524
-vn 0.975625 -0.218711 -0.017944
-vn 0.993452 0.113575 -0.012418
-vn 0.324453 -0.809413 -0.489470
-vn 0.119524 -0.861339 -0.493770
-vn 0.095583 -0.992659 -0.074102
-vn 0.095583 -0.992659 -0.074102
-vn 0.119524 -0.861339 -0.493770
-vn -0.000000 -0.997673 -0.068181
-vn -0.000000 -0.997673 -0.068181
-vn 0.119524 -0.861339 -0.493770
-vn 0.000000 -0.871316 -0.490722
-vn 0.985935 -0.166960 -0.007524
-vn 0.959190 -0.282414 -0.014033
-vn 0.975625 -0.218711 -0.017944
-vn 0.959190 -0.282414 -0.014033
-vn 0.965709 -0.258960 -0.018602
-vn 0.975625 -0.218711 -0.017944
-vn 0.996490 -0.080699 -0.022271
-vn 0.996882 -0.076594 -0.018986
-vn 0.998432 -0.055875 -0.003518
-vn 0.996882 -0.076594 -0.018986
-vn 0.997107 -0.075791 -0.005838
-vn 0.998432 -0.055875 -0.003518
-vn 0.965301 -0.259102 -0.032545
-vn 0.996490 -0.080699 -0.022271
-vn 0.969905 -0.243373 -0.007371
-vn 0.996490 -0.080699 -0.022271
-vn 0.998432 -0.055875 -0.003518
-vn 0.969905 -0.243373 -0.007371
-vn 0.850012 -0.526176 -0.024864
-vn 0.965301 -0.259102 -0.032545
-vn 0.969905 -0.243373 -0.007371
-vn 0.969905 -0.243373 -0.007371
-vn 0.808708 -0.587341 -0.031976
-vn 0.850012 -0.526176 -0.024864
-vn 0.965301 -0.259102 -0.032545
-vn 0.850012 -0.526176 -0.024864
-vn 0.791469 -0.609184 -0.049722
-vn -0.914969 0.402789 0.024342
-vn -0.945131 0.326041 0.020602
-vn -0.983245 0.182196 0.005792
-vn 0.767409 -0.563943 0.305045
-vn 0.772660 -0.348538 0.530583
-vn 0.979545 -0.197391 -0.039099
-vn 0.772660 -0.348538 0.530583
-vn 0.990615 -0.133182 -0.030719
-vn 0.979545 -0.197391 -0.039099
-vn 0.755223 -0.652355 0.063808
-vn 0.767409 -0.563943 0.305045
-vn 0.973639 -0.218470 -0.065558
-vn 0.767409 -0.563943 0.305045
-vn 0.979545 -0.197391 -0.039099
-vn 0.973639 -0.218470 -0.065558
-vn 0.707233 -0.162804 0.687980
-vn 0.985507 -0.169473 0.007393
-vn 0.738957 0.055017 0.671503
-vn 0.738957 0.055017 0.671503
-vn 0.985507 -0.169473 0.007393
-vn 0.761618 0.252637 0.596751
-vn 0.997107 -0.075791 -0.005838
-vn 0.775408 0.330567 0.538022
-vn 0.998432 -0.055875 -0.003518
-vn 0.761618 0.252637 0.596751
-vn 0.985507 -0.169473 0.007393
-vn 0.998432 -0.055875 -0.003518
-vn 0.985935 -0.166960 -0.007524
-vn 0.820751 0.061453 0.567972
-vn 0.959190 -0.282414 -0.014033
-vn 0.820751 0.061453 0.567972
-vn 0.804082 0.167348 0.570480
-vn 0.959190 -0.282414 -0.014033
-vn 0.993500 0.113826 0.000749
-vn 0.724913 0.292702 0.623560
-vn 0.985935 -0.166960 -0.007524
-vn 0.724913 0.292702 0.623560
-vn 0.820751 0.061453 0.567972
-vn 0.985935 -0.166960 -0.007524
-vn 0.984694 0.174160 -0.006738
-vn 0.771535 0.304529 0.558566
-vn 0.993500 0.113826 0.000749
-vn 0.771535 0.304529 0.558566
-vn 0.724913 0.292702 0.623560
-vn 0.993500 0.113826 0.000749
-vn 0.980089 0.198515 -0.004173
-vn 0.740815 0.342904 0.577590
-vn 0.984694 0.174160 -0.006738
-vn 0.740815 0.342904 0.577590
-vn 0.771535 0.304529 0.558566
-vn 0.984694 0.174160 -0.006738
-vn -0.385018 -0.919892 -0.074557
-vn -0.386712 -0.919150 -0.074949
-vn -0.396515 -0.915703 -0.065292
-vn -0.386712 -0.919150 -0.074949
-vn -0.390945 -0.918337 -0.061799
-vn -0.396515 -0.915703 -0.065292
-vn -0.985997 -0.166579 0.007890
-vn -0.982751 -0.184689 0.009457
-vn -0.984334 -0.176055 0.009521
-vn -0.982751 -0.184689 0.009457
-vn -0.982479 -0.186010 0.011654
-vn -0.984334 -0.176055 0.009521
-vn -0.993671 -0.112316 0.001790
-vn -0.985997 -0.166579 0.007890
-vn -0.991086 -0.133014 0.007440
-vn -0.985997 -0.166579 0.007890
-vn -0.984334 -0.176055 0.009521
-vn -0.991086 -0.133014 0.007440
-vn -0.995237 0.097405 0.003889
-vn -0.993671 -0.112316 0.001790
-vn -0.998589 0.052790 0.005722
-vn -0.993671 -0.112316 0.001790
-vn -0.991086 -0.133014 0.007440
-vn -0.998589 0.052790 0.005722
-vn -0.998589 0.052790 0.005722
-vn -0.823527 0.566803 0.023172
-vn -0.995237 0.097405 0.003889
-vn -0.823527 0.566803 0.023172
-vn -0.761245 0.647906 0.026911
-vn -0.995237 0.097405 0.003889
-vn -0.574631 -0.446587 -0.685827
-vn -0.998947 0.045842 0.001757
-vn -0.996550 0.082383 -0.010068
-vn -0.082937 0.995311 0.049767
-vn -0.135626 0.988292 0.069896
-vn -0.322783 0.944059 0.067556
-vn -0.135626 0.988292 0.069896
-vn -0.180265 0.982087 0.054868
-vn -0.322783 0.944059 0.067556
-vn -0.180265 0.982087 0.054868
-vn -0.429327 0.901377 0.056555
-vn -0.322783 0.944059 0.067556
-vn -0.011871 0.999709 0.020995
-vn -0.082937 0.995311 0.049767
-vn -0.083437 0.994889 0.056877
-vn 0.000000 0.999970 0.007701
-vn -0.011871 0.999709 0.020995
-vn -0.000000 0.999216 0.039578
-vn -0.011871 0.999709 0.020995
-vn -0.083437 0.994889 0.056877
-vn -0.000000 0.999216 0.039578
-vn -0.363218 -0.788030 0.497072
-vn -0.354110 -0.803703 0.478192
-vn -0.345594 -0.929888 0.125990
-vn -0.354110 -0.803703 0.478192
-vn -0.357049 -0.929812 0.089253
-vn -0.345594 -0.929888 0.125990
-vn -0.982423 -0.186181 0.013505
-vn -0.984334 -0.176055 0.009521
-vn -0.982479 -0.186010 0.011654
-vn 0.983596 0.179257 -0.020171
-vn 0.984046 0.174020 -0.037009
-vn 0.984694 0.174160 -0.006738
-vn 0.959190 -0.282414 -0.014033
-vn 0.997107 -0.075791 -0.005838
-vn 0.965709 -0.258960 -0.018602
-vn 0.997107 -0.075791 -0.005838
-vn 0.996882 -0.076594 -0.018986
-vn 0.965709 -0.258960 -0.018602
-vn 0.959190 -0.282414 -0.014033
-vn 0.804082 0.167348 0.570480
-vn 0.997107 -0.075791 -0.005838
-vn 0.804082 0.167348 0.570480
-vn 0.775408 0.330567 0.538022
-vn 0.997107 -0.075791 -0.005838
-vn -0.138390 -0.332971 0.932727
-vn -0.134867 -0.315546 0.939277
-vn -0.131033 -0.317293 0.939231
-vn 0.999569 0.028846 0.005434
-vn 0.998069 0.045238 0.042564
-vn 0.999550 0.029492 0.005516
-vn 0.998069 0.045238 0.042564
-vn 0.997809 0.049679 0.043688
-vn 0.999550 0.029492 0.005516
-vn 0.998069 0.045238 0.042564
-vn 0.995800 0.065592 0.063883
-vn 0.997809 0.049679 0.043688
-vn 0.995800 0.065592 0.063883
-vn 0.995888 0.066977 0.061000
-vn 0.997809 0.049679 0.043688
-vn 0.507293 -0.858759 -0.072022
-vn 0.811258 -0.584646 0.007064
-vn 0.515410 -0.853105 -0.081018
-vn 0.811258 -0.584646 0.007064
-vn 0.818825 -0.574042 0.001045
-vn 0.515410 -0.853105 -0.081018
-vn 0.995708 0.084216 0.038390
-vn 0.995703 0.084333 0.038251
-vn 0.992675 0.109002 0.052112
-vn 0.995703 0.084333 0.038251
-vn 0.992674 0.108503 0.053153
-vn 0.992675 0.109002 0.052112
-vn 0.995703 0.084333 0.038251
-vn 0.995708 0.084216 0.038390
-vn 0.999464 0.014411 0.029383
-vn 0.995708 0.084216 0.038390
-vn 0.999501 0.014175 0.028222
-vn 0.999464 0.014411 0.029383
-vn 0.249118 -0.963466 -0.098359
-vn 0.104406 -0.994097 -0.029509
-vn 0.247950 -0.964620 -0.089610
-vn 0.104406 -0.994097 -0.029509
-vn 0.106145 -0.993954 -0.028067
-vn 0.247950 -0.964620 -0.089610
-vn -0.000000 -0.999979 -0.006475
-vn -0.000000 -0.999971 -0.007637
-vn 0.104406 -0.994097 -0.029509
-vn -0.000000 -0.999971 -0.007637
-vn 0.106145 -0.993954 -0.028067
-vn 0.104406 -0.994097 -0.029509
-vn 0.990700 -0.134435 0.020989
-vn 0.990656 -0.134478 0.022719
-vn 0.998261 -0.056077 0.018160
-vn 0.990656 -0.134478 0.022719
-vn 0.998293 -0.055357 0.018610
-vn 0.998261 -0.056077 0.018160
-vn 0.990700 -0.134435 0.020989
-vn 0.959183 -0.281844 0.023066
-vn 0.990656 -0.134478 0.022719
-vn 0.959183 -0.281844 0.023066
-vn 0.957430 -0.287103 0.029993
-vn 0.990656 -0.134478 0.022719
-vn 0.959183 -0.281844 0.023066
-vn 0.818825 -0.574042 0.001045
-vn 0.957430 -0.287103 0.029993
-vn 0.818825 -0.574042 0.001045
-vn 0.811258 -0.584646 0.007064
-vn 0.957430 -0.287103 0.029993
-vn 0.999569 0.028846 0.005434
-vn 0.999550 0.029492 0.005516
-vn 0.969840 0.166099 0.178388
-vn 0.999550 0.029492 0.005516
-vn 0.994998 0.093231 -0.035887
-vn 0.969840 0.166099 0.178388
-vn 0.994625 0.082784 0.062195
-vn 0.994644 0.081683 0.063330
-vn 0.995800 0.065592 0.063883
-vn 0.994644 0.081683 0.063330
-vn 0.995888 0.066977 0.061000
-vn 0.995800 0.065592 0.063883
-vn 0.992675 0.109002 0.052112
-vn 0.992674 0.108503 0.053153
-vn 0.994625 0.082784 0.062195
-vn 0.992674 0.108503 0.053153
-vn 0.994644 0.081683 0.063330
-vn 0.994625 0.082784 0.062195
-vn 0.999501 0.014175 0.028222
-vn 0.998261 -0.056077 0.018160
-vn 0.999464 0.014411 0.029383
-vn 0.998261 -0.056077 0.018160
-vn 0.998293 -0.055357 0.018610
-vn 0.999464 0.014411 0.029383
-vn 0.417566 0.902141 -0.108536
-vn 0.440343 0.896429 0.050135
-vn 0.426749 0.902769 -0.053783
-vn 0.440343 0.896429 0.050135
-vn 0.446303 0.893472 0.050214
-vn 0.426749 0.902769 -0.053783
-vn 0.448052 0.757634 -0.474595
-vn 0.417566 0.902141 -0.108536
-vn 0.446061 0.791914 -0.417015
-vn 0.417566 0.902141 -0.108536
-vn 0.426749 0.902769 -0.053783
-vn 0.446061 0.791914 -0.417015
-vn 0.319057 -0.035786 -0.947060
-vn 0.404581 0.077599 -0.911204
-vn 0.328251 -0.031289 -0.944072
-vn 0.404581 0.077599 -0.911204
-vn 0.359800 0.075412 -0.929977
-vn 0.328251 -0.031289 -0.944072
-vn 0.169298 0.324929 -0.930462
-vn 0.180314 0.325379 -0.928232
-vn 0.263657 0.363905 -0.893341
-vn 0.180314 0.325379 -0.928232
-vn 0.290602 0.358700 -0.887065
-vn 0.263657 0.363905 -0.893341
-vn 0.169298 0.324929 -0.930462
-vn 0.212363 0.301851 -0.929402
-vn 0.180314 0.325379 -0.928232
-vn 0.212363 0.301851 -0.929402
-vn 0.235126 0.317229 -0.918739
-vn 0.180314 0.325379 -0.928232
-vn 0.085991 0.008774 -0.996257
-vn 0.212106 -0.072179 -0.974577
-vn 0.085479 -0.001567 -0.996339
-vn 0.212106 -0.072179 -0.974577
-vn 0.239693 -0.077290 -0.967767
-vn 0.085479 -0.001567 -0.996339
-vn 0.000000 -0.057309 -0.998357
-vn 0.000000 -0.050714 -0.998713
-vn 0.085479 -0.001567 -0.996339
-vn 0.000000 -0.050714 -0.998713
-vn 0.085991 0.008774 -0.996257
-vn 0.085479 -0.001567 -0.996339
-vn 0.255352 0.293656 -0.921174
-vn 0.235126 0.317229 -0.918739
-vn 0.212363 0.301851 -0.929402
-vn 0.263699 0.309474 -0.913613
-vn 0.290613 0.326849 -0.899285
-vn 0.262790 0.310576 -0.913501
-vn 0.290613 0.326849 -0.899285
-vn 0.305134 0.314478 -0.898886
-vn 0.262790 0.310576 -0.913501
-vn 0.310643 0.219722 -0.924783
-vn 0.263699 0.309474 -0.913613
-vn 0.276780 0.226506 -0.933856
-vn 0.263699 0.309474 -0.913613
-vn 0.262790 0.310576 -0.913501
-vn 0.276780 0.226506 -0.933856
-vn 0.276780 0.226506 -0.933856
-vn 0.359800 0.075412 -0.929977
-vn 0.310643 0.219722 -0.924783
-vn 0.359800 0.075412 -0.929977
-vn 0.404581 0.077599 -0.911204
-vn 0.310643 0.219722 -0.924783
-vn 0.446303 0.893472 0.050214
-vn 0.440343 0.896429 0.050135
-vn 0.415109 0.907407 0.065557
-vn 0.440343 0.896429 0.050135
-vn 0.410226 0.909524 0.066933
-vn 0.415109 0.907407 0.065557
-vn 0.405249 0.503584 -0.763005
-vn 0.436406 0.498474 -0.749049
-vn 0.446061 0.791914 -0.417015
-vn 0.436406 0.498474 -0.749049
-vn 0.448052 0.757634 -0.474595
-vn 0.446061 0.791914 -0.417015
-vn 0.263657 0.363905 -0.893341
-vn 0.290602 0.358700 -0.887065
-vn 0.405249 0.503584 -0.763005
-vn 0.290602 0.358700 -0.887065
-vn 0.436406 0.498474 -0.749049
-vn 0.405249 0.503584 -0.763005
-vn 0.305134 0.314478 -0.898886
-vn 0.290613 0.326849 -0.899285
-vn 0.255352 0.293656 -0.921174
-vn 0.290613 0.326849 -0.899285
-vn 0.235126 0.317229 -0.918739
-vn 0.255352 0.293656 -0.921174
-vn 0.850012 -0.526176 -0.024864
-vn 0.539402 -0.840642 -0.048634
-vn 0.791469 -0.609184 -0.049722
-vn 0.539402 -0.840642 -0.048634
-vn 0.488009 -0.871020 -0.056324
-vn 0.791469 -0.609184 -0.049722
-vn -0.562710 0.825931 0.034560
-vn -0.761245 0.647906 0.026911
-vn -0.541816 0.839771 0.034923
-vn -0.761245 0.647906 0.026911
-vn -0.823527 0.566803 0.023172
-vn -0.541816 0.839771 0.034923
-vn -0.495577 0.867646 0.039930
-vn -0.541816 0.839771 0.034923
-vn -0.756449 0.653385 0.029548
-vn -0.541816 0.839771 0.034923
-vn -0.823527 0.566803 0.023172
-vn -0.756449 0.653385 0.029548
-vn -0.138390 -0.332971 0.932727
-vn -0.142304 -0.333246 0.932039
-vn -0.134867 -0.315546 0.939277
-vn -0.980679 -0.195518 0.006376
-vn -0.984334 -0.176055 0.009521
-vn -0.981678 -0.190277 0.010176
-vn -0.981678 -0.190277 0.010176
-vn -0.984334 -0.176055 0.009521
-vn -0.982423 -0.186181 0.013505
-vn 0.984694 0.174160 -0.006738
-vn 0.985848 0.161528 -0.044851
-vn 0.983212 0.180337 -0.027797
-vn 0.984694 0.174160 -0.006738
-vn 0.984046 0.174020 -0.037009
-vn 0.985848 0.161528 -0.044851
-vn -0.075421 -0.342512 -0.936481
-vn -0.080619 -0.343276 -0.935768
-vn -0.088936 -0.352542 -0.931560
-vn -0.080619 -0.343276 -0.935768
-vn -0.094136 -0.352187 -0.931184
-vn -0.088936 -0.352542 -0.931560
-vn -0.088936 -0.352542 -0.931560
-vn -0.094136 -0.352187 -0.931184
-vn -0.110062 -0.360826 -0.926116
-vn -0.094136 -0.352187 -0.931184
-vn -0.115215 -0.359361 -0.926059
-vn -0.110062 -0.360826 -0.926116
-vn -0.731212 -0.381836 -0.565270
-vn -0.713582 -0.257949 -0.651354
-vn -0.099908 -0.581232 -0.807581
-vn -0.713582 -0.257949 -0.651354
-vn -0.071198 -0.408463 -0.909994
-vn -0.099908 -0.581232 -0.807581
-vn -0.713582 -0.257949 -0.651354
-vn -0.723566 -0.082382 -0.685321
-vn -0.071198 -0.408463 -0.909994
-vn -0.723566 -0.082382 -0.685321
-vn -0.051319 -0.202061 -0.978028
-vn -0.071198 -0.408463 -0.909994
-vn -0.731212 -0.381836 -0.565270
-vn -0.099908 -0.581232 -0.807581
-vn -0.574631 -0.446587 -0.685827
-vn -0.099908 -0.581232 -0.807581
-vn -0.108229 -0.493339 -0.863078
-vn -0.574631 -0.446587 -0.685827
-vn -0.108229 -0.493339 -0.863078
-vn -0.080619 -0.343276 -0.935768
-vn -0.092628 -0.376477 -0.921784
-vn -0.080619 -0.343276 -0.935768
-vn -0.075421 -0.342512 -0.936481
-vn -0.092628 -0.376477 -0.921784
-vn -0.080859 -0.444705 -0.892020
-vn -0.108229 -0.493339 -0.863078
-vn -0.092628 -0.376477 -0.921784
-vn -0.574631 -0.446587 -0.685827
-vn -0.108229 -0.493339 -0.863078
-vn -0.080859 -0.444705 -0.892020
-vn -0.723566 -0.082382 -0.685321
-vn -0.668540 0.161888 -0.725842
-vn -0.051319 -0.202061 -0.978028
-vn -0.668540 0.161888 -0.725842
-vn 0.006508 0.083612 -0.996477
-vn -0.051319 -0.202061 -0.978028
-vn 0.000000 -0.871316 -0.490722
-vn 0.119524 -0.861339 -0.493770
-vn -0.000000 -0.514402 -0.857549
-vn 0.119524 -0.861339 -0.493770
-vn 0.192801 -0.483418 -0.853894
-vn -0.000000 -0.514402 -0.857549
-vn 0.476271 -0.348677 -0.807211
-vn 0.192801 -0.483418 -0.853894
-vn 0.324453 -0.809413 -0.489470
-vn 0.192801 -0.483418 -0.853894
-vn 0.119524 -0.861339 -0.493770
-vn 0.324453 -0.809413 -0.489470
-vn 0.879217 -0.280086 -0.385394
-vn 0.702167 -0.425693 -0.570743
-vn 0.658652 -0.695759 -0.286526
-vn 0.702167 -0.425693 -0.570743
-vn 0.491332 -0.797984 -0.349020
-vn 0.658652 -0.695759 -0.286526
-vn 0.658652 -0.695759 -0.286526
-vn 0.833807 -0.528564 -0.159328
-vn 0.879217 -0.280086 -0.385394
-vn 0.833807 -0.528564 -0.159328
-vn 0.957276 -0.214865 -0.193535
-vn 0.879217 -0.280086 -0.385394
-vn -0.446710 0.893463 0.046633
-vn -0.429327 0.901377 0.056555
-vn -0.166799 0.985578 0.028524
-vn -0.429327 0.901377 0.056555
-vn -0.216363 0.975064 0.049360
-vn -0.166799 0.985578 0.028524
-vn 0.324453 -0.809413 -0.489470
-vn 0.253349 -0.964463 -0.075004
-vn 0.491332 -0.797984 -0.349020
-vn 0.494936 -0.863469 -0.097259
-vn 0.658652 -0.695759 -0.286526
-vn 0.491332 -0.797984 -0.349020
-vn 0.956032 -0.272734 -0.107795
-vn 0.957276 -0.214865 -0.193535
-vn 0.813515 -0.572091 -0.104428
-vn 0.957276 -0.214865 -0.193535
-vn 0.833807 -0.528564 -0.159328
-vn 0.813515 -0.572091 -0.104428
-vn -0.429327 0.901377 0.056555
-vn -0.180265 0.982087 0.054868
-vn -0.216363 0.975064 0.049360
-vn 0.780359 -0.622831 -0.055866
-vn 0.755223 -0.652355 0.063808
-vn 0.944473 -0.323507 -0.057569
-vn 0.755223 -0.652355 0.063808
-vn 0.973639 -0.218470 -0.065558
-vn 0.944473 -0.323507 -0.057569
-vn 0.763261 0.075432 0.641672
-vn 0.998456 -0.051981 0.019606
-vn 0.759620 -0.099247 0.642749
-vn 0.998456 -0.051981 0.019606
-vn 0.997150 -0.075336 -0.004072
-vn 0.759620 -0.099247 0.642749
-vn 0.805391 0.217929 0.551228
-vn 0.998707 -0.048248 0.015984
-vn 0.763261 0.075432 0.641672
-vn 0.998707 -0.048248 0.015984
-vn 0.998456 -0.051981 0.019606
-vn 0.763261 0.075432 0.641672
-vn 0.775685 0.361202 0.517538
-vn 0.999627 -0.020816 0.017698
-vn 0.805391 0.217929 0.551228
-vn 0.999627 -0.020816 0.017698
-vn 0.998707 -0.048248 0.015984
-vn 0.805391 0.217929 0.551228
-vn 0.999627 -0.020816 0.017698
-vn 0.775685 0.361202 0.517538
-vn 0.999782 0.020752 0.002261
-vn 0.775685 0.361202 0.517538
-vn 0.740592 0.322814 0.589333
-vn 0.999782 0.020752 0.002261
-vn 0.999782 0.020752 0.002261
-vn 0.740592 0.322814 0.589333
-vn 0.998303 0.058229 0.000632
-vn 0.740592 0.322814 0.589333
-vn 0.728818 0.284083 0.622994
-vn 0.998303 0.058229 0.000632
-vn 0.773857 0.304857 0.555164
-vn 0.990513 0.137395 0.002445
-vn 0.728818 0.284083 0.622994
-vn 0.990513 0.137395 0.002445
-vn 0.998303 0.058229 0.000632
-vn 0.728818 0.284083 0.622994
-vn 0.738957 0.055017 0.671503
-vn 0.763261 0.075432 0.641672
-vn 0.707233 -0.162804 0.687980
-vn 0.763261 0.075432 0.641672
-vn 0.759620 -0.099247 0.642749
-vn 0.707233 -0.162804 0.687980
-vn 0.761618 0.252637 0.596751
-vn 0.805391 0.217929 0.551228
-vn 0.738957 0.055017 0.671503
-vn 0.805391 0.217929 0.551228
-vn 0.763261 0.075432 0.641672
-vn 0.738957 0.055017 0.671503
-vn 0.775408 0.330567 0.538022
-vn 0.775685 0.361202 0.517538
-vn 0.761618 0.252637 0.596751
-vn 0.775685 0.361202 0.517538
-vn 0.805391 0.217929 0.551228
-vn 0.761618 0.252637 0.596751
-vn 0.740592 0.322814 0.589333
-vn 0.775685 0.361202 0.517538
-vn 0.804082 0.167348 0.570480
-vn 0.775685 0.361202 0.517538
-vn 0.775408 0.330567 0.538022
-vn 0.804082 0.167348 0.570480
-vn 0.740592 0.322814 0.589333
-vn 0.804082 0.167348 0.570480
-vn 0.820751 0.061453 0.567972
-vn 0.724913 0.292702 0.623560
-vn 0.728818 0.284083 0.622994
-vn 0.820751 0.061453 0.567972
-vn 0.728818 0.284083 0.622994
-vn 0.740592 0.322814 0.589333
-vn 0.820751 0.061453 0.567972
-vn 0.773857 0.304857 0.555164
-vn 0.728818 0.284083 0.622994
-vn 0.771535 0.304529 0.558566
-vn 0.728818 0.284083 0.622994
-vn 0.724913 0.292702 0.623560
-vn 0.771535 0.304529 0.558566
-vn 0.771535 0.304529 0.558566
-vn 0.740815 0.342904 0.577590
-vn 0.773857 0.304857 0.555164
-vn 0.740815 0.342904 0.577590
-vn 0.969840 0.166099 0.178388
-vn 0.773857 0.304857 0.555164
-vn 0.759620 -0.099247 0.642749
-vn 0.997150 -0.075336 -0.004072
-vn 0.772660 -0.348538 0.530583
-vn 0.997150 -0.075336 -0.004072
-vn 0.990615 -0.133182 -0.030719
-vn 0.772660 -0.348538 0.530583
-vn 0.656028 -0.418182 0.628292
-vn 0.772660 -0.348538 0.530583
-vn 0.627242 -0.676188 0.386443
-vn 0.772660 -0.348538 0.530583
-vn 0.767409 -0.563943 0.305045
-vn 0.627242 -0.676188 0.386443
-vn -0.600495 0.443647 -0.665270
-vn -0.554377 0.702479 -0.446307
-vn -0.004398 0.419539 -0.907726
-vn -0.554377 0.702479 -0.446307
-vn -0.010368 0.800881 -0.598733
-vn -0.004398 0.419539 -0.907726
-vn -0.554377 0.702479 -0.446307
-vn -0.517246 0.846290 -0.127473
-vn -0.010368 0.800881 -0.598733
-vn -0.517246 0.846290 -0.127473
-vn -0.051864 0.975168 -0.215306
-vn -0.010368 0.800881 -0.598733
-vn 0.627242 -0.676188 0.386443
-vn 0.767409 -0.563943 0.305045
-vn 0.634100 -0.764086 0.118699
-vn 0.767409 -0.563943 0.305045
-vn 0.755223 -0.652355 0.063808
-vn 0.634100 -0.764086 0.118699
-vn 0.780359 -0.622831 -0.055866
-vn 0.634100 -0.764086 0.118699
-vn 0.755223 -0.652355 0.063808
-vn -0.517246 0.846290 -0.127473
-vn -0.494071 0.869415 -0.003328
-vn -0.051864 0.975168 -0.215306
-vn -0.494071 0.869415 -0.003328
-vn -0.145820 0.989051 -0.022703
-vn -0.051864 0.975168 -0.215306
-vn 0.707233 -0.162804 0.687980
-vn 0.759620 -0.099247 0.642749
-vn 0.656028 -0.418182 0.628292
-vn 0.759620 -0.099247 0.642749
-vn 0.772660 -0.348538 0.530583
-vn 0.656028 -0.418182 0.628292
-vn -0.668540 0.161888 -0.725842
-vn -0.600495 0.443647 -0.665270
-vn 0.006508 0.083612 -0.996477
-vn -0.600495 0.443647 -0.665270
-vn -0.004398 0.419539 -0.907726
-vn 0.006508 0.083612 -0.996477
-vn 0.923588 -0.380903 -0.043567
-vn 0.985507 -0.169473 0.007393
-vn 0.951043 -0.307690 -0.029046
-vn 0.833807 -0.528564 -0.159328
-vn 0.708309 -0.701790 -0.076086
-vn 0.813515 -0.572091 -0.104428
-vn 0.494936 -0.863469 -0.097259
-vn 0.539402 -0.840642 -0.048634
-vn 0.808708 -0.587341 -0.031976
-vn 0.994998 0.093231 -0.035887
-vn 0.990513 0.137395 0.002445
-vn 0.969840 0.166099 0.178388
-vn 0.990513 0.137395 0.002445
-vn 0.773857 0.304857 0.555164
-vn 0.969840 0.166099 0.178388
-vn -0.969531 0.242434 0.035143
-vn -0.971231 0.238135 0.001538
-vn -0.984202 0.176837 0.008696
-vn -0.984202 0.176837 0.008696
-vn -0.971231 0.238135 0.001538
-vn -0.668540 0.161888 -0.725842
-vn -0.668540 0.161888 -0.725842
-vn -0.971231 0.238135 0.001538
-vn -0.600495 0.443647 -0.665270
-vn -0.554377 0.702479 -0.446307
-vn -0.600495 0.443647 -0.665270
-vn -0.971231 0.238135 0.001538
-vn -0.967156 0.254168 -0.002830
-vn -0.885029 0.465465 0.008081
-vn -0.969531 0.242434 0.035143
-vn -0.885029 0.465465 0.008081
-vn -0.932362 0.360030 0.032846
-vn -0.969531 0.242434 0.035143
-vn -0.956121 0.292541 0.015885
-vn -0.945131 0.326041 0.020602
-vn -0.844338 0.533959 0.044504
-vn -0.945131 0.326041 0.020602
-vn -0.789936 0.611456 0.046072
-vn -0.844338 0.533959 0.044504
-vn -0.996550 0.082383 -0.010068
-vn -0.996380 0.085006 0.000430
-vn -0.993936 0.109771 -0.006474
-vn -0.993936 0.109771 -0.006474
-vn -0.996380 0.085006 0.000430
-vn -0.989557 0.144091 0.003808
-vn -0.996380 0.085006 0.000430
-vn -0.983245 0.182196 0.005792
-vn -0.989557 0.144091 0.003808
-vn -0.723566 -0.082382 -0.685321
-vn -0.713582 -0.257949 -0.651354
-vn -0.995327 0.096478 -0.003944
-vn -0.996550 0.082383 -0.010068
-vn -0.993936 0.109771 -0.006474
-vn -0.713582 -0.257949 -0.651354
-vn -0.713582 -0.257949 -0.651354
-vn -0.993936 0.109771 -0.006474
-vn -0.995327 0.096478 -0.003944
-vn -0.668540 0.161888 -0.725842
-vn -0.723566 -0.082382 -0.685321
-vn -0.984202 0.176837 0.008696
-vn -0.723566 -0.082382 -0.685321
-vn -0.995327 0.096478 -0.003944
-vn -0.984202 0.176837 0.008696
-vn -0.510928 0.859417 0.018820
-vn -0.512047 0.858797 0.016581
-vn -0.453914 0.680417 0.575322
-vn -0.512047 0.858797 0.016581
-vn -0.449290 0.674456 0.585873
-vn -0.453914 0.680417 0.575322
-vn -0.126933 0.991885 0.007160
-vn -0.173425 0.735723 -0.654703
-vn -0.135280 0.990653 -0.017479
-vn -0.173425 0.735723 -0.654703
-vn -0.182289 0.709418 -0.680806
-vn -0.135280 0.990653 -0.017479
-vn -0.178828 0.405350 -0.896500
-vn -0.182289 0.709418 -0.680806
-vn -0.173425 0.735723 -0.654703
-vn -0.453914 0.680417 0.575322
-vn -0.449290 0.674456 0.585873
-vn -0.435398 0.431875 0.789881
-vn -0.603657 0.376752 -0.702606
-vn -0.616263 0.596857 -0.513792
-vn -0.609064 0.605926 -0.511757
-vn -0.248653 0.725676 0.641534
-vn -0.258900 0.717586 0.646561
-vn -0.274003 0.415746 0.867224
-vn -0.126933 0.991885 0.007160
-vn -0.135280 0.990653 -0.017479
-vn -0.248653 0.725676 0.641534
-vn -0.135280 0.990653 -0.017479
-vn -0.258900 0.717586 0.646561
-vn -0.248653 0.725676 0.641534
-vn -0.510928 0.859417 0.018820
-vn -0.609064 0.605926 -0.511757
-vn -0.512047 0.858797 0.016581
-vn -0.609064 0.605926 -0.511757
-vn -0.616263 0.596857 -0.513792
-vn -0.512047 0.858797 0.016581
-vn -0.844338 0.533959 0.044504
-vn -0.885029 0.465465 0.008081
-vn -0.956121 0.292541 0.015885
-vn -0.885029 0.465465 0.008081
-vn -0.967156 0.254168 -0.002830
-vn -0.956121 0.292541 0.015885
-vn -0.494071 0.869415 -0.003328
-vn -0.446710 0.893463 0.046633
-vn -0.145820 0.989051 -0.022703
-vn -0.446710 0.893463 0.046633
-vn -0.166799 0.985578 0.028524
-vn -0.145820 0.989051 -0.022703
-vn 0.780359 -0.622831 -0.055866
-vn 0.944473 -0.323507 -0.057569
-vn 0.813515 -0.572091 -0.104428
-vn 0.944473 -0.323507 -0.057569
-vn 0.956032 -0.272734 -0.107795
-vn 0.813515 -0.572091 -0.104428
-vn -0.989557 0.144091 0.003808
-vn -0.983245 0.182196 0.005792
-vn -0.983787 0.179160 0.008038
-vn -0.956121 0.292541 0.015885
-vn -0.983787 0.179160 0.008038
-vn -0.945131 0.326041 0.020602
-vn -0.945131 0.326041 0.020602
-vn -0.983787 0.179160 0.008038
-vn -0.983245 0.182196 0.005792
-vn -0.713582 -0.257949 -0.651354
-vn -0.731212 -0.381836 -0.565270
-vn -0.996550 0.082383 -0.010068
-vn -0.996550 0.082383 -0.010068
-vn -0.731212 -0.381836 -0.565270
-vn -0.574631 -0.446587 -0.685827
-vn -0.996550 0.082383 -0.010068
-vn -0.998947 0.045842 0.001757
-vn -0.996380 0.085006 0.000430
-vn 0.998432 -0.055875 -0.003518
-vn 0.775408 0.330567 0.538022
-vn 0.761618 0.252637 0.596751
-vn 0.969905 -0.243373 -0.007371
-vn 0.985507 -0.169473 0.007393
-vn 0.923588 -0.380903 -0.043567
-vn 0.923588 -0.380903 -0.043567
-vn 0.808708 -0.587341 -0.031976
-vn 0.969905 -0.243373 -0.007371
-vn 0.998432 -0.055875 -0.003518
-vn 0.985507 -0.169473 0.007393
-vn 0.969905 -0.243373 -0.007371
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.885029 0.465465 0.008081
-vn -0.494071 0.869415 -0.003328
-vn -0.932362 0.360030 0.032846
-vn -0.494071 0.869415 -0.003328
-vn -0.517246 0.846290 -0.127473
-vn -0.932362 0.360030 0.032846
-vn -0.446710 0.893463 0.046633
-vn -0.494071 0.869415 -0.003328
-vn -0.844338 0.533959 0.044504
-vn -0.494071 0.869415 -0.003328
-vn -0.885029 0.465465 0.008081
-vn -0.844338 0.533959 0.044504
-vn -0.932362 0.360030 0.032846
-vn -0.971231 0.238135 0.001538
-vn -0.969531 0.242434 0.035143
-vn -0.554377 0.702479 -0.446307
-vn -0.971231 0.238135 0.001538
-vn -0.932362 0.360030 0.032846
-vn -0.932362 0.360030 0.032846
-vn -0.517246 0.846290 -0.127473
-vn -0.554377 0.702479 -0.446307
-vn -0.429327 0.901377 0.056555
-vn -0.446710 0.893463 0.046633
-vn -0.789936 0.611456 0.046072
-vn -0.446710 0.893463 0.046633
-vn -0.844338 0.533959 0.044504
-vn -0.789936 0.611456 0.046072
-vn -0.682062 0.729639 0.049171
-vn -0.789936 0.611456 0.046072
-vn -0.914969 0.402789 0.024342
-vn -0.789936 0.611456 0.046072
-vn -0.945131 0.326041 0.020602
-vn -0.914969 0.402789 0.024342
-vn -0.284211 0.955066 0.084101
-vn -0.322783 0.944059 0.067556
-vn -0.615919 0.785318 0.062605
-vn -0.322783 0.944059 0.067556
-vn -0.682062 0.729639 0.049171
-vn -0.615919 0.785318 0.062605
-vn -0.144281 -0.209043 0.967204
-vn -0.158943 -0.205989 0.965560
-vn -0.191886 -0.210924 0.958484
-vn -0.158943 -0.205989 0.965560
-vn -0.196192 -0.207154 0.958434
-vn -0.191886 -0.210924 0.958484
-vn 0.247950 -0.964620 -0.089610
-vn 0.507293 -0.858759 -0.072022
-vn 0.249118 -0.963466 -0.098359
-vn 0.507293 -0.858759 -0.072022
-vn 0.515410 -0.853105 -0.081018
-vn 0.249118 -0.963466 -0.098359
-vn 0.212106 -0.072179 -0.974577
-vn 0.319057 -0.035786 -0.947060
-vn 0.239693 -0.077290 -0.967767
-vn 0.319057 -0.035786 -0.947060
-vn 0.328251 -0.031289 -0.944072
-vn 0.239693 -0.077290 -0.967767
-vn 0.253470 -0.964963 -0.067819
-vn 0.488009 -0.871020 -0.056324
-vn 0.253349 -0.964463 -0.075004
-vn 0.488009 -0.871020 -0.056324
-vn 0.539402 -0.840642 -0.048634
-vn 0.253349 -0.964463 -0.075004
-vn -0.322783 0.944059 0.067556
-vn -0.429327 0.901377 0.056555
-vn -0.682062 0.729639 0.049171
-vn -0.429327 0.901377 0.056555
-vn -0.789936 0.611456 0.046072
-vn -0.682062 0.729639 0.049171
-vn 0.491332 -0.797984 -0.349020
-vn 0.253349 -0.964463 -0.075004
-vn 0.494936 -0.863469 -0.097259
-vn -0.322783 0.944059 0.067556
-vn -0.083437 0.994889 0.056877
-vn -0.082937 0.995311 0.049767
-vn 0.324453 -0.809413 -0.489470
-vn 0.491332 -0.797984 -0.349020
-vn 0.476271 -0.348677 -0.807211
-vn 0.491332 -0.797984 -0.349020
-vn 0.702167 -0.425693 -0.570743
-vn 0.476271 -0.348677 -0.807211
-vn 0.324453 -0.809413 -0.489470
-vn 0.095583 -0.992659 -0.074102
-vn 0.253349 -0.964463 -0.075004
-vn 0.095583 -0.992659 -0.074102
-vn 0.253470 -0.964963 -0.067819
-vn 0.253349 -0.964463 -0.075004
-vn 0.253349 -0.964463 -0.075004
-vn 0.539402 -0.840642 -0.048634
-vn 0.494936 -0.863469 -0.097259
-vn 0.833807 -0.528564 -0.159328
-vn 0.658652 -0.695759 -0.286526
-vn 0.494936 -0.863469 -0.097259
-vn 0.494936 -0.863469 -0.097259
-vn 0.708309 -0.701790 -0.076086
-vn 0.833807 -0.528564 -0.159328
-vn 0.708309 -0.701790 -0.076086
-vn 0.745659 -0.659800 -0.093041
-vn 0.813515 -0.572091 -0.104428
-vn 0.764602 -0.641682 -0.060234
-vn 0.780359 -0.622831 -0.055866
-vn 0.813515 -0.572091 -0.104428
-vn 0.813515 -0.572091 -0.104428
-vn 0.745659 -0.659800 -0.093041
-vn 0.764602 -0.641682 -0.060234
-vn 0.780359 -0.622831 -0.055866
-vn 0.764602 -0.641682 -0.060234
-vn 0.634100 -0.764086 0.118699
-vn 0.808708 -0.587341 -0.031976
-vn 0.539402 -0.840642 -0.048634
-vn 0.850012 -0.526176 -0.024864
-vn 0.708309 -0.701790 -0.076086
-vn 0.808708 -0.587341 -0.031976
-vn 0.923588 -0.380903 -0.043567
-vn 0.923588 -0.380903 -0.043567
-vn 0.745659 -0.659800 -0.093041
-vn 0.708309 -0.701790 -0.076086
-vn 0.745659 -0.659800 -0.093041
-vn 0.923588 -0.380903 -0.043567
-vn 0.764602 -0.641682 -0.060234
-vn 0.764602 -0.641682 -0.060234
-vn 0.923588 -0.380903 -0.043567
-vn 0.951043 -0.307690 -0.029046
-vn 0.634100 -0.764086 0.118699
-vn 0.764602 -0.641682 -0.060234
-vn 0.951043 -0.307690 -0.029046
-vn 0.951043 -0.307690 -0.029046
-vn 0.627242 -0.676188 0.386443
-vn 0.634100 -0.764086 0.118699
-vn 0.656028 -0.418182 0.628292
-vn 0.627242 -0.676188 0.386443
-vn 0.951043 -0.307690 -0.029046
-vn 0.707233 -0.162804 0.687980
-vn 0.656028 -0.418182 0.628292
-vn 0.951043 -0.307690 -0.029046
-vn 0.985507 -0.169473 0.007393
-vn 0.707233 -0.162804 0.687980
-vn 0.951043 -0.307690 -0.029046
-vn 0.693869 -0.717639 -0.059504
-vn 0.734614 -0.292666 0.612119
-vn 0.951661 -0.299535 -0.067968
-vn 0.951661 -0.299535 -0.067968
-vn 0.734614 -0.292666 0.612119
-vn 0.865823 -0.075119 0.494680
-vn 0.694372 -0.659335 -0.288316
-vn 0.688953 -0.713776 -0.125968
-vn 0.911130 -0.251283 -0.326649
-vn 0.911130 -0.251283 -0.326649
-vn 0.688953 -0.713776 -0.125968
-vn 0.936547 -0.324609 -0.132316
-vn 0.591638 -0.669054 -0.449811
-vn 0.694372 -0.659335 -0.288316
-vn 0.776501 -0.261174 -0.573441
-vn 0.776501 -0.261174 -0.573441
-vn 0.694372 -0.659335 -0.288316
-vn 0.911130 -0.251283 -0.326649
-vn 0.450135 -0.670894 -0.589305
-vn 0.591638 -0.669054 -0.449811
-vn 0.582436 -0.291964 -0.758634
-vn 0.582436 -0.291964 -0.758634
-vn 0.591638 -0.669054 -0.449811
-vn 0.776501 -0.261174 -0.573441
-vn 0.167519 -0.631543 -0.757027
-vn 0.303200 -0.657246 -0.689998
-vn 0.203644 -0.349140 -0.914675
-vn 0.203644 -0.349140 -0.914675
-vn 0.303200 -0.657246 -0.689998
-vn 0.389637 -0.317883 -0.864369
-vn -0.000000 -0.641479 -0.767141
-vn 0.167519 -0.631543 -0.757027
-vn 0.000000 -0.346225 -0.938152
-vn 0.000000 -0.346225 -0.938152
-vn 0.167519 -0.631543 -0.757027
-vn 0.203644 -0.349140 -0.914675
-vn 0.688953 -0.713776 -0.125968
-vn 0.694372 -0.659335 -0.288316
-vn 0.440580 -0.890619 -0.112635
-vn 0.440580 -0.890619 -0.112635
-vn 0.694372 -0.659335 -0.288316
-vn 0.411066 -0.888894 -0.202218
-vn 0.694372 -0.659335 -0.288316
-vn 0.591638 -0.669054 -0.449811
-vn 0.411066 -0.888894 -0.202218
-vn 0.411066 -0.888894 -0.202218
-vn 0.591638 -0.669054 -0.449811
-vn 0.372727 -0.870575 -0.321206
-vn 0.591638 -0.669054 -0.449811
-vn 0.450135 -0.670894 -0.589305
-vn 0.372727 -0.870575 -0.321206
-vn 0.372727 -0.870575 -0.321206
-vn 0.450135 -0.670894 -0.589305
-vn 0.308118 -0.845792 -0.435546
-vn 0.213971 -0.821557 -0.528451
-vn 0.303200 -0.657246 -0.689998
-vn 0.127120 -0.776749 -0.616849
-vn 0.127120 -0.776749 -0.616849
-vn 0.303200 -0.657246 -0.689998
-vn 0.167519 -0.631543 -0.757027
-vn -0.000000 -0.641479 -0.767141
-vn -0.000000 -0.775130 -0.631802
-vn 0.167519 -0.631543 -0.757027
-vn 0.167519 -0.631543 -0.757027
-vn -0.000000 -0.775130 -0.631802
-vn 0.127120 -0.776749 -0.616849
-vn 0.829370 -0.508463 0.231538
-vn 0.547229 -0.823054 -0.152061
-vn 0.933139 -0.256382 0.252030
-vn 0.933139 -0.256382 0.252030
-vn 0.547229 -0.823054 -0.152061
-vn 0.834994 -0.497446 -0.235229
-vn 0.547229 -0.823054 -0.152061
-vn 0.499176 -0.817395 -0.287557
-vn 0.834994 -0.497446 -0.235229
-vn 0.834994 -0.497446 -0.235229
-vn 0.499176 -0.817395 -0.287557
-vn 0.746611 -0.509098 -0.428241
-vn 0.499176 -0.817395 -0.287557
-vn 0.433962 -0.796400 -0.421218
-vn 0.746611 -0.509098 -0.428241
-vn 0.746611 -0.509098 -0.428241
-vn 0.433962 -0.796400 -0.421218
-vn 0.626875 -0.487380 -0.607855
-vn 0.433962 -0.796400 -0.421218
-vn 0.339986 -0.770658 -0.538977
-vn 0.626875 -0.487380 -0.607855
-vn 0.626875 -0.487380 -0.607855
-vn 0.339986 -0.770658 -0.538977
-vn 0.474424 -0.451462 -0.755715
-vn 0.219380 -0.740034 -0.635784
-vn 0.105150 -0.721120 -0.684785
-vn 0.298918 -0.442208 -0.845636
-vn 0.298918 -0.442208 -0.845636
-vn 0.105150 -0.721120 -0.684785
-vn 0.134280 -0.433849 -0.890923
-vn 0.000000 -0.711059 -0.703132
-vn 0.000000 -0.428150 -0.903708
-vn 0.105150 -0.721120 -0.684785
-vn 0.105150 -0.721120 -0.684785
-vn 0.000000 -0.428150 -0.903708
-vn 0.134280 -0.433849 -0.890923
-vn 0.933139 -0.256382 0.252030
-vn 0.834994 -0.497446 -0.235229
-vn 0.950169 -0.026411 0.310615
-vn 0.950169 -0.026411 0.310615
-vn 0.834994 -0.497446 -0.235229
-vn 0.957770 -0.134386 -0.254199
-vn 0.834994 -0.497446 -0.235229
-vn 0.746611 -0.509098 -0.428241
-vn 0.957770 -0.134386 -0.254199
-vn 0.957770 -0.134386 -0.254199
-vn 0.746611 -0.509098 -0.428241
-vn 0.861660 -0.163786 -0.480330
-vn 0.746611 -0.509098 -0.428241
-vn 0.626875 -0.487380 -0.607855
-vn 0.861660 -0.163786 -0.480330
-vn 0.861660 -0.163786 -0.480330
-vn 0.626875 -0.487380 -0.607855
-vn 0.707443 -0.172771 -0.685328
-vn 0.626875 -0.487380 -0.607855
-vn 0.474424 -0.451462 -0.755715
-vn 0.707443 -0.172771 -0.685328
-vn 0.707443 -0.172771 -0.685328
-vn 0.474424 -0.451462 -0.755715
-vn 0.530815 -0.169218 -0.830422
-vn 0.298918 -0.442208 -0.845636
-vn 0.134280 -0.433849 -0.890923
-vn 0.338040 -0.168109 -0.925996
-vn 0.338040 -0.168109 -0.925996
-vn 0.134280 -0.433849 -0.890923
-vn 0.143223 -0.147346 -0.978661
-vn 0.000000 -0.428150 -0.903708
-vn 0.000000 -0.139213 -0.990262
-vn 0.134280 -0.433849 -0.890923
-vn 0.134280 -0.433849 -0.890923
-vn 0.000000 -0.139213 -0.990262
-vn 0.143223 -0.147346 -0.978661
-vn 0.887379 0.408080 0.214547
-vn 0.955533 0.229356 0.185346
-vn 0.775796 0.611274 -0.156478
-vn 0.775796 0.611274 -0.156478
-vn 0.955533 0.229356 0.185346
-vn 0.899654 0.371805 -0.228876
-vn 0.838201 0.338530 -0.427570
-vn 0.748562 0.572863 -0.333891
-vn 0.899654 0.371805 -0.228876
-vn 0.899654 0.371805 -0.228876
-vn 0.748562 0.572863 -0.333891
-vn 0.775796 0.611274 -0.156478
-vn 0.838201 0.338530 -0.427570
-vn 0.730079 0.280919 -0.622953
-vn 0.748562 0.572863 -0.333891
-vn 0.748562 0.572863 -0.333891
-vn 0.730079 0.280919 -0.622953
-vn 0.670026 0.523745 -0.526077
-vn 0.141285 0.197838 -0.969999
-vn 0.000000 0.169328 -0.985560
-vn 0.141907 0.486043 -0.862337
-vn 0.141907 0.486043 -0.862337
-vn 0.000000 0.169328 -0.985560
-vn -0.000000 0.429750 -0.902948
-vn 0.910865 0.382103 -0.155956
-vn 0.775796 0.611274 -0.156478
-vn 0.852446 0.395819 -0.341559
-vn 0.852446 0.395819 -0.341559
-vn 0.775796 0.611274 -0.156478
-vn 0.748562 0.572863 -0.333891
-vn 0.852446 0.395819 -0.341559
-vn 0.748562 0.572863 -0.333891
-vn 0.727146 0.408695 -0.551567
-vn 0.727146 0.408695 -0.551567
-vn 0.748562 0.572863 -0.333891
-vn 0.670026 0.523745 -0.526077
-vn 0.561493 0.486609 -0.669281
-vn 0.515036 0.508272 -0.690216
-vn 0.260541 0.716419 -0.647196
-vn 0.260541 0.716419 -0.647196
-vn 0.515036 0.508272 -0.690216
-vn 0.306784 0.535384 -0.786923
-vn 0.306784 0.535384 -0.786923
-vn 0.141907 0.486043 -0.862337
-vn 0.260541 0.716419 -0.647196
-vn 0.260541 0.716419 -0.647196
-vn 0.141907 0.486043 -0.862337
-vn 0.139642 0.443685 -0.885237
-vn 0.141907 0.486043 -0.862337
-vn -0.000000 0.429750 -0.902948
-vn 0.139642 0.443685 -0.885237
-vn 0.139642 0.443685 -0.885237
-vn -0.000000 0.429750 -0.902948
-vn 0.000000 0.345679 -0.938353
-vn 0.978524 0.071526 -0.193328
-vn 0.865780 0.298022 0.402004
-vn 0.910865 0.382103 -0.155956
-vn 0.910702 0.410936 -0.041879
-vn 0.865780 0.298022 0.402004
-vn 0.663248 0.596004 0.452638
-vn 0.910865 0.382103 -0.155956
-vn 0.852446 0.395819 -0.341559
-vn 0.978524 0.071526 -0.193328
-vn 0.978524 0.071526 -0.193328
-vn 0.852446 0.395819 -0.341559
-vn 0.911055 0.107518 -0.398019
-vn 0.852446 0.395819 -0.341559
-vn 0.727146 0.408695 -0.551567
-vn 0.911055 0.107518 -0.398019
-vn 0.911055 0.107518 -0.398019
-vn 0.727146 0.408695 -0.551567
-vn 0.783256 0.126122 -0.608771
-vn 0.419181 0.072841 -0.904976
-vn 0.381991 0.053413 -0.922621
-vn 0.426493 0.056983 -0.902694
-vn 0.426493 0.056983 -0.902694
-vn 0.381991 0.053413 -0.922621
-vn 0.394310 0.036711 -0.918244
-vn 0.319266 0.017626 -0.947501
-vn 0.341576 0.029789 -0.939382
-vn 0.381991 0.053413 -0.922621
-vn 0.381991 0.053413 -0.922621
-vn 0.341576 0.029789 -0.939382
-vn 0.394310 0.036711 -0.918244
-vn 0.000000 0.345679 -0.938353
-vn 0.000000 0.077721 -0.996975
-vn 0.139642 0.443685 -0.885237
-vn 0.139642 0.443685 -0.885237
-vn 0.000000 0.077721 -0.996975
-vn 0.103853 0.070740 -0.992074
-vn 0.887417 0.192326 0.418929
-vn 0.963287 0.140801 -0.228590
-vn 0.895262 0.186285 0.404727
-vn 0.895262 0.186285 0.404727
-vn 0.963287 0.140801 -0.228590
-vn 0.922032 0.290901 -0.255407
-vn 0.963287 0.140801 -0.228590
-vn 0.891648 0.172871 -0.418426
-vn 0.922032 0.290901 -0.255407
-vn 0.922032 0.290901 -0.255407
-vn 0.891648 0.172871 -0.418426
-vn 0.845815 0.329793 -0.419325
-vn 0.891648 0.172871 -0.418426
-vn 0.767576 0.190717 -0.611926
-vn 0.845815 0.329793 -0.419325
-vn 0.845815 0.329793 -0.419325
-vn 0.767576 0.190717 -0.611926
-vn 0.708098 0.345784 -0.615654
-vn 0.883142 0.315792 0.346895
-vn 0.895262 0.186285 0.404727
-vn 0.746380 0.632005 -0.208535
-vn 0.746380 0.632005 -0.208535
-vn 0.895262 0.186285 0.404727
-vn 0.922032 0.290901 -0.255407
-vn 0.845815 0.329793 -0.419325
-vn 0.682306 0.642739 -0.348346
-vn 0.922032 0.290901 -0.255407
-vn 0.922032 0.290901 -0.255407
-vn 0.682306 0.642739 -0.348346
-vn 0.746380 0.632005 -0.208535
-vn 0.708098 0.345784 -0.615654
-vn 0.597176 0.623458 -0.504659
-vn 0.845815 0.329793 -0.419325
-vn 0.845815 0.329793 -0.419325
-vn 0.597176 0.623458 -0.504659
-vn 0.682306 0.642739 -0.348346
-vn 0.708098 0.345784 -0.615654
-vn 0.565694 0.317444 -0.761065
-vn 0.597176 0.623458 -0.504659
-vn 0.597176 0.623458 -0.504659
-vn 0.565694 0.317444 -0.761065
-vn 0.484964 0.591691 -0.643981
-vn 0.565694 0.317444 -0.761065
-vn 0.379772 0.322230 -0.867145
-vn 0.484964 0.591691 -0.643981
-vn 0.484964 0.591691 -0.643981
-vn 0.379772 0.322230 -0.867145
-vn 0.297017 0.614079 -0.731223
-vn 0.186911 0.318785 -0.929215
-vn 0.000000 0.303281 -0.952901
-vn 0.160628 0.572026 -0.804354
-vn 0.160628 0.572026 -0.804354
-vn 0.000000 0.303281 -0.952901
-vn 0.000000 0.566902 -0.823785
-vn 0.872500 0.486439 0.046048
-vn 0.883142 0.315792 0.346895
-vn 0.695502 0.699075 -0.166048
-vn 0.695502 0.699075 -0.166048
-vn 0.883142 0.315792 0.346895
-vn 0.746380 0.632005 -0.208535
-vn 0.682306 0.642739 -0.348346
-vn 0.641577 0.697453 -0.319279
-vn 0.746380 0.632005 -0.208535
-vn 0.746380 0.632005 -0.208535
-vn 0.641577 0.697453 -0.319279
-vn 0.695502 0.699075 -0.166048
-vn 0.597176 0.623458 -0.504659
-vn 0.576935 0.677233 -0.456619
-vn 0.682306 0.642739 -0.348346
-vn 0.682306 0.642739 -0.348346
-vn 0.576935 0.677233 -0.456619
-vn 0.641577 0.697453 -0.319279
-vn 0.484964 0.591691 -0.643981
-vn 0.445043 0.671109 -0.592916
-vn 0.597176 0.623458 -0.504659
-vn 0.597176 0.623458 -0.504659
-vn 0.445043 0.671109 -0.592916
-vn 0.576935 0.677233 -0.456619
-vn 0.484964 0.591691 -0.643981
-vn 0.297017 0.614079 -0.731223
-vn 0.445043 0.671109 -0.592916
-vn 0.445043 0.671109 -0.592916
-vn 0.297017 0.614079 -0.731223
-vn 0.311586 0.626785 -0.714181
-vn 0.160628 0.572026 -0.804354
-vn 0.000000 0.566902 -0.823785
-vn 0.167735 0.583693 -0.794460
-vn 0.167735 0.583693 -0.794460
-vn 0.000000 0.566902 -0.823785
-vn 0.000000 0.578067 -0.815989
-vn 0.827008 0.305512 0.471932
-vn 0.663248 0.596004 0.452638
-vn 0.787499 0.326946 0.522448
-vn 0.787499 0.326946 0.522448
-vn 0.663248 0.596004 0.452638
-vn 0.865780 0.298022 0.402004
-vn 0.887417 0.192326 0.418929
-vn 0.895262 0.186285 0.404727
-vn 0.790440 0.189724 0.582417
-vn 0.790440 0.189724 0.582417
-vn 0.895262 0.186285 0.404727
-vn 0.775527 -0.000898 0.631313
-vn 0.883142 0.315792 0.346895
-vn 0.964631 0.193831 0.178653
-vn 0.879022 -0.245419 0.408766
-vn 0.643794 0.051604 0.763457
-vn 0.734614 -0.292666 0.612119
-vn 0.645109 -0.423749 0.635823
-vn 0.827008 0.305512 0.471932
-vn 0.731349 0.176702 0.658715
-vn 0.722072 0.167012 0.671356
-vn 0.722072 0.167012 0.671356
-vn 0.731349 0.176702 0.658715
-vn 0.822162 0.061563 0.565915
-vn 0.731349 0.176702 0.658715
-vn 0.687158 0.108164 0.718411
-vn 0.822162 0.061563 0.565915
-vn 0.827008 0.305512 0.471932
-vn 0.665715 0.458373 0.588828
-vn 0.663248 0.596004 0.452638
-vn 0.141923 0.004781 -0.989866
-vn -0.000000 0.003909 -0.999992
-vn 0.141285 0.197838 -0.969999
-vn 0.141285 0.197838 -0.969999
-vn -0.000000 0.003909 -0.999992
-vn 0.000000 0.169328 -0.985560
-vn 0.549889 0.016593 -0.835073
-vn 0.341784 0.005125 -0.939765
-vn 0.556365 0.235871 -0.796758
-vn 0.556365 0.235871 -0.796758
-vn 0.341784 0.005125 -0.939765
-vn 0.340643 0.199708 -0.918738
-vn 0.879747 0.084713 -0.467833
-vn 0.732050 0.035948 -0.680302
-vn 0.838201 0.338530 -0.427570
-vn 0.838201 0.338530 -0.427570
-vn 0.732050 0.035948 -0.680302
-vn 0.730079 0.280919 -0.622953
-vn 0.963144 0.096949 -0.250908
-vn 0.879747 0.084713 -0.467833
-vn 0.899654 0.371805 -0.228876
-vn 0.899654 0.371805 -0.228876
-vn 0.879747 0.084713 -0.467833
-vn 0.838201 0.338530 -0.427570
-vn 0.952537 0.082086 0.293147
-vn 0.963144 0.096949 -0.250908
-vn 0.955533 0.229356 0.185346
-vn 0.955533 0.229356 0.185346
-vn 0.963144 0.096949 -0.250908
-vn 0.899654 0.371805 -0.228876
-vn 0.645109 -0.423749 0.635823
-vn 0.762062 -0.580087 0.287682
-vn 0.652378 0.102382 0.750946
-vn 0.652378 0.102382 0.750946
-vn 0.762062 -0.580087 0.287682
-vn 0.817308 0.373606 0.438665
-vn 0.066628 0.586188 0.807431
-vn 0.829370 -0.508463 0.231538
-vn 0.933139 -0.256382 0.252030
-vn 0.829370 -0.508463 0.231538
-vn 0.066628 0.586188 0.807431
-vn 0.482375 0.684024 0.547198
-vn 0.933139 -0.256382 0.252030
-vn 0.950169 -0.026411 0.310615
-vn 0.066628 0.586188 0.807431
-vn 0.066628 0.586188 0.807431
-vn 0.950169 -0.026411 0.310615
-vn -0.074275 0.267465 0.960701
-vn 0.955533 0.229356 0.185346
-vn 0.818615 -0.123715 0.560860
-vn 0.172799 -0.451525 0.875366
-vn 0.818615 -0.123715 0.560860
-vn 0.955533 0.229356 0.185346
-vn 0.887379 0.408080 0.214547
-vn -0.096717 0.033816 0.994737
-vn 0.955533 0.229356 0.185346
-vn 0.172799 -0.451525 0.875366
-vn 0.955533 0.229356 0.185346
-vn -0.096717 0.033816 0.994737
-vn 0.952537 0.082086 0.293147
-vn 0.127120 -0.776749 -0.616849
-vn -0.000000 -0.775130 -0.631802
-vn 0.105150 -0.721120 -0.684785
-vn 0.105150 -0.721120 -0.684785
-vn -0.000000 -0.775130 -0.631802
-vn 0.000000 -0.711059 -0.703132
-vn 0.213971 -0.821557 -0.528451
-vn 0.127120 -0.776749 -0.616849
-vn 0.219380 -0.740034 -0.635784
-vn 0.219380 -0.740034 -0.635784
-vn 0.127120 -0.776749 -0.616849
-vn 0.105150 -0.721120 -0.684785
-vn 0.372727 -0.870575 -0.321206
-vn 0.308118 -0.845792 -0.435546
-vn 0.433962 -0.796400 -0.421218
-vn 0.433962 -0.796400 -0.421218
-vn 0.308118 -0.845792 -0.435546
-vn 0.339986 -0.770658 -0.538977
-vn 0.411066 -0.888894 -0.202218
-vn 0.372727 -0.870575 -0.321206
-vn 0.499176 -0.817395 -0.287557
-vn 0.499176 -0.817395 -0.287557
-vn 0.372727 -0.870575 -0.321206
-vn 0.433962 -0.796400 -0.421218
-vn 0.440580 -0.890619 -0.112635
-vn 0.411066 -0.888894 -0.202218
-vn 0.547229 -0.823054 -0.152061
-vn 0.547229 -0.823054 -0.152061
-vn 0.411066 -0.888894 -0.202218
-vn 0.499176 -0.817395 -0.287557
-vn 0.762062 -0.580087 0.287682
-vn 0.440580 -0.890619 -0.112635
-vn 0.829370 -0.508463 0.231538
-vn 0.829370 -0.508463 0.231538
-vn 0.440580 -0.890619 -0.112635
-vn 0.547229 -0.823054 -0.152061
-vn 0.762062 -0.580087 0.287682
-vn 0.829370 -0.508463 0.231538
-vn 0.817308 0.373606 0.438665
-vn 0.817308 0.373606 0.438665
-vn 0.829370 -0.508463 0.231538
-vn 0.482375 0.684024 0.547198
-vn 0.822162 0.061563 0.565915
-vn 0.980730 -0.192660 -0.032425
-vn 0.722072 0.167012 0.671356
-vn 0.722072 0.167012 0.671356
-vn 0.980730 -0.192660 -0.032425
-vn 0.968206 -0.249820 0.012937
-vn 0.652378 0.102382 0.750946
-vn 0.817308 0.373606 0.438665
-vn 0.926853 0.296065 0.230845
-vn 0.849402 0.514429 0.117811
-vn 0.817308 0.373606 0.438665
-vn 0.044560 0.961925 0.269656
-vn 0.482375 0.684024 0.547198
-vn 0.066628 0.586188 0.807431
-vn -0.454056 0.816322 0.357003
-vn -0.454056 0.816322 0.357003
-vn 0.066628 0.586188 0.807431
-vn -0.741744 0.469145 0.479291
-vn 0.066628 0.586188 0.807431
-vn -0.074275 0.267465 0.960701
-vn -0.741744 0.469145 0.479291
-vn -0.741744 0.469145 0.479291
-vn -0.074275 0.267465 0.960701
-vn -0.800068 0.182433 0.571498
-vn 0.818615 -0.123715 0.560860
-vn -0.577310 -0.607635 0.545429
-vn 0.172799 -0.451525 0.875366
-vn 0.172799 -0.451525 0.875366
-vn -0.577310 -0.607635 0.545429
-vn -0.757302 -0.341398 0.556724
-vn 0.497236 -0.822134 0.277223
-vn 0.429055 -0.842434 0.325909
-vn 0.489758 -0.824720 0.282797
-vn 0.489758 -0.824720 0.282797
-vn 0.429055 -0.842434 0.325909
-vn 0.413625 -0.846061 0.336297
-vn 0.172799 -0.451525 0.875366
-vn -0.757302 -0.341398 0.556724
-vn -0.096717 0.033816 0.994737
-vn -0.096717 0.033816 0.994737
-vn -0.757302 -0.341398 0.556724
-vn -0.846383 -0.041168 0.530981
-vn 0.817308 0.373606 0.438665
-vn 0.482375 0.684024 0.547198
-vn 0.044560 0.961925 0.269656
-vn 0.044560 0.961925 0.269656
-vn 0.482375 0.684024 0.547198
-vn -0.454056 0.816322 0.357003
-vn 0.722072 0.167012 0.671356
-vn 0.665715 0.458373 0.588828
-vn 0.827008 0.305512 0.471932
-vn 0.665715 0.458373 0.588828
-vn 0.818615 -0.123715 0.560860
-vn 0.887379 0.408080 0.214547
-vn 0.818615 -0.123715 0.560860
-vn 0.665715 0.458373 0.588828
-vn 0.722072 0.167012 0.671356
-vn 0.822162 0.061563 0.565915
-vn 0.687158 0.108164 0.718411
-vn 0.807536 0.080137 0.584349
-vn 0.807536 0.080137 0.584349
-vn 0.687158 0.108164 0.718411
-vn 0.643614 0.102220 0.758493
-vn 0.980730 -0.192660 -0.032425
-vn 0.822162 0.061563 0.565915
-vn 0.992109 -0.110931 -0.058437
-vn 0.992109 -0.110931 -0.058437
-vn 0.822162 0.061563 0.565915
-vn 0.807536 0.080137 0.584349
-vn 0.643794 0.051604 0.763457
-vn 0.645109 -0.423749 0.635823
-vn 0.652378 0.102382 0.750946
-vn 0.762062 -0.580087 0.287682
-vn 0.645109 -0.423749 0.635823
-vn 0.693869 -0.717639 -0.059504
-vn 0.693869 -0.717639 -0.059504
-vn 0.645109 -0.423749 0.635823
-vn 0.734614 -0.292666 0.612119
-vn 0.688953 -0.713776 -0.125968
-vn 0.693869 -0.717639 -0.059504
-vn 0.936547 -0.324609 -0.132316
-vn 0.936547 -0.324609 -0.132316
-vn 0.693869 -0.717639 -0.059504
-vn 0.951661 -0.299535 -0.067968
-vn 0.695502 0.699075 -0.166048
-vn 0.641577 0.697453 -0.319279
-vn 0.737048 0.630837 -0.242495
-vn 0.576935 0.677233 -0.456619
-vn 0.657376 0.599430 -0.456663
-vn 0.641577 0.697453 -0.319279
-vn 0.641577 0.697453 -0.319279
-vn 0.657376 0.599430 -0.456663
-vn 0.737048 0.630837 -0.242495
-vn 0.445043 0.671109 -0.592916
-vn 0.522000 0.565707 -0.638350
-vn 0.576935 0.677233 -0.456619
-vn 0.576935 0.677233 -0.456619
-vn 0.522000 0.565707 -0.638350
-vn 0.657376 0.599430 -0.456663
-vn 0.445043 0.671109 -0.592916
-vn 0.311586 0.626785 -0.714181
-vn 0.522000 0.565707 -0.638350
-vn 0.522000 0.565707 -0.638350
-vn 0.311586 0.626785 -0.714181
-vn 0.366912 0.544933 -0.753938
-vn 0.167735 0.583693 -0.794460
-vn 0.000000 0.578067 -0.815989
-vn 0.182275 0.548030 -0.816357
-vn 0.182275 0.548030 -0.816357
-vn 0.000000 0.578067 -0.815989
-vn 0.000000 0.566147 -0.824304
-vn 0.522554 0.775614 -0.354063
-vn 0.531461 0.826347 -0.186276
-vn 0.657376 0.599430 -0.456663
-vn 0.657376 0.599430 -0.456663
-vn 0.531461 0.826347 -0.186276
-vn 0.737048 0.630837 -0.242495
-vn 0.124090 0.987698 -0.095156
-vn 0.155681 0.954668 -0.253718
-vn 0.000000 0.996295 -0.085997
-vn 0.000000 0.996295 -0.085997
-vn 0.155681 0.954668 -0.253718
-vn 0.000000 0.968551 -0.248813
-vn 0.155681 0.954668 -0.253718
-vn 0.174351 0.814871 -0.552800
-vn 0.000000 0.968551 -0.248813
-vn 0.000000 0.968551 -0.248813
-vn 0.174351 0.814871 -0.552800
-vn -0.000000 0.828372 -0.560179
-vn 0.370339 0.773014 -0.515071
-vn 0.522554 0.775614 -0.354063
-vn 0.522000 0.565707 -0.638350
-vn 0.522000 0.565707 -0.638350
-vn 0.522554 0.775614 -0.354063
-vn 0.657376 0.599430 -0.456663
-vn 0.366912 0.544933 -0.753938
-vn 0.370339 0.773014 -0.515071
-vn 0.522000 0.565707 -0.638350
-vn 0.000000 0.566147 -0.824304
-vn -0.000000 0.828372 -0.560179
-vn 0.182275 0.548030 -0.816357
-vn 0.182275 0.548030 -0.816357
-vn -0.000000 0.828372 -0.560179
-vn 0.174351 0.814871 -0.552800
-vn 0.370339 0.773014 -0.515071
-vn 0.283844 0.920677 -0.267929
-vn 0.522554 0.775614 -0.354063
-vn 0.283844 0.920677 -0.267929
-vn 0.289060 0.948825 -0.127180
-vn 0.522554 0.775614 -0.354063
-vn 0.522554 0.775614 -0.354063
-vn 0.289060 0.948825 -0.127180
-vn 0.531461 0.826347 -0.186276
-vn 0.811511 0.582008 0.052118
-vn 0.564449 0.824801 0.033177
-vn 0.813126 0.562843 0.148437
-vn 0.813126 0.562843 0.148437
-vn 0.564449 0.824801 0.033177
-vn 0.586343 0.801355 0.118456
-vn 0.107263 0.993482 0.038571
-vn -0.000000 0.999113 0.042110
-vn 0.101507 0.989456 0.103309
-vn 0.101507 0.989456 0.103309
-vn -0.000000 0.999113 0.042110
-vn -0.000000 0.994745 0.102388
-vn 0.564449 0.824801 0.033177
-vn 0.285655 0.957858 0.030146
-vn 0.586343 0.801355 0.118456
-vn 0.586343 0.801355 0.118456
-vn 0.285655 0.957858 0.030146
-vn 0.271656 0.956444 0.106859
-vn 0.675523 0.489859 0.551096
-vn 0.790476 0.510996 0.337684
-vn 0.504243 0.754679 0.419760
-vn 0.504243 0.754679 0.419760
-vn 0.790476 0.510996 0.337684
-vn 0.566436 0.773715 0.283751
-vn 0.306688 0.839558 0.448424
-vn 0.395709 0.594759 0.699769
-vn 0.504243 0.754679 0.419760
-vn 0.504243 0.754679 0.419760
-vn 0.395709 0.594759 0.699769
-vn 0.675523 0.489859 0.551096
-vn 0.000000 0.644588 0.764530
-vn 0.172841 0.641260 0.747604
-vn -0.000000 0.890696 0.454600
-vn -0.000000 0.890696 0.454600
-vn 0.172841 0.641260 0.747604
-vn 0.151422 0.882115 0.446031
-vn 0.114776 0.969606 0.216080
-vn -0.000000 0.977356 0.211603
-vn 0.151422 0.882115 0.446031
-vn 0.151422 0.882115 0.446031
-vn -0.000000 0.977356 0.211603
-vn -0.000000 0.890696 0.454600
-vn 0.306688 0.839558 0.448424
-vn 0.504243 0.754679 0.419760
-vn 0.269387 0.933644 0.236092
-vn 0.269387 0.933644 0.236092
-vn 0.504243 0.754679 0.419760
-vn 0.566436 0.773715 0.283751
-vn 0.775527 -0.000898 0.631313
-vn 0.992653 0.114144 0.040135
-vn 0.790440 0.189724 0.582417
-vn 0.879022 -0.245419 0.408766
-vn 0.992653 0.114144 0.040135
-vn 0.775527 -0.000898 0.631313
-vn 0.964631 0.193831 0.178653
-vn 0.992653 0.114144 0.040135
-vn 0.879022 -0.245419 0.408766
-vn 0.992653 0.114144 0.040135
-vn 0.964631 0.193831 0.178653
-vn 0.965976 0.251500 0.060315
-vn 0.787499 0.326946 0.522448
-vn 0.998468 0.034872 0.042952
-vn 0.827008 0.305512 0.471932
-vn 0.827008 0.305512 0.471932
-vn 0.998468 0.034872 0.042952
-vn 0.731349 0.176702 0.658715
-vn 0.941576 0.289157 0.172692
-vn 0.987901 0.136372 0.073847
-vn 0.965976 0.251500 0.060315
-vn 0.965976 0.251500 0.060315
-vn 0.987901 0.136372 0.073847
-vn 0.992653 0.114144 0.040135
-vn 0.965976 0.251500 0.060315
-vn 0.905940 0.384539 0.177207
-vn 0.941576 0.289157 0.172692
-vn 0.921473 0.383876 0.059379
-vn 0.905940 0.384539 0.177207
-vn 0.965976 0.251500 0.060315
-vn 0.730356 0.204967 0.651589
-vn 0.877960 0.234283 0.417490
-vn 0.736229 0.256875 0.626085
-vn 0.736229 0.256875 0.626085
-vn 0.877960 0.234283 0.417490
-vn 0.859273 0.317420 0.401117
-vn 0.730356 0.204967 0.651589
-vn 0.736229 0.256875 0.626085
-vn 0.478164 0.165313 0.862572
-vn 0.478164 0.165313 0.862572
-vn 0.736229 0.256875 0.626085
-vn 0.464356 0.290440 0.836671
-vn -0.000000 0.342544 0.939502
-vn 0.000000 0.200670 0.979659
-vn 0.190440 0.332540 0.923661
-vn 0.190440 0.332540 0.923661
-vn 0.000000 0.200670 0.979659
-vn 0.189718 0.191129 0.963056
-vn 0.811511 0.582008 0.052118
-vn 0.813126 0.562843 0.148437
-vn 0.921473 0.383876 0.059379
-vn 0.921473 0.383876 0.059379
-vn 0.813126 0.562843 0.148437
-vn 0.905940 0.384539 0.177207
-vn 0.859273 0.317420 0.401117
-vn 0.790476 0.510996 0.337684
-vn 0.736229 0.256875 0.626085
-vn 0.736229 0.256875 0.626085
-vn 0.790476 0.510996 0.337684
-vn 0.675523 0.489859 0.551096
-vn 0.395709 0.594759 0.699769
-vn 0.464356 0.290440 0.836671
-vn 0.675523 0.489859 0.551096
-vn 0.675523 0.489859 0.551096
-vn 0.464356 0.290440 0.836671
-vn 0.736229 0.256875 0.626085
-vn 0.190440 0.332540 0.923661
-vn 0.172841 0.641260 0.747604
-vn -0.000000 0.342544 0.939502
-vn -0.000000 0.342544 0.939502
-vn 0.172841 0.641260 0.747604
-vn 0.000000 0.644588 0.764530
-vn 0.113784 0.993394 -0.014901
-vn -0.000000 0.999950 -0.010010
-vn 0.107263 0.993482 0.038571
-vn 0.107263 0.993482 0.038571
-vn -0.000000 0.999950 -0.010010
-vn -0.000000 0.999113 0.042110
-vn 0.285655 0.957858 0.030146
-vn 0.564449 0.824801 0.033177
-vn 0.293378 0.955452 -0.032274
-vn 0.293378 0.955452 -0.032274
-vn 0.564449 0.824801 0.033177
-vn 0.558464 0.827906 -0.051870
-vn 0.558464 0.827906 -0.051870
-vn 0.564449 0.824801 0.033177
-vn 0.795043 0.603545 -0.060330
-vn 0.795043 0.603545 -0.060330
-vn 0.564449 0.824801 0.033177
-vn 0.811511 0.582008 0.052118
-vn 0.872500 0.486439 0.046048
-vn 0.795043 0.603545 -0.060330
-vn 0.921473 0.383876 0.059379
-vn 0.921473 0.383876 0.059379
-vn 0.795043 0.603545 -0.060330
-vn 0.811511 0.582008 0.052118
-vn 0.910702 0.410936 -0.041879
-vn 0.887379 0.408080 0.214547
-vn 0.775796 0.611274 -0.156478
-vn 0.665715 0.458373 0.588828
-vn 0.910702 0.410936 -0.041879
-vn 0.663248 0.596004 0.452638
-vn 0.795043 0.603545 -0.060330
-vn 0.737048 0.630837 -0.242495
-vn 0.558464 0.827906 -0.051870
-vn 0.558464 0.827906 -0.051870
-vn 0.737048 0.630837 -0.242495
-vn 0.531461 0.826347 -0.186276
-vn 0.558464 0.827906 -0.051870
-vn 0.531461 0.826347 -0.186276
-vn 0.293378 0.955452 -0.032274
-vn 0.293378 0.955452 -0.032274
-vn 0.531461 0.826347 -0.186276
-vn 0.289060 0.948825 -0.127180
-vn 0.000000 0.996295 -0.085997
-vn -0.000000 0.999950 -0.010010
-vn 0.124090 0.987698 -0.095156
-vn 0.124090 0.987698 -0.095156
-vn -0.000000 0.999950 -0.010010
-vn 0.113784 0.993394 -0.014901
-vn 0.895262 0.186285 0.404727
-vn 0.883142 0.315792 0.346895
-vn 0.775527 -0.000898 0.631313
-vn 0.775527 -0.000898 0.631313
-vn 0.883142 0.315792 0.346895
-vn 0.879022 -0.245419 0.408766
-vn 0.964631 0.193831 0.178653
-vn 0.883142 0.315792 0.346895
-vn 0.872500 0.486439 0.046048
-vn 0.737048 0.630837 -0.242495
-vn 0.795043 0.603545 -0.060330
-vn 0.695502 0.699075 -0.166048
-vn 0.695502 0.699075 -0.166048
-vn 0.795043 0.603545 -0.060330
-vn 0.872500 0.486439 0.046048
-vn 0.762062 -0.580087 0.287682
-vn 0.693869 -0.717639 -0.059504
-vn 0.440580 -0.890619 -0.112635
-vn 0.440580 -0.890619 -0.112635
-vn 0.693869 -0.717639 -0.059504
-vn 0.688953 -0.713776 -0.125968
-vn 0.643614 0.102220 0.758493
-vn 0.869836 -0.056841 0.490055
-vn 0.643794 0.051604 0.763457
-vn 0.643794 0.051604 0.763457
-vn 0.869836 -0.056841 0.490055
-vn 0.833627 -0.033590 0.551305
-vn 0.807536 0.080137 0.584349
-vn 0.643614 0.102220 0.758493
-vn 0.652378 0.102382 0.750946
-vn 0.652378 0.102382 0.750946
-vn 0.643614 0.102220 0.758493
-vn 0.643794 0.051604 0.763457
-vn 0.652378 0.102382 0.750946
-vn 0.926853 0.296065 0.230845
-vn 0.807536 0.080137 0.584349
-vn 0.807536 0.080137 0.584349
-vn 0.849402 0.514429 0.117811
-vn 0.992109 -0.110931 -0.058437
-vn 0.998468 0.034872 0.042952
-vn 0.787499 0.326946 0.522448
-vn 0.992653 0.114144 0.040135
-vn 0.000000 0.077721 -0.996975
-vn 0.000000 0.152101 -0.988365
-vn 0.103853 0.070740 -0.992074
-vn 0.103853 0.070740 -0.992074
-vn 0.000000 0.152101 -0.988365
-vn 0.170294 0.181676 -0.968501
-vn 0.402909 -0.008557 -0.915200
-vn 0.394310 0.036711 -0.918244
-vn 0.339259 0.010099 -0.940639
-vn 0.339259 0.010099 -0.940639
-vn 0.394310 0.036711 -0.918244
-vn 0.341576 0.029789 -0.939382
-vn 0.402909 -0.008557 -0.915200
-vn 0.452658 0.019859 -0.891463
-vn 0.394310 0.036711 -0.918244
-vn 0.394310 0.036711 -0.918244
-vn 0.452658 0.019859 -0.891463
-vn 0.426493 0.056983 -0.902694
-vn 0.911055 0.107518 -0.398019
-vn 0.783256 0.126122 -0.608771
-vn 0.891648 0.172871 -0.418426
-vn 0.891648 0.172871 -0.418426
-vn 0.783256 0.126122 -0.608771
-vn 0.767576 0.190717 -0.611926
-vn 0.978524 0.071526 -0.193328
-vn 0.911055 0.107518 -0.398019
-vn 0.963287 0.140801 -0.228590
-vn 0.963287 0.140801 -0.228590
-vn 0.911055 0.107518 -0.398019
-vn 0.891648 0.172871 -0.418426
-vn 0.784323 -0.020364 0.620019
-vn 0.804548 -0.044303 0.592232
-vn 0.791556 -0.097603 0.603252
-vn 0.643794 0.051604 0.763457
-vn 0.784323 -0.020364 0.620019
-vn 0.865823 -0.075119 0.494680
-vn 0.865823 -0.075119 0.494680
-vn 0.784323 -0.020364 0.620019
-vn 0.894455 -0.085918 0.438826
-vn 0.894455 -0.085918 0.438826
-vn 0.987210 -0.158821 -0.013868
-vn 0.865823 -0.075119 0.494680
-vn 0.865823 -0.075119 0.494680
-vn 0.987210 -0.158821 -0.013868
-vn 0.951661 -0.299535 -0.067968
-vn 0.936547 -0.324609 -0.132316
-vn 0.951661 -0.299535 -0.067968
-vn 0.986121 -0.113166 -0.121487
-vn 0.986121 -0.113166 -0.121487
-vn 0.951661 -0.299535 -0.067968
-vn 0.987210 -0.158821 -0.013868
-vn 0.911130 -0.251283 -0.326649
-vn 0.936547 -0.324609 -0.132316
-vn 0.944819 -0.103296 -0.310882
-vn 0.944819 -0.103296 -0.310882
-vn 0.936547 -0.324609 -0.132316
-vn 0.986121 -0.113166 -0.121487
-vn 0.776501 -0.261174 -0.573441
-vn 0.911130 -0.251283 -0.326649
-vn 0.817637 -0.091284 -0.568451
-vn 0.817637 -0.091284 -0.568451
-vn 0.911130 -0.251283 -0.326649
-vn 0.944819 -0.103296 -0.310882
-vn 0.582436 -0.291964 -0.758634
-vn 0.776501 -0.261174 -0.573441
-vn 0.615939 -0.083779 -0.783326
-vn 0.615939 -0.083779 -0.783326
-vn 0.776501 -0.261174 -0.573441
-vn 0.817637 -0.091284 -0.568451
-vn 0.203644 -0.349140 -0.914675
-vn 0.389637 -0.317883 -0.864369
-vn 0.205817 -0.136223 -0.969063
-vn 0.205817 -0.136223 -0.969063
-vn 0.389637 -0.317883 -0.864369
-vn 0.394315 -0.101461 -0.913357
-vn 0.000000 -0.346225 -0.938152
-vn 0.203644 -0.349140 -0.914675
-vn 0.000000 -0.144658 -0.989482
-vn 0.000000 -0.144658 -0.989482
-vn 0.203644 -0.349140 -0.914675
-vn 0.205817 -0.136223 -0.969063
-vn 0.000000 -0.139213 -0.990262
-vn -0.000000 0.003909 -0.999992
-vn 0.143223 -0.147346 -0.978661
-vn 0.143223 -0.147346 -0.978661
-vn -0.000000 0.003909 -0.999992
-vn 0.141923 0.004781 -0.989866
-vn 0.338040 -0.168109 -0.925996
-vn 0.143223 -0.147346 -0.978661
-vn 0.341784 0.005125 -0.939765
-vn 0.341784 0.005125 -0.939765
-vn 0.143223 -0.147346 -0.978661
-vn 0.141923 0.004781 -0.989866
-vn 0.707443 -0.172771 -0.685328
-vn 0.530815 -0.169218 -0.830422
-vn 0.732050 0.035948 -0.680302
-vn 0.732050 0.035948 -0.680302
-vn 0.530815 -0.169218 -0.830422
-vn 0.549889 0.016593 -0.835073
-vn 0.861660 -0.163786 -0.480330
-vn 0.707443 -0.172771 -0.685328
-vn 0.879747 0.084713 -0.467833
-vn 0.879747 0.084713 -0.467833
-vn 0.707443 -0.172771 -0.685328
-vn 0.732050 0.035948 -0.680302
-vn 0.957770 -0.134386 -0.254199
-vn 0.861660 -0.163786 -0.480330
-vn 0.963144 0.096949 -0.250908
-vn 0.963144 0.096949 -0.250908
-vn 0.861660 -0.163786 -0.480330
-vn 0.879747 0.084713 -0.467833
-vn 0.950169 -0.026411 0.310615
-vn 0.957770 -0.134386 -0.254199
-vn 0.952537 0.082086 0.293147
-vn 0.952537 0.082086 0.293147
-vn 0.957770 -0.134386 -0.254199
-vn 0.963144 0.096949 -0.250908
-vn 0.952537 0.082086 0.293147
-vn -0.096717 0.033816 0.994737
-vn 0.950169 -0.026411 0.310615
-vn 0.950169 -0.026411 0.310615
-vn -0.096717 0.033816 0.994737
-vn -0.074275 0.267465 0.960701
-vn -0.074275 0.267465 0.960701
-vn -0.096717 0.033816 0.994737
-vn -0.800068 0.182433 0.571498
-vn -0.800068 0.182433 0.571498
-vn -0.096717 0.033816 0.994737
-vn -0.846383 -0.041168 0.530981
-vn 0.869836 -0.056841 0.490055
-vn 0.643614 0.102220 0.758493
-vn 0.905834 -0.117974 0.406875
-vn 0.905834 -0.117974 0.406875
-vn 0.643614 0.102220 0.758493
-vn 0.687158 0.108164 0.718411
-vn 0.965976 0.251500 0.060315
-vn 0.964631 0.193831 0.178653
-vn 0.921473 0.383876 0.059379
-vn 0.921473 0.383876 0.059379
-vn 0.964631 0.193831 0.178653
-vn 0.872500 0.486439 0.046048
-vn 0.614486 0.229061 -0.754942
-vn 0.767576 0.190717 -0.611926
-vn 0.698707 0.118060 -0.705599
-vn 0.698707 0.118060 -0.705599
-vn 0.767576 0.190717 -0.611926
-vn 0.783256 0.126122 -0.608771
-vn 0.727146 0.408695 -0.551567
-vn 0.561493 0.486609 -0.669281
-vn 0.783256 0.126122 -0.608771
-vn 0.783256 0.126122 -0.608771
-vn 0.561493 0.486609 -0.669281
-vn 0.698707 0.118060 -0.705599
-vn 0.670026 0.523745 -0.526077
-vn 0.515036 0.508272 -0.690216
-vn 0.727146 0.408695 -0.551567
-vn 0.727146 0.408695 -0.551567
-vn 0.515036 0.508272 -0.690216
-vn 0.561493 0.486609 -0.669281
-vn 0.730079 0.280919 -0.622953
-vn 0.556365 0.235871 -0.796758
-vn 0.670026 0.523745 -0.526077
-vn 0.670026 0.523745 -0.526077
-vn 0.556365 0.235871 -0.796758
-vn 0.515036 0.508272 -0.690216
-vn 0.732050 0.035948 -0.680302
-vn 0.549889 0.016593 -0.835073
-vn 0.730079 0.280919 -0.622953
-vn 0.730079 0.280919 -0.622953
-vn 0.549889 0.016593 -0.835073
-vn 0.556365 0.235871 -0.796758
-vn 0.137038 0.934417 -0.328765
-vn 0.229349 0.870656 -0.435152
-vn 0.141598 0.929887 -0.339500
-vn 0.141598 0.929887 -0.339500
-vn 0.229349 0.870656 -0.435152
-vn 0.233757 0.866197 -0.441656
-vn 0.151357 0.841808 -0.518122
-vn 0.149833 0.848035 -0.508318
-vn 0.141598 0.929887 -0.339500
-vn 0.141598 0.929887 -0.339500
-vn 0.149833 0.848035 -0.508318
-vn 0.137038 0.934417 -0.328765
-vn 0.783017 -0.101303 -0.613695
-vn 0.819661 -0.094117 -0.565065
-vn 0.787275 -0.100989 -0.608276
-vn 0.787275 -0.100989 -0.608276
-vn 0.819661 -0.094117 -0.565065
-vn 0.824120 -0.095081 -0.558377
-vn -0.219733 -0.075510 -0.972633
-vn -0.207125 -0.070360 -0.975781
-vn -0.113867 -0.056451 -0.991891
-vn -0.113867 -0.056451 -0.991891
-vn -0.207125 -0.070360 -0.975781
-vn -0.100825 -0.056839 -0.993279
-vn 0.796721 -0.072073 -0.600035
-vn 0.799694 -0.074176 -0.595808
-vn 0.819661 -0.094117 -0.565065
-vn 0.819661 -0.094117 -0.565065
-vn 0.799694 -0.074176 -0.595808
-vn 0.824120 -0.095081 -0.558377
-vn 0.262423 -0.608163 -0.749181
-vn 0.326439 -0.587395 -0.740544
-vn 0.262466 -0.605799 -0.751078
-vn 0.262466 -0.605799 -0.751078
-vn 0.326439 -0.587395 -0.740544
-vn 0.325064 -0.583268 -0.744400
-vn 0.325064 -0.583268 -0.744400
-vn 0.326439 -0.587395 -0.740544
-vn 0.368755 -0.617809 -0.694501
-vn 0.368755 -0.617809 -0.694501
-vn 0.326439 -0.587395 -0.740544
-vn 0.366732 -0.621124 -0.692613
-vn -0.135651 -0.058713 -0.989016
-vn -0.207125 -0.070360 -0.975781
-vn -0.144397 -0.062565 -0.987540
-vn -0.144397 -0.062565 -0.987540
-vn -0.207125 -0.070360 -0.975781
-vn -0.219733 -0.075510 -0.972633
-vn 0.530815 -0.169218 -0.830422
-vn 0.338040 -0.168109 -0.925996
-vn 0.549889 0.016593 -0.835073
-vn 0.549889 0.016593 -0.835073
-vn 0.338040 -0.168109 -0.925996
-vn 0.341784 0.005125 -0.939765
-vn 0.474424 -0.451462 -0.755715
-vn 0.298918 -0.442208 -0.845636
-vn 0.530815 -0.169218 -0.830422
-vn 0.530815 -0.169218 -0.830422
-vn 0.298918 -0.442208 -0.845636
-vn 0.338040 -0.168109 -0.925996
-vn 0.339986 -0.770658 -0.538977
-vn 0.219380 -0.740034 -0.635784
-vn 0.474424 -0.451462 -0.755715
-vn 0.474424 -0.451462 -0.755715
-vn 0.219380 -0.740034 -0.635784
-vn 0.298918 -0.442208 -0.845636
-vn 0.308118 -0.845792 -0.435546
-vn 0.213971 -0.821557 -0.528451
-vn 0.339986 -0.770658 -0.538977
-vn 0.339986 -0.770658 -0.538977
-vn 0.213971 -0.821557 -0.528451
-vn 0.219380 -0.740034 -0.635784
-vn 0.450135 -0.670894 -0.589305
-vn 0.303200 -0.657246 -0.689998
-vn 0.308118 -0.845792 -0.435546
-vn 0.308118 -0.845792 -0.435546
-vn 0.303200 -0.657246 -0.689998
-vn 0.213971 -0.821557 -0.528451
-vn 0.303200 -0.657246 -0.689998
-vn 0.450135 -0.670894 -0.589305
-vn 0.389637 -0.317883 -0.864369
-vn 0.389637 -0.317883 -0.864369
-vn 0.450135 -0.670894 -0.589305
-vn 0.582436 -0.291964 -0.758634
-vn 0.389637 -0.317883 -0.864369
-vn 0.582436 -0.291964 -0.758634
-vn 0.394315 -0.101461 -0.913357
-vn 0.394315 -0.101461 -0.913357
-vn 0.582436 -0.291964 -0.758634
-vn 0.615939 -0.083779 -0.783326
-vn 0.341784 0.005125 -0.939765
-vn 0.141923 0.004781 -0.989866
-vn 0.340643 0.199708 -0.918738
-vn 0.340643 0.199708 -0.918738
-vn 0.141923 0.004781 -0.989866
-vn 0.141285 0.197838 -0.969999
-vn 0.379772 0.322230 -0.867145
-vn 0.186911 0.318785 -0.929215
-vn 0.297017 0.614079 -0.731223
-vn 0.297017 0.614079 -0.731223
-vn 0.186911 0.318785 -0.929215
-vn 0.160628 0.572026 -0.804354
-vn 0.297017 0.614079 -0.731223
-vn 0.160628 0.572026 -0.804354
-vn 0.311586 0.626785 -0.714181
-vn 0.311586 0.626785 -0.714181
-vn 0.160628 0.572026 -0.804354
-vn 0.167735 0.583693 -0.794460
-vn 0.311586 0.626785 -0.714181
-vn 0.167735 0.583693 -0.794460
-vn 0.366912 0.544933 -0.753938
-vn 0.366912 0.544933 -0.753938
-vn 0.167735 0.583693 -0.794460
-vn 0.182275 0.548030 -0.816357
-vn 0.182275 0.548030 -0.816357
-vn 0.174351 0.814871 -0.552800
-vn 0.366912 0.544933 -0.753938
-vn 0.366912 0.544933 -0.753938
-vn 0.174351 0.814871 -0.552800
-vn 0.370339 0.773014 -0.515071
-vn 0.174351 0.814871 -0.552800
-vn 0.155681 0.954668 -0.253718
-vn 0.370339 0.773014 -0.515071
-vn 0.370339 0.773014 -0.515071
-vn 0.155681 0.954668 -0.253718
-vn 0.283844 0.920677 -0.267929
-vn 0.155681 0.954668 -0.253718
-vn 0.124090 0.987698 -0.095156
-vn 0.283844 0.920677 -0.267929
-vn 0.283844 0.920677 -0.267929
-vn 0.124090 0.987698 -0.095156
-vn 0.289060 0.948825 -0.127180
-vn 0.124090 0.987698 -0.095156
-vn 0.113784 0.993394 -0.014901
-vn 0.289060 0.948825 -0.127180
-vn 0.289060 0.948825 -0.127180
-vn 0.113784 0.993394 -0.014901
-vn 0.293378 0.955452 -0.032274
-vn 0.107263 0.993482 0.038571
-vn 0.285655 0.957858 0.030146
-vn 0.113784 0.993394 -0.014901
-vn 0.113784 0.993394 -0.014901
-vn 0.285655 0.957858 0.030146
-vn 0.293378 0.955452 -0.032274
-vn 0.285655 0.957858 0.030146
-vn 0.107263 0.993482 0.038571
-vn 0.271656 0.956444 0.106859
-vn 0.271656 0.956444 0.106859
-vn 0.107263 0.993482 0.038571
-vn 0.101507 0.989456 0.103309
-vn 0.151422 0.882115 0.446031
-vn 0.306688 0.839558 0.448424
-vn 0.114776 0.969606 0.216080
-vn 0.114776 0.969606 0.216080
-vn 0.306688 0.839558 0.448424
-vn 0.269387 0.933644 0.236092
-vn 0.172841 0.641260 0.747604
-vn 0.395709 0.594759 0.699769
-vn 0.151422 0.882115 0.446031
-vn 0.151422 0.882115 0.446031
-vn 0.395709 0.594759 0.699769
-vn 0.306688 0.839558 0.448424
-vn 0.172841 0.641260 0.747604
-vn 0.190440 0.332540 0.923661
-vn 0.395709 0.594759 0.699769
-vn 0.395709 0.594759 0.699769
-vn 0.190440 0.332540 0.923661
-vn 0.464356 0.290440 0.836671
-vn 0.478164 0.165313 0.862572
-vn 0.464356 0.290440 0.836671
-vn 0.189718 0.191129 0.963056
-vn 0.189718 0.191129 0.963056
-vn 0.464356 0.290440 0.836671
-vn 0.190440 0.332540 0.923661
-vn 0.186911 0.318785 -0.929215
-vn 0.379772 0.322230 -0.867145
-vn 0.170294 0.181676 -0.968501
-vn 0.170294 0.181676 -0.968501
-vn 0.379772 0.322230 -0.867145
-vn 0.409926 0.237447 -0.880670
-vn 0.000000 0.303281 -0.952901
-vn 0.186911 0.318785 -0.929215
-vn 0.000000 0.152101 -0.988365
-vn 0.000000 0.152101 -0.988365
-vn 0.186911 0.318785 -0.929215
-vn 0.170294 0.181676 -0.968501
-vn 0.379772 0.322230 -0.867145
-vn 0.565694 0.317444 -0.761065
-vn 0.409926 0.237447 -0.880670
-vn 0.409926 0.237447 -0.880670
-vn 0.565694 0.317444 -0.761065
-vn 0.614486 0.229061 -0.754942
-vn 0.767576 0.190717 -0.611926
-vn 0.614486 0.229061 -0.754942
-vn 0.708098 0.345784 -0.615654
-vn 0.708098 0.345784 -0.615654
-vn 0.614486 0.229061 -0.754942
-vn 0.565694 0.317444 -0.761065
-vn 0.978524 0.071526 -0.193328
-vn 0.963287 0.140801 -0.228590
-vn 0.865780 0.298022 0.402004
-vn 0.963287 0.140801 -0.228590
-vn 0.887417 0.192326 0.418929
-vn 0.865780 0.298022 0.402004
-vn 0.787499 0.326946 0.522448
-vn 0.865780 0.298022 0.402004
-vn 0.790440 0.189724 0.582417
-vn 0.790440 0.189724 0.582417
-vn 0.865780 0.298022 0.402004
-vn 0.887417 0.192326 0.418929
-vn 0.790440 0.189724 0.582417
-vn 0.992653 0.114144 0.040135
-vn 0.787499 0.326946 0.522448
-vn 0.804548 -0.044303 0.592232
-vn 0.833627 -0.033590 0.551305
-vn 0.796174 -0.034614 0.604077
-vn 0.865823 -0.075119 0.494680
-vn 0.734614 -0.292666 0.612119
-vn 0.643794 0.051604 0.763457
-vn 0.998468 0.034872 0.042952
-vn 0.992653 0.114144 0.040135
-vn 0.998297 0.019801 0.054872
-vn 0.998297 0.019801 0.054872
-vn 0.992653 0.114144 0.040135
-vn 0.987901 0.136372 0.073847
-vn 0.731349 0.176702 0.658715
-vn 0.926994 -0.129511 0.352007
-vn 0.687158 0.108164 0.718411
-vn 0.687158 0.108164 0.718411
-vn 0.926994 -0.129511 0.352007
-vn 0.905834 -0.117974 0.406875
-vn 0.216505 -0.964012 0.154295
-vn 0.344016 -0.936633 0.066114
-vn 0.128723 -0.973951 0.186681
-vn 0.804548 -0.044303 0.592232
-vn 0.796174 -0.034614 0.604077
-vn 0.791053 -0.070536 0.607668
-vn 0.051570 -0.896247 0.440547
-vn 0.055472 -0.996740 -0.058593
-vn 0.035555 -0.976723 0.211536
-vn 0.035555 -0.976723 0.211536
-vn 0.055472 -0.996740 -0.058593
-vn 0.040877 -0.998968 -0.019776
-vn 0.173479 0.168868 0.970252
-vn 0.170701 0.176661 0.969357
-vn 0.103368 0.223513 0.969204
-vn 0.103368 0.223513 0.969204
-vn 0.170701 0.176661 0.969357
-vn 0.097159 0.235044 0.967117
-vn 0.052936 0.216365 0.974876
-vn 0.064598 0.228971 0.971287
-vn 0.097159 0.235044 0.967117
-vn 0.097159 0.235044 0.967117
-vn 0.064598 0.228971 0.971287
-vn 0.103368 0.223513 0.969204
-vn 0.170701 0.176661 0.969357
-vn 0.173479 0.168868 0.970252
-vn 0.168149 0.101726 0.980499
-vn 0.168149 0.101726 0.980499
-vn 0.173479 0.168868 0.970252
-vn 0.164097 0.082307 0.983004
-vn 0.064598 0.228971 0.971287
-vn 0.052936 0.216365 0.974876
-vn 0.028834 -0.044924 0.998574
-vn 0.028834 -0.044924 0.998574
-vn 0.052936 0.216365 0.974876
-vn 0.002361 -0.045708 0.998952
-vn 0.116158 0.033510 0.992665
-vn 0.123951 0.033775 0.991713
-vn 0.164097 0.082307 0.983004
-vn 0.164097 0.082307 0.983004
-vn 0.123951 0.033775 0.991713
-vn 0.168149 0.101726 0.980499
-vn 0.082393 -0.961065 0.263752
-vn 0.216505 -0.964012 0.154295
-vn 0.031297 -0.968343 0.247652
-vn 0.031297 -0.968343 0.247652
-vn 0.216505 -0.964012 0.154295
-vn 0.128723 -0.973951 0.186681
-vn 0.035555 -0.976723 0.211536
-vn 0.069238 -0.603543 0.794318
-vn 0.051570 -0.896247 0.440547
-vn 0.051570 -0.896247 0.440547
-vn 0.069238 -0.603543 0.794318
-vn 0.059046 -0.495915 0.866361
-vn -0.073850 -0.984960 -0.156207
-vn -0.011693 -0.985385 -0.169942
-vn -0.066127 -0.984212 -0.164178
-vn -0.066127 -0.984212 -0.164178
-vn -0.011693 -0.985385 -0.169942
-vn -0.001533 -0.984680 -0.174366
-vn -0.093677 -0.987412 -0.127443
-vn -0.073850 -0.984960 -0.156207
-vn -0.091072 -0.986479 -0.136255
-vn -0.091072 -0.986479 -0.136255
-vn -0.073850 -0.984960 -0.156207
-vn -0.066127 -0.984212 -0.164178
-vn 0.000000 -0.998857 -0.047789
-vn -0.055000 -0.996369 -0.064993
-vn -0.000000 -0.998702 -0.050933
-vn -0.000000 -0.998702 -0.050933
-vn -0.055000 -0.996369 -0.064993
-vn -0.055740 -0.996133 -0.067916
-vn -0.011693 -0.985385 -0.169942
-vn 0.049456 -0.988223 -0.144810
-vn -0.001533 -0.984680 -0.174366
-vn -0.001533 -0.984680 -0.174366
-vn 0.049456 -0.988223 -0.144810
-vn 0.055033 -0.987514 -0.147607
-vn 0.049456 -0.988223 -0.144810
-vn 0.071620 -0.991106 -0.112155
-vn 0.055033 -0.987514 -0.147607
-vn 0.055033 -0.987514 -0.147607
-vn 0.071620 -0.991106 -0.112155
-vn 0.073058 -0.990988 -0.112275
-vn 0.073058 -0.990988 -0.112275
-vn 0.071620 -0.991106 -0.112155
-vn 0.055472 -0.996740 -0.058593
-vn 0.055472 -0.996740 -0.058593
-vn 0.071620 -0.991106 -0.112155
-vn 0.060234 -0.996137 -0.063893
-vn 0.055472 -0.996740 -0.058593
-vn 0.060234 -0.996137 -0.063893
-vn 0.040877 -0.998968 -0.019776
-vn -0.085404 -0.992811 -0.083858
-vn -0.093677 -0.987412 -0.127443
-vn -0.085338 -0.992316 -0.089595
-vn -0.085338 -0.992316 -0.089595
-vn -0.093677 -0.987412 -0.127443
-vn -0.091072 -0.986479 -0.136255
-vn -0.055000 -0.996369 -0.064993
-vn -0.085404 -0.992811 -0.083858
-vn -0.055740 -0.996133 -0.067916
-vn -0.055740 -0.996133 -0.067916
-vn -0.085404 -0.992811 -0.083858
-vn -0.085338 -0.992316 -0.089595
-vn 0.905940 0.384539 0.177207
-vn 0.859273 0.317420 0.401117
-vn 0.941576 0.289157 0.172692
-vn 0.941576 0.289157 0.172692
-vn 0.859273 0.317420 0.401117
-vn 0.877960 0.234283 0.417490
-vn 0.101507 0.989456 0.103309
-vn -0.000000 0.994745 0.102388
-vn 0.114776 0.969606 0.216080
-vn 0.114776 0.969606 0.216080
-vn -0.000000 0.994745 0.102388
-vn -0.000000 0.977356 0.211603
-vn 0.271656 0.956444 0.106859
-vn 0.101507 0.989456 0.103309
-vn 0.269387 0.933644 0.236092
-vn 0.269387 0.933644 0.236092
-vn 0.101507 0.989456 0.103309
-vn 0.114776 0.969606 0.216080
-vn 0.586343 0.801355 0.118456
-vn 0.271656 0.956444 0.106859
-vn 0.566436 0.773715 0.283751
-vn 0.566436 0.773715 0.283751
-vn 0.271656 0.956444 0.106859
-vn 0.269387 0.933644 0.236092
-vn 0.813126 0.562843 0.148437
-vn 0.586343 0.801355 0.118456
-vn 0.790476 0.510996 0.337684
-vn 0.790476 0.510996 0.337684
-vn 0.586343 0.801355 0.118456
-vn 0.566436 0.773715 0.283751
-vn 0.813126 0.562843 0.148437
-vn 0.790476 0.510996 0.337684
-vn 0.905940 0.384539 0.177207
-vn 0.905940 0.384539 0.177207
-vn 0.790476 0.510996 0.337684
-vn 0.859273 0.317420 0.401117
-vn 0.796705 -0.095826 0.596723
-vn 0.791556 -0.097603 0.603252
-vn 0.804548 -0.044303 0.592232
-vn 0.069238 -0.603543 0.794318
-vn 0.028834 -0.044924 0.998574
-vn 0.059046 -0.495915 0.866361
-vn 0.059046 -0.495915 0.866361
-vn 0.028834 -0.044924 0.998574
-vn 0.002361 -0.045708 0.998952
-vn 0.796705 -0.095826 0.596723
-vn 0.804548 -0.044303 0.592232
-vn 0.791053 -0.070536 0.607668
-vn 0.068959 0.997617 0.002300
-vn 0.218354 0.974305 0.055235
-vn 0.084065 0.996201 0.022715
-vn 0.084065 0.996201 0.022715
-vn 0.218354 0.974305 0.055235
-vn 0.252470 0.964683 0.075137
-vn 0.014728 0.999791 -0.014175
-vn 0.068959 0.997617 0.002300
-vn 0.018825 0.999773 -0.010023
-vn 0.018825 0.999773 -0.010023
-vn 0.068959 0.997617 0.002300
-vn 0.084065 0.996201 0.022715
-vn 0.015249 0.999853 -0.007842
-vn 0.014728 0.999791 -0.014175
-vn 0.015359 0.999847 -0.008355
-vn 0.015359 0.999847 -0.008355
-vn 0.014728 0.999791 -0.014175
-vn 0.018825 0.999773 -0.010023
-vn 0.007721 0.999968 -0.001961
-vn 0.007912 0.999965 -0.002547
-vn 0.015359 0.999847 -0.008355
-vn 0.015359 0.999847 -0.008355
-vn 0.007912 0.999965 -0.002547
-vn 0.015249 0.999853 -0.007842
-vn 0.000000 1.000000 -0.000000
-vn -0.000000 1.000000 -0.000005
-vn 0.007721 0.999968 -0.001961
-vn 0.007721 0.999968 -0.001961
-vn -0.000000 1.000000 -0.000005
-vn 0.007912 0.999965 -0.002547
-vn 0.110017 0.005351 -0.993915
-vn 0.111445 0.005659 -0.993755
-vn 0.126614 0.038353 -0.991210
-vn 0.126614 0.038353 -0.991210
-vn 0.111445 0.005659 -0.993755
-vn 0.133476 0.042166 -0.990155
-vn 0.126614 0.038353 -0.991210
-vn 0.133476 0.042166 -0.990155
-vn 0.253493 0.077283 -0.964245
-vn 0.253493 0.077283 -0.964245
-vn 0.133476 0.042166 -0.990155
-vn 0.262361 0.077868 -0.961823
-vn 0.340643 0.199708 -0.918738
-vn 0.306784 0.535384 -0.786923
-vn 0.556365 0.235871 -0.796758
-vn 0.556365 0.235871 -0.796758
-vn 0.306784 0.535384 -0.786923
-vn 0.515036 0.508272 -0.690216
-vn 0.141907 0.486043 -0.862337
-vn 0.306784 0.535384 -0.786923
-vn 0.141285 0.197838 -0.969999
-vn 0.141285 0.197838 -0.969999
-vn 0.306784 0.535384 -0.786923
-vn 0.340643 0.199708 -0.918738
-vn -0.888112 0.137352 -0.438624
-vn -0.946841 -0.010033 -0.321544
-vn -0.961150 0.056049 -0.270275
-vn -0.956670 -0.001270 0.291171
-vn -0.963043 0.024640 0.268217
-vn -0.840437 -0.003126 0.541901
-vn -0.840437 -0.003126 0.541901
-vn -0.963043 0.024640 0.268217
-vn -0.857807 0.003552 0.513960
-vn -0.621471 -0.025881 0.783010
-vn -0.840437 -0.003126 0.541901
-vn -0.649274 -0.021358 0.760255
-vn -0.649274 -0.021358 0.760255
-vn -0.840437 -0.003126 0.541901
-vn -0.857807 0.003552 0.513960
-vn -0.223132 -0.032589 0.974243
-vn 0.000000 -0.039132 0.999234
-vn -0.212283 -0.038788 0.976438
-vn -0.212283 -0.038788 0.976438
-vn 0.000000 -0.039132 0.999234
-vn -0.000000 -0.037251 0.999306
-vn -0.963043 0.024640 0.268217
-vn -0.956670 -0.001270 0.291171
-vn -0.996973 0.006708 0.077452
-vn -0.996973 0.006708 0.077452
-vn -0.956670 -0.001270 0.291171
-vn -0.994531 0.006140 0.104260
-vn -0.996973 0.006708 0.077452
-vn -0.999371 0.000763 -0.035441
-vn -0.984573 -0.023021 -0.173451
-vn -0.999371 0.000763 -0.035441
-vn -0.996973 0.006708 0.077452
-vn -0.994531 0.006140 0.104260
-vn -0.928473 0.002886 -0.371389
-vn -0.984573 -0.023021 -0.173451
-vn -0.946841 -0.010033 -0.321544
-vn -0.946841 -0.010033 -0.321544
-vn -0.984573 -0.023021 -0.173451
-vn -0.961150 0.056049 -0.270275
-vn -0.961150 0.056049 -0.270275
-vn -0.984573 -0.023021 -0.173451
-vn -0.999371 0.000763 -0.035441
-vn -0.621471 -0.025881 0.783010
-vn -0.649274 -0.021358 0.760255
-vn -0.405789 -0.043061 0.912952
-vn -0.405789 -0.043061 0.912952
-vn -0.649274 -0.021358 0.760255
-vn -0.427059 -0.024260 0.903898
-vn -0.405789 -0.043061 0.912952
-vn -0.427059 -0.024260 0.903898
-vn -0.212283 -0.038788 0.976438
-vn -0.212283 -0.038788 0.976438
-vn -0.427059 -0.024260 0.903898
-vn -0.223132 -0.032589 0.974243
-vn -0.984573 -0.023021 -0.173451
-vn -0.928473 0.002886 -0.371389
-vn -0.962439 -0.024231 -0.270413
-vn -0.202739 -0.978340 -0.041815
-vn -0.023703 -0.999235 -0.031121
-vn -0.050170 -0.995292 -0.082922
-vn 0.601143 0.119267 0.790191
-vn 0.614054 0.126132 0.779120
-vn 0.603048 0.121629 0.788378
-vn 0.614054 0.126132 0.779120
-vn 0.601143 0.119267 0.790191
-vn 0.601351 0.120282 0.789879
-vn 0.601143 0.119267 0.790191
-vn 0.597652 0.112916 0.793764
-vn 0.601351 0.120282 0.789879
-vn 0.603048 0.121629 0.788378
-vn 0.614054 0.126132 0.779120
-vn 0.599764 0.125022 0.790350
-vn 0.599764 0.125022 0.790350
-vn 0.614054 0.126132 0.779120
-vn 0.635852 0.133040 0.760258
-vn 0.635852 0.133040 0.760258
-vn 0.614054 0.126132 0.779120
-vn 0.687777 0.151464 0.709945
-vn 0.597652 0.112916 0.793764
-vn 0.572388 0.153981 0.805396
-vn 0.601351 0.120282 0.789879
-vn 0.572388 0.153981 0.805396
-vn 0.594374 0.153736 0.789357
-vn 0.601351 0.120282 0.789879
-vn 0.601351 0.120282 0.789879
-vn 0.594374 0.153736 0.789357
-vn 0.668633 0.073281 0.739973
-vn 0.093377 0.001257 -0.995630
-vn 0.094757 0.001026 -0.995500
-vn 0.110017 0.005351 -0.993915
-vn 0.110017 0.005351 -0.993915
-vn 0.094757 0.001026 -0.995500
-vn 0.111445 0.005659 -0.993755
-vn 0.731349 0.176702 0.658715
-vn 0.998468 0.034872 0.042952
-vn 0.997539 -0.014146 0.068676
-vn 0.997539 -0.014146 0.068676
-vn 0.998468 0.034872 0.042952
-vn 0.998297 0.019801 0.054872
-vn -0.757937 0.083145 -0.647008
-vn -0.888112 0.137352 -0.438624
-vn -0.812212 0.128738 -0.568980
-vn -0.812212 0.128738 -0.568980
-vn -0.888112 0.137352 -0.438624
-vn -0.961150 0.056049 -0.270275
-vn -0.743623 0.126560 -0.656511
-vn -0.757937 0.083145 -0.647008
-vn -0.812212 0.128738 -0.568980
-vn -0.743623 0.126560 -0.656511
-vn -0.728687 0.061348 -0.682093
-vn -0.757937 0.083145 -0.647008
-vn -0.765253 0.041319 -0.642403
-vn -0.793371 0.048012 -0.606842
-vn -0.728687 0.061348 -0.682093
-vn -0.728687 0.061348 -0.682093
-vn -0.793371 0.048012 -0.606842
-vn -0.757937 0.083145 -0.647008
-vn -0.793371 0.048012 -0.606842
-vn -0.765253 0.041319 -0.642403
-vn -0.928473 0.002886 -0.371389
-vn 0.784323 -0.020364 0.620019
-vn 0.643794 0.051604 0.763457
-vn 0.804548 -0.044303 0.592232
-vn 0.643794 0.051604 0.763457
-vn 0.833627 -0.033590 0.551305
-vn 0.804548 -0.044303 0.592232
-vn 0.887379 0.408080 0.214547
-vn 0.910702 0.410936 -0.041879
-vn 0.665715 0.458373 0.588828
-vn 0.910702 0.410936 -0.041879
-vn 0.775796 0.611274 -0.156478
-vn 0.910865 0.382103 -0.155956
-vn 0.910865 0.382103 -0.155956
-vn 0.865780 0.298022 0.402004
-vn 0.910702 0.410936 -0.041879
-vn 0.926853 0.296065 0.230845
-vn 0.817308 0.373606 0.438665
-vn 0.849402 0.514429 0.117811
-vn 0.807536 0.080137 0.584349
-vn 0.926853 0.296065 0.230845
-vn 0.849402 0.514429 0.117811
-vn -0.996773 -0.018467 0.078112
-vn -0.996358 -0.022534 0.082241
-vn -0.963650 -0.052073 0.262043
-vn -0.963650 -0.052073 0.262043
-vn -0.996358 -0.022534 0.082241
-vn -0.962906 -0.051413 0.264895
-vn -0.999792 0.019275 -0.006705
-vn -0.999913 0.012170 -0.005074
-vn -0.996773 -0.018467 0.078112
-vn -0.996773 -0.018467 0.078112
-vn -0.999913 0.012170 -0.005074
-vn -0.996358 -0.022534 0.082241
-vn -0.252664 -0.057093 0.965868
-vn -0.251793 -0.044009 0.966780
-vn 0.000000 -0.036099 0.999348
-vn 0.000000 -0.036099 0.999348
-vn -0.251793 -0.044009 0.966780
-vn -0.000000 -0.022294 0.999751
-vn -0.493589 -0.076185 0.866352
-vn -0.494095 -0.060695 0.867287
-vn -0.252664 -0.057093 0.965868
-vn -0.252664 -0.057093 0.965868
-vn -0.494095 -0.060695 0.867287
-vn -0.251793 -0.044009 0.966780
-vn -0.689424 -0.095290 0.718063
-vn -0.690337 -0.077073 0.719371
-vn -0.493589 -0.076185 0.866352
-vn -0.493589 -0.076185 0.866352
-vn -0.690337 -0.077073 0.719371
-vn -0.494095 -0.060695 0.867287
-vn -0.861733 -0.089612 0.499385
-vn -0.862233 -0.079902 0.500170
-vn -0.689424 -0.095290 0.718063
-vn -0.689424 -0.095290 0.718063
-vn -0.862233 -0.079902 0.500170
-vn -0.690337 -0.077073 0.719371
-vn -0.963650 -0.052073 0.262043
-vn -0.962906 -0.051413 0.264895
-vn -0.861733 -0.089612 0.499385
-vn -0.861733 -0.089612 0.499385
-vn -0.962906 -0.051413 0.264895
-vn -0.862233 -0.079902 0.500170
-vn -0.508924 -0.173879 0.843067
-vn -0.580600 -0.129349 0.803849
-vn -0.530011 -0.161213 0.832525
-vn -0.530011 -0.161213 0.832525
-vn -0.580600 -0.129349 0.803849
-vn -0.606607 -0.112074 0.787063
-vn -0.420642 -0.894155 -0.153453
-vn -0.423196 -0.892876 -0.153873
-vn -0.445537 -0.885349 -0.132870
-vn -0.445537 -0.885349 -0.132870
-vn -0.423196 -0.892876 -0.153873
-vn -0.445045 -0.885607 -0.132797
-vn -0.443902 -0.894515 -0.052850
-vn -0.445537 -0.885349 -0.132870
-vn -0.444520 -0.893994 -0.056369
-vn -0.444520 -0.893994 -0.056369
-vn -0.445537 -0.885349 -0.132870
-vn -0.445045 -0.885607 -0.132797
-vn -0.382942 -0.923043 0.036704
-vn -0.443902 -0.894515 -0.052850
-vn -0.390221 -0.920247 0.029540
-vn -0.390221 -0.920247 0.029540
-vn -0.443902 -0.894515 -0.052850
-vn -0.444520 -0.893994 -0.056369
-vn -0.308278 -0.943585 0.120883
-vn -0.382942 -0.923043 0.036704
-vn -0.309267 -0.942490 0.126753
-vn -0.309267 -0.942490 0.126753
-vn -0.382942 -0.923043 0.036704
-vn -0.390221 -0.920247 0.029540
-vn -0.308278 -0.943585 0.120883
-vn -0.309267 -0.942490 0.126753
-vn -0.240249 -0.947922 0.209103
-vn -0.240249 -0.947922 0.209103
-vn -0.309267 -0.942490 0.126753
-vn -0.245596 -0.944213 0.219420
-vn -0.143501 -0.937524 0.316949
-vn -0.139148 -0.943161 0.301804
-vn -0.245596 -0.944213 0.219420
-vn -0.245596 -0.944213 0.219420
-vn -0.139148 -0.943161 0.301804
-vn -0.240249 -0.947922 0.209103
-vn -0.139148 -0.943161 0.301804
-vn -0.143501 -0.937524 0.316949
-vn 0.000000 -0.924899 0.380214
-vn 0.000000 -0.924899 0.380214
-vn -0.143501 -0.937524 0.316949
-vn 0.000000 -0.917956 0.396682
-vn -0.928473 0.002886 -0.371389
-vn -0.946841 -0.010033 -0.321544
-vn -0.793371 0.048012 -0.606842
-vn -0.207642 0.930056 -0.303118
-vn -0.218086 0.925466 -0.309759
-vn -0.208097 0.929860 -0.303408
-vn -0.208097 0.929860 -0.303408
-vn -0.218086 0.925466 -0.309759
-vn -0.218979 0.925066 -0.310326
-vn -0.854784 0.009411 -0.518898
-vn -0.854783 0.009414 -0.518900
-vn -0.854781 0.009420 -0.518903
-vn -0.854781 0.009420 -0.518903
-vn -0.854783 0.009414 -0.518900
-vn -0.854780 0.009423 -0.518904
-vn -0.391140 -0.918370 -0.060048
-vn -0.391102 -0.918388 -0.060026
-vn -0.391137 -0.918371 -0.060046
-vn -0.391137 -0.918371 -0.060046
-vn -0.391102 -0.918388 -0.060026
-vn -0.391100 -0.918389 -0.060025
-vn 0.157284 -0.147242 -0.976515
-vn 0.157283 -0.147243 -0.976515
-vn 0.157284 -0.147242 -0.976515
-vn 0.157284 -0.147242 -0.976515
-vn 0.157283 -0.147243 -0.976515
-vn 0.157282 -0.147243 -0.976515
-vn -0.791236 0.154415 0.591693
-vn -0.790899 0.154309 0.592172
-vn -0.791187 0.154399 0.591763
-vn -0.791187 0.154399 0.591763
-vn -0.790899 0.154309 0.592172
-vn -0.790837 0.154289 0.592260
-vn -0.693869 -0.717639 -0.059504
-vn -0.951661 -0.299535 -0.067968
-vn -0.734614 -0.292666 0.612119
-vn -0.951661 -0.299535 -0.067968
-vn -0.865823 -0.075119 0.494680
-vn -0.734614 -0.292666 0.612119
-vn -0.694372 -0.659335 -0.288316
-vn -0.911130 -0.251282 -0.326649
-vn -0.688953 -0.713776 -0.125968
-vn -0.911130 -0.251282 -0.326649
-vn -0.936547 -0.324609 -0.132316
-vn -0.688953 -0.713776 -0.125968
-vn -0.591638 -0.669054 -0.449811
-vn -0.776501 -0.261174 -0.573441
-vn -0.694372 -0.659335 -0.288316
-vn -0.776501 -0.261174 -0.573441
-vn -0.911130 -0.251282 -0.326649
-vn -0.694372 -0.659335 -0.288316
-vn -0.450135 -0.670894 -0.589305
-vn -0.582436 -0.291964 -0.758634
-vn -0.591638 -0.669054 -0.449811
-vn -0.582436 -0.291964 -0.758634
-vn -0.776501 -0.261174 -0.573441
-vn -0.591638 -0.669054 -0.449811
-vn -0.167519 -0.631543 -0.757027
-vn -0.203644 -0.349140 -0.914675
-vn -0.303200 -0.657246 -0.689998
-vn -0.203644 -0.349140 -0.914675
-vn -0.389637 -0.317883 -0.864369
-vn -0.303200 -0.657246 -0.689998
-vn -0.000000 -0.641479 -0.767141
-vn 0.000000 -0.346225 -0.938152
-vn -0.167519 -0.631543 -0.757027
-vn 0.000000 -0.346225 -0.938152
-vn -0.203644 -0.349140 -0.914675
-vn -0.167519 -0.631543 -0.757027
-vn -0.688953 -0.713776 -0.125968
-vn -0.440580 -0.890619 -0.112635
-vn -0.694372 -0.659335 -0.288316
-vn -0.440580 -0.890619 -0.112635
-vn -0.411066 -0.888894 -0.202218
-vn -0.694372 -0.659335 -0.288316
-vn -0.694372 -0.659335 -0.288316
-vn -0.411066 -0.888894 -0.202218
-vn -0.591638 -0.669054 -0.449811
-vn -0.411066 -0.888894 -0.202218
-vn -0.372727 -0.870575 -0.321206
-vn -0.591638 -0.669054 -0.449811
-vn -0.591638 -0.669054 -0.449811
-vn -0.372727 -0.870575 -0.321206
-vn -0.450135 -0.670894 -0.589305
-vn -0.372727 -0.870575 -0.321206
-vn -0.308118 -0.845792 -0.435546
-vn -0.450135 -0.670894 -0.589305
-vn -0.213971 -0.821557 -0.528451
-vn -0.127120 -0.776749 -0.616849
-vn -0.303200 -0.657246 -0.689998
-vn -0.127120 -0.776749 -0.616849
-vn -0.167519 -0.631543 -0.757027
-vn -0.303200 -0.657246 -0.689998
-vn -0.000000 -0.641479 -0.767141
-vn -0.167519 -0.631543 -0.757027
-vn -0.000000 -0.775130 -0.631802
-vn -0.167519 -0.631543 -0.757027
-vn -0.127120 -0.776749 -0.616849
-vn -0.000000 -0.775130 -0.631802
-vn -0.829370 -0.508464 0.231538
-vn -0.933139 -0.256382 0.252030
-vn -0.547229 -0.823054 -0.152061
-vn -0.933139 -0.256382 0.252030
-vn -0.834994 -0.497446 -0.235229
-vn -0.547229 -0.823054 -0.152061
-vn -0.547229 -0.823054 -0.152061
-vn -0.834994 -0.497446 -0.235229
-vn -0.499176 -0.817395 -0.287557
-vn -0.834994 -0.497446 -0.235229
-vn -0.746611 -0.509098 -0.428241
-vn -0.499176 -0.817395 -0.287557
-vn -0.499176 -0.817395 -0.287557
-vn -0.746611 -0.509098 -0.428241
-vn -0.433962 -0.796400 -0.421218
-vn -0.746611 -0.509098 -0.428241
-vn -0.626875 -0.487380 -0.607855
-vn -0.433962 -0.796400 -0.421218
-vn -0.433962 -0.796400 -0.421218
-vn -0.626875 -0.487380 -0.607855
-vn -0.339986 -0.770658 -0.538977
-vn -0.626875 -0.487380 -0.607855
-vn -0.474424 -0.451462 -0.755715
-vn -0.339986 -0.770658 -0.538977
-vn -0.219380 -0.740034 -0.635784
-vn -0.298918 -0.442208 -0.845636
-vn -0.105150 -0.721120 -0.684785
-vn -0.298918 -0.442208 -0.845636
-vn -0.134280 -0.433849 -0.890923
-vn -0.105150 -0.721120 -0.684785
-vn 0.000000 -0.711059 -0.703132
-vn -0.105150 -0.721120 -0.684785
-vn 0.000000 -0.428150 -0.903708
-vn -0.105150 -0.721120 -0.684785
-vn -0.134280 -0.433849 -0.890923
-vn 0.000000 -0.428150 -0.903708
-vn -0.933139 -0.256382 0.252030
-vn -0.950169 -0.026411 0.310615
-vn -0.834994 -0.497446 -0.235229
-vn -0.950169 -0.026411 0.310615
-vn -0.957770 -0.134386 -0.254199
-vn -0.834994 -0.497446 -0.235229
-vn -0.834994 -0.497446 -0.235229
-vn -0.957770 -0.134386 -0.254199
-vn -0.746611 -0.509098 -0.428241
-vn -0.957770 -0.134386 -0.254199
-vn -0.861660 -0.163786 -0.480330
-vn -0.746611 -0.509098 -0.428241
-vn -0.746611 -0.509098 -0.428241
-vn -0.861660 -0.163786 -0.480330
-vn -0.626875 -0.487380 -0.607855
-vn -0.861660 -0.163786 -0.480330
-vn -0.707443 -0.172771 -0.685328
-vn -0.626875 -0.487380 -0.607855
-vn -0.626875 -0.487380 -0.607855
-vn -0.707443 -0.172771 -0.685328
-vn -0.474424 -0.451462 -0.755715
-vn -0.707443 -0.172771 -0.685328
-vn -0.530815 -0.169218 -0.830422
-vn -0.474424 -0.451462 -0.755715
-vn -0.298918 -0.442208 -0.845636
-vn -0.338040 -0.168109 -0.925996
-vn -0.134280 -0.433849 -0.890923
-vn -0.338040 -0.168109 -0.925996
-vn -0.143223 -0.147346 -0.978661
-vn -0.134280 -0.433849 -0.890923
-vn 0.000000 -0.428150 -0.903708
-vn -0.134280 -0.433849 -0.890923
-vn 0.000000 -0.139213 -0.990262
-vn -0.134280 -0.433849 -0.890923
-vn -0.143223 -0.147346 -0.978661
-vn 0.000000 -0.139213 -0.990262
-vn -0.887379 0.408080 0.214547
-vn -0.775796 0.611274 -0.156478
-vn -0.955533 0.229356 0.185346
-vn -0.775796 0.611274 -0.156478
-vn -0.899654 0.371805 -0.228876
-vn -0.955533 0.229356 0.185346
-vn -0.838201 0.338530 -0.427570
-vn -0.899654 0.371805 -0.228876
-vn -0.748562 0.572863 -0.333891
-vn -0.899654 0.371805 -0.228876
-vn -0.775796 0.611274 -0.156478
-vn -0.748562 0.572863 -0.333891
-vn -0.838201 0.338530 -0.427570
-vn -0.748562 0.572863 -0.333891
-vn -0.730079 0.280919 -0.622953
-vn -0.748562 0.572863 -0.333891
-vn -0.670026 0.523745 -0.526076
-vn -0.730079 0.280919 -0.622953
-vn -0.141285 0.197838 -0.969999
-vn -0.141907 0.486043 -0.862337
-vn 0.000000 0.169328 -0.985560
-vn -0.141907 0.486043 -0.862337
-vn -0.000000 0.429750 -0.902948
-vn 0.000000 0.169328 -0.985560
-vn -0.910865 0.382102 -0.155957
-vn -0.852446 0.395819 -0.341559
-vn -0.775796 0.611274 -0.156478
-vn -0.852446 0.395819 -0.341559
-vn -0.748562 0.572863 -0.333891
-vn -0.775796 0.611274 -0.156478
-vn -0.852446 0.395819 -0.341559
-vn -0.727146 0.408695 -0.551567
-vn -0.748562 0.572863 -0.333891
-vn -0.727146 0.408695 -0.551567
-vn -0.670026 0.523745 -0.526076
-vn -0.748562 0.572863 -0.333891
-vn -0.561493 0.486609 -0.669281
-vn -0.260541 0.716419 -0.647196
-vn -0.515036 0.508272 -0.690216
-vn -0.260541 0.716419 -0.647196
-vn -0.306784 0.535384 -0.786923
-vn -0.515036 0.508272 -0.690216
-vn -0.306784 0.535384 -0.786923
-vn -0.260541 0.716419 -0.647196
-vn -0.141907 0.486043 -0.862337
-vn -0.260541 0.716419 -0.647196
-vn -0.139642 0.443685 -0.885237
-vn -0.141907 0.486043 -0.862337
-vn -0.141907 0.486043 -0.862337
-vn -0.139642 0.443685 -0.885237
-vn -0.000000 0.429750 -0.902948
-vn -0.139642 0.443685 -0.885237
-vn 0.000000 0.345679 -0.938353
-vn -0.000000 0.429750 -0.902948
-vn -0.978524 0.071526 -0.193328
-vn -0.910865 0.382102 -0.155957
-vn -0.865780 0.298022 0.402004
-vn -0.910702 0.410936 -0.041879
-vn -0.663248 0.596004 0.452638
-vn -0.865780 0.298022 0.402004
-vn -0.910865 0.382102 -0.155957
-vn -0.978524 0.071526 -0.193328
-vn -0.852446 0.395819 -0.341559
-vn -0.978524 0.071526 -0.193328
-vn -0.911055 0.107518 -0.398019
-vn -0.852446 0.395819 -0.341559
-vn -0.852446 0.395819 -0.341559
-vn -0.911055 0.107518 -0.398019
-vn -0.727146 0.408695 -0.551567
-vn -0.911055 0.107518 -0.398019
-vn -0.783256 0.126122 -0.608772
-vn -0.727146 0.408695 -0.551567
-vn -0.419181 0.072841 -0.904976
-vn -0.426493 0.056983 -0.902694
-vn -0.381991 0.053413 -0.922621
-vn -0.426493 0.056983 -0.902694
-vn -0.394310 0.036711 -0.918244
-vn -0.381991 0.053413 -0.922621
-vn -0.319266 0.017626 -0.947501
-vn -0.381991 0.053413 -0.922621
-vn -0.341576 0.029789 -0.939382
-vn -0.381991 0.053413 -0.922621
-vn -0.394310 0.036711 -0.918244
-vn -0.341576 0.029789 -0.939382
-vn 0.000000 0.345679 -0.938353
-vn -0.139642 0.443685 -0.885237
-vn 0.000000 0.077721 -0.996975
-vn -0.139642 0.443685 -0.885237
-vn -0.103853 0.070740 -0.992074
-vn 0.000000 0.077721 -0.996975
-vn -0.887417 0.192326 0.418929
-vn -0.895262 0.186285 0.404727
-vn -0.963287 0.140801 -0.228590
-vn -0.895262 0.186285 0.404727
-vn -0.922032 0.290901 -0.255407
-vn -0.963287 0.140801 -0.228590
-vn -0.963287 0.140801 -0.228590
-vn -0.922032 0.290901 -0.255407
-vn -0.891648 0.172871 -0.418426
-vn -0.922032 0.290901 -0.255407
-vn -0.845815 0.329793 -0.419325
-vn -0.891648 0.172871 -0.418426
-vn -0.891648 0.172871 -0.418426
-vn -0.845815 0.329793 -0.419325
-vn -0.767576 0.190717 -0.611926
-vn -0.845815 0.329793 -0.419325
-vn -0.708098 0.345784 -0.615654
-vn -0.767576 0.190717 -0.611926
-vn -0.883142 0.315792 0.346895
-vn -0.746380 0.632005 -0.208535
-vn -0.895262 0.186285 0.404727
-vn -0.746380 0.632005 -0.208535
-vn -0.922032 0.290901 -0.255407
-vn -0.895262 0.186285 0.404727
-vn -0.845815 0.329793 -0.419325
-vn -0.922032 0.290901 -0.255407
-vn -0.682306 0.642739 -0.348346
-vn -0.922032 0.290901 -0.255407
-vn -0.746380 0.632005 -0.208535
-vn -0.682306 0.642739 -0.348346
-vn -0.708098 0.345784 -0.615654
-vn -0.845815 0.329793 -0.419325
-vn -0.597176 0.623458 -0.504659
-vn -0.845815 0.329793 -0.419325
-vn -0.682306 0.642739 -0.348346
-vn -0.597176 0.623458 -0.504659
-vn -0.708098 0.345784 -0.615654
-vn -0.597176 0.623458 -0.504659
-vn -0.565694 0.317444 -0.761065
-vn -0.597176 0.623458 -0.504659
-vn -0.484964 0.591691 -0.643982
-vn -0.565694 0.317444 -0.761065
-vn -0.565694 0.317444 -0.761065
-vn -0.484964 0.591691 -0.643982
-vn -0.379772 0.322230 -0.867145
-vn -0.484964 0.591691 -0.643982
-vn -0.297017 0.614079 -0.731223
-vn -0.379772 0.322230 -0.867145
-vn -0.186911 0.318785 -0.929215
-vn -0.160628 0.572026 -0.804354
-vn 0.000000 0.303281 -0.952901
-vn -0.160628 0.572026 -0.804354
-vn 0.000000 0.566902 -0.823785
-vn 0.000000 0.303281 -0.952901
-vn -0.872500 0.486439 0.046048
-vn -0.695502 0.699074 -0.166048
-vn -0.883142 0.315792 0.346895
-vn -0.695502 0.699074 -0.166048
-vn -0.746380 0.632005 -0.208535
-vn -0.883142 0.315792 0.346895
-vn -0.682306 0.642739 -0.348346
-vn -0.746380 0.632005 -0.208535
-vn -0.641577 0.697453 -0.319279
-vn -0.746380 0.632005 -0.208535
-vn -0.695502 0.699074 -0.166048
-vn -0.641577 0.697453 -0.319279
-vn -0.597176 0.623458 -0.504659
-vn -0.682306 0.642739 -0.348346
-vn -0.576935 0.677233 -0.456619
-vn -0.682306 0.642739 -0.348346
-vn -0.641577 0.697453 -0.319279
-vn -0.576935 0.677233 -0.456619
-vn -0.484964 0.591691 -0.643982
-vn -0.597176 0.623458 -0.504659
-vn -0.445043 0.671109 -0.592916
-vn -0.597176 0.623458 -0.504659
-vn -0.576935 0.677233 -0.456619
-vn -0.445043 0.671109 -0.592916
-vn -0.484964 0.591691 -0.643982
-vn -0.445043 0.671109 -0.592916
-vn -0.297017 0.614079 -0.731223
-vn -0.445043 0.671109 -0.592916
-vn -0.311586 0.626785 -0.714181
-vn -0.297017 0.614079 -0.731223
-vn -0.160628 0.572026 -0.804354
-vn -0.167735 0.583693 -0.794460
-vn 0.000000 0.566902 -0.823785
-vn -0.167735 0.583693 -0.794460
-vn 0.000000 0.578067 -0.815989
-vn 0.000000 0.566902 -0.823785
-vn -0.827008 0.305512 0.471932
-vn -0.787499 0.326946 0.522448
-vn -0.663248 0.596004 0.452638
-vn -0.787499 0.326946 0.522448
-vn -0.865780 0.298022 0.402004
-vn -0.663248 0.596004 0.452638
-vn -0.887417 0.192326 0.418929
-vn -0.790440 0.189724 0.582417
-vn -0.895262 0.186285 0.404727
-vn -0.790440 0.189724 0.582417
-vn -0.775527 -0.000898 0.631313
-vn -0.895262 0.186285 0.404727
-vn -0.883142 0.315792 0.346895
-vn -0.879022 -0.245419 0.408766
-vn -0.964631 0.193831 0.178653
-vn -0.643794 0.051604 0.763457
-vn -0.645109 -0.423749 0.635823
-vn -0.734614 -0.292666 0.612119
-vn -0.827008 0.305512 0.471932
-vn -0.722072 0.167012 0.671356
-vn -0.731349 0.176702 0.658715
-vn -0.722072 0.167012 0.671356
-vn -0.822162 0.061563 0.565915
-vn -0.731349 0.176702 0.658715
-vn -0.731349 0.176702 0.658715
-vn -0.822162 0.061563 0.565915
-vn -0.687158 0.108164 0.718411
-vn -0.827008 0.305512 0.471932
-vn -0.663248 0.596004 0.452638
-vn -0.665715 0.458373 0.588828
-vn -0.141923 0.004781 -0.989866
-vn -0.141285 0.197838 -0.969999
-vn -0.000000 0.003909 -0.999992
-vn -0.141285 0.197838 -0.969999
-vn 0.000000 0.169328 -0.985560
-vn -0.000000 0.003909 -0.999992
-vn -0.549889 0.016593 -0.835073
-vn -0.556365 0.235871 -0.796758
-vn -0.341784 0.005125 -0.939765
-vn -0.556365 0.235871 -0.796758
-vn -0.340643 0.199708 -0.918738
-vn -0.341784 0.005125 -0.939765
-vn -0.879747 0.084713 -0.467833
-vn -0.838201 0.338530 -0.427570
-vn -0.732050 0.035948 -0.680302
-vn -0.838201 0.338530 -0.427570
-vn -0.730079 0.280919 -0.622953
-vn -0.732050 0.035948 -0.680302
-vn -0.963144 0.096949 -0.250908
-vn -0.899654 0.371805 -0.228876
-vn -0.879747 0.084713 -0.467833
-vn -0.899654 0.371805 -0.228876
-vn -0.838201 0.338530 -0.427570
-vn -0.879747 0.084713 -0.467833
-vn -0.952537 0.082086 0.293147
-vn -0.955533 0.229356 0.185346
-vn -0.963144 0.096949 -0.250908
-vn -0.955533 0.229356 0.185346
-vn -0.899654 0.371805 -0.228876
-vn -0.963144 0.096949 -0.250908
-vn -0.645109 -0.423749 0.635823
-vn -0.652378 0.102382 0.750946
-vn -0.762062 -0.580087 0.287682
-vn -0.652378 0.102382 0.750946
-vn -0.817308 0.373606 0.438665
-vn -0.762062 -0.580087 0.287682
-vn -0.066628 0.586188 0.807431
-vn -0.933139 -0.256382 0.252030
-vn -0.829370 -0.508464 0.231538
-vn -0.829370 -0.508464 0.231538
-vn -0.482375 0.684024 0.547198
-vn -0.066628 0.586188 0.807431
-vn -0.933139 -0.256382 0.252030
-vn -0.066628 0.586188 0.807431
-vn -0.950169 -0.026411 0.310615
-vn -0.066628 0.586188 0.807431
-vn 0.074275 0.267465 0.960701
-vn -0.950169 -0.026411 0.310615
-vn -0.955533 0.229356 0.185346
-vn -0.172799 -0.451525 0.875366
-vn -0.818615 -0.123715 0.560860
-vn -0.818615 -0.123715 0.560860
-vn -0.887379 0.408080 0.214547
-vn -0.955533 0.229356 0.185346
-vn 0.096717 0.033816 0.994737
-vn -0.172799 -0.451525 0.875366
-vn -0.955533 0.229356 0.185346
-vn -0.955533 0.229356 0.185346
-vn -0.952537 0.082086 0.293147
-vn 0.096717 0.033816 0.994737
-vn -0.127120 -0.776749 -0.616849
-vn -0.105150 -0.721120 -0.684785
-vn -0.000000 -0.775130 -0.631802
-vn -0.105150 -0.721120 -0.684785
-vn 0.000000 -0.711059 -0.703132
-vn -0.000000 -0.775130 -0.631802
-vn -0.213971 -0.821557 -0.528451
-vn -0.219380 -0.740034 -0.635784
-vn -0.127120 -0.776749 -0.616849
-vn -0.219380 -0.740034 -0.635784
-vn -0.105150 -0.721120 -0.684785
-vn -0.127120 -0.776749 -0.616849
-vn -0.372727 -0.870575 -0.321206
-vn -0.433962 -0.796400 -0.421218
-vn -0.308118 -0.845792 -0.435546
-vn -0.433962 -0.796400 -0.421218
-vn -0.339986 -0.770658 -0.538977
-vn -0.308118 -0.845792 -0.435546
-vn -0.411066 -0.888894 -0.202218
-vn -0.499176 -0.817395 -0.287557
-vn -0.372727 -0.870575 -0.321206
-vn -0.499176 -0.817395 -0.287557
-vn -0.433962 -0.796400 -0.421218
-vn -0.372727 -0.870575 -0.321206
-vn -0.440580 -0.890619 -0.112635
-vn -0.547229 -0.823054 -0.152061
-vn -0.411066 -0.888894 -0.202218
-vn -0.547229 -0.823054 -0.152061
-vn -0.499176 -0.817395 -0.287557
-vn -0.411066 -0.888894 -0.202218
-vn -0.762062 -0.580087 0.287682
-vn -0.829370 -0.508464 0.231538
-vn -0.440580 -0.890619 -0.112635
-vn -0.829370 -0.508464 0.231538
-vn -0.547229 -0.823054 -0.152061
-vn -0.440580 -0.890619 -0.112635
-vn -0.762062 -0.580087 0.287682
-vn -0.817308 0.373606 0.438665
-vn -0.829370 -0.508464 0.231538
-vn -0.817308 0.373606 0.438665
-vn -0.482375 0.684024 0.547198
-vn -0.829370 -0.508464 0.231538
-vn -0.822162 0.061563 0.565915
-vn -0.722072 0.167012 0.671356
-vn -0.980730 -0.192660 -0.032425
-vn -0.722072 0.167012 0.671356
-vn -0.968206 -0.249820 0.012937
-vn -0.980730 -0.192660 -0.032425
-vn -0.652378 0.102382 0.750946
-vn -0.926853 0.296065 0.230845
-vn -0.817308 0.373606 0.438665
-vn -0.849402 0.514429 0.117811
-vn -0.044560 0.961925 0.269656
-vn -0.817308 0.373606 0.438665
-vn -0.482375 0.684024 0.547198
-vn 0.454056 0.816322 0.357003
-vn -0.066628 0.586188 0.807431
-vn 0.454056 0.816322 0.357003
-vn 0.741744 0.469145 0.479291
-vn -0.066628 0.586188 0.807431
-vn -0.066628 0.586188 0.807431
-vn 0.741744 0.469145 0.479291
-vn 0.074275 0.267465 0.960701
-vn 0.741744 0.469145 0.479291
-vn 0.800068 0.182433 0.571498
-vn 0.074275 0.267465 0.960701
-vn -0.818615 -0.123715 0.560860
-vn -0.172799 -0.451525 0.875366
-vn 0.577310 -0.607635 0.545429
-vn -0.172799 -0.451525 0.875366
-vn 0.757302 -0.341398 0.556724
-vn 0.577310 -0.607635 0.545429
-vn -0.497236 -0.822134 0.277223
-vn -0.489758 -0.824720 0.282797
-vn -0.429055 -0.842434 0.325909
-vn -0.489758 -0.824720 0.282797
-vn -0.413625 -0.846061 0.336297
-vn -0.429055 -0.842434 0.325909
-vn -0.172799 -0.451525 0.875366
-vn 0.096717 0.033816 0.994737
-vn 0.757302 -0.341398 0.556724
-vn 0.096717 0.033816 0.994737
-vn 0.846383 -0.041168 0.530981
-vn 0.757302 -0.341398 0.556724
-vn -0.817308 0.373606 0.438665
-vn -0.044560 0.961925 0.269656
-vn -0.482375 0.684024 0.547198
-vn -0.044560 0.961925 0.269656
-vn 0.454056 0.816322 0.357003
-vn -0.482375 0.684024 0.547198
-vn -0.722072 0.167012 0.671356
-vn -0.827008 0.305512 0.471932
-vn -0.665715 0.458373 0.588828
-vn -0.665715 0.458373 0.588828
-vn -0.887379 0.408080 0.214547
-vn -0.818615 -0.123715 0.560860
-vn -0.818615 -0.123715 0.560860
-vn -0.722072 0.167012 0.671356
-vn -0.665715 0.458373 0.588828
-vn -0.822162 0.061563 0.565915
-vn -0.807536 0.080137 0.584349
-vn -0.687158 0.108164 0.718411
-vn -0.807536 0.080137 0.584349
-vn -0.643614 0.102220 0.758493
-vn -0.687158 0.108164 0.718411
-vn -0.980730 -0.192660 -0.032425
-vn -0.992109 -0.110931 -0.058437
-vn -0.822162 0.061563 0.565915
-vn -0.992109 -0.110931 -0.058437
-vn -0.807536 0.080137 0.584349
-vn -0.822162 0.061563 0.565915
-vn -0.643794 0.051604 0.763457
-vn -0.652378 0.102382 0.750946
-vn -0.645109 -0.423749 0.635823
-vn -0.762062 -0.580087 0.287682
-vn -0.693869 -0.717639 -0.059504
-vn -0.645109 -0.423749 0.635823
-vn -0.693869 -0.717639 -0.059504
-vn -0.734614 -0.292666 0.612119
-vn -0.645109 -0.423749 0.635823
-vn -0.688953 -0.713776 -0.125968
-vn -0.936547 -0.324609 -0.132316
-vn -0.693869 -0.717639 -0.059504
-vn -0.936547 -0.324609 -0.132316
-vn -0.951661 -0.299535 -0.067968
-vn -0.693869 -0.717639 -0.059504
-vn -0.695502 0.699074 -0.166048
-vn -0.737048 0.630837 -0.242495
-vn -0.641577 0.697453 -0.319279
-vn -0.576935 0.677233 -0.456619
-vn -0.641577 0.697453 -0.319279
-vn -0.657376 0.599430 -0.456663
-vn -0.641577 0.697453 -0.319279
-vn -0.737048 0.630837 -0.242495
-vn -0.657376 0.599430 -0.456663
-vn -0.445043 0.671109 -0.592916
-vn -0.576935 0.677233 -0.456619
-vn -0.522000 0.565707 -0.638350
-vn -0.576935 0.677233 -0.456619
-vn -0.657376 0.599430 -0.456663
-vn -0.522000 0.565707 -0.638350
-vn -0.445043 0.671109 -0.592916
-vn -0.522000 0.565707 -0.638350
-vn -0.311586 0.626785 -0.714181
-vn -0.522000 0.565707 -0.638350
-vn -0.366912 0.544933 -0.753938
-vn -0.311586 0.626785 -0.714181
-vn -0.167735 0.583693 -0.794460
-vn -0.182275 0.548030 -0.816357
-vn 0.000000 0.578067 -0.815989
-vn -0.182275 0.548030 -0.816357
-vn 0.000000 0.566147 -0.824304
-vn 0.000000 0.578067 -0.815989
-vn -0.522554 0.775614 -0.354063
-vn -0.657376 0.599430 -0.456663
-vn -0.531461 0.826347 -0.186276
-vn -0.657376 0.599430 -0.456663
-vn -0.737048 0.630837 -0.242495
-vn -0.531461 0.826347 -0.186276
-vn -0.124090 0.987698 -0.095156
-vn 0.000000 0.996295 -0.085997
-vn -0.155681 0.954668 -0.253718
-vn 0.000000 0.996295 -0.085997
-vn 0.000000 0.968551 -0.248813
-vn -0.155681 0.954668 -0.253718
-vn -0.155681 0.954668 -0.253718
-vn 0.000000 0.968551 -0.248813
-vn -0.174351 0.814871 -0.552800
-vn 0.000000 0.968551 -0.248813
-vn -0.000000 0.828372 -0.560179
-vn -0.174351 0.814871 -0.552800
-vn -0.370339 0.773014 -0.515071
-vn -0.522000 0.565707 -0.638350
-vn -0.522554 0.775614 -0.354063
-vn -0.522000 0.565707 -0.638350
-vn -0.657376 0.599430 -0.456663
-vn -0.522554 0.775614 -0.354063
-vn -0.366912 0.544933 -0.753938
-vn -0.522000 0.565707 -0.638350
-vn -0.370339 0.773014 -0.515071
-vn 0.000000 0.566147 -0.824304
-vn -0.182275 0.548030 -0.816357
-vn -0.000000 0.828372 -0.560179
-vn -0.182275 0.548030 -0.816357
-vn -0.174351 0.814871 -0.552800
-vn -0.000000 0.828372 -0.560179
-vn -0.370339 0.773014 -0.515071
-vn -0.522554 0.775614 -0.354063
-vn -0.283844 0.920677 -0.267929
-vn -0.283844 0.920677 -0.267929
-vn -0.522554 0.775614 -0.354063
-vn -0.289060 0.948825 -0.127180
-vn -0.522554 0.775614 -0.354063
-vn -0.531461 0.826347 -0.186276
-vn -0.289060 0.948825 -0.127180
-vn -0.811511 0.582008 0.052118
-vn -0.813126 0.562843 0.148437
-vn -0.564449 0.824801 0.033177
-vn -0.813126 0.562843 0.148437
-vn -0.586343 0.801355 0.118456
-vn -0.564449 0.824801 0.033177
-vn -0.107263 0.993482 0.038571
-vn -0.101507 0.989456 0.103309
-vn -0.000000 0.999113 0.042110
-vn -0.101507 0.989456 0.103309
-vn -0.000000 0.994745 0.102388
-vn -0.000000 0.999113 0.042110
-vn -0.564449 0.824801 0.033177
-vn -0.586343 0.801355 0.118456
-vn -0.285655 0.957858 0.030146
-vn -0.586343 0.801355 0.118456
-vn -0.271656 0.956444 0.106859
-vn -0.285655 0.957858 0.030146
-vn -0.675523 0.489859 0.551096
-vn -0.504243 0.754679 0.419760
-vn -0.790476 0.510996 0.337684
-vn -0.504243 0.754679 0.419760
-vn -0.566436 0.773715 0.283751
-vn -0.790476 0.510996 0.337684
-vn -0.306688 0.839558 0.448424
-vn -0.504243 0.754679 0.419760
-vn -0.395709 0.594759 0.699769
-vn -0.504243 0.754679 0.419760
-vn -0.675523 0.489859 0.551096
-vn -0.395709 0.594759 0.699769
-vn 0.000000 0.644588 0.764530
-vn -0.000000 0.890696 0.454600
-vn -0.172841 0.641260 0.747604
-vn -0.000000 0.890696 0.454600
-vn -0.151422 0.882115 0.446031
-vn -0.172841 0.641260 0.747604
-vn -0.114776 0.969606 0.216080
-vn -0.151422 0.882115 0.446031
-vn -0.000000 0.977356 0.211603
-vn -0.151422 0.882115 0.446031
-vn -0.000000 0.890696 0.454600
-vn -0.000000 0.977356 0.211603
-vn -0.306688 0.839558 0.448424
-vn -0.269387 0.933644 0.236092
-vn -0.504243 0.754679 0.419760
-vn -0.269387 0.933644 0.236092
-vn -0.566436 0.773715 0.283751
-vn -0.504243 0.754679 0.419760
-vn -0.775527 -0.000898 0.631313
-vn -0.790440 0.189724 0.582417
-vn -0.992653 0.114144 0.040135
-vn -0.879022 -0.245419 0.408766
-vn -0.775527 -0.000898 0.631313
-vn -0.992653 0.114144 0.040135
-vn -0.964631 0.193831 0.178653
-vn -0.879022 -0.245419 0.408766
-vn -0.992653 0.114144 0.040135
-vn -0.992653 0.114144 0.040135
-vn -0.965976 0.251500 0.060315
-vn -0.964631 0.193831 0.178653
-vn -0.787499 0.326946 0.522448
-vn -0.827008 0.305512 0.471932
-vn -0.998468 0.034872 0.042952
-vn -0.827008 0.305512 0.471932
-vn -0.731349 0.176702 0.658715
-vn -0.998468 0.034872 0.042952
-vn -0.941576 0.289157 0.172692
-vn -0.965976 0.251500 0.060315
-vn -0.987901 0.136372 0.073847
-vn -0.965976 0.251500 0.060315
-vn -0.992653 0.114144 0.040135
-vn -0.987901 0.136372 0.073847
-vn -0.965976 0.251500 0.060315
-vn -0.941576 0.289157 0.172692
-vn -0.905940 0.384539 0.177207
-vn -0.921473 0.383876 0.059379
-vn -0.965976 0.251500 0.060315
-vn -0.905940 0.384539 0.177207
-vn -0.730356 0.204967 0.651589
-vn -0.736229 0.256875 0.626085
-vn -0.877960 0.234283 0.417490
-vn -0.736229 0.256875 0.626085
-vn -0.859273 0.317420 0.401117
-vn -0.877960 0.234283 0.417490
-vn -0.730356 0.204967 0.651589
-vn -0.478164 0.165313 0.862572
-vn -0.736229 0.256875 0.626085
-vn -0.478164 0.165313 0.862572
-vn -0.464356 0.290440 0.836671
-vn -0.736229 0.256875 0.626085
-vn -0.000000 0.342544 0.939502
-vn -0.190440 0.332540 0.923661
-vn 0.000000 0.200670 0.979659
-vn -0.190440 0.332540 0.923661
-vn -0.189718 0.191129 0.963056
-vn 0.000000 0.200670 0.979659
-vn -0.811511 0.582008 0.052118
-vn -0.921473 0.383876 0.059379
-vn -0.813126 0.562843 0.148437
-vn -0.921473 0.383876 0.059379
-vn -0.905940 0.384539 0.177207
-vn -0.813126 0.562843 0.148437
-vn -0.859273 0.317420 0.401117
-vn -0.736229 0.256875 0.626085
-vn -0.790476 0.510996 0.337684
-vn -0.736229 0.256875 0.626085
-vn -0.675523 0.489859 0.551096
-vn -0.790476 0.510996 0.337684
-vn -0.395709 0.594759 0.699769
-vn -0.675523 0.489859 0.551096
-vn -0.464356 0.290440 0.836671
-vn -0.675523 0.489859 0.551096
-vn -0.736229 0.256875 0.626085
-vn -0.464356 0.290440 0.836671
-vn -0.190440 0.332540 0.923661
-vn -0.000000 0.342544 0.939502
-vn -0.172841 0.641260 0.747604
-vn -0.000000 0.342544 0.939502
-vn 0.000000 0.644588 0.764530
-vn -0.172841 0.641260 0.747604
-vn -0.113784 0.993394 -0.014901
-vn -0.107263 0.993482 0.038571
-vn -0.000000 0.999950 -0.010010
-vn -0.107263 0.993482 0.038571
-vn -0.000000 0.999113 0.042110
-vn -0.000000 0.999950 -0.010010
-vn -0.285655 0.957858 0.030146
-vn -0.293378 0.955452 -0.032274
-vn -0.564449 0.824801 0.033177
-vn -0.293378 0.955452 -0.032274
-vn -0.558464 0.827906 -0.051870
-vn -0.564449 0.824801 0.033177
-vn -0.558464 0.827906 -0.051870
-vn -0.795044 0.603545 -0.060330
-vn -0.564449 0.824801 0.033177
-vn -0.795044 0.603545 -0.060330
-vn -0.811511 0.582008 0.052118
-vn -0.564449 0.824801 0.033177
-vn -0.872500 0.486439 0.046048
-vn -0.921473 0.383876 0.059379
-vn -0.795044 0.603545 -0.060330
-vn -0.921473 0.383876 0.059379
-vn -0.811511 0.582008 0.052118
-vn -0.795044 0.603545 -0.060330
-vn -0.910702 0.410936 -0.041879
-vn -0.775796 0.611274 -0.156478
-vn -0.887379 0.408080 0.214547
-vn -0.665715 0.458373 0.588828
-vn -0.663248 0.596004 0.452638
-vn -0.910702 0.410936 -0.041879
-vn -0.795044 0.603545 -0.060330
-vn -0.558464 0.827906 -0.051870
-vn -0.737048 0.630837 -0.242495
-vn -0.558464 0.827906 -0.051870
-vn -0.531461 0.826347 -0.186276
-vn -0.737048 0.630837 -0.242495
-vn -0.558464 0.827906 -0.051870
-vn -0.293378 0.955452 -0.032274
-vn -0.531461 0.826347 -0.186276
-vn -0.293378 0.955452 -0.032274
-vn -0.289060 0.948825 -0.127180
-vn -0.531461 0.826347 -0.186276
-vn 0.000000 0.996295 -0.085997
-vn -0.124090 0.987698 -0.095156
-vn -0.000000 0.999950 -0.010010
-vn -0.124090 0.987698 -0.095156
-vn -0.113784 0.993394 -0.014901
-vn -0.000000 0.999950 -0.010010
-vn -0.895262 0.186285 0.404727
-vn -0.775527 -0.000898 0.631313
-vn -0.883142 0.315792 0.346895
-vn -0.775527 -0.000898 0.631313
-vn -0.879022 -0.245419 0.408766
-vn -0.883142 0.315792 0.346895
-vn -0.964631 0.193831 0.178653
-vn -0.872500 0.486439 0.046048
-vn -0.883142 0.315792 0.346895
-vn -0.737048 0.630837 -0.242495
-vn -0.695502 0.699074 -0.166048
-vn -0.795044 0.603545 -0.060330
-vn -0.695502 0.699074 -0.166048
-vn -0.872500 0.486439 0.046048
-vn -0.795044 0.603545 -0.060330
-vn -0.762062 -0.580087 0.287682
-vn -0.440580 -0.890619 -0.112635
-vn -0.693869 -0.717639 -0.059504
-vn -0.440580 -0.890619 -0.112635
-vn -0.688953 -0.713776 -0.125968
-vn -0.693869 -0.717639 -0.059504
-vn -0.643614 0.102220 0.758493
-vn -0.643794 0.051604 0.763457
-vn -0.869836 -0.056841 0.490055
-vn -0.643794 0.051604 0.763457
-vn -0.833627 -0.033590 0.551305
-vn -0.869836 -0.056841 0.490055
-vn -0.807536 0.080137 0.584349
-vn -0.652378 0.102382 0.750946
-vn -0.643614 0.102220 0.758493
-vn -0.652378 0.102382 0.750946
-vn -0.643794 0.051604 0.763457
-vn -0.643614 0.102220 0.758493
-vn -0.652378 0.102382 0.750946
-vn -0.807536 0.080137 0.584349
-vn -0.926853 0.296065 0.230845
-vn -0.807536 0.080137 0.584349
-vn -0.992109 -0.110931 -0.058437
-vn -0.849402 0.514429 0.117811
-vn -0.998468 0.034872 0.042952
-vn -0.992653 0.114144 0.040135
-vn -0.787499 0.326946 0.522448
-vn 0.000000 0.077721 -0.996975
-vn -0.103853 0.070740 -0.992074
-vn 0.000000 0.152101 -0.988365
-vn -0.103853 0.070740 -0.992074
-vn -0.170294 0.181676 -0.968501
-vn 0.000000 0.152101 -0.988365
-vn -0.402909 -0.008557 -0.915200
-vn -0.339259 0.010099 -0.940639
-vn -0.394310 0.036711 -0.918244
-vn -0.339259 0.010099 -0.940639
-vn -0.341576 0.029789 -0.939382
-vn -0.394310 0.036711 -0.918244
-vn -0.402909 -0.008557 -0.915200
-vn -0.394310 0.036711 -0.918244
-vn -0.452658 0.019859 -0.891463
-vn -0.394310 0.036711 -0.918244
-vn -0.426493 0.056983 -0.902694
-vn -0.452658 0.019859 -0.891463
-vn -0.911055 0.107518 -0.398019
-vn -0.891648 0.172871 -0.418426
-vn -0.783256 0.126122 -0.608772
-vn -0.891648 0.172871 -0.418426
-vn -0.767576 0.190717 -0.611926
-vn -0.783256 0.126122 -0.608772
-vn -0.978524 0.071526 -0.193328
-vn -0.963287 0.140801 -0.228590
-vn -0.911055 0.107518 -0.398019
-vn -0.963287 0.140801 -0.228590
-vn -0.891648 0.172871 -0.418426
-vn -0.911055 0.107518 -0.398019
-vn -0.784323 -0.020364 0.620019
-vn -0.791556 -0.097603 0.603252
-vn -0.804548 -0.044303 0.592232
-vn -0.643794 0.051604 0.763457
-vn -0.865823 -0.075119 0.494680
-vn -0.784323 -0.020364 0.620019
-vn -0.865823 -0.075119 0.494680
-vn -0.894455 -0.085918 0.438825
-vn -0.784323 -0.020364 0.620019
-vn -0.894455 -0.085918 0.438825
-vn -0.865823 -0.075119 0.494680
-vn -0.987210 -0.158821 -0.013868
-vn -0.865823 -0.075119 0.494680
-vn -0.951661 -0.299535 -0.067968
-vn -0.987210 -0.158821 -0.013868
-vn -0.936547 -0.324609 -0.132316
-vn -0.986121 -0.113166 -0.121487
-vn -0.951661 -0.299535 -0.067968
-vn -0.986121 -0.113166 -0.121487
-vn -0.987210 -0.158821 -0.013868
-vn -0.951661 -0.299535 -0.067968
-vn -0.911130 -0.251282 -0.326649
-vn -0.944819 -0.103296 -0.310882
-vn -0.936547 -0.324609 -0.132316
-vn -0.944819 -0.103296 -0.310882
-vn -0.986121 -0.113166 -0.121487
-vn -0.936547 -0.324609 -0.132316
-vn -0.776501 -0.261174 -0.573441
-vn -0.817637 -0.091284 -0.568451
-vn -0.911130 -0.251282 -0.326649
-vn -0.817637 -0.091284 -0.568451
-vn -0.944819 -0.103296 -0.310882
-vn -0.911130 -0.251282 -0.326649
-vn -0.582436 -0.291964 -0.758634
-vn -0.615939 -0.083779 -0.783326
-vn -0.776501 -0.261174 -0.573441
-vn -0.615939 -0.083779 -0.783326
-vn -0.817637 -0.091284 -0.568451
-vn -0.776501 -0.261174 -0.573441
-vn -0.203644 -0.349140 -0.914675
-vn -0.205817 -0.136223 -0.969063
-vn -0.389637 -0.317883 -0.864369
-vn -0.205817 -0.136223 -0.969063
-vn -0.394315 -0.101461 -0.913357
-vn -0.389637 -0.317883 -0.864369
-vn 0.000000 -0.346225 -0.938152
-vn 0.000000 -0.144658 -0.989482
-vn -0.203644 -0.349140 -0.914675
-vn 0.000000 -0.144658 -0.989482
-vn -0.205817 -0.136223 -0.969063
-vn -0.203644 -0.349140 -0.914675
-vn 0.000000 -0.139213 -0.990262
-vn -0.143223 -0.147346 -0.978661
-vn -0.000000 0.003909 -0.999992
-vn -0.143223 -0.147346 -0.978661
-vn -0.141923 0.004781 -0.989866
-vn -0.000000 0.003909 -0.999992
-vn -0.338040 -0.168109 -0.925996
-vn -0.341784 0.005125 -0.939765
-vn -0.143223 -0.147346 -0.978661
-vn -0.341784 0.005125 -0.939765
-vn -0.141923 0.004781 -0.989866
-vn -0.143223 -0.147346 -0.978661
-vn -0.707443 -0.172771 -0.685328
-vn -0.732050 0.035948 -0.680302
-vn -0.530815 -0.169218 -0.830422
-vn -0.732050 0.035948 -0.680302
-vn -0.549889 0.016593 -0.835073
-vn -0.530815 -0.169218 -0.830422
-vn -0.861660 -0.163786 -0.480330
-vn -0.879747 0.084713 -0.467833
-vn -0.707443 -0.172771 -0.685328
-vn -0.879747 0.084713 -0.467833
-vn -0.732050 0.035948 -0.680302
-vn -0.707443 -0.172771 -0.685328
-vn -0.957770 -0.134386 -0.254199
-vn -0.963144 0.096949 -0.250908
-vn -0.861660 -0.163786 -0.480330
-vn -0.963144 0.096949 -0.250908
-vn -0.879747 0.084713 -0.467833
-vn -0.861660 -0.163786 -0.480330
-vn -0.950169 -0.026411 0.310615
-vn -0.952537 0.082086 0.293147
-vn -0.957770 -0.134386 -0.254199
-vn -0.952537 0.082086 0.293147
-vn -0.963144 0.096949 -0.250908
-vn -0.957770 -0.134386 -0.254199
-vn -0.952537 0.082086 0.293147
-vn -0.950169 -0.026411 0.310615
-vn 0.096717 0.033816 0.994737
-vn -0.950169 -0.026411 0.310615
-vn 0.074275 0.267465 0.960701
-vn 0.096717 0.033816 0.994737
-vn 0.074275 0.267465 0.960701
-vn 0.800068 0.182433 0.571498
-vn 0.096717 0.033816 0.994737
-vn 0.800068 0.182433 0.571498
-vn 0.846383 -0.041168 0.530981
-vn 0.096717 0.033816 0.994737
-vn -0.869836 -0.056841 0.490055
-vn -0.905834 -0.117974 0.406875
-vn -0.643614 0.102220 0.758493
-vn -0.905834 -0.117974 0.406875
-vn -0.687158 0.108164 0.718411
-vn -0.643614 0.102220 0.758493
-vn -0.965976 0.251500 0.060315
-vn -0.921473 0.383876 0.059379
-vn -0.964631 0.193831 0.178653
-vn -0.921473 0.383876 0.059379
-vn -0.872500 0.486439 0.046048
-vn -0.964631 0.193831 0.178653
-vn -0.614486 0.229061 -0.754942
-vn -0.698707 0.118060 -0.705599
-vn -0.767576 0.190717 -0.611926
-vn -0.698707 0.118060 -0.705599
-vn -0.783256 0.126122 -0.608772
-vn -0.767576 0.190717 -0.611926
-vn -0.727146 0.408695 -0.551567
-vn -0.783256 0.126122 -0.608772
-vn -0.561493 0.486609 -0.669281
-vn -0.783256 0.126122 -0.608772
-vn -0.698707 0.118060 -0.705599
-vn -0.561493 0.486609 -0.669281
-vn -0.670026 0.523745 -0.526076
-vn -0.727146 0.408695 -0.551567
-vn -0.515036 0.508272 -0.690216
-vn -0.727146 0.408695 -0.551567
-vn -0.561493 0.486609 -0.669281
-vn -0.515036 0.508272 -0.690216
-vn -0.730079 0.280919 -0.622953
-vn -0.670026 0.523745 -0.526076
-vn -0.556365 0.235871 -0.796758
-vn -0.670026 0.523745 -0.526076
-vn -0.515036 0.508272 -0.690216
-vn -0.556365 0.235871 -0.796758
-vn -0.732050 0.035948 -0.680302
-vn -0.730079 0.280919 -0.622953
-vn -0.549889 0.016593 -0.835073
-vn -0.730079 0.280919 -0.622953
-vn -0.556365 0.235871 -0.796758
-vn -0.549889 0.016593 -0.835073
-vn -0.137038 0.934417 -0.328765
-vn -0.141598 0.929887 -0.339500
-vn -0.229349 0.870656 -0.435152
-vn -0.141598 0.929887 -0.339500
-vn -0.233757 0.866197 -0.441656
-vn -0.229349 0.870656 -0.435152
-vn -0.151357 0.841808 -0.518122
-vn -0.141598 0.929887 -0.339500
-vn -0.149833 0.848035 -0.508318
-vn -0.141598 0.929887 -0.339500
-vn -0.137038 0.934417 -0.328765
-vn -0.149833 0.848035 -0.508318
-vn -0.783017 -0.101303 -0.613695
-vn -0.787275 -0.100989 -0.608275
-vn -0.819661 -0.094117 -0.565065
-vn -0.787275 -0.100989 -0.608275
-vn -0.824120 -0.095081 -0.558377
-vn -0.819661 -0.094117 -0.565065
-vn 0.219733 -0.075510 -0.972633
-vn 0.113867 -0.056451 -0.991891
-vn 0.207125 -0.070360 -0.975781
-vn 0.113867 -0.056451 -0.991891
-vn 0.100825 -0.056839 -0.993279
-vn 0.207125 -0.070360 -0.975781
-vn -0.796721 -0.072073 -0.600035
-vn -0.819661 -0.094117 -0.565065
-vn -0.799694 -0.074176 -0.595808
-vn -0.819661 -0.094117 -0.565065
-vn -0.824120 -0.095081 -0.558377
-vn -0.799694 -0.074176 -0.595808
-vn -0.262423 -0.608163 -0.749181
-vn -0.262466 -0.605799 -0.751078
-vn -0.326439 -0.587395 -0.740544
-vn -0.262466 -0.605799 -0.751078
-vn -0.325064 -0.583268 -0.744400
-vn -0.326439 -0.587395 -0.740544
-vn -0.325064 -0.583268 -0.744400
-vn -0.368755 -0.617809 -0.694501
-vn -0.326439 -0.587395 -0.740544
-vn -0.368755 -0.617809 -0.694501
-vn -0.366732 -0.621124 -0.692613
-vn -0.326439 -0.587395 -0.740544
-vn 0.135651 -0.058713 -0.989016
-vn 0.144397 -0.062565 -0.987540
-vn 0.207125 -0.070360 -0.975781
-vn 0.144397 -0.062565 -0.987540
-vn 0.219733 -0.075510 -0.972633
-vn 0.207125 -0.070360 -0.975781
-vn -0.530815 -0.169218 -0.830422
-vn -0.549889 0.016593 -0.835073
-vn -0.338040 -0.168109 -0.925996
-vn -0.549889 0.016593 -0.835073
-vn -0.341784 0.005125 -0.939765
-vn -0.338040 -0.168109 -0.925996
-vn -0.474424 -0.451462 -0.755715
-vn -0.530815 -0.169218 -0.830422
-vn -0.298918 -0.442208 -0.845636
-vn -0.530815 -0.169218 -0.830422
-vn -0.338040 -0.168109 -0.925996
-vn -0.298918 -0.442208 -0.845636
-vn -0.339986 -0.770658 -0.538977
-vn -0.474424 -0.451462 -0.755715
-vn -0.219380 -0.740034 -0.635784
-vn -0.474424 -0.451462 -0.755715
-vn -0.298918 -0.442208 -0.845636
-vn -0.219380 -0.740034 -0.635784
-vn -0.308118 -0.845792 -0.435546
-vn -0.339986 -0.770658 -0.538977
-vn -0.213971 -0.821557 -0.528451
-vn -0.339986 -0.770658 -0.538977
-vn -0.219380 -0.740034 -0.635784
-vn -0.213971 -0.821557 -0.528451
-vn -0.450135 -0.670894 -0.589305
-vn -0.308118 -0.845792 -0.435546
-vn -0.303200 -0.657246 -0.689998
-vn -0.308118 -0.845792 -0.435546
-vn -0.213971 -0.821557 -0.528451
-vn -0.303200 -0.657246 -0.689998
-vn -0.303200 -0.657246 -0.689998
-vn -0.389637 -0.317883 -0.864369
-vn -0.450135 -0.670894 -0.589305
-vn -0.389637 -0.317883 -0.864369
-vn -0.582436 -0.291964 -0.758634
-vn -0.450135 -0.670894 -0.589305
-vn -0.389637 -0.317883 -0.864369
-vn -0.394315 -0.101461 -0.913357
-vn -0.582436 -0.291964 -0.758634
-vn -0.394315 -0.101461 -0.913357
-vn -0.615939 -0.083779 -0.783326
-vn -0.582436 -0.291964 -0.758634
-vn -0.341784 0.005125 -0.939765
-vn -0.340643 0.199708 -0.918738
-vn -0.141923 0.004781 -0.989866
-vn -0.340643 0.199708 -0.918738
-vn -0.141285 0.197838 -0.969999
-vn -0.141923 0.004781 -0.989866
-vn -0.379772 0.322230 -0.867145
-vn -0.297017 0.614079 -0.731223
-vn -0.186911 0.318785 -0.929215
-vn -0.297017 0.614079 -0.731223
-vn -0.160628 0.572026 -0.804354
-vn -0.186911 0.318785 -0.929215
-vn -0.297017 0.614079 -0.731223
-vn -0.311586 0.626785 -0.714181
-vn -0.160628 0.572026 -0.804354
-vn -0.311586 0.626785 -0.714181
-vn -0.167735 0.583693 -0.794460
-vn -0.160628 0.572026 -0.804354
-vn -0.311586 0.626785 -0.714181
-vn -0.366912 0.544933 -0.753938
-vn -0.167735 0.583693 -0.794460
-vn -0.366912 0.544933 -0.753938
-vn -0.182275 0.548030 -0.816357
-vn -0.167735 0.583693 -0.794460
-vn -0.182275 0.548030 -0.816357
-vn -0.366912 0.544933 -0.753938
-vn -0.174351 0.814871 -0.552800
-vn -0.366912 0.544933 -0.753938
-vn -0.370339 0.773014 -0.515071
-vn -0.174351 0.814871 -0.552800
-vn -0.174351 0.814871 -0.552800
-vn -0.370339 0.773014 -0.515071
-vn -0.155681 0.954668 -0.253718
-vn -0.370339 0.773014 -0.515071
-vn -0.283844 0.920677 -0.267929
-vn -0.155681 0.954668 -0.253718
-vn -0.155681 0.954668 -0.253718
-vn -0.283844 0.920677 -0.267929
-vn -0.124090 0.987698 -0.095156
-vn -0.283844 0.920677 -0.267929
-vn -0.289060 0.948825 -0.127180
-vn -0.124090 0.987698 -0.095156
-vn -0.124090 0.987698 -0.095156
-vn -0.289060 0.948825 -0.127180
-vn -0.113784 0.993394 -0.014901
-vn -0.289060 0.948825 -0.127180
-vn -0.293378 0.955452 -0.032274
-vn -0.113784 0.993394 -0.014901
-vn -0.107263 0.993482 0.038571
-vn -0.113784 0.993394 -0.014901
-vn -0.285655 0.957858 0.030146
-vn -0.113784 0.993394 -0.014901
-vn -0.293378 0.955452 -0.032274
-vn -0.285655 0.957858 0.030146
-vn -0.285655 0.957858 0.030146
-vn -0.271656 0.956444 0.106859
-vn -0.107263 0.993482 0.038571
-vn -0.271656 0.956444 0.106859
-vn -0.101507 0.989456 0.103309
-vn -0.107263 0.993482 0.038571
-vn -0.151422 0.882115 0.446031
-vn -0.114776 0.969606 0.216080
-vn -0.306688 0.839558 0.448424
-vn -0.114776 0.969606 0.216080
-vn -0.269387 0.933644 0.236092
-vn -0.306688 0.839558 0.448424
-vn -0.172841 0.641260 0.747604
-vn -0.151422 0.882115 0.446031
-vn -0.395709 0.594759 0.699769
-vn -0.151422 0.882115 0.446031
-vn -0.306688 0.839558 0.448424
-vn -0.395709 0.594759 0.699769
-vn -0.172841 0.641260 0.747604
-vn -0.395709 0.594759 0.699769
-vn -0.190440 0.332540 0.923661
-vn -0.395709 0.594759 0.699769
-vn -0.464356 0.290440 0.836671
-vn -0.190440 0.332540 0.923661
-vn -0.478164 0.165313 0.862572
-vn -0.189718 0.191129 0.963056
-vn -0.464356 0.290440 0.836671
-vn -0.189718 0.191129 0.963056
-vn -0.190440 0.332540 0.923661
-vn -0.464356 0.290440 0.836671
-vn -0.186911 0.318785 -0.929215
-vn -0.170294 0.181676 -0.968501
-vn -0.379772 0.322230 -0.867145
-vn -0.170294 0.181676 -0.968501
-vn -0.409926 0.237447 -0.880670
-vn -0.379772 0.322230 -0.867145
-vn 0.000000 0.303281 -0.952901
-vn 0.000000 0.152101 -0.988365
-vn -0.186911 0.318785 -0.929215
-vn 0.000000 0.152101 -0.988365
-vn -0.170294 0.181676 -0.968501
-vn -0.186911 0.318785 -0.929215
-vn -0.379772 0.322230 -0.867145
-vn -0.409926 0.237447 -0.880670
-vn -0.565694 0.317444 -0.761065
-vn -0.409926 0.237447 -0.880670
-vn -0.614486 0.229061 -0.754942
-vn -0.565694 0.317444 -0.761065
-vn -0.767576 0.190717 -0.611926
-vn -0.708098 0.345784 -0.615654
-vn -0.614486 0.229061 -0.754942
-vn -0.708098 0.345784 -0.615654
-vn -0.565694 0.317444 -0.761065
-vn -0.614486 0.229061 -0.754942
-vn -0.978524 0.071526 -0.193328
-vn -0.865780 0.298022 0.402004
-vn -0.963287 0.140801 -0.228590
-vn -0.963287 0.140801 -0.228590
-vn -0.865780 0.298022 0.402004
-vn -0.887417 0.192326 0.418929
-vn -0.787499 0.326946 0.522448
-vn -0.790440 0.189724 0.582417
-vn -0.865780 0.298022 0.402004
-vn -0.790440 0.189724 0.582417
-vn -0.887417 0.192326 0.418929
-vn -0.865780 0.298022 0.402004
-vn -0.790440 0.189724 0.582417
-vn -0.787499 0.326946 0.522448
-vn -0.992653 0.114144 0.040135
-vn -0.804548 -0.044303 0.592232
-vn -0.796174 -0.034614 0.604077
-vn -0.833627 -0.033590 0.551305
-vn -0.865823 -0.075119 0.494680
-vn -0.643794 0.051604 0.763457
-vn -0.734614 -0.292666 0.612119
-vn -0.998468 0.034872 0.042952
-vn -0.998297 0.019801 0.054872
-vn -0.992653 0.114144 0.040135
-vn -0.998297 0.019801 0.054872
-vn -0.987901 0.136372 0.073847
-vn -0.992653 0.114144 0.040135
-vn -0.731349 0.176702 0.658715
-vn -0.687158 0.108164 0.718411
-vn -0.926994 -0.129511 0.352007
-vn -0.687158 0.108164 0.718411
-vn -0.905834 -0.117974 0.406875
-vn -0.926994 -0.129511 0.352007
-vn -0.216505 -0.964012 0.154295
-vn -0.128723 -0.973951 0.186681
-vn -0.344016 -0.936633 0.066114
-vn -0.804548 -0.044303 0.592232
-vn -0.791053 -0.070536 0.607668
-vn -0.796174 -0.034614 0.604077
-vn -0.051570 -0.896247 0.440547
-vn -0.035555 -0.976723 0.211536
-vn -0.055472 -0.996740 -0.058593
-vn -0.035555 -0.976723 0.211536
-vn -0.040877 -0.998968 -0.019776
-vn -0.055472 -0.996740 -0.058593
-vn -0.173479 0.168867 0.970252
-vn -0.103368 0.223513 0.969204
-vn -0.170701 0.176661 0.969357
-vn -0.103368 0.223513 0.969204
-vn -0.097159 0.235044 0.967117
-vn -0.170701 0.176661 0.969357
-vn -0.052936 0.216365 0.974876
-vn -0.097159 0.235044 0.967117
-vn -0.064598 0.228971 0.971287
-vn -0.097159 0.235044 0.967117
-vn -0.103368 0.223513 0.969204
-vn -0.064598 0.228971 0.971287
-vn -0.170701 0.176661 0.969357
-vn -0.168149 0.101726 0.980499
-vn -0.173479 0.168867 0.970252
-vn -0.168149 0.101726 0.980499
-vn -0.164097 0.082307 0.983004
-vn -0.173479 0.168867 0.970252
-vn -0.064598 0.228971 0.971287
-vn -0.028834 -0.044924 0.998574
-vn -0.052936 0.216365 0.974876
-vn -0.028834 -0.044924 0.998574
-vn -0.002361 -0.045709 0.998952
-vn -0.052936 0.216365 0.974876
-vn -0.116158 0.033510 0.992665
-vn -0.164097 0.082307 0.983004
-vn -0.123951 0.033775 0.991713
-vn -0.164097 0.082307 0.983004
-vn -0.168149 0.101726 0.980499
-vn -0.123951 0.033775 0.991713
-vn -0.082393 -0.961065 0.263752
-vn -0.031297 -0.968343 0.247652
-vn -0.216505 -0.964012 0.154295
-vn -0.031297 -0.968343 0.247652
-vn -0.128723 -0.973951 0.186681
-vn -0.216505 -0.964012 0.154295
-vn -0.035555 -0.976723 0.211536
-vn -0.051570 -0.896247 0.440547
-vn -0.069238 -0.603543 0.794318
-vn -0.051570 -0.896247 0.440547
-vn -0.059046 -0.495915 0.866361
-vn -0.069238 -0.603543 0.794318
-vn 0.073850 -0.984960 -0.156207
-vn 0.066127 -0.984212 -0.164178
-vn 0.011693 -0.985385 -0.169942
-vn 0.066127 -0.984212 -0.164178
-vn 0.001533 -0.984680 -0.174366
-vn 0.011693 -0.985385 -0.169942
-vn 0.093677 -0.987412 -0.127443
-vn 0.091072 -0.986479 -0.136255
-vn 0.073850 -0.984960 -0.156207
-vn 0.091072 -0.986479 -0.136255
-vn 0.066127 -0.984212 -0.164178
-vn 0.073850 -0.984960 -0.156207
-vn 0.000000 -0.998857 -0.047789
-vn -0.000000 -0.998702 -0.050933
-vn 0.055000 -0.996369 -0.064993
-vn -0.000000 -0.998702 -0.050933
-vn 0.055740 -0.996133 -0.067916
-vn 0.055000 -0.996369 -0.064993
-vn 0.011693 -0.985385 -0.169942
-vn 0.001533 -0.984680 -0.174366
-vn -0.049456 -0.988223 -0.144810
-vn 0.001533 -0.984680 -0.174366
-vn -0.055033 -0.987514 -0.147607
-vn -0.049456 -0.988223 -0.144810
-vn -0.049456 -0.988223 -0.144810
-vn -0.055033 -0.987514 -0.147607
-vn -0.071620 -0.991106 -0.112155
-vn -0.055033 -0.987514 -0.147607
-vn -0.073058 -0.990988 -0.112275
-vn -0.071620 -0.991106 -0.112155
-vn -0.073058 -0.990988 -0.112275
-vn -0.055472 -0.996740 -0.058593
-vn -0.071620 -0.991106 -0.112155
-vn -0.055472 -0.996740 -0.058593
-vn -0.060234 -0.996137 -0.063893
-vn -0.071620 -0.991106 -0.112155
-vn -0.055472 -0.996740 -0.058593
-vn -0.040877 -0.998968 -0.019776
-vn -0.060234 -0.996137 -0.063893
-vn 0.085405 -0.992811 -0.083858
-vn 0.085338 -0.992316 -0.089595
-vn 0.093677 -0.987412 -0.127443
-vn 0.085338 -0.992316 -0.089595
-vn 0.091072 -0.986479 -0.136255
-vn 0.093677 -0.987412 -0.127443
-vn 0.055000 -0.996369 -0.064993
-vn 0.055740 -0.996133 -0.067916
-vn 0.085405 -0.992811 -0.083858
-vn 0.055740 -0.996133 -0.067916
-vn 0.085338 -0.992316 -0.089595
-vn 0.085405 -0.992811 -0.083858
-vn -0.905940 0.384539 0.177207
-vn -0.941576 0.289157 0.172692
-vn -0.859273 0.317420 0.401117
-vn -0.941576 0.289157 0.172692
-vn -0.877960 0.234283 0.417490
-vn -0.859273 0.317420 0.401117
-vn -0.101507 0.989456 0.103309
-vn -0.114776 0.969606 0.216080
-vn -0.000000 0.994745 0.102388
-vn -0.114776 0.969606 0.216080
-vn -0.000000 0.977356 0.211603
-vn -0.000000 0.994745 0.102388
-vn -0.271656 0.956444 0.106859
-vn -0.269387 0.933644 0.236092
-vn -0.101507 0.989456 0.103309
-vn -0.269387 0.933644 0.236092
-vn -0.114776 0.969606 0.216080
-vn -0.101507 0.989456 0.103309
-vn -0.586343 0.801355 0.118456
-vn -0.566436 0.773715 0.283751
-vn -0.271656 0.956444 0.106859
-vn -0.566436 0.773715 0.283751
-vn -0.269387 0.933644 0.236092
-vn -0.271656 0.956444 0.106859
-vn -0.813126 0.562843 0.148437
-vn -0.790476 0.510996 0.337684
-vn -0.586343 0.801355 0.118456
-vn -0.790476 0.510996 0.337684
-vn -0.566436 0.773715 0.283751
-vn -0.586343 0.801355 0.118456
-vn -0.813126 0.562843 0.148437
-vn -0.905940 0.384539 0.177207
-vn -0.790476 0.510996 0.337684
-vn -0.905940 0.384539 0.177207
-vn -0.859273 0.317420 0.401117
-vn -0.790476 0.510996 0.337684
-vn -0.796705 -0.095826 0.596723
-vn -0.804548 -0.044303 0.592232
-vn -0.791556 -0.097603 0.603252
-vn -0.069238 -0.603543 0.794318
-vn -0.059046 -0.495915 0.866361
-vn -0.028834 -0.044924 0.998574
-vn -0.059046 -0.495915 0.866361
-vn -0.002361 -0.045709 0.998952
-vn -0.028834 -0.044924 0.998574
-vn -0.796705 -0.095826 0.596723
-vn -0.791053 -0.070536 0.607668
-vn -0.804548 -0.044303 0.592232
-vn -0.068959 0.997617 0.002300
-vn -0.084065 0.996201 0.022715
-vn -0.218354 0.974305 0.055235
-vn -0.084065 0.996201 0.022715
-vn -0.252470 0.964683 0.075137
-vn -0.218354 0.974305 0.055235
-vn -0.014728 0.999791 -0.014175
-vn -0.018825 0.999773 -0.010023
-vn -0.068959 0.997617 0.002300
-vn -0.018825 0.999773 -0.010023
-vn -0.084065 0.996201 0.022715
-vn -0.068959 0.997617 0.002300
-vn -0.015249 0.999853 -0.007842
-vn -0.015359 0.999847 -0.008355
-vn -0.014728 0.999791 -0.014175
-vn -0.015359 0.999847 -0.008355
-vn -0.018825 0.999773 -0.010023
-vn -0.014728 0.999791 -0.014175
-vn -0.007721 0.999968 -0.001961
-vn -0.015359 0.999847 -0.008355
-vn -0.007912 0.999965 -0.002547
-vn -0.015359 0.999847 -0.008355
-vn -0.015249 0.999853 -0.007842
-vn -0.007912 0.999965 -0.002547
-vn 0.000000 1.000000 -0.000000
-vn -0.007721 0.999968 -0.001961
-vn -0.000000 1.000000 -0.000005
-vn -0.007721 0.999968 -0.001961
-vn -0.007912 0.999965 -0.002547
-vn -0.000000 1.000000 -0.000005
-vn -0.110017 0.005351 -0.993915
-vn -0.126614 0.038353 -0.991210
-vn -0.111445 0.005659 -0.993755
-vn -0.126614 0.038353 -0.991210
-vn -0.133476 0.042166 -0.990155
-vn -0.111445 0.005659 -0.993755
-vn -0.126614 0.038353 -0.991210
-vn -0.253493 0.077283 -0.964245
-vn -0.133476 0.042166 -0.990155
-vn -0.253493 0.077283 -0.964245
-vn -0.262361 0.077868 -0.961823
-vn -0.133476 0.042166 -0.990155
-vn -0.340643 0.199708 -0.918738
-vn -0.556365 0.235871 -0.796758
-vn -0.306784 0.535384 -0.786923
-vn -0.556365 0.235871 -0.796758
-vn -0.515036 0.508272 -0.690216
-vn -0.306784 0.535384 -0.786923
-vn -0.141907 0.486043 -0.862337
-vn -0.141285 0.197838 -0.969999
-vn -0.306784 0.535384 -0.786923
-vn -0.141285 0.197838 -0.969999
-vn -0.340643 0.199708 -0.918738
-vn -0.306784 0.535384 -0.786923
-vn 0.888112 0.137352 -0.438624
-vn 0.961150 0.056049 -0.270275
-vn 0.946841 -0.010033 -0.321544
-vn 0.956670 -0.001270 0.291171
-vn 0.840437 -0.003126 0.541901
-vn 0.963043 0.024640 0.268217
-vn 0.840437 -0.003126 0.541901
-vn 0.857807 0.003552 0.513960
-vn 0.963043 0.024640 0.268217
-vn 0.621471 -0.025881 0.783010
-vn 0.649274 -0.021358 0.760255
-vn 0.840437 -0.003126 0.541901
-vn 0.649274 -0.021358 0.760255
-vn 0.857807 0.003552 0.513960
-vn 0.840437 -0.003126 0.541901
-vn 0.223132 -0.032589 0.974243
-vn 0.212283 -0.038788 0.976438
-vn 0.000000 -0.039132 0.999234
-vn 0.212283 -0.038788 0.976438
-vn -0.000000 -0.037251 0.999306
-vn 0.000000 -0.039132 0.999234
-vn 0.963043 0.024640 0.268217
-vn 0.996973 0.006708 0.077452
-vn 0.956670 -0.001270 0.291171
-vn 0.996973 0.006708 0.077452
-vn 0.994531 0.006140 0.104260
-vn 0.956670 -0.001270 0.291171
-vn 0.996973 0.006708 0.077452
-vn 0.984573 -0.023021 -0.173451
-vn 0.999371 0.000763 -0.035441
-vn 0.999371 0.000763 -0.035441
-vn 0.994531 0.006140 0.104260
-vn 0.996973 0.006708 0.077452
-vn 0.928473 0.002886 -0.371389
-vn 0.946841 -0.010033 -0.321544
-vn 0.984573 -0.023021 -0.173451
-vn 0.946841 -0.010033 -0.321544
-vn 0.961150 0.056049 -0.270275
-vn 0.984573 -0.023021 -0.173451
-vn 0.961150 0.056049 -0.270275
-vn 0.999371 0.000763 -0.035441
-vn 0.984573 -0.023021 -0.173451
-vn 0.621471 -0.025881 0.783010
-vn 0.405789 -0.043061 0.912952
-vn 0.649274 -0.021358 0.760255
-vn 0.405789 -0.043061 0.912952
-vn 0.427059 -0.024260 0.903898
-vn 0.649274 -0.021358 0.760255
-vn 0.405789 -0.043061 0.912952
-vn 0.212283 -0.038788 0.976438
-vn 0.427059 -0.024260 0.903898
-vn 0.212283 -0.038788 0.976438
-vn 0.223132 -0.032589 0.974243
-vn 0.427059 -0.024260 0.903898
-vn 0.984573 -0.023021 -0.173451
-vn 0.962439 -0.024231 -0.270413
-vn 0.928473 0.002886 -0.371389
-vn 0.202739 -0.978340 -0.041815
-vn 0.050170 -0.995292 -0.082922
-vn 0.023703 -0.999235 -0.031121
-vn -0.601143 0.119267 0.790191
-vn -0.603048 0.121629 0.788378
-vn -0.614054 0.126132 0.779120
-vn -0.614054 0.126132 0.779120
-vn -0.601351 0.120282 0.789879
-vn -0.601143 0.119267 0.790191
-vn -0.601143 0.119267 0.790191
-vn -0.601351 0.120282 0.789879
-vn -0.597652 0.112916 0.793764
-vn -0.603048 0.121629 0.788378
-vn -0.599764 0.125022 0.790350
-vn -0.614054 0.126132 0.779120
-vn -0.599764 0.125022 0.790350
-vn -0.635852 0.133040 0.760258
-vn -0.614054 0.126132 0.779120
-vn -0.635852 0.133040 0.760258
-vn -0.687777 0.151464 0.709945
-vn -0.614054 0.126132 0.779120
-vn -0.597652 0.112916 0.793764
-vn -0.601351 0.120282 0.789879
-vn -0.572387 0.153981 0.805396
-vn -0.572387 0.153981 0.805396
-vn -0.601351 0.120282 0.789879
-vn -0.594374 0.153736 0.789357
-vn -0.601351 0.120282 0.789879
-vn -0.668633 0.073281 0.739973
-vn -0.594374 0.153736 0.789357
-vn -0.093377 0.001257 -0.995630
-vn -0.110017 0.005351 -0.993915
-vn -0.094757 0.001026 -0.995500
-vn -0.110017 0.005351 -0.993915
-vn -0.111445 0.005659 -0.993755
-vn -0.094757 0.001026 -0.995500
-vn -0.731349 0.176702 0.658715
-vn -0.997539 -0.014146 0.068676
-vn -0.998468 0.034872 0.042952
-vn -0.997539 -0.014146 0.068676
-vn -0.998297 0.019801 0.054872
-vn -0.998468 0.034872 0.042952
-vn 0.757937 0.083145 -0.647008
-vn 0.812212 0.128738 -0.568980
-vn 0.888112 0.137352 -0.438624
-vn 0.812212 0.128738 -0.568980
-vn 0.961150 0.056049 -0.270275
-vn 0.888112 0.137352 -0.438624
-vn 0.743623 0.126560 -0.656511
-vn 0.812212 0.128738 -0.568980
-vn 0.757937 0.083145 -0.647008
-vn 0.743623 0.126560 -0.656511
-vn 0.757937 0.083145 -0.647008
-vn 0.728687 0.061348 -0.682093
-vn 0.765253 0.041319 -0.642403
-vn 0.728687 0.061348 -0.682093
-vn 0.793371 0.048012 -0.606842
-vn 0.728687 0.061348 -0.682093
-vn 0.757937 0.083145 -0.647008
-vn 0.793371 0.048012 -0.606842
-vn 0.793371 0.048012 -0.606842
-vn 0.928473 0.002886 -0.371389
-vn 0.765253 0.041319 -0.642403
-vn -0.784323 -0.020364 0.620019
-vn -0.804548 -0.044303 0.592232
-vn -0.643794 0.051604 0.763457
-vn -0.643794 0.051604 0.763457
-vn -0.804548 -0.044303 0.592232
-vn -0.833627 -0.033590 0.551305
-vn -0.887379 0.408080 0.214547
-vn -0.665715 0.458373 0.588828
-vn -0.910702 0.410936 -0.041879
-vn -0.910702 0.410936 -0.041879
-vn -0.910865 0.382102 -0.155957
-vn -0.775796 0.611274 -0.156478
-vn -0.910865 0.382102 -0.155957
-vn -0.910702 0.410936 -0.041879
-vn -0.865780 0.298022 0.402004
-vn -0.926853 0.296065 0.230845
-vn -0.849402 0.514429 0.117811
-vn -0.817308 0.373606 0.438665
-vn -0.807536 0.080137 0.584349
-vn -0.849402 0.514429 0.117811
-vn -0.926853 0.296065 0.230845
-vn 0.996773 -0.018467 0.078112
-vn 0.963650 -0.052073 0.262043
-vn 0.996358 -0.022534 0.082241
-vn 0.963650 -0.052073 0.262043
-vn 0.962906 -0.051413 0.264895
-vn 0.996358 -0.022534 0.082241
-vn 0.999792 0.019275 -0.006705
-vn 0.996773 -0.018467 0.078112
-vn 0.999913 0.012170 -0.005074
-vn 0.996773 -0.018467 0.078112
-vn 0.996358 -0.022534 0.082241
-vn 0.999913 0.012170 -0.005074
-vn 0.252664 -0.057093 0.965868
-vn 0.000000 -0.036099 0.999348
-vn 0.251793 -0.044009 0.966780
-vn 0.000000 -0.036099 0.999348
-vn -0.000000 -0.022294 0.999751
-vn 0.251793 -0.044009 0.966780
-vn 0.493589 -0.076185 0.866352
-vn 0.252664 -0.057093 0.965868
-vn 0.494095 -0.060695 0.867287
-vn 0.252664 -0.057093 0.965868
-vn 0.251793 -0.044009 0.966780
-vn 0.494095 -0.060695 0.867287
-vn 0.689423 -0.095290 0.718063
-vn 0.493589 -0.076185 0.866352
-vn 0.690337 -0.077073 0.719371
-vn 0.493589 -0.076185 0.866352
-vn 0.494095 -0.060695 0.867287
-vn 0.690337 -0.077073 0.719371
-vn 0.861733 -0.089612 0.499385
-vn 0.689423 -0.095290 0.718063
-vn 0.862233 -0.079902 0.500170
-vn 0.689423 -0.095290 0.718063
-vn 0.690337 -0.077073 0.719371
-vn 0.862233 -0.079902 0.500170
-vn 0.963650 -0.052073 0.262043
-vn 0.861733 -0.089612 0.499385
-vn 0.962906 -0.051413 0.264895
-vn 0.861733 -0.089612 0.499385
-vn 0.862233 -0.079902 0.500170
-vn 0.962906 -0.051413 0.264895
-vn 0.508924 -0.173879 0.843067
-vn 0.530011 -0.161213 0.832525
-vn 0.580600 -0.129349 0.803849
-vn 0.530011 -0.161213 0.832525
-vn 0.606607 -0.112074 0.787063
-vn 0.580600 -0.129349 0.803849
-vn 0.420642 -0.894155 -0.153453
-vn 0.445537 -0.885349 -0.132870
-vn 0.423196 -0.892876 -0.153873
-vn 0.445537 -0.885349 -0.132870
-vn 0.445045 -0.885607 -0.132797
-vn 0.423196 -0.892876 -0.153873
-vn 0.443902 -0.894515 -0.052850
-vn 0.444520 -0.893994 -0.056369
-vn 0.445537 -0.885349 -0.132870
-vn 0.444520 -0.893994 -0.056369
-vn 0.445045 -0.885607 -0.132797
-vn 0.445537 -0.885349 -0.132870
-vn 0.382942 -0.923043 0.036704
-vn 0.390221 -0.920247 0.029540
-vn 0.443902 -0.894515 -0.052850
-vn 0.390221 -0.920247 0.029540
-vn 0.444520 -0.893994 -0.056369
-vn 0.443902 -0.894515 -0.052850
-vn 0.308278 -0.943585 0.120883
-vn 0.309267 -0.942490 0.126753
-vn 0.382942 -0.923043 0.036704
-vn 0.309267 -0.942490 0.126753
-vn 0.390221 -0.920247 0.029540
-vn 0.382942 -0.923043 0.036704
-vn 0.308278 -0.943585 0.120883
-vn 0.240249 -0.947922 0.209103
-vn 0.309267 -0.942490 0.126753
-vn 0.240249 -0.947922 0.209103
-vn 0.245596 -0.944213 0.219420
-vn 0.309267 -0.942490 0.126753
-vn 0.143501 -0.937524 0.316949
-vn 0.245596 -0.944213 0.219420
-vn 0.139149 -0.943161 0.301804
-vn 0.245596 -0.944213 0.219420
-vn 0.240249 -0.947922 0.209103
-vn 0.139149 -0.943161 0.301804
-vn 0.139149 -0.943161 0.301804
-vn 0.000000 -0.924899 0.380214
-vn 0.143501 -0.937524 0.316949
-vn 0.000000 -0.924899 0.380214
-vn 0.000000 -0.917956 0.396682
-vn 0.143501 -0.937524 0.316949
-vn 0.928473 0.002886 -0.371389
-vn 0.793371 0.048012 -0.606842
-vn 0.946841 -0.010033 -0.321544
-vn 0.207643 0.930056 -0.303118
-vn 0.208097 0.929860 -0.303408
-vn 0.218086 0.925466 -0.309759
-vn 0.208097 0.929860 -0.303408
-vn 0.218979 0.925066 -0.310326
-vn 0.218086 0.925466 -0.309759
-vn 0.854784 0.009411 -0.518898
-vn 0.854781 0.009420 -0.518903
-vn 0.854783 0.009414 -0.518900
-vn 0.854781 0.009420 -0.518903
-vn 0.854780 0.009423 -0.518904
-vn 0.854783 0.009414 -0.518900
-vn 0.391140 -0.918370 -0.060048
-vn 0.391137 -0.918371 -0.060046
-vn 0.391102 -0.918388 -0.060026
-vn 0.391137 -0.918371 -0.060046
-vn 0.391100 -0.918389 -0.060025
-vn 0.391102 -0.918388 -0.060026
-vn -0.157284 -0.147242 -0.976515
-vn -0.157284 -0.147242 -0.976515
-vn -0.157283 -0.147243 -0.976515
-vn -0.157284 -0.147242 -0.976515
-vn -0.157282 -0.147243 -0.976515
-vn -0.157283 -0.147243 -0.976515
-vn 0.791236 0.154415 0.591693
-vn 0.791187 0.154399 0.591763
-vn 0.790899 0.154309 0.592172
-vn 0.791187 0.154399 0.591763
-vn 0.790837 0.154289 0.592260
-vn 0.790899 0.154309 0.592172
-vn -0.002040 -0.982183 -0.187914
-vn 0.000000 -0.975856 -0.218413
-vn -0.019019 -0.978509 -0.205324
-vn 0.023703 -0.999235 -0.031121
-vn 0.050170 -0.995292 -0.082922
-vn -0.050170 -0.995292 -0.082922
-vn -0.050170 -0.995292 -0.082922
-vn -0.023703 -0.999235 -0.031121
-vn 0.023703 -0.999235 -0.031121
-vn 0.002040 -0.982183 -0.187914
-vn -0.002040 -0.982183 -0.187914
-vn 0.050170 -0.995292 -0.082922
-vn -0.002040 -0.982183 -0.187914
-vn -0.050170 -0.995292 -0.082922
-vn 0.050170 -0.995292 -0.082922
-vn 0.019019 -0.978509 -0.205324
-vn 0.015799 -0.977740 -0.209227
-vn 0.000000 -0.975856 -0.218413
-vn 0.002040 -0.982183 -0.187914
-vn 0.000000 -0.975856 -0.218413
-vn -0.002040 -0.982183 -0.187914
-vn -0.019019 -0.978509 -0.205324
-vn -0.015799 -0.977740 -0.209227
-vn -0.067791 -0.985150 -0.157747
-vn -0.019019 -0.978509 -0.205324
-vn 0.000000 -0.975856 -0.218413
-vn -0.015799 -0.977740 -0.209227
-vn -0.067791 -0.985150 -0.157747
-vn -0.015773 -0.974169 -0.225268
-vn 0.012040 -0.967510 -0.252545
-vn -0.067791 -0.985150 -0.157747
-vn -0.015799 -0.977740 -0.209227
-vn -0.015773 -0.974169 -0.225268
-vn 0.019019 -0.978509 -0.205324
-vn 0.000000 -0.975856 -0.218413
-vn 0.002040 -0.982183 -0.187914
-vn 0.067791 -0.985150 -0.157747
-vn 0.015773 -0.974169 -0.225268
-vn 0.015799 -0.977740 -0.209227
-vn 0.067791 -0.985150 -0.157747
-vn 0.015799 -0.977740 -0.209227
-vn 0.019019 -0.978509 -0.205324
-vn -0.012040 -0.967510 -0.252545
-vn 0.015773 -0.974169 -0.225268
-vn 0.067791 -0.985150 -0.157747
-vn 0.697758 0.640804 0.320162
-vn 0.377613 0.848927 0.369770
-vn 0.668696 0.574599 0.471891
-vn 0.668696 0.574599 0.471891
-vn 0.377613 0.848927 0.369770
-vn 0.362004 0.774468 0.518799
-vn 0.000000 0.921893 0.387443
-vn -0.377616 0.848928 0.369767
-vn -0.000000 0.843980 0.536375
-vn -0.000000 0.843980 0.536375
-vn -0.377616 0.848928 0.369767
-vn -0.362004 0.774468 0.518799
-vn -0.697759 0.640807 0.320155
-vn -0.911691 0.329542 0.245403
-vn -0.668696 0.574599 0.471891
-vn -0.668696 0.574599 0.471891
-vn -0.911691 0.329542 0.245403
-vn -0.873986 0.276575 0.399567
-vn -0.986768 -0.037754 0.157680
-vn -0.911686 -0.404959 0.069542
-vn -0.945676 -0.075697 0.316176
-vn -0.945676 -0.075697 0.316176
-vn -0.911686 -0.404959 0.069542
-vn -0.873983 -0.427558 0.230973
-vn -0.697752 -0.716323 -0.004794
-vn -0.377636 -0.924330 -0.054816
-vn -0.668690 -0.726020 0.160464
-vn -0.668690 -0.726020 0.160464
-vn -0.377636 -0.924330 -0.054816
-vn -0.362020 -0.925447 0.111757
-vn -0.000000 -0.997398 -0.072093
-vn 0.377636 -0.924330 -0.054816
-vn 0.000000 -0.995385 0.095966
-vn 0.000000 -0.995385 0.095966
-vn 0.377636 -0.924330 -0.054816
-vn 0.362020 -0.925447 0.111757
-vn 0.697752 -0.716323 -0.004794
-vn 0.911686 -0.404959 0.069542
-vn 0.668690 -0.726020 0.160464
-vn 0.668690 -0.726020 0.160464
-vn 0.911686 -0.404959 0.069542
-vn 0.873983 -0.427558 0.230973
-vn 0.986768 -0.037754 0.157680
-vn 0.911691 0.329538 0.245406
-vn 0.945676 -0.075697 0.316176
-vn 0.945676 -0.075697 0.316176
-vn 0.911691 0.329538 0.245406
-vn 0.873986 0.276575 0.399567
-vn 0.000000 0.921893 0.387443
-vn 0.377613 0.848927 0.369770
-vn 0.000000 0.972184 0.234219
-vn 0.000000 0.972184 0.234219
-vn 0.377613 0.848927 0.369770
-vn 0.382689 0.898156 0.216482
-vn -0.697759 0.640807 0.320155
-vn -0.377616 0.848928 0.369767
-vn -0.707113 0.687335 0.166016
-vn -0.707113 0.687335 0.166016
-vn -0.377616 0.848928 0.369767
-vn -0.382694 0.898152 0.216489
-vn -0.986768 -0.037754 0.157680
-vn -0.911691 0.329542 0.245403
-vn -0.999999 -0.000329 0.001369
-vn -0.999999 -0.000329 0.001369
-vn -0.911691 0.329542 0.245403
-vn -0.923879 0.371836 0.090475
-vn -0.697752 -0.716323 -0.004794
-vn -0.911686 -0.404959 0.069542
-vn -0.707102 -0.688000 -0.163286
-vn -0.707102 -0.688000 -0.163286
-vn -0.911686 -0.404959 0.069542
-vn -0.923879 -0.372490 -0.087743
-vn -0.000000 -0.997398 -0.072093
-vn -0.377636 -0.924330 -0.054816
-vn 0.000000 -0.972838 -0.231488
-vn 0.000000 -0.972838 -0.231488
-vn -0.377636 -0.924330 -0.054816
-vn -0.382697 -0.898803 -0.213765
-vn 0.697752 -0.716323 -0.004794
-vn 0.377636 -0.924330 -0.054816
-vn 0.707102 -0.688000 -0.163286
-vn 0.707102 -0.688000 -0.163286
-vn 0.377636 -0.924330 -0.054816
-vn 0.382697 -0.898803 -0.213765
-vn 0.986768 -0.037754 0.157680
-vn 0.911686 -0.404959 0.069542
-vn 0.999999 -0.000329 0.001369
-vn 0.999999 -0.000329 0.001369
-vn 0.911686 -0.404959 0.069542
-vn 0.923879 -0.372490 -0.087743
-vn 0.707113 0.687339 0.166001
-vn 0.697758 0.640804 0.320162
-vn 0.923881 0.371832 0.090466
-vn 0.923881 0.371832 0.090466
-vn 0.697758 0.640804 0.320162
-vn 0.911691 0.329538 0.245406
-vn 0.707113 0.687339 0.166001
-vn 0.382689 0.898156 0.216482
-vn 0.697758 0.640804 0.320162
-vn 0.697758 0.640804 0.320162
-vn 0.382689 0.898156 0.216482
-vn 0.377613 0.848927 0.369770
-vn 0.000000 0.921893 0.387443
-vn 0.000000 0.972184 0.234219
-vn -0.377616 0.848928 0.369767
-vn -0.377616 0.848928 0.369767
-vn 0.000000 0.972184 0.234219
-vn -0.382694 0.898152 0.216489
-vn -0.697759 0.640807 0.320155
-vn -0.707113 0.687335 0.166016
-vn -0.911691 0.329542 0.245403
-vn -0.911691 0.329542 0.245403
-vn -0.707113 0.687335 0.166016
-vn -0.923879 0.371836 0.090475
-vn -0.986768 -0.037754 0.157680
-vn -0.999999 -0.000329 0.001369
-vn -0.911686 -0.404959 0.069542
-vn -0.911686 -0.404959 0.069542
-vn -0.999999 -0.000329 0.001369
-vn -0.923879 -0.372490 -0.087743
-vn 0.697752 -0.716323 -0.004794
-vn 0.707102 -0.688000 -0.163286
-vn 0.911686 -0.404959 0.069542
-vn 0.911686 -0.404959 0.069542
-vn 0.707102 -0.688000 -0.163286
-vn 0.923879 -0.372490 -0.087743
-vn 0.986768 -0.037754 0.157680
-vn 0.999999 -0.000329 0.001369
-vn 0.911691 0.329538 0.245406
-vn 0.911691 0.329538 0.245406
-vn 0.999999 -0.000329 0.001369
-vn 0.923881 0.371832 0.090466
-vn 0.873986 0.276575 0.399567
-vn 0.911691 0.329538 0.245406
-vn 0.668696 0.574599 0.471891
-vn 0.668696 0.574599 0.471891
-vn 0.911691 0.329538 0.245406
-vn 0.697758 0.640804 0.320162
-vn 0.986768 -0.037754 0.157680
-vn 0.945676 -0.075697 0.316176
-vn 0.911686 -0.404959 0.069542
-vn 0.911686 -0.404959 0.069542
-vn 0.945676 -0.075697 0.316176
-vn 0.873983 -0.427558 0.230973
-vn 0.697752 -0.716323 -0.004794
-vn 0.668690 -0.726020 0.160464
-vn 0.377636 -0.924330 -0.054816
-vn 0.377636 -0.924330 -0.054816
-vn 0.668690 -0.726020 0.160464
-vn 0.362020 -0.925447 0.111757
-vn -0.000000 -0.997398 -0.072093
-vn 0.000000 -0.995385 0.095966
-vn -0.377636 -0.924330 -0.054816
-vn -0.377636 -0.924330 -0.054816
-vn 0.000000 -0.995385 0.095966
-vn -0.362020 -0.925447 0.111757
-vn -0.697752 -0.716323 -0.004794
-vn -0.668690 -0.726020 0.160464
-vn -0.911686 -0.404959 0.069542
-vn -0.911686 -0.404959 0.069542
-vn -0.668690 -0.726020 0.160464
-vn -0.873983 -0.427558 0.230973
-vn -0.986768 -0.037754 0.157680
-vn -0.945676 -0.075697 0.316176
-vn -0.911691 0.329542 0.245403
-vn -0.911691 0.329542 0.245403
-vn -0.945676 -0.075697 0.316176
-vn -0.873986 0.276575 0.399567
-vn -0.697759 0.640807 0.320155
-vn -0.668696 0.574599 0.471891
-vn -0.377616 0.848928 0.369767
-vn -0.377616 0.848928 0.369767
-vn -0.668696 0.574599 0.471891
-vn -0.362004 0.774468 0.518799
-vn 0.000000 0.921893 0.387443
-vn -0.000000 0.843980 0.536375
-vn 0.377613 0.848927 0.369770
-vn 0.377613 0.848927 0.369770
-vn -0.000000 0.843980 0.536375
-vn 0.362004 0.774468 0.518799
-vn 0.000000 -0.277783 0.960644
-vn 0.000000 -0.277750 0.960654
-vn -0.017785 -0.274350 0.961465
-vn -0.017785 -0.274350 0.961465
-vn 0.000000 -0.277750 0.960654
-vn -0.017790 -0.274330 0.961471
-vn -0.032750 -0.264436 0.963847
-vn -0.017785 -0.274350 0.961465
-vn -0.032751 -0.264436 0.963847
-vn -0.032751 -0.264436 0.963847
-vn -0.017785 -0.274350 0.961465
-vn -0.017790 -0.274330 0.961471
-vn 0.032750 -0.264436 0.963847
-vn 0.032751 -0.264436 0.963847
-vn 0.017785 -0.274350 0.961465
-vn 0.017785 -0.274350 0.961465
-vn 0.032751 -0.264436 0.963847
-vn 0.017790 -0.274330 0.961471
-vn 0.000000 -0.277783 0.960644
-vn 0.017785 -0.274350 0.961465
-vn 0.000000 -0.277750 0.960654
-vn 0.000000 -0.277750 0.960654
-vn 0.017785 -0.274350 0.961465
-vn 0.017790 -0.274330 0.961471
-vn 0.046351 -0.232601 0.971467
-vn 0.046347 -0.232603 0.971467
-vn 0.042918 -0.249889 0.967323
-vn 0.042918 -0.249889 0.967323
-vn 0.046347 -0.232603 0.971467
-vn 0.042909 -0.249890 0.967323
-vn 0.032750 -0.264436 0.963847
-vn 0.042918 -0.249889 0.967323
-vn 0.032751 -0.264436 0.963847
-vn 0.032751 -0.264436 0.963847
-vn 0.042918 -0.249889 0.967323
-vn 0.042909 -0.249890 0.967323
-vn 0.032644 -0.200849 0.979078
-vn 0.032676 -0.200818 0.979083
-vn 0.042938 -0.215297 0.975604
-vn 0.042938 -0.215297 0.975604
-vn 0.032676 -0.200818 0.979083
-vn 0.042958 -0.215274 0.975608
-vn 0.046351 -0.232601 0.971467
-vn 0.042938 -0.215297 0.975604
-vn 0.046347 -0.232603 0.971467
-vn 0.046347 -0.232603 0.971467
-vn 0.042938 -0.215297 0.975604
-vn 0.042958 -0.215274 0.975608
-vn -0.000000 -0.187577 0.982250
-vn -0.000000 -0.187566 0.982252
-vn 0.017785 -0.190857 0.981457
-vn 0.017785 -0.190857 0.981457
-vn -0.000000 -0.187566 0.982252
-vn 0.017807 -0.190835 0.981461
-vn 0.032644 -0.200849 0.979078
-vn 0.017785 -0.190857 0.981457
-vn 0.032676 -0.200818 0.979083
-vn 0.032676 -0.200818 0.979083
-vn 0.017785 -0.190857 0.981457
-vn 0.017807 -0.190835 0.981461
-vn -0.032644 -0.200849 0.979078
-vn -0.032676 -0.200819 0.979083
-vn -0.017785 -0.190857 0.981457
-vn -0.017785 -0.190857 0.981457
-vn -0.032676 -0.200819 0.979083
-vn -0.017807 -0.190835 0.981461
-vn -0.000000 -0.187577 0.982250
-vn -0.017785 -0.190857 0.981457
-vn -0.000000 -0.187566 0.982252
-vn -0.000000 -0.187566 0.982252
-vn -0.017785 -0.190857 0.981457
-vn -0.017807 -0.190835 0.981461
-vn -0.046351 -0.232601 0.971467
-vn -0.046347 -0.232603 0.971467
-vn -0.042938 -0.215297 0.975604
-vn -0.042938 -0.215297 0.975604
-vn -0.046347 -0.232603 0.971467
-vn -0.042958 -0.215274 0.975608
-vn -0.032644 -0.200849 0.979078
-vn -0.042938 -0.215297 0.975604
-vn -0.032676 -0.200819 0.979083
-vn -0.032676 -0.200819 0.979083
-vn -0.042938 -0.215297 0.975604
-vn -0.042958 -0.215274 0.975608
-vn -0.032750 -0.264436 0.963847
-vn -0.032751 -0.264436 0.963847
-vn -0.042918 -0.249889 0.967323
-vn -0.042918 -0.249889 0.967323
-vn -0.032751 -0.264436 0.963847
-vn -0.042909 -0.249890 0.967323
-vn -0.046351 -0.232601 0.971467
-vn -0.042918 -0.249889 0.967323
-vn -0.046347 -0.232603 0.971467
-vn -0.046347 -0.232603 0.971467
-vn -0.042918 -0.249889 0.967323
-vn -0.042909 -0.249890 0.967323
-vn -0.019644 -0.213940 0.976649
-vn -0.000000 -0.233082 0.972457
-vn 0.000000 -0.206033 0.978545
-vn 0.000000 -0.206033 0.978545
-vn -0.000000 -0.233082 0.972457
-vn 0.019644 -0.213940 0.976649
-vn 0.019644 -0.213940 0.976649
-vn -0.000000 -0.233082 0.972457
-vn 0.027733 -0.233031 0.972074
-vn 0.027733 -0.233031 0.972074
-vn -0.000000 -0.233082 0.972457
-vn 0.019590 -0.252093 0.967505
-vn 0.019590 -0.252093 0.967505
-vn -0.000000 -0.233082 0.972457
-vn -0.000000 -0.259970 0.965617
-vn -0.000000 -0.259970 0.965617
-vn -0.000000 -0.233082 0.972457
-vn -0.019590 -0.252093 0.967505
-vn -0.019590 -0.252093 0.967505
-vn -0.000000 -0.233082 0.972457
-vn -0.027733 -0.233031 0.972074
-vn -0.027733 -0.233031 0.972074
-vn -0.000000 -0.233082 0.972457
-vn -0.019644 -0.213940 0.976649
-vn -0.697752 -0.716323 -0.004794
-vn -0.707102 -0.688000 -0.163286
-vn -0.377636 -0.924330 -0.054816
-vn -0.377636 -0.924330 -0.054816
-vn -0.707102 -0.688000 -0.163286
-vn -0.382697 -0.898803 -0.213765
-vn -0.000000 -0.997398 -0.072093
-vn 0.000000 -0.972838 -0.231488
-vn 0.377636 -0.924330 -0.054816
-vn 0.377636 -0.924330 -0.054816
-vn 0.000000 -0.972838 -0.231488
-vn 0.382697 -0.898803 -0.213765
-vn 0.737682 0.632293 0.236708
-vn 0.681840 0.613669 0.398125
-vn 0.738575 0.630131 0.239670
-vn 0.738575 0.630131 0.239670
-vn 0.681840 0.613669 0.398125
-vn 0.665560 0.605372 0.436525
-vn -0.311467 0.906530 0.284940
-vn -0.278363 0.932868 0.228630
-vn -0.312038 0.906994 0.282832
-vn -0.312038 0.906994 0.282832
-vn -0.278363 0.932868 0.228630
-vn -0.266781 0.940996 0.208218
-vn -0.976892 0.210142 0.039026
-vn -0.931751 0.308242 -0.191901
-vn -0.977049 0.209732 0.037243
-vn -0.977049 0.209732 0.037243
-vn -0.931751 0.308242 -0.191901
-vn -0.925744 0.314520 -0.209940
-vn -0.739447 -0.632675 -0.230087
-vn -0.740368 -0.630416 -0.233303
-vn -0.682404 -0.614001 -0.396646
-vn -0.682404 -0.614001 -0.396646
-vn -0.740368 -0.630416 -0.233303
-vn -0.665230 -0.605254 -0.437192
-vn 0.312372 -0.905730 -0.286490
-vn 0.312955 -0.906184 -0.284411
-vn 0.279566 -0.932034 -0.230553
-vn 0.279566 -0.932034 -0.230553
-vn 0.312955 -0.906184 -0.284411
-vn 0.268192 -0.940088 -0.210496
-vn 0.975975 -0.216438 -0.025065
-vn 0.976107 -0.216022 -0.023446
-vn 0.930418 -0.309743 0.195913
-vn 0.930418 -0.309743 0.195913
-vn 0.976107 -0.216022 -0.023446
-vn 0.924760 -0.315558 0.212701
-vn 0.924760 -0.315558 0.212701
-vn 0.820657 -0.389489 0.418114
-vn 0.930418 -0.309743 0.195913
-vn 0.930418 -0.309743 0.195913
-vn 0.820657 -0.389489 0.418114
-vn 0.820373 -0.389920 0.418272
-vn 0.268192 -0.940088 -0.210496
-vn 0.234742 -0.959072 -0.158355
-vn 0.279566 -0.932034 -0.230553
-vn 0.279566 -0.932034 -0.230553
-vn 0.234742 -0.959072 -0.158355
-vn 0.234311 -0.959193 -0.158266
-vn -0.665230 -0.605254 -0.437192
-vn -0.583961 -0.567471 -0.580488
-vn -0.682404 -0.614001 -0.396646
-vn -0.682404 -0.614001 -0.396646
-vn -0.583961 -0.567471 -0.580488
-vn -0.583078 -0.567833 -0.581021
-vn -0.925744 0.314520 -0.209940
-vn -0.931751 0.308242 -0.191901
-vn -0.816619 0.391452 -0.424144
-vn -0.816619 0.391452 -0.424144
-vn -0.931751 0.308242 -0.191901
-vn -0.816318 0.391895 -0.424316
-vn -0.266781 0.940996 0.208218
-vn -0.278363 0.932868 0.228630
-vn -0.233075 0.959900 0.155782
-vn -0.233075 0.959900 0.155782
-vn -0.278363 0.932868 0.228630
-vn -0.232585 0.960036 0.155678
-vn 0.665560 0.605372 0.436525
-vn 0.681840 0.613669 0.398125
-vn 0.586860 0.568918 0.576132
-vn 0.586860 0.568918 0.576132
-vn 0.681840 0.613669 0.398125
-vn 0.586054 0.569260 0.576614
-vn 0.730109 0.631128 0.261950
-vn 0.674042 0.612076 0.413559
-vn 0.730870 0.629198 0.264459
-vn 0.730870 0.629198 0.264459
-vn 0.674042 0.612076 0.413559
-vn 0.658902 0.604471 0.447731
-vn -0.309867 0.910080 0.275204
-vn -0.277606 0.934791 0.221588
-vn -0.310374 0.910441 0.273431
-vn -0.310374 0.910441 0.273431
-vn -0.277606 0.934791 0.221588
-vn -0.267058 0.941974 0.203383
-vn -0.975179 0.221311 0.006884
-vn -0.925862 0.312979 -0.211715
-vn -0.975276 0.220926 0.005394
-vn -0.975276 0.220926 0.005394
-vn -0.925862 0.312979 -0.211715
-vn -0.920190 0.318481 -0.227641
-vn -0.731779 -0.631473 -0.256403
-vn -0.732555 -0.629471 -0.259094
-vn -0.674460 -0.612301 -0.412543
-vn -0.674460 -0.612301 -0.412543
-vn -0.732555 -0.629471 -0.259094
-vn -0.658586 -0.604310 -0.448412
-vn 0.310648 -0.909417 -0.276512
-vn 0.311165 -0.909772 -0.274755
-vn 0.278716 -0.934049 -0.223315
-vn 0.278716 -0.934049 -0.223315
-vn 0.311165 -0.909772 -0.274755
-vn 0.268348 -0.941166 -0.205417
-vn 0.973944 -0.226729 0.005129
-vn 0.974028 -0.226334 0.006528
-vn 0.924735 -0.314179 0.214839
-vn 0.924735 -0.314179 0.214839
-vn 0.974028 -0.226334 0.006528
-vn 0.919377 -0.319305 0.229760
-vn 0.919377 -0.319305 0.229760
-vn 0.817616 -0.389044 0.424440
-vn 0.924735 -0.314179 0.214839
-vn 0.924735 -0.314179 0.214839
-vn 0.817616 -0.389044 0.424440
-vn 0.817361 -0.389419 0.424586
-vn 0.268348 -0.941166 -0.205417
-vn 0.235758 -0.959292 -0.155492
-vn 0.278716 -0.934049 -0.223315
-vn 0.278716 -0.934049 -0.223315
-vn 0.235758 -0.959292 -0.155492
-vn 0.235318 -0.959416 -0.155393
-vn -0.658586 -0.604310 -0.448412
-vn -0.579992 -0.568280 -0.583667
-vn -0.674460 -0.612301 -0.412543
-vn -0.674460 -0.612301 -0.412543
-vn -0.579992 -0.568280 -0.583667
-vn -0.579111 -0.568623 -0.584208
-vn -0.920190 0.318481 -0.227641
-vn -0.925862 0.312979 -0.211715
-vn -0.813745 0.390880 -0.430154
-vn -0.813745 0.390880 -0.430154
-vn -0.925862 0.312979 -0.211715
-vn -0.813468 0.391275 -0.430318
-vn -0.267058 0.941974 0.203383
-vn -0.277606 0.934791 0.221588
-vn -0.234166 0.960067 0.153092
-vn -0.234166 0.960067 0.153092
-vn -0.277606 0.934791 0.221588
-vn -0.233661 0.960209 0.152976
-vn 0.658902 0.604471 0.447731
-vn 0.674042 0.612076 0.413559
-vn 0.582696 0.569623 0.579651
-vn 0.582696 0.569623 0.579651
-vn 0.674042 0.612076 0.413559
-vn 0.581938 0.569929 0.580111
-vn 0.999999 -0.000024 -0.001367
-vn 0.999999 0.000110 -0.001589
-vn 0.999999 0.000312 -0.001607
-vn 0.999999 0.000312 -0.001607
-vn 0.999999 0.000110 -0.001589
-vn 0.999999 0.000042 -0.001067
-vn -0.000428 -0.310851 0.950458
-vn -0.013543 -0.308905 0.950997
-vn -0.000211 -0.310413 0.950602
-vn -0.000211 -0.310413 0.950602
-vn -0.013543 -0.308905 0.950997
-vn -0.001386 -0.309078 0.951036
-vn -0.001386 -0.309078 0.951036
-vn -0.013543 -0.308905 0.950997
-vn -0.022512 -0.308285 0.951028
-vn -0.999999 0.001490 -0.000526
-vn -0.999996 0.000606 0.002709
-vn -0.999999 0.001133 0.000814
-vn 0.979622 0.191624 0.060169
-vn 0.973898 0.217328 0.065502
-vn 0.979285 0.193237 0.060504
-vn 0.979285 0.193237 0.060504
-vn 0.973898 0.217328 0.065502
-vn 0.973553 0.218779 0.065802
-vn 1.000000 -0.000004 -0.000861
-vn 1.000000 0.000071 -0.001001
-vn 0.999999 0.000042 -0.001067
-vn 0.999999 0.000042 -0.001067
-vn 1.000000 0.000071 -0.001001
-vn 0.999999 0.000312 -0.001607
-vn -0.013543 -0.308905 0.950997
-vn -0.022202 -0.232051 0.972450
-vn -0.022512 -0.308285 0.951028
-vn -0.022512 -0.308285 0.951028
-vn -0.022202 -0.232051 0.972450
-vn -0.041394 -0.269769 0.962035
-vn -1.000000 0.000415 0.000131
-vn -0.999997 0.001624 -0.001522
-vn -1.000000 0.000666 -0.000237
-vn -1.000000 0.000666 -0.000237
-vn -0.999997 0.001624 -0.001522
-vn -0.999997 0.001815 -0.001774
-vn 0.016620 0.948094 0.317555
-vn -0.007601 0.955684 0.294297
-vn 0.005416 0.940885 0.338683
-vn 0.005416 0.940885 0.338683
-vn -0.007601 0.955684 0.294297
-vn -0.016858 0.956666 0.290698
-vn -0.041394 -0.269769 0.962035
-vn -0.022202 -0.232051 0.972450
-vn 0.000025 -0.048301 0.998833
-vn 0.000025 -0.048301 0.998833
-vn -0.022202 -0.232051 0.972450
-vn -0.000058 -0.045863 0.998948
-vn 0.000023 0.953980 0.299870
-vn 0.000003 0.953963 0.299924
-vn 0.000018 0.953975 0.299885
-vn 0.000018 0.953975 0.299885
-vn 0.000003 0.953963 0.299924
-vn -0.000002 0.953958 0.299940
-vn 1.000000 0.000071 -0.001001
-vn 0.999996 0.000825 -0.002665
-vn 0.999999 0.000312 -0.001607
-vn -0.998986 -0.013491 0.042948
-vn -0.998667 -0.016054 0.049061
-vn -0.998969 -0.013636 0.043294
-vn -0.998969 -0.013636 0.043294
-vn -0.998667 -0.016054 0.049061
-vn -0.998646 -0.016207 0.049426
-vn 0.000000 -0.965024 -0.262163
-vn -0.000187 -0.964080 -0.265612
-vn -0.000006 -0.964991 -0.262283
-vn -0.000006 -0.964991 -0.262283
-vn -0.000187 -0.964080 -0.265612
-vn -0.000193 -0.964048 -0.265727
-vn 0.000000 -0.299947 0.953956
-vn 0.000000 -0.299947 0.953956
-vn 0.000000 -0.299947 0.953956
-vn 0.000000 -0.299947 0.953956
-vn 0.000000 -0.299947 0.953956
-vn 0.000000 -0.299947 0.953956
-vn 0.016620 0.948094 0.317555
-vn 0.005416 0.940885 0.338683
-vn -0.000131 0.932658 0.360761
-vn -0.000131 0.932658 0.360761
-vn 0.005416 0.940885 0.338683
-vn -0.000135 0.932688 0.360683
-vn 0.000000 0.810325 0.585980
-vn 0.000015 0.810283 0.586039
-vn 0.000101 0.810034 0.586382
-vn 0.000101 0.810034 0.586382
-vn 0.000015 0.810283 0.586039
-vn 0.000116 0.809992 0.586441
-vn 0.000000 -0.299936 0.953959
-vn 0.000000 -0.299936 0.953959
-vn 0.000000 -0.299936 0.953959
-vn 0.000000 -0.299936 0.953959
-vn 0.000000 -0.299936 0.953959
-vn 0.000000 -0.299936 0.953959
-vn 0.000267 -0.997944 0.064095
-vn 0.000039 -0.998007 0.063111
-vn 0.000229 -0.997954 0.063928
-vn 0.000229 -0.997954 0.063928
-vn 0.000039 -0.998007 0.063111
-vn 0.000000 -0.998017 0.062945
-vn -0.999996 0.000034 0.002962
-vn -0.999999 0.001133 0.000814
-vn -0.999995 0.000190 0.003234
-vn -0.999995 0.000190 0.003234
-vn -0.999999 0.001133 0.000814
-vn -0.999996 0.000606 0.002709
-vn 1.000000 -0.000285 -0.000940
-vn 0.999999 -0.000024 -0.001367
-vn 1.000000 -0.000308 -0.000684
-vn 1.000000 -0.000308 -0.000684
-vn 0.999999 -0.000024 -0.001367
-vn 1.000000 -0.000243 -0.000572
-vn 0.000053 -0.954216 -0.299120
-vn -0.000468 -0.953831 -0.300343
-vn -0.000135 -0.954094 -0.299507
-vn -0.000135 -0.954094 -0.299507
-vn -0.000468 -0.953831 -0.300343
-vn -0.000646 -0.953846 -0.300294
-vn -0.003087 0.953735 0.300634
-vn 0.000450 0.954940 0.296798
-vn -0.002318 0.954233 0.299054
-vn -0.002318 0.954233 0.299054
-vn 0.000450 0.954940 0.296798
-vn 0.000629 0.955233 0.295854
-vn 0.003057 0.954558 0.298009
-vn 0.002713 0.954781 0.297297
-vn 0.000450 0.954940 0.296798
-vn 0.000450 0.954940 0.296798
-vn 0.002713 0.954781 0.297297
-vn 0.000629 0.955233 0.295854
-vn 0.923843 -0.114166 0.365350
-vn 0.923710 -0.114285 0.365647
-vn 0.921004 -0.116698 0.371662
-vn 0.921004 -0.116698 0.371662
-vn 0.923710 -0.114285 0.365647
-vn 0.920870 -0.116816 0.371957
-vn 0.000091 -0.300271 0.953854
-vn 0.318065 -0.284513 0.904371
-vn 0.000798 -0.300107 0.953905
-vn 0.000798 -0.300107 0.953905
-vn 0.318065 -0.284513 0.904371
-vn 0.319183 -0.284229 0.904066
-vn -0.318216 -0.284823 0.904220
-vn 0.000091 -0.300271 0.953854
-vn -0.317308 -0.284775 0.904555
-vn -0.317308 -0.284775 0.904555
-vn 0.000091 -0.300271 0.953854
-vn 0.000798 -0.300107 0.953905
-vn -0.924369 -0.114759 0.363831
-vn -0.921680 -0.117164 0.369835
-vn -0.924243 -0.114872 0.364114
-vn -0.924243 -0.114872 0.364114
-vn -0.921680 -0.117164 0.369835
-vn -0.921553 -0.117277 0.370116
-vn -0.000033 -0.953359 -0.301839
-vn -0.000278 -0.953520 -0.301330
-vn -0.000468 -0.953831 -0.300343
-vn -0.000468 -0.953831 -0.300343
-vn -0.000278 -0.953520 -0.301330
-vn -0.000646 -0.953846 -0.300294
-vn -0.001640 -0.954772 -0.297335
-vn -0.000298 -0.954188 -0.299209
-vn 0.000335 -0.953740 -0.300633
-vn 0.000335 -0.953740 -0.300633
-vn -0.000298 -0.954188 -0.299209
-vn 0.000000 -0.953686 -0.300805
-vn -0.000000 0.954554 0.298037
-vn -0.000460 0.954487 0.298254
-vn 0.000313 0.953920 0.300062
-vn 0.000313 0.953920 0.300062
-vn -0.000460 0.954487 0.298254
-vn 0.002027 0.953163 0.302449
-vn -0.000460 0.954487 0.298254
-vn -0.000000 0.954554 0.298037
-vn 0.000638 0.954564 0.298005
-vn -0.000528 -0.953655 -0.300901
-vn 0.000335 -0.953740 -0.300633
-vn 0.000000 -0.953686 -0.300805
-vn -0.000000 0.954554 0.298037
-vn 0.001170 0.954567 0.297993
-vn 0.000638 0.954564 0.298005
-vn 0.000638 0.954564 0.298005
-vn 0.001170 0.954567 0.297993
-vn 0.001423 0.954677 0.297640
-vn 0.691212 -0.216569 0.689437
-vn 0.874794 -0.144989 0.462292
-vn 0.690147 -0.217044 0.690354
-vn 0.690147 -0.217044 0.690354
-vn 0.874794 -0.144989 0.462292
-vn 0.873242 -0.146055 0.464884
-vn 0.691212 -0.216569 0.689437
-vn 0.690147 -0.217044 0.690354
-vn 0.228632 -0.292125 0.928650
-vn 0.228632 -0.292125 0.928650
-vn 0.690147 -0.217044 0.690354
-vn 0.228653 -0.292173 0.928630
-vn -0.228291 -0.292369 0.928657
-vn 0.228632 -0.292125 0.928650
-vn -0.228138 -0.292322 0.928709
-vn -0.228138 -0.292322 0.928709
-vn 0.228632 -0.292125 0.928650
-vn 0.228653 -0.292173 0.928630
-vn -0.690365 -0.217540 0.689980
-vn -0.228291 -0.292369 0.928657
-vn -0.691255 -0.217104 0.689226
-vn -0.691255 -0.217104 0.689226
-vn -0.228291 -0.292369 0.928657
-vn -0.228138 -0.292322 0.928709
-vn -0.875485 -0.145283 0.460889
-vn -0.873890 -0.146380 0.463561
-vn -0.691255 -0.217104 0.689226
-vn -0.691255 -0.217104 0.689226
-vn -0.873890 -0.146380 0.463561
-vn -0.690365 -0.217540 0.689980
-vn 0.000000 -0.953686 -0.300805
-vn -0.001312 -0.953480 -0.301453
-vn -0.000528 -0.953655 -0.300901
-vn -0.000528 -0.953655 -0.300901
-vn -0.001312 -0.953480 -0.301453
-vn -0.002079 -0.953140 -0.302522
-vn 0.000960 -0.954369 -0.298627
-vn -0.000226 -0.953559 -0.301207
-vn 0.000812 -0.954153 -0.299318
-vn 0.000812 -0.954153 -0.299318
-vn -0.000226 -0.953559 -0.301207
-vn 0.000234 -0.953479 -0.301460
-vn -0.000921 0.953534 0.301283
-vn 0.000237 0.954506 0.298191
-vn -0.000732 0.953805 0.300426
-vn 0.000237 0.954506 0.298191
-vn -0.000110 0.954609 0.297862
-vn -0.000732 0.953805 0.300426
-vn -0.000110 0.954609 0.297862
-vn 0.000237 0.954506 0.298191
-vn 0.000712 0.954491 0.298238
-vn -0.000808 -0.953593 -0.301096
-vn 0.000234 -0.953479 -0.301460
-vn -0.000226 -0.953559 -0.301207
-vn 0.000879 0.954765 0.297360
-vn 0.000943 0.954675 0.297649
-vn 0.000237 0.954506 0.298191
-vn 0.000237 0.954506 0.298191
-vn 0.000943 0.954675 0.297649
-vn 0.000712 0.954491 0.298238
-vn 0.650392 -0.227638 0.724686
-vn 0.812562 -0.174506 0.556139
-vn 0.649233 -0.228149 0.725565
-vn 0.649233 -0.228149 0.725565
-vn 0.812562 -0.174506 0.556139
-vn 0.810489 -0.175641 0.558800
-vn 0.650392 -0.227638 0.724686
-vn 0.649233 -0.228149 0.725565
-vn 0.231733 -0.291900 0.927952
-vn 0.231733 -0.291900 0.927952
-vn 0.649233 -0.228149 0.725565
-vn 0.231837 -0.291965 0.927905
-vn -0.231379 -0.292175 0.927953
-vn 0.231733 -0.291900 0.927952
-vn -0.231222 -0.292123 0.928009
-vn -0.231222 -0.292123 0.928009
-vn 0.231733 -0.291900 0.927952
-vn 0.231837 -0.291965 0.927905
-vn -0.649442 -0.228653 0.725219
-vn -0.231379 -0.292175 0.927953
-vn -0.650458 -0.228194 0.724453
-vn -0.650458 -0.228194 0.724453
-vn -0.231379 -0.292175 0.927953
-vn -0.231222 -0.292123 0.928009
-vn -0.813432 -0.174813 0.554769
-vn -0.811420 -0.175917 0.557360
-vn -0.650458 -0.228194 0.724453
-vn -0.650458 -0.228194 0.724453
-vn -0.811420 -0.175917 0.557360
-vn -0.649442 -0.228653 0.725219
-vn -0.000942 -0.953189 -0.302373
-vn -0.001026 -0.953315 -0.301977
-vn -0.000226 -0.953559 -0.301207
-vn -0.000226 -0.953559 -0.301207
-vn -0.001026 -0.953315 -0.301977
-vn -0.000808 -0.953593 -0.301096
-vn 0.999999 -0.000024 -0.001367
-vn 1.000000 -0.000285 -0.000940
-vn 0.999999 0.000110 -0.001589
-vn -0.999997 0.001624 -0.001522
-vn -0.999999 0.001490 -0.000526
-vn -0.999997 0.001815 -0.001774
-vn -0.999997 0.001815 -0.001774
-vn -0.999999 0.001490 -0.000526
-vn -0.999999 0.001133 0.000814
-vn -0.000004 -0.953959 -0.299938
-vn -0.000007 -0.953977 -0.299879
-vn -0.000009 -0.953960 -0.299935
-vn -0.000009 -0.953960 -0.299935
-vn -0.000007 -0.953977 -0.299879
-vn 0.000000 -0.953952 -0.299959
-vn 0.851215 -0.157429 0.500649
-vn 0.962086 -0.081807 0.260189
-vn 0.851217 -0.157420 0.500648
-vn 0.851217 -0.157420 0.500648
-vn 0.962086 -0.081807 0.260189
-vn 0.962090 -0.081799 0.260177
-vn -0.358834 -0.279992 0.890417
-vn 0.000000 -0.299969 0.953949
-vn -0.358832 -0.279992 0.890418
-vn -0.358832 -0.279992 0.890418
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn -0.669870 -0.222721 0.708286
-vn -0.358834 -0.279992 0.890417
-vn -0.669870 -0.222721 0.708286
-vn -0.669870 -0.222721 0.708286
-vn -0.358834 -0.279992 0.890417
-vn -0.358832 -0.279992 0.890418
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.000001 0.953943 0.299987
-vn -0.000002 0.953945 0.299983
-vn -0.000003 0.953942 0.299990
-vn -0.000003 0.953942 0.299990
-vn -0.000002 0.953945 0.299983
-vn 0.000000 0.953952 0.299959
-vn 0.962086 -0.081807 0.260189
-vn 1.000000 0.000000 -0.000000
-vn 0.962090 -0.081799 0.260177
-vn 0.962090 -0.081799 0.260177
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000002 -0.953958 -0.299941
-vn 0.000003 -0.953936 -0.300012
-vn 0.000007 -0.953955 -0.299951
-vn 0.000007 -0.953955 -0.299951
-vn 0.000003 -0.953936 -0.300012
-vn 0.000000 -0.953946 -0.299979
-vn 0.832911 -0.166011 0.527920
-vn 0.957315 -0.086673 0.275747
-vn 0.832923 -0.165972 0.527914
-vn 0.832923 -0.165972 0.527914
-vn 0.957315 -0.086673 0.275747
-vn 0.957336 -0.086634 0.275685
-vn -0.359045 -0.279975 0.890337
-vn 0.000000 -0.299980 0.953945
-vn -0.359046 -0.279977 0.890336
-vn -0.359046 -0.279977 0.890336
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.670204 -0.222630 0.707999
-vn -0.359045 -0.279975 0.890337
-vn -0.670207 -0.222633 0.707995
-vn -0.670207 -0.222633 0.707995
-vn -0.359045 -0.279975 0.890337
-vn -0.359046 -0.279977 0.890336
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953940 0.299998
-vn 0.000001 0.953941 0.299994
-vn 0.000000 0.953943 0.299989
-vn 0.000000 0.953943 0.299989
-vn 0.000001 0.953941 0.299994
-vn 0.000001 0.953944 0.299986
-vn 0.957315 -0.086673 0.275747
-vn 1.000000 0.000000 -0.000000
-vn 0.957336 -0.086634 0.275685
-vn 0.957336 -0.086634 0.275685
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 -0.953959 -0.299938
-vn 0.000000 -0.953977 -0.299879
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953977 -0.299879
-vn 0.000000 -0.953977 -0.299879
-vn 0.811445 -0.175317 0.557513
-vn 0.951696 -0.092093 0.292905
-vn 0.811450 -0.175301 0.557510
-vn 0.811450 -0.175301 0.557510
-vn 0.951696 -0.092093 0.292905
-vn 0.951701 -0.092081 0.292892
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.963467 -0.080325 0.255498
-vn -0.856549 -0.154797 0.492303
-vn -0.963471 -0.080327 0.255481
-vn -0.963471 -0.080327 0.255481
-vn -0.856549 -0.154797 0.492303
-vn -0.856553 -0.154807 0.492292
-vn -0.963467 -0.080325 0.255498
-vn -0.963471 -0.080327 0.255481
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.963471 -0.080327 0.255481
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953966 0.299914
-vn 0.000000 0.953966 0.299914
-vn 0.000000 0.953954 0.299952
-vn 0.000000 0.953954 0.299952
-vn 0.000000 0.953966 0.299914
-vn 0.000000 0.953954 0.299954
-vn 0.951696 -0.092093 0.292905
-vn 1.000000 0.000000 -0.000000
-vn 0.951701 -0.092081 0.292892
-vn 0.951701 -0.092081 0.292892
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 -0.953944 -0.299985
-vn 0.000000 -0.953948 -0.299971
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953948 -0.299971
-vn 0.000000 -0.953948 -0.299971
-vn 0.822280 -0.170707 0.542876
-vn 0.954535 -0.089412 0.284374
-vn 0.822284 -0.170696 0.542874
-vn 0.822284 -0.170696 0.542874
-vn 0.954535 -0.089412 0.284374
-vn 0.954544 -0.089398 0.284347
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn -0.964692 -0.078994 0.251256
-vn -0.861276 -0.152417 0.484740
-vn -0.964699 -0.078990 0.251228
-vn -0.964699 -0.078990 0.251228
-vn -0.861276 -0.152417 0.484740
-vn -0.861279 -0.152424 0.484733
-vn -0.964692 -0.078994 0.251256
-vn -0.964699 -0.078990 0.251228
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.964699 -0.078990 0.251228
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953961 0.299932
-vn 0.000000 0.953961 0.299932
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953961 0.299932
-vn 0.000000 0.953938 0.300004
-vn 0.954535 -0.089412 0.284374
-vn 1.000000 0.000000 -0.000000
-vn 0.954544 -0.089398 0.284347
-vn 0.954544 -0.089398 0.284347
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000008 -0.953947 -0.299974
-vn 0.000003 -0.953949 -0.299968
-vn 0.000015 -0.953945 -0.299982
-vn 0.825428 -0.169341 0.538509
-vn 0.955361 -0.088624 0.281835
-vn 0.825429 -0.169338 0.538508
-vn 0.825429 -0.169338 0.538508
-vn 0.955361 -0.088624 0.281835
-vn 0.955361 -0.088623 0.281834
-vn -0.108662 -0.298199 0.948298
-vn 0.000000 -0.299980 0.953945
-vn -0.108663 -0.298204 0.948297
-vn -0.108663 -0.298204 0.948297
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.216023 -0.292831 0.931442
-vn -0.108662 -0.298199 0.948298
-vn -0.216025 -0.292839 0.931439
-vn -0.216025 -0.292839 0.931439
-vn -0.108662 -0.298199 0.948298
-vn -0.108663 -0.298204 0.948297
-vn -0.997122 -0.022736 0.072318
-vn -0.997122 -0.022737 0.072318
-vn -0.997122 -0.022740 0.072318
-vn -0.997122 -0.022740 0.072318
-vn -0.997122 -0.022737 0.072318
-vn -0.997122 -0.022741 0.072318
-vn 0.000007 0.953952 0.299958
-vn 0.000020 0.953957 0.299944
-vn 0.000039 0.953963 0.299924
-vn 0.955361 -0.088624 0.281835
-vn 1.000000 0.000000 -0.000000
-vn 0.955361 -0.088623 0.281834
-vn 0.955361 -0.088623 0.281834
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 -0.953951 -0.299963
-vn 0.000000 -0.953950 -0.299965
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953950 -0.299965
-vn 0.000000 -0.953961 -0.299932
-vn 0.828793 -0.167823 0.533795
-vn 0.956239 -0.087764 0.279112
-vn 0.828789 -0.167837 0.533797
-vn 0.828789 -0.167837 0.533797
-vn 0.956239 -0.087764 0.279112
-vn 0.956236 -0.087774 0.279123
-vn 0.000000 -0.299923 0.953963
-vn 0.000000 -0.299923 0.953963
-vn 0.000000 -0.299923 0.953963
-vn 0.000000 -0.299923 0.953963
-vn 0.000000 -0.299923 0.953963
-vn 0.000000 -0.299923 0.953963
-vn -0.968521 -0.074674 0.237466
-vn -0.876060 -0.144634 0.460000
-vn -0.968518 -0.074672 0.237479
-vn -0.968518 -0.074672 0.237479
-vn -0.876060 -0.144634 0.460000
-vn -0.876056 -0.144625 0.460009
-vn -0.968521 -0.074674 0.237466
-vn -0.968518 -0.074672 0.237479
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.968518 -0.074672 0.237479
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953942 0.299993
-vn 0.000000 0.953942 0.299993
-vn 0.000000 0.953956 0.299947
-vn 0.000000 0.953956 0.299947
-vn 0.000000 0.953942 0.299993
-vn 0.000000 0.953956 0.299945
-vn 0.956239 -0.087764 0.279112
-vn 1.000000 0.000000 -0.000000
-vn 0.956236 -0.087774 0.279123
-vn 0.956236 -0.087774 0.279123
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000003 0.953953 0.299956
-vn -0.000002 0.953956 0.299946
-vn -0.000016 0.953949 0.299968
-vn -0.000016 0.953949 0.299968
-vn -0.000002 0.953956 0.299946
-vn -0.000026 0.953958 0.299941
-vn 0.000007 -0.953955 -0.299951
-vn 0.000009 -0.953948 -0.299972
-vn 0.000001 -0.953955 -0.299950
-vn 0.000001 -0.953955 -0.299950
-vn 0.000009 -0.953948 -0.299972
-vn 0.000000 -0.953968 -0.299908
-vn -0.868644 -0.148587 0.472631
-vn -0.868651 -0.148604 0.472612
-vn -0.868648 -0.148598 0.472619
-vn -0.868648 -0.148598 0.472619
-vn -0.868651 -0.148604 0.472612
-vn -0.868656 -0.148615 0.472600
-vn -0.941437 -0.101150 0.321661
-vn -0.941437 -0.101150 0.321661
-vn -0.941437 -0.101150 0.321661
-vn -0.941437 -0.101150 0.321661
-vn -0.941437 -0.101150 0.321661
-vn -0.941437 -0.101150 0.321661
-vn 0.939018 -0.103135 0.328037
-vn 1.000000 0.000000 -0.000000
-vn 0.939026 -0.103124 0.328018
-vn 0.939026 -0.103124 0.328018
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.763509 -0.193726 0.616055
-vn 0.939018 -0.103135 0.328037
-vn 0.763512 -0.193715 0.616055
-vn 0.763512 -0.193715 0.616055
-vn 0.939018 -0.103135 0.328037
-vn 0.939026 -0.103124 0.328018
-vn -0.334186 -0.282733 0.899101
-vn 0.000000 -0.299980 0.953945
-vn -0.334187 -0.282733 0.899100
-vn -0.334187 -0.282733 0.899100
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.334187 -0.282733 0.899100
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334187 -0.282733 0.899100
-vn 0.323100 -0.283891 0.902780
-vn -0.334187 -0.282733 0.899100
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn -0.334187 -0.282733 0.899100
-vn -0.334186 -0.282733 0.899101
-vn 0.323100 -0.283891 0.902780
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323100 -0.283891 0.902780
-vn 0.000000 -0.299980 0.953945
-vn 0.323099 -0.283891 0.902781
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.323099 -0.283891 0.902781
-vn 0.323100 -0.283891 0.902780
-vn -0.000001 -0.953951 -0.299962
-vn 0.000001 -0.953955 -0.299950
-vn -0.000014 -0.953954 -0.299951
-vn -0.105776 -0.298229 0.948615
-vn -0.105767 -0.298248 0.948610
-vn -0.105752 -0.298279 0.948602
-vn -0.105752 -0.298279 0.948602
-vn -0.105767 -0.298248 0.948610
-vn -0.105744 -0.298298 0.948597
-vn -0.000016 0.953949 0.299968
-vn -0.000026 0.953958 0.299941
-vn -0.000076 0.953945 0.299982
-vn 0.000003 0.953953 0.299956
-vn -0.000016 0.953949 0.299968
-vn 0.000007 0.953939 0.300000
-vn 0.000007 0.953939 0.300000
-vn -0.000016 0.953949 0.299968
-vn 0.000000 0.953924 0.300049
-vn -0.000002 0.953956 0.299946
-vn -0.000002 0.953953 0.299957
-vn 0.000001 0.953947 0.299976
-vn 0.000001 0.953947 0.299976
-vn -0.000002 0.953953 0.299957
-vn 0.000002 0.953946 0.299979
-vn -0.000002 0.953956 0.299946
-vn 0.000003 0.953953 0.299956
-vn -0.000002 0.953953 0.299957
-vn -0.000002 0.953953 0.299957
-vn 0.000002 0.953944 0.299984
-vn 0.000002 0.953946 0.299979
-vn 0.000002 0.953946 0.299979
-vn 0.000002 0.953944 0.299984
-vn 0.000000 0.953947 0.299974
-vn 0.000001 -0.953956 -0.299948
-vn -0.000007 -0.953954 -0.299953
-vn 0.000007 -0.953955 -0.299951
-vn 0.000007 -0.953955 -0.299951
-vn 0.000001 -0.953955 -0.299950
-vn 0.000001 -0.953956 -0.299948
-vn 0.000001 -0.953956 -0.299948
-vn 0.000001 -0.953955 -0.299950
-vn -0.000001 -0.953951 -0.299962
-vn 0.000000 -0.953975 -0.299885
-vn -0.000015 -0.953951 -0.299962
-vn -0.000012 -0.953954 -0.299954
-vn -0.000012 -0.953954 -0.299954
-vn -0.000015 -0.953951 -0.299962
-vn -0.000007 -0.953954 -0.299953
-vn -0.000012 -0.953954 -0.299954
-vn -0.000007 -0.953954 -0.299953
-vn -0.000015 -0.953947 -0.299976
-vn -0.000015 -0.953947 -0.299976
-vn -0.000007 -0.953954 -0.299953
-vn 0.000001 -0.953956 -0.299948
-vn 0.000003 0.953953 0.299955
-vn -0.000000 0.953955 0.299950
-vn 0.000008 0.953944 0.299986
-vn 0.000008 0.953944 0.299986
-vn -0.000000 0.953955 0.299950
-vn 0.000011 0.953950 0.299967
-vn -0.000003 -0.953953 -0.299956
-vn -0.000007 -0.953939 -0.300001
-vn 0.000014 -0.953947 -0.299976
-vn 0.000014 -0.953947 -0.299976
-vn -0.000007 -0.953939 -0.300001
-vn 0.000000 -0.953923 -0.300052
-vn -0.868654 -0.148611 0.472605
-vn -0.868655 -0.148613 0.472602
-vn -0.868654 -0.148612 0.472603
-vn -0.868654 -0.148612 0.472603
-vn -0.868655 -0.148613 0.472602
-vn -0.868656 -0.148615 0.472600
-vn -0.941431 -0.101132 0.321682
-vn -0.941432 -0.101135 0.321680
-vn -0.941432 -0.101132 0.321681
-vn -0.941432 -0.101132 0.321681
-vn -0.941432 -0.101135 0.321680
-vn -0.941432 -0.101135 0.321680
-vn 0.939020 -0.103149 0.328027
-vn 1.000000 0.000000 -0.000000
-vn 0.939022 -0.103147 0.328023
-vn 0.939022 -0.103147 0.328023
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.763519 -0.193723 0.616044
-vn 0.939020 -0.103149 0.328027
-vn 0.763519 -0.193721 0.616044
-vn 0.763519 -0.193721 0.616044
-vn 0.939020 -0.103149 0.328027
-vn 0.939022 -0.103147 0.328023
-vn -0.334186 -0.282733 0.899101
-vn 0.000000 -0.299980 0.953945
-vn -0.334187 -0.282733 0.899100
-vn -0.334187 -0.282733 0.899100
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.334187 -0.282733 0.899100
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334186 -0.282733 0.899101
-vn -0.334187 -0.282733 0.899100
-vn 0.323100 -0.283891 0.902780
-vn -0.334187 -0.282733 0.899100
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn -0.334187 -0.282733 0.899100
-vn -0.334186 -0.282733 0.899101
-vn 0.323100 -0.283891 0.902780
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323099 -0.283891 0.902781
-vn 0.323100 -0.283891 0.902780
-vn 0.000000 -0.299980 0.953945
-vn 0.323099 -0.283891 0.902781
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.323099 -0.283891 0.902781
-vn 0.323100 -0.283891 0.902780
-vn 0.000025 -0.953954 -0.299953
-vn 0.000014 -0.953947 -0.299976
-vn 0.000079 -0.953940 -0.299998
-vn -0.105749 -0.298287 0.948600
-vn -0.105755 -0.298275 0.948603
-vn -0.105765 -0.298253 0.948609
-vn -0.105765 -0.298253 0.948609
-vn -0.105755 -0.298275 0.948603
-vn -0.105770 -0.298241 0.948612
-vn 0.000008 0.953944 0.299986
-vn 0.000011 0.953950 0.299967
-vn 0.000012 0.953950 0.299966
-vn 0.000003 0.953953 0.299955
-vn 0.000008 0.953944 0.299986
-vn 0.000007 0.953939 0.300001
-vn 0.000007 0.953939 0.300001
-vn 0.000008 0.953944 0.299986
-vn 0.000000 0.953924 0.300049
-vn -0.000000 0.953955 0.299950
-vn -0.000002 0.953953 0.299957
-vn 0.000001 0.953947 0.299977
-vn 0.000001 0.953947 0.299977
-vn -0.000002 0.953953 0.299957
-vn 0.000002 0.953946 0.299980
-vn -0.000000 0.953955 0.299950
-vn 0.000003 0.953953 0.299955
-vn -0.000002 0.953953 0.299957
-vn -0.000002 0.953953 0.299957
-vn 0.000002 0.953944 0.299985
-vn 0.000002 0.953946 0.299980
-vn 0.000002 0.953946 0.299980
-vn 0.000002 0.953944 0.299985
-vn 0.000000 0.953947 0.299974
-vn 0.000001 -0.953956 -0.299946
-vn 0.000002 -0.953953 -0.299957
-vn -0.000003 -0.953953 -0.299956
-vn -0.000003 -0.953953 -0.299956
-vn 0.000014 -0.953947 -0.299976
-vn 0.000001 -0.953956 -0.299946
-vn 0.000001 -0.953956 -0.299946
-vn 0.000014 -0.953947 -0.299976
-vn 0.000025 -0.953954 -0.299953
-vn 0.000000 -0.953947 -0.299975
-vn -0.000002 -0.953944 -0.299986
-vn -0.000002 -0.953946 -0.299980
-vn -0.000002 -0.953946 -0.299980
-vn -0.000002 -0.953944 -0.299986
-vn 0.000002 -0.953953 -0.299957
-vn -0.000002 -0.953946 -0.299980
-vn 0.000002 -0.953953 -0.299957
-vn -0.000001 -0.953947 -0.299976
-vn -0.000001 -0.953947 -0.299976
-vn 0.000002 -0.953953 -0.299957
-vn 0.000001 -0.953956 -0.299946
-vn -0.979755 -0.060043 0.190986
-vn -0.919844 -0.117665 0.374223
-vn -0.979757 -0.060044 0.190973
-vn -0.979757 -0.060044 0.190973
-vn -0.919844 -0.117665 0.374223
-vn -0.919846 -0.117672 0.374215
-vn 0.806339 -0.177418 0.564217
-vn 0.950353 -0.093331 0.296846
-vn 0.806343 -0.177404 0.564215
-vn 0.806343 -0.177404 0.564215
-vn 0.950353 -0.093331 0.296846
-vn 0.950359 -0.093319 0.296831
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn -0.962647 -0.081204 0.258296
-vn -0.853388 -0.156356 0.497274
-vn -0.962652 -0.081205 0.258278
-vn -0.962652 -0.081205 0.258278
-vn -0.853388 -0.156356 0.497274
-vn -0.853392 -0.156365 0.497264
-vn 0.823811 -0.170042 0.540759
-vn 0.954939 -0.089021 0.283139
-vn 0.823816 -0.170028 0.540757
-vn 0.823816 -0.170028 0.540757
-vn 0.954939 -0.089021 0.283139
-vn 0.954944 -0.089010 0.283124
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn 0.000000 -0.299969 0.953949
-vn -0.979755 -0.060043 0.190986
-vn -0.979757 -0.060044 0.190973
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.979757 -0.060044 0.190973
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953949 0.299969
-vn 0.000000 0.953948 0.299971
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953948 0.299971
-vn 0.000000 0.953939 0.300001
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953959 -0.299938
-vn 0.954939 -0.089021 0.283139
-vn 1.000000 0.000000 -0.000000
-vn 0.954944 -0.089010 0.283124
-vn 0.954944 -0.089010 0.283124
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn -0.962647 -0.081204 0.258296
-vn -0.962652 -0.081205 0.258278
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.962652 -0.081205 0.258278
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953949 0.299968
-vn 0.000000 0.953949 0.299968
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953949 0.299969
-vn 0.000000 -0.953959 -0.299939
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953983 -0.299862
-vn 0.950353 -0.093331 0.296846
-vn 1.000000 0.000000 -0.000000
-vn 0.950359 -0.093319 0.296831
-vn 0.950359 -0.093319 0.296831
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000007 0.953949 0.299967
-vn 0.000002 0.953951 0.299962
-vn 0.000002 0.953954 0.299953
-vn 0.000002 0.953954 0.299953
-vn 0.000002 0.953951 0.299962
-vn 0.000002 0.953965 0.299917
-vn 0.000010 -0.953955 -0.299950
-vn 0.000014 -0.953951 -0.299963
-vn -0.000003 -0.953957 -0.299945
-vn -0.000003 -0.953957 -0.299945
-vn 0.000014 -0.953951 -0.299963
-vn 0.000000 -0.953982 -0.299863
-vn -0.868676 -0.148667 0.472547
-vn -0.868662 -0.148636 0.472582
-vn -0.868667 -0.148648 0.472568
-vn -0.868667 -0.148648 0.472568
-vn -0.868662 -0.148636 0.472582
-vn -0.868654 -0.148616 0.472604
-vn -0.941437 -0.101150 0.321660
-vn -0.941435 -0.101135 0.321669
-vn -0.941437 -0.101148 0.321662
-vn -0.941437 -0.101148 0.321662
-vn -0.941435 -0.101135 0.321669
-vn -0.941435 -0.101132 0.321671
-vn 0.939023 -0.103149 0.328017
-vn 1.000000 0.000000 -0.000000
-vn 0.939020 -0.103152 0.328027
-vn 0.939020 -0.103152 0.328027
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.763519 -0.193723 0.616044
-vn 0.939023 -0.103149 0.328017
-vn 0.763519 -0.193723 0.616044
-vn 0.763519 -0.193723 0.616044
-vn 0.939023 -0.103149 0.328017
-vn 0.939020 -0.103152 0.328027
-vn -0.334203 -0.282718 0.899099
-vn 0.000000 -0.299980 0.953945
-vn -0.334206 -0.282731 0.899094
-vn -0.334206 -0.282731 0.899094
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn -0.334200 -0.282559 0.899150
-vn -0.334203 -0.282718 0.899099
-vn -0.334179 -0.282576 0.899153
-vn -0.334179 -0.282576 0.899153
-vn -0.334203 -0.282718 0.899099
-vn -0.334206 -0.282731 0.899094
-vn 0.323112 -0.283716 0.902831
-vn -0.334200 -0.282559 0.899150
-vn 0.323092 -0.283732 0.902833
-vn 0.323092 -0.283732 0.902833
-vn -0.334200 -0.282559 0.899150
-vn -0.334179 -0.282576 0.899153
-vn 0.323112 -0.283716 0.902831
-vn 0.323092 -0.283732 0.902833
-vn 0.323116 -0.283875 0.902780
-vn 0.323116 -0.283875 0.902780
-vn 0.323092 -0.283732 0.902833
-vn 0.323119 -0.283889 0.902774
-vn 0.000000 -0.299980 0.953945
-vn 0.323116 -0.283875 0.902780
-vn 0.000000 -0.299980 0.953945
-vn 0.000000 -0.299980 0.953945
-vn 0.323116 -0.283875 0.902780
-vn 0.323119 -0.283889 0.902774
-vn -0.000009 -0.953949 -0.299969
-vn -0.000003 -0.953957 -0.299945
-vn -0.000041 -0.953957 -0.299943
-vn -0.105689 -0.298426 0.948563
-vn -0.105713 -0.298376 0.948576
-vn -0.105752 -0.298291 0.948599
-vn -0.105752 -0.298291 0.948599
-vn -0.105713 -0.298376 0.948576
-vn -0.105775 -0.298241 0.948612
-vn 0.000002 0.953954 0.299953
-vn 0.000002 0.953965 0.299917
-vn 0.000018 0.953969 0.299904
-vn 0.000007 0.953949 0.299967
-vn 0.000002 0.953954 0.299953
-vn 0.000010 0.953946 0.299977
-vn 0.000010 0.953946 0.299977
-vn 0.000002 0.953954 0.299953
-vn 0.000000 0.953924 0.300050
-vn 0.000002 0.953951 0.299962
-vn -0.000001 0.953950 0.299965
-vn -0.000002 0.953950 0.299964
-vn -0.000002 0.953950 0.299964
-vn -0.000001 0.953950 0.299965
-vn -0.000002 0.953950 0.299967
-vn 0.000002 0.953951 0.299962
-vn 0.000007 0.953949 0.299967
-vn -0.000001 0.953950 0.299965
-vn -0.000001 0.953950 0.299965
-vn -0.000002 0.953951 0.299963
-vn -0.000002 0.953950 0.299967
-vn -0.000002 0.953950 0.299967
-vn -0.000002 0.953951 0.299963
-vn 0.000000 0.953947 0.299974
-vn 0.000001 -0.953955 -0.299950
-vn -0.000005 -0.953954 -0.299952
-vn 0.000010 -0.953955 -0.299950
-vn 0.000010 -0.953955 -0.299950
-vn -0.000003 -0.953957 -0.299945
-vn 0.000001 -0.953955 -0.299950
-vn 0.000001 -0.953955 -0.299950
-vn -0.000003 -0.953957 -0.299945
-vn -0.000009 -0.953949 -0.299969
-vn 0.000000 -0.953947 -0.299974
-vn -0.000002 -0.953944 -0.299984
-vn -0.000002 -0.953960 -0.299934
-vn -0.000002 -0.953960 -0.299934
-vn -0.000002 -0.953944 -0.299984
-vn -0.000005 -0.953954 -0.299952
-vn -0.000002 -0.953960 -0.299934
-vn -0.000005 -0.953954 -0.299952
-vn -0.000004 -0.953966 -0.299916
-vn -0.000004 -0.953966 -0.299916
-vn -0.000005 -0.953954 -0.299952
-vn 0.000001 -0.953955 -0.299950
-vn -0.979755 -0.060045 0.190983
-vn -0.919844 -0.117669 0.374221
-vn -0.979757 -0.060047 0.190974
-vn -0.979757 -0.060047 0.190974
-vn -0.919844 -0.117669 0.374221
-vn -0.919846 -0.117676 0.374213
-vn 0.806339 -0.177425 0.564215
-vn 0.950354 -0.093334 0.296843
-vn 0.806343 -0.177411 0.564212
-vn 0.806343 -0.177411 0.564212
-vn 0.950354 -0.093334 0.296843
-vn 0.950358 -0.093323 0.296833
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn -0.962648 -0.081206 0.258293
-vn -0.853388 -0.156362 0.497272
-vn -0.962651 -0.081209 0.258280
-vn -0.962651 -0.081209 0.258280
-vn -0.853388 -0.156362 0.497272
-vn -0.853392 -0.156371 0.497262
-vn 0.823811 -0.170048 0.540757
-vn 0.954939 -0.089024 0.283136
-vn 0.823816 -0.170035 0.540755
-vn 0.823816 -0.170035 0.540755
-vn 0.954939 -0.089024 0.283136
-vn 0.954943 -0.089014 0.283126
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn 0.000000 -0.299981 0.953945
-vn -0.979755 -0.060045 0.190983
-vn -0.979757 -0.060047 0.190974
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.979757 -0.060047 0.190974
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953950 0.299965
-vn 0.000000 0.953938 0.300003
-vn 0.000000 0.953938 0.300003
-vn 0.000000 0.953950 0.299965
-vn 0.000000 0.953938 0.300003
-vn 0.000007 -0.953948 -0.299973
-vn 0.000002 -0.953945 -0.299981
-vn 0.000003 -0.953962 -0.299928
-vn 0.000003 -0.953962 -0.299928
-vn 0.000002 -0.953945 -0.299981
-vn 0.000000 -0.953959 -0.299938
-vn 0.954939 -0.089024 0.283136
-vn 1.000000 0.000000 -0.000000
-vn 0.954943 -0.089014 0.283126
-vn 0.954943 -0.089014 0.283126
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn -0.962648 -0.081206 0.258293
-vn -0.962651 -0.081209 0.258280
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.962651 -0.081209 0.258280
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953951 0.299963
-vn 0.000000 0.953938 0.300003
-vn 0.000000 0.953938 0.300003
-vn 0.000000 0.953951 0.299963
-vn 0.000000 0.953938 0.300003
-vn 0.000000 -0.953958 -0.299939
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953983 -0.299862
-vn 0.950354 -0.093334 0.296843
-vn 1.000000 0.000000 -0.000000
-vn 0.950358 -0.093323 0.296833
-vn 0.950358 -0.093323 0.296833
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000003 0.953955 0.299951
-vn -0.000001 0.953956 0.299947
-vn 0.000008 0.953957 0.299945
-vn 0.000008 0.953957 0.299945
-vn -0.000001 0.953956 0.299947
-vn 0.000013 0.953964 0.299921
-vn 0.000007 -0.953952 -0.299961
-vn 0.000011 -0.953957 -0.299942
-vn -0.000004 -0.953957 -0.299945
-vn -0.000004 -0.953957 -0.299945
-vn 0.000011 -0.953957 -0.299942
-vn 0.000000 -0.953982 -0.299862
-vn -0.868678 -0.148575 0.472572
-vn -0.868683 -0.148586 0.472559
-vn -0.868681 -0.148582 0.472564
-vn -0.868681 -0.148582 0.472564
-vn -0.868683 -0.148586 0.472559
-vn -0.868686 -0.148593 0.472552
-vn -0.941437 -0.101147 0.321662
-vn -0.941435 -0.101131 0.321670
-vn -0.941437 -0.101144 0.321663
-vn -0.941437 -0.101144 0.321663
-vn -0.941435 -0.101131 0.321670
-vn -0.941435 -0.101129 0.321672
-vn 0.939021 -0.103150 0.328023
-vn 1.000000 0.000000 -0.000000
-vn 0.939019 -0.103153 0.328027
-vn 0.939019 -0.103153 0.328027
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.763521 -0.193715 0.616045
-vn 0.939021 -0.103150 0.328023
-vn 0.763520 -0.193717 0.616044
-vn 0.763520 -0.193717 0.616044
-vn 0.939021 -0.103150 0.328023
-vn 0.939019 -0.103153 0.328027
-vn -0.334207 -0.282721 0.899097
-vn 0.000000 -0.299968 0.953949
-vn -0.334205 -0.282720 0.899097
-vn -0.334205 -0.282720 0.899097
-vn 0.000000 -0.299968 0.953949
-vn 0.000000 -0.299968 0.953949
-vn -0.334206 -0.282732 0.899093
-vn -0.334207 -0.282721 0.899097
-vn -0.334208 -0.282731 0.899093
-vn -0.334208 -0.282731 0.899093
-vn -0.334207 -0.282721 0.899097
-vn -0.334205 -0.282720 0.899097
-vn 0.323119 -0.283889 0.902774
-vn -0.334206 -0.282732 0.899093
-vn 0.323122 -0.283888 0.902773
-vn 0.323122 -0.283888 0.902773
-vn -0.334206 -0.282732 0.899093
-vn -0.334208 -0.282731 0.899093
-vn 0.323119 -0.283889 0.902774
-vn 0.323122 -0.283888 0.902773
-vn 0.323120 -0.283878 0.902777
-vn 0.323120 -0.283878 0.902777
-vn 0.323122 -0.283888 0.902773
-vn 0.323118 -0.283878 0.902778
-vn 0.000000 -0.299968 0.953949
-vn 0.323120 -0.283878 0.902777
-vn 0.000000 -0.299968 0.953949
-vn 0.000000 -0.299968 0.953949
-vn 0.323120 -0.283878 0.902777
-vn 0.323118 -0.283878 0.902778
-vn -0.000010 -0.953949 -0.299969
-vn -0.000004 -0.953957 -0.299945
-vn -0.000043 -0.953957 -0.299942
-vn -0.105684 -0.298243 0.948621
-vn -0.105686 -0.298241 0.948622
-vn -0.105688 -0.298236 0.948623
-vn -0.105688 -0.298236 0.948623
-vn -0.105686 -0.298241 0.948622
-vn -0.105689 -0.298233 0.948624
-vn 0.000008 0.953957 0.299945
-vn 0.000013 0.953964 0.299921
-vn 0.000046 0.953973 0.299894
-vn 0.000003 0.953955 0.299951
-vn 0.000008 0.953957 0.299945
-vn 0.000005 0.953949 0.299969
-vn 0.000005 0.953949 0.299969
-vn 0.000008 0.953957 0.299945
-vn 0.000000 0.953938 0.300005
-vn -0.000001 0.953956 0.299947
-vn -0.000003 0.953954 0.299952
-vn -0.000003 0.953951 0.299962
-vn -0.000003 0.953951 0.299962
-vn -0.000003 0.953954 0.299952
-vn -0.000002 0.953950 0.299967
-vn -0.000001 0.953956 0.299947
-vn 0.000003 0.953955 0.299951
-vn -0.000003 0.953954 0.299952
-vn -0.000003 0.953954 0.299952
-vn -0.000002 0.953951 0.299964
-vn -0.000002 0.953950 0.299967
-vn -0.000002 0.953950 0.299967
-vn -0.000002 0.953951 0.299964
-vn 0.000000 0.953947 0.299974
-vn 0.000005 -0.953950 -0.299965
-vn 0.000001 -0.953950 -0.299964
-vn 0.000007 -0.953952 -0.299961
-vn 0.000007 -0.953952 -0.299961
-vn -0.000004 -0.953957 -0.299945
-vn 0.000005 -0.953950 -0.299965
-vn 0.000005 -0.953950 -0.299965
-vn -0.000004 -0.953957 -0.299945
-vn -0.000010 -0.953949 -0.299969
-vn 0.000000 -0.953947 -0.299975
-vn 0.000002 -0.953950 -0.299965
-vn 0.000002 -0.953950 -0.299967
-vn 0.000002 -0.953950 -0.299967
-vn 0.000002 -0.953950 -0.299965
-vn 0.000001 -0.953950 -0.299964
-vn 0.000002 -0.953950 -0.299967
-vn 0.000001 -0.953950 -0.299964
-vn 0.000002 -0.953951 -0.299964
-vn 0.000002 -0.953951 -0.299964
-vn 0.000001 -0.953950 -0.299964
-vn 0.000005 -0.953950 -0.299965
-vn -0.000004 0.953959 0.299936
-vn -0.000007 0.953958 0.299939
-vn 0.000000 0.953957 0.299943
-vn -0.000004 -0.953936 -0.300010
-vn -0.000003 -0.953968 -0.299907
-vn -0.000000 -0.953948 -0.299972
-vn -0.000000 -0.953948 -0.299972
-vn -0.000003 -0.953968 -0.299907
-vn 0.000000 -0.953963 -0.299924
-vn -0.751588 -0.197870 0.629256
-vn -0.308892 -0.285309 0.907295
-vn -0.751587 -0.197871 0.629257
-vn -0.751587 -0.197871 0.629257
-vn -0.308892 -0.285309 0.907295
-vn -0.308885 -0.285310 0.907297
-vn -0.878582 -0.143262 0.455598
-vn -0.751588 -0.197870 0.629256
-vn -0.878582 -0.143263 0.455598
-vn -0.878582 -0.143263 0.455598
-vn -0.751588 -0.197870 0.629256
-vn -0.751587 -0.197871 0.629257
-vn 0.939020 -0.103136 0.328030
-vn 1.000000 0.000000 -0.000000
-vn 0.939024 -0.103129 0.328023
-vn 0.939024 -0.103129 0.328023
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.763511 -0.193725 0.616053
-vn 0.939020 -0.103136 0.328030
-vn 0.763513 -0.193716 0.616053
-vn 0.763513 -0.193716 0.616053
-vn 0.939020 -0.103136 0.328030
-vn 0.939024 -0.103129 0.328023
-vn -0.334190 -0.282728 0.899101
-vn 0.000000 -0.299979 0.953946
-vn -0.334187 -0.282732 0.899100
-vn -0.334187 -0.282732 0.899100
-vn 0.000000 -0.299979 0.953946
-vn 0.000000 -0.299979 0.953946
-vn -0.334178 -0.282680 0.899120
-vn -0.334190 -0.282728 0.899101
-vn -0.334176 -0.282685 0.899119
-vn -0.334176 -0.282685 0.899119
-vn -0.334190 -0.282728 0.899101
-vn -0.334187 -0.282732 0.899100
-vn 0.323092 -0.283838 0.902800
-vn -0.334178 -0.282680 0.899120
-vn 0.323090 -0.283842 0.902799
-vn 0.323090 -0.283842 0.902799
-vn -0.334178 -0.282680 0.899120
-vn -0.334176 -0.282685 0.899119
-vn 0.323092 -0.283838 0.902800
-vn 0.323090 -0.283842 0.902799
-vn 0.323103 -0.283885 0.902781
-vn 0.323103 -0.283885 0.902781
-vn 0.323090 -0.283842 0.902799
-vn 0.323100 -0.283890 0.902781
-vn -0.308892 -0.285309 0.907295
-vn 0.323103 -0.283885 0.902781
-vn -0.308885 -0.285310 0.907297
-vn -0.308885 -0.285310 0.907297
-vn 0.323103 -0.283885 0.902781
-vn 0.323100 -0.283890 0.902781
-vn -0.000007 0.953958 0.299939
-vn -0.000002 0.953948 0.299972
-vn -0.000009 0.953948 0.299971
-vn -0.000009 0.953948 0.299971
-vn -0.000002 0.953948 0.299972
-vn 0.000000 0.953965 0.299918
-vn 0.000000 0.953957 0.299943
-vn 0.000002 0.953945 0.299983
-vn 0.000002 0.953952 0.299960
-vn 0.000002 0.953952 0.299960
-vn 0.000002 0.953945 0.299983
-vn 0.000000 0.953948 0.299973
-vn -0.000004 0.953959 0.299936
-vn 0.000000 0.953957 0.299943
-vn 0.000002 0.953955 0.299950
-vn 0.000002 0.953955 0.299950
-vn 0.000000 0.953957 0.299943
-vn 0.000002 0.953952 0.299960
-vn -0.000007 0.953958 0.299939
-vn -0.000004 0.953959 0.299936
-vn -0.000002 0.953948 0.299972
-vn -0.000002 0.953948 0.299972
-vn -0.000004 0.953959 0.299936
-vn -0.000000 0.953943 0.299988
-vn -0.000008 -0.953931 -0.300026
-vn -0.000006 -0.953939 -0.300002
-vn -0.000004 -0.953936 -0.300010
-vn -0.000004 -0.953936 -0.300010
-vn -0.000000 -0.953948 -0.299972
-vn -0.000008 -0.953931 -0.300026
-vn -0.000008 -0.953931 -0.300026
-vn -0.000000 -0.953948 -0.299972
-vn 0.000001 -0.953943 -0.299986
-vn 0.000000 -0.953975 -0.299885
-vn -0.000003 -0.953971 -0.299898
-vn -0.000002 -0.953961 -0.299930
-vn -0.000002 -0.953961 -0.299930
-vn -0.000003 -0.953971 -0.299898
-vn -0.000006 -0.953939 -0.300002
-vn -0.000002 -0.953961 -0.299930
-vn -0.000006 -0.953939 -0.300002
-vn -0.000003 -0.953952 -0.299960
-vn -0.000003 -0.953952 -0.299960
-vn -0.000006 -0.953939 -0.300002
-vn -0.000008 -0.953931 -0.300026
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn -0.999998 0.001910 0.000600
-vn -0.999998 0.001910 0.000600
-vn -0.999998 0.001910 0.000601
-vn -0.999998 0.001910 0.000601
-vn -0.999998 0.001910 0.000600
-vn -0.999998 0.001910 0.000601
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.999998 -0.001910 -0.000600
-vn 0.999998 -0.001910 -0.000600
-vn 0.999998 -0.001910 -0.000601
-vn 0.999998 -0.001910 -0.000601
-vn 0.999998 -0.001910 -0.000600
-vn 0.999998 -0.001910 -0.000601
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn 0.000000 0.299956 -0.953953
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 0.000000 -0.299951 0.953955
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953951 0.299963
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953951 0.299962
-vn 0.000000 0.953959 0.299938
-vn 0.000000 0.953950 0.299965
-vn 0.000000 -0.953959 -0.299938
-vn 0.000000 -0.953983 -0.299862
-vn 0.000003 -0.953962 -0.299928
-vn 0.000003 -0.953962 -0.299928
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953958 -0.299939
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953949 0.299969
-vn 0.000000 0.953949 0.299969
-vn 0.000000 0.953955 0.299949
-vn 0.000000 0.953948 0.299971
-vn 0.000000 0.953949 0.299968
-vn 0.000000 0.953949 0.299969
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953949 0.299969
-vn 0.000000 0.953939 0.300001
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953959 -0.299939
-vn 0.000000 -0.953959 -0.299938
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953961 -0.299932
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953983 -0.299862
-vn 0.000000 -0.953951 -0.299963
-vn 0.000000 -0.953935 -0.300013
-vn 0.000000 -0.953950 -0.299965
-vn 0.000000 -0.953950 -0.299965
-vn 0.000000 -0.953935 -0.300013
-vn 0.000000 -0.953935 -0.300013
-vn -0.000009 -0.953960 -0.299935
-vn -0.000011 -0.953958 -0.299940
-vn -0.000004 -0.953959 -0.299938
-vn -0.000004 -0.953959 -0.299938
-vn -0.000011 -0.953958 -0.299940
-vn 0.000000 -0.953944 -0.299983
-vn 0.000000 0.953945 0.299982
-vn -0.000002 0.953942 0.299991
-vn -0.000001 0.953943 0.299987
-vn -0.000001 0.953943 0.299987
-vn -0.000002 0.953942 0.299991
-vn -0.000002 0.953945 0.299983
-vn 0.000000 0.953956 0.299947
-vn 0.000000 0.953956 0.299945
-vn 0.000000 0.953979 0.299875
-vn 0.000000 0.953979 0.299875
-vn 0.000000 0.953956 0.299945
-vn 0.000000 0.953979 0.299875
-vn -0.000006 0.953950 0.299964
-vn -0.000008 0.953951 0.299964
-vn -0.000042 0.953953 0.299957
-vn -0.000006 0.953950 0.299964
-vn 0.000020 0.953957 0.299944
-vn 0.000007 0.953952 0.299958
-vn -0.000006 0.953950 0.299964
-vn 0.000007 0.953952 0.299958
-vn -0.000008 0.953951 0.299964
-vn 0.000006 -0.953951 -0.299964
-vn 0.000009 -0.953951 -0.299964
-vn 0.000003 -0.953949 -0.299968
-vn 0.000006 -0.953951 -0.299964
-vn 0.000003 -0.953949 -0.299968
-vn 0.000008 -0.953947 -0.299974
-vn 0.000048 -0.953953 -0.299956
-vn 0.000009 -0.953951 -0.299964
-vn 0.000006 -0.953951 -0.299964
-vn 0.000000 0.953939 0.300001
-vn 0.000000 0.953938 0.300004
-vn 0.000000 0.953904 0.300113
-vn 0.000000 0.953904 0.300113
-vn 0.000000 0.953938 0.300004
-vn 0.000000 0.953904 0.300113
-vn 0.000000 0.953954 0.299952
-vn 0.000000 0.953954 0.299954
-vn 0.000000 0.953934 0.300016
-vn 0.000000 0.953934 0.300016
-vn 0.000000 0.953954 0.299954
-vn 0.000000 0.953934 0.300016
-vn 0.000000 0.953943 0.299989
-vn 0.000001 0.953944 0.299986
-vn -0.000000 0.953947 0.299975
-vn -0.000000 0.953947 0.299975
-vn 0.000001 0.953944 0.299986
-vn 0.000000 0.953947 0.299974
-vn 0.000007 -0.953955 -0.299951
-vn 0.000009 -0.953962 -0.299926
-vn 0.000002 -0.953958 -0.299941
-vn 0.000002 -0.953958 -0.299941
-vn 0.000009 -0.953962 -0.299926
-vn 0.000000 -0.953973 -0.299893
-vn 0.000000 -0.953959 -0.299938
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953948 -0.299973
-vn 0.000000 -0.953948 -0.299973
-vn 0.000000 -0.953959 -0.299936
-vn 0.000000 -0.953948 -0.299973
-vn 0.000000 -0.953944 -0.299985
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953942 -0.299993
-vn 0.000000 -0.953942 -0.299993
-vn 0.000000 -0.953944 -0.299984
-vn 0.000000 -0.953942 -0.299993
-vn 0.000011 0.953941 0.299994
-vn 0.000006 0.953944 0.299986
-vn 0.000002 0.953947 0.299974
-vn -0.000009 0.953949 0.299969
-vn -0.000032 0.953926 0.300043
-vn -0.000040 0.953927 0.300039
-vn 0.000023 -0.953955 -0.299950
-vn 0.000000 -0.953973 -0.299894
-vn 0.000006 -0.953949 -0.299970
-vn -0.945064 -0.098052 0.311833
-vn -0.945064 -0.098052 0.311833
-vn -0.945064 -0.098052 0.311833
-vn -0.945064 -0.098052 0.311833
-vn -0.945064 -0.098052 0.311833
-vn -0.945064 -0.098052 0.311833
-vn -0.043579 -0.299675 0.953046
-vn -0.043579 -0.299674 0.953046
-vn -0.043579 -0.299675 0.953046
-vn -0.043579 -0.299675 0.953046
-vn -0.043579 -0.299674 0.953046
-vn -0.043579 -0.299674 0.953046
-vn -0.960922 -0.083057 0.264066
-vn -0.846727 -0.159595 0.507526
-vn -0.960918 -0.083057 0.264080
-vn -0.960918 -0.083057 0.264080
-vn -0.846727 -0.159595 0.507526
-vn -0.846726 -0.159588 0.507531
-vn -1.000000 0.000000 -0.000000
-vn -0.960922 -0.083057 0.264066
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.960922 -0.083057 0.264066
-vn -0.960918 -0.083057 0.264080
-vn 0.962669 -0.081214 0.258209
-vn 1.000000 0.000000 -0.000000
-vn 0.962660 -0.081228 0.258239
-vn 0.962660 -0.081228 0.258239
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.853455 -0.156328 0.497167
-vn 0.962669 -0.081214 0.258209
-vn 0.853454 -0.156338 0.497167
-vn 0.853454 -0.156338 0.497167
-vn 0.962669 -0.081214 0.258209
-vn 0.962660 -0.081228 0.258239
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn -0.922398 -0.115888 0.368446
-vn -0.922394 -0.115866 0.368461
-vn -0.922397 -0.115882 0.368450
-vn -0.922397 -0.115882 0.368450
-vn -0.922394 -0.115866 0.368461
-vn -0.922393 -0.115860 0.368466
-vn 0.000000 -0.300040 0.953927
-vn 0.000000 -0.300040 0.953927
-vn 0.000000 -0.300040 0.953927
-vn 0.000000 -0.300040 0.953927
-vn 0.000000 -0.300040 0.953927
-vn 0.000000 -0.300040 0.953927
-vn -0.754741 -0.196780 0.625814
-vn -0.754754 -0.196813 0.625788
-vn -0.754747 -0.196793 0.625803
-vn -0.754747 -0.196793 0.625803
-vn -0.754754 -0.196813 0.625788
-vn -0.754759 -0.196827 0.625777
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.887761 -0.138072 0.439109
-vn 0.887761 -0.138072 0.439109
-vn 0.887761 -0.138072 0.439109
-vn 0.887761 -0.138072 0.439109
-vn 0.887761 -0.138072 0.439109
-vn 0.887761 -0.138072 0.439109
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299959 0.953952
-vn 0.000001 -0.953950 -0.299965
-vn 0.000004 -0.953954 -0.299953
-vn 0.000000 -0.953968 -0.299907
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299959 0.953952
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299941 0.953958
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.551002 0.834504
-vn 0.000000 -0.551002 0.834504
-vn 0.000000 -0.299941 0.953958
-vn 0.000000 -0.551002 0.834504
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 -0.551002 0.834504
-vn 0.000000 -0.551002 0.834504
-vn 0.000000 -0.759493 0.650516
-vn 0.000000 -0.759493 0.650516
-vn 0.000000 -0.551002 0.834504
-vn 0.000000 -0.759493 0.650516
-vn 0.000000 0.809898 0.586570
-vn 0.000000 0.809898 0.586570
-vn 0.000000 0.809898 0.586570
-vn 0.000000 0.809898 0.586570
-vn 0.000000 0.809898 0.586570
-vn 0.000000 0.809898 0.586570
-vn 0.000000 -0.586564 0.809903
-vn 0.000000 -0.586564 0.809903
-vn 0.000000 -0.586564 0.809903
-vn 0.000000 -0.586564 0.809903
-vn 0.000000 -0.586564 0.809903
-vn 0.000000 -0.586564 0.809903
-vn 0.992400 0.099663 0.072181
-vn 0.992400 0.099661 0.072179
-vn 0.992403 0.099643 0.072161
-vn 0.992403 0.099643 0.072161
-vn 0.992400 0.099661 0.072179
-vn 0.992404 0.099641 0.072159
-vn -0.992404 0.099641 0.072159
-vn -0.992400 0.099661 0.072179
-vn -0.992403 0.099643 0.072161
-vn -0.992403 0.099643 0.072161
-vn -0.992400 0.099661 0.072179
-vn -0.992400 0.099663 0.072181
-vn 0.000000 0.809901 0.586566
-vn 0.000000 0.809901 0.586566
-vn 0.000000 0.809901 0.586566
-vn 0.000000 0.809901 0.586566
-vn 0.000000 0.809901 0.586566
-vn 0.000000 0.809901 0.586566
-vn 0.000000 -0.586733 0.809781
-vn 0.000000 -0.586733 0.809781
-vn 0.000000 -0.586733 0.809781
-vn 0.000000 -0.586733 0.809781
-vn 0.000000 -0.586733 0.809781
-vn 0.000000 -0.586733 0.809781
-vn 0.965697 0.210307 0.152314
-vn 0.965698 0.210306 0.152313
-vn 0.965702 0.210294 0.152302
-vn 0.965702 0.210294 0.152302
-vn 0.965698 0.210306 0.152313
-vn 0.965702 0.210293 0.152301
-vn -0.965702 0.210293 0.152301
-vn -0.965698 0.210306 0.152313
-vn -0.965702 0.210294 0.152302
-vn -0.965702 0.210294 0.152302
-vn -0.965698 0.210306 0.152313
-vn -0.965697 0.210307 0.152314
-vn -0.000008 0.953953 0.299957
-vn -0.000009 0.953949 0.299969
-vn 0.000000 0.953973 0.299894
-vn 0.000002 0.953947 0.299974
-vn -0.000008 0.953953 0.299957
-vn 0.000000 0.953954 0.299955
-vn -0.000008 0.953953 0.299957
-vn -0.000005 0.953947 0.299976
-vn -0.000009 0.953949 0.299969
-vn -0.000009 0.953949 0.299969
-vn -0.000005 0.953947 0.299976
-vn -0.000032 0.953926 0.300043
-vn -0.000009 0.953949 0.299969
-vn -0.000040 0.953927 0.300039
-vn 0.000002 0.953958 0.299942
-vn 0.000002 0.953947 0.299975
-vn 0.000011 0.953941 0.299994
-vn 0.000000 0.953915 0.300077
-vn 0.000001 0.953950 0.299964
-vn 0.000002 0.953947 0.299975
-vn -0.000001 0.953975 0.299885
-vn -0.000001 0.953975 0.299885
-vn 0.000002 0.953947 0.299975
-vn 0.000000 0.953976 0.299882
-vn 0.000001 0.953950 0.299964
-vn 0.000002 0.953935 0.300013
-vn 0.000002 0.953947 0.299975
-vn 0.000002 0.953935 0.300013
-vn 0.000006 0.953944 0.299986
-vn 0.000002 0.953947 0.299975
-vn 0.000002 0.953947 0.299975
-vn 0.000006 0.953944 0.299986
-vn 0.000011 0.953941 0.299994
-vn 0.000006 0.953944 0.299986
-vn -0.000005 0.953947 0.299976
-vn 0.000002 0.953947 0.299974
-vn 0.000002 0.953947 0.299974
-vn -0.000005 0.953947 0.299976
-vn -0.000008 0.953953 0.299957
-vn 0.000000 -0.953945 -0.299981
-vn -0.000002 -0.953947 -0.299974
-vn -0.000005 -0.953948 -0.299972
-vn -0.000005 -0.953948 -0.299972
-vn -0.000002 -0.953947 -0.299974
-vn -0.000005 -0.953951 -0.299963
-vn -0.000002 -0.953947 -0.299974
-vn 0.000000 -0.953945 -0.299981
-vn 0.000001 -0.953950 -0.299965
-vn -0.000002 -0.953949 -0.299968
-vn -0.000002 -0.953947 -0.299975
-vn 0.000004 -0.953954 -0.299953
-vn 0.000004 -0.953954 -0.299953
-vn -0.000002 -0.953947 -0.299975
-vn 0.000000 -0.953945 -0.299983
-vn 0.000000 -0.953945 -0.299981
-vn -0.000000 -0.953951 -0.299963
-vn 0.000001 -0.953950 -0.299965
-vn 0.000001 -0.953950 -0.299965
-vn -0.000000 -0.953951 -0.299963
-vn 0.000004 -0.953954 -0.299953
-vn -0.000000 -0.953951 -0.299963
-vn -0.000002 -0.953949 -0.299968
-vn 0.000004 -0.953954 -0.299953
-vn -0.000005 -0.953951 -0.299963
-vn -0.000002 -0.953947 -0.299974
-vn 0.000000 -0.953954 -0.299955
-vn 0.000023 -0.953955 -0.299950
-vn 0.000006 -0.953949 -0.299970
-vn 0.000016 -0.953945 -0.299982
-vn -0.000022 -0.953947 -0.299976
-vn 0.000006 -0.953949 -0.299970
-vn 0.000001 -0.953930 -0.300031
-vn -0.000018 -0.953947 -0.299975
-vn 0.000006 -0.953949 -0.299970
-vn -0.000022 -0.953947 -0.299976
-vn 0.000016 -0.953945 -0.299982
-vn 0.000006 -0.953949 -0.299970
-vn -0.000018 -0.953947 -0.299975
-vn -0.528790 -0.207909 0.822894
-vn -0.529347 -0.206827 0.822809
-vn -0.496517 -0.108663 0.861199
-vn -0.496517 -0.108663 0.861199
-vn -0.529347 -0.206827 0.822809
-vn -0.493995 -0.107474 0.862797
-vn 0.542548 0.261481 -0.798291
-vn 0.538860 0.263168 -0.800233
-vn 0.542729 0.261315 -0.798223
-vn 0.542729 0.261315 -0.798223
-vn 0.538860 0.263168 -0.800233
-vn 0.543179 0.260620 -0.798144
-vn 0.538860 0.263168 -0.800233
-vn 0.555186 0.305408 -0.773624
-vn 0.543179 0.260620 -0.798144
-vn 0.555186 0.305408 -0.773624
-vn 0.559618 0.312824 -0.767443
-vn 0.543179 0.260620 -0.798144
-vn 0.543179 0.260620 -0.798144
-vn 0.559618 0.312824 -0.767443
-vn 0.529346 0.206824 -0.822810
-vn 0.529346 0.206824 -0.822810
-vn 0.559618 0.312824 -0.767443
-vn 0.528811 0.207898 -0.822884
-vn 0.528811 0.207898 -0.822884
-vn 0.559618 0.312824 -0.767443
-vn 0.539256 0.262475 -0.800194
-vn 0.559618 0.312824 -0.767443
-vn 0.542412 0.261566 -0.798356
-vn 0.539256 0.262475 -0.800194
-vn 0.542412 0.261566 -0.798356
-vn 0.543115 0.261150 -0.798014
-vn 0.539256 0.262475 -0.800194
-vn 0.543115 0.261150 -0.798014
-vn 0.543135 0.261128 -0.798008
-vn 0.539256 0.262475 -0.800194
-vn 0.528811 0.207898 -0.822884
-vn 0.496521 0.108631 -0.861201
-vn 0.529346 0.206824 -0.822810
-vn 0.529346 0.206824 -0.822810
-vn 0.496521 0.108631 -0.861201
-vn 0.493980 0.107433 -0.862810
-vn 0.699477 0.385150 0.601990
-vn 0.699448 0.385236 0.601968
-vn 0.605421 0.536895 0.587545
-vn 0.605421 0.536895 0.587545
-vn 0.699448 0.385236 0.601968
-vn 0.605431 0.536918 0.587514
-vn 0.699477 0.385150 0.601990
-vn 0.835805 -0.076421 0.543682
-vn 0.699448 0.385236 0.601968
-vn 0.699448 0.385236 0.601968
-vn 0.835805 -0.076421 0.543682
-vn 0.835823 -0.076528 0.543640
-vn 0.835805 -0.076421 0.543682
-vn 0.711226 -0.648338 0.271691
-vn 0.835823 -0.076528 0.543640
-vn 0.835823 -0.076528 0.543640
-vn 0.711226 -0.648338 0.271691
-vn 0.711256 -0.648301 0.271698
-vn 0.711226 -0.648338 0.271691
-vn 0.362955 -0.930027 -0.057562
-vn 0.711256 -0.648301 0.271698
-vn 0.711256 -0.648301 0.271698
-vn 0.362955 -0.930027 -0.057562
-vn 0.363615 -0.929800 -0.057064
-vn 0.409154 -0.912241 -0.020229
-vn 0.431409 -0.902155 -0.001797
-vn 0.362955 -0.930027 -0.057562
-vn 0.362955 -0.930027 -0.057562
-vn 0.431409 -0.902155 -0.001797
-vn 0.363615 -0.929800 -0.057064
-vn 0.409154 -0.912241 -0.020229
-vn 0.613449 -0.772403 0.164544
-vn 0.431409 -0.902155 -0.001797
-vn 0.431409 -0.902155 -0.001797
-vn 0.613449 -0.772403 0.164544
-vn 0.613449 -0.772403 0.164543
-vn -0.256998 -0.853081 -0.454097
-vn -0.257005 -0.853113 -0.454034
-vn -0.257002 -0.853096 -0.454068
-vn -0.257002 -0.853096 -0.454068
-vn -0.257005 -0.853113 -0.454034
-vn -0.257009 -0.853127 -0.454005
-vn -0.756024 -0.261580 -0.600004
-vn -0.771414 -0.220366 -0.596959
-vn -0.837203 0.094028 -0.538749
-vn -0.837203 0.094028 -0.538749
-vn -0.771414 -0.220366 -0.596959
-vn -0.837224 0.094034 -0.538715
-vn -0.711641 -0.361377 -0.602473
-vn -0.711600 -0.361485 -0.602457
-vn -0.756024 -0.261580 -0.600004
-vn -0.756024 -0.261580 -0.600004
-vn -0.711600 -0.361485 -0.602457
-vn -0.771414 -0.220366 -0.596959
-vn -0.711641 -0.361377 -0.602473
-vn -0.839819 0.171460 -0.515077
-vn -0.711600 -0.361485 -0.602457
-vn -0.711600 -0.361485 -0.602457
-vn -0.839819 0.171460 -0.515077
-vn -0.839814 0.171498 -0.515073
-vn -0.839819 0.171460 -0.515077
-vn -0.658607 0.722077 -0.211760
-vn -0.839814 0.171498 -0.515073
-vn -0.839814 0.171498 -0.515073
-vn -0.658607 0.722077 -0.211760
-vn -0.658573 0.722107 -0.211763
-vn -0.658607 0.722077 -0.211760
-vn -0.339481 0.937545 0.075911
-vn -0.658573 0.722107 -0.211763
-vn -0.658573 0.722107 -0.211763
-vn -0.339481 0.937545 0.075911
-vn -0.338967 0.937701 0.076278
-vn -0.339481 0.937545 0.075911
-vn -0.207632 0.962668 0.173664
-vn -0.338967 0.937701 0.076278
-vn -0.338967 0.937701 0.076278
-vn -0.207632 0.962668 0.173664
-vn -0.207584 0.962684 0.173636
-vn -0.758009 0.561350 -0.332127
-vn -0.758064 0.561309 -0.332071
-vn -0.758028 0.561336 -0.332108
-vn -0.758028 0.561336 -0.332108
-vn -0.758064 0.561309 -0.332071
-vn -0.758083 0.561294 -0.332052
-vn 0.235387 0.864929 0.443272
-vn 0.235389 0.864929 0.443271
-vn 0.235388 0.864929 0.443271
-vn 0.235388 0.864929 0.443271
-vn 0.235389 0.864929 0.443271
-vn 0.235390 0.864929 0.443270
-vn 0.830639 -0.306628 0.464778
-vn 0.830664 -0.306605 0.464748
-vn 0.830712 -0.306562 0.464691
-vn 0.830712 -0.306562 0.464691
-vn 0.830664 -0.306605 0.464748
-vn 0.830737 -0.306540 0.464661
-vn -0.555156 -0.305430 0.773637
-vn -0.559601 -0.312809 0.767461
-vn -0.581574 -0.417870 0.697966
-vn -0.581574 -0.417870 0.697966
-vn -0.559601 -0.312809 0.767461
-vn -0.593004 -0.427010 0.682648
-vn -0.542697 -0.261391 0.798219
-vn -0.542768 -0.261326 0.798193
-vn -0.538790 -0.263231 0.800259
-vn -0.542768 -0.261326 0.798193
-vn -0.543188 -0.260613 0.798140
-vn -0.538790 -0.263231 0.800259
-vn -0.538790 -0.263231 0.800259
-vn -0.543188 -0.260613 0.798140
-vn -0.555156 -0.305430 0.773637
-vn -0.555156 -0.305430 0.773637
-vn -0.543188 -0.260613 0.798140
-vn -0.559601 -0.312809 0.767461
-vn -0.543188 -0.260613 0.798140
-vn -0.529347 -0.206827 0.822809
-vn -0.559601 -0.312809 0.767461
-vn -0.529347 -0.206827 0.822809
-vn -0.528790 -0.207909 0.822894
-vn -0.559601 -0.312809 0.767461
-vn -0.528790 -0.207909 0.822894
-vn -0.539261 -0.262469 0.800192
-vn -0.559601 -0.312809 0.767461
-vn -0.559601 -0.312809 0.767461
-vn -0.539261 -0.262469 0.800192
-vn -0.542425 -0.261554 0.798351
-vn -0.539261 -0.262469 0.800192
-vn -0.543193 -0.261101 0.797977
-vn -0.542425 -0.261554 0.798351
-vn -0.543193 -0.261101 0.797977
-vn -0.543123 -0.261115 0.798020
-vn -0.542425 -0.261554 0.798351
-vn 0.555186 0.305408 -0.773624
-vn 0.581597 0.417889 -0.697936
-vn 0.559618 0.312824 -0.767443
-vn 0.559618 0.312824 -0.767443
-vn 0.581597 0.417889 -0.697936
-vn 0.593078 0.427070 -0.682547
-vn -0.527445 -0.204722 0.824555
-vn -0.521047 -0.210346 0.827203
-vn -0.499157 -0.120512 0.858091
-vn -0.499157 -0.120512 0.858091
-vn -0.521047 -0.210346 0.827203
-vn -0.505285 -0.123061 0.854133
-vn 0.559592 0.223151 -0.798161
-vn 0.546538 0.239366 -0.802496
-vn 0.539218 0.242967 -0.806357
-vn 0.539218 0.242967 -0.806357
-vn 0.546538 0.239366 -0.802496
-vn 0.529571 0.257265 -0.808313
-vn 0.546538 0.239366 -0.802496
-vn 0.546101 0.286070 -0.787361
-vn 0.529571 0.257265 -0.808313
-vn 0.546101 0.286070 -0.787361
-vn 0.565282 0.295103 -0.770306
-vn 0.529571 0.257265 -0.808313
-vn 0.529571 0.257265 -0.808313
-vn 0.565282 0.295103 -0.770306
-vn 0.521058 0.210340 -0.827197
-vn 0.521058 0.210340 -0.827197
-vn 0.565282 0.295103 -0.770306
-vn 0.527421 0.204722 -0.824570
-vn 0.527421 0.204722 -0.824570
-vn 0.565282 0.295103 -0.770306
-vn 0.553008 0.246282 -0.795944
-vn 0.565282 0.295103 -0.770306
-vn 0.576294 0.237654 -0.781924
-vn 0.553008 0.246282 -0.795944
-vn 0.576294 0.237654 -0.781924
-vn 0.559688 0.249093 -0.790381
-vn 0.553008 0.246282 -0.795944
-vn 0.559688 0.249093 -0.790381
-vn 0.549439 0.260927 -0.793747
-vn 0.553008 0.246282 -0.795944
-vn 0.527421 0.204722 -0.824570
-vn 0.499193 0.120559 -0.858063
-vn 0.521058 0.210340 -0.827197
-vn 0.521058 0.210340 -0.827197
-vn 0.499193 0.120559 -0.858063
-vn 0.505407 0.123144 -0.854049
-vn 0.602572 0.544224 0.583718
-vn 0.702840 0.379990 0.601351
-vn 0.602547 0.544227 0.583741
-vn 0.602547 0.544227 0.583741
-vn 0.702840 0.379990 0.601351
-vn 0.704472 0.376771 0.601467
-vn 0.702840 0.379990 0.601351
-vn 0.834696 -0.101593 0.541259
-vn 0.704472 0.376771 0.601467
-vn 0.704472 0.376771 0.601467
-vn 0.834696 -0.101593 0.541259
-vn 0.834470 -0.097428 0.542372
-vn 0.693999 -0.668399 0.267597
-vn 0.696653 -0.664399 0.270644
-vn 0.834696 -0.101593 0.541259
-vn 0.834696 -0.101593 0.541259
-vn 0.696653 -0.664399 0.270644
-vn 0.834470 -0.097428 0.542372
-vn 0.344476 -0.937107 -0.056276
-vn 0.345273 -0.936851 -0.055638
-vn 0.693999 -0.668399 0.267597
-vn 0.693999 -0.668399 0.267597
-vn 0.345273 -0.936851 -0.055638
-vn 0.696653 -0.664399 0.270644
-vn 0.411670 -0.911330 -0.002210
-vn 0.428167 -0.903626 0.011550
-vn 0.344476 -0.937107 -0.056276
-vn 0.344476 -0.937107 -0.056276
-vn 0.428167 -0.903626 0.011550
-vn 0.345273 -0.936851 -0.055638
-vn 0.411670 -0.911330 -0.002210
-vn 0.621304 -0.760466 0.188873
-vn 0.428167 -0.903626 0.011550
-vn 0.428167 -0.903626 0.011550
-vn 0.621304 -0.760466 0.188873
-vn 0.621300 -0.760466 0.188885
-vn -0.278012 -0.845821 -0.455297
-vn -0.278023 -0.845854 -0.455230
-vn -0.278017 -0.845836 -0.455268
-vn -0.278017 -0.845836 -0.455268
-vn -0.278023 -0.845854 -0.455230
-vn -0.278028 -0.845868 -0.455201
-vn -0.769322 -0.224426 -0.598144
-vn -0.781261 -0.188402 -0.595093
-vn -0.836255 0.142640 -0.529463
-vn -0.836255 0.142640 -0.529463
-vn -0.781261 -0.188402 -0.595093
-vn -0.836249 0.142639 -0.529473
-vn -0.769322 -0.224426 -0.598144
-vn -0.720273 -0.344710 -0.601982
-vn -0.781261 -0.188402 -0.595093
-vn -0.781261 -0.188402 -0.595093
-vn -0.720273 -0.344710 -0.601982
-vn -0.722511 -0.339911 -0.602028
-vn -0.720273 -0.344710 -0.601982
-vn -0.836094 0.192098 -0.513853
-vn -0.722511 -0.339911 -0.602028
-vn -0.722511 -0.339911 -0.602028
-vn -0.836094 0.192098 -0.513853
-vn -0.836130 0.190417 -0.514419
-vn -0.640987 0.738505 -0.209156
-vn -0.643222 0.735885 -0.211514
-vn -0.836094 0.192098 -0.513853
-vn -0.836094 0.192098 -0.513853
-vn -0.643222 0.735885 -0.211514
-vn -0.836130 0.190417 -0.514419
-vn -0.307180 0.947810 0.085418
-vn -0.307865 0.947635 0.084892
-vn -0.640987 0.738505 -0.209156
-vn -0.640987 0.738505 -0.209156
-vn -0.307865 0.947635 0.084892
-vn -0.643222 0.735885 -0.211514
-vn -0.307865 0.947635 0.084892
-vn -0.307180 0.947810 0.085418
-vn -0.164233 0.967987 0.189814
-vn -0.164233 0.967987 0.189814
-vn -0.307180 0.947810 0.085418
-vn -0.164233 0.967987 0.189814
-vn -0.729536 0.609604 -0.310097
-vn -0.729537 0.609603 -0.310095
-vn -0.729536 0.609604 -0.310097
-vn -0.729536 0.609604 -0.310097
-vn -0.729537 0.609603 -0.310095
-vn -0.729538 0.609603 -0.310095
-vn 0.254629 0.859443 0.443309
-vn 0.254562 0.859441 0.443350
-vn 0.254601 0.859442 0.443326
-vn 0.254601 0.859442 0.443326
-vn 0.254562 0.859441 0.443350
-vn 0.254534 0.859440 0.443368
-vn 0.822825 -0.332602 0.460798
-vn 0.822814 -0.332613 0.460811
-vn 0.822792 -0.332632 0.460835
-vn 0.822792 -0.332632 0.460835
-vn 0.822814 -0.332613 0.460811
-vn 0.822781 -0.332642 0.460848
-vn -0.546135 -0.286051 0.787344
-vn -0.565278 -0.295064 0.770323
-vn -0.577940 -0.382619 0.720824
-vn -0.577940 -0.382619 0.720824
-vn -0.565278 -0.295064 0.770323
-vn -0.614751 -0.410393 0.673543
-vn -0.559617 -0.223203 0.798128
-vn -0.539321 -0.242945 0.806294
-vn -0.546452 -0.239440 0.802533
-vn -0.539321 -0.242945 0.806294
-vn -0.529578 -0.257294 0.808299
-vn -0.546452 -0.239440 0.802533
-vn -0.546452 -0.239440 0.802533
-vn -0.529578 -0.257294 0.808299
-vn -0.546135 -0.286051 0.787344
-vn -0.546135 -0.286051 0.787344
-vn -0.529578 -0.257294 0.808299
-vn -0.565278 -0.295064 0.770323
-vn -0.529578 -0.257294 0.808299
-vn -0.521047 -0.210346 0.827203
-vn -0.565278 -0.295064 0.770323
-vn -0.521047 -0.210346 0.827203
-vn -0.527445 -0.204722 0.824555
-vn -0.565278 -0.295064 0.770323
-vn -0.527445 -0.204722 0.824555
-vn -0.552639 -0.245811 0.796346
-vn -0.565278 -0.295064 0.770323
-vn -0.565278 -0.295064 0.770323
-vn -0.552639 -0.245811 0.796346
-vn -0.576275 -0.238396 0.781713
-vn -0.552639 -0.245811 0.796346
-vn -0.556088 -0.251338 0.792209
-vn -0.576275 -0.238396 0.781713
-vn -0.556088 -0.251338 0.792209
-vn -0.568421 -0.248483 0.784317
-vn -0.576275 -0.238396 0.781713
-vn 0.546101 0.286070 -0.787361
-vn 0.577902 0.382674 -0.720826
-vn 0.565282 0.295103 -0.770306
-vn 0.565282 0.295103 -0.770306
-vn 0.577902 0.382674 -0.720826
-vn 0.614845 0.410555 -0.673357
-vn -0.000034 -0.960657 -0.277738
-vn 0.382293 -0.886674 -0.260118
-vn 0.382276 -0.886684 -0.260108
-vn 0.382276 -0.886684 -0.260108
-vn -0.000034 -0.960657 -0.277738
-vn -0.000034 -0.960657 -0.277738
-vn 0.382293 -0.886674 -0.260118
-vn 0.706342 -0.676101 -0.209685
-vn 0.706319 -0.676125 -0.209686
-vn 0.706319 -0.676125 -0.209686
-vn 0.382276 -0.886684 -0.260108
-vn 0.382293 -0.886674 -0.260118
-vn 0.706342 -0.676101 -0.209685
-vn 0.922902 -0.360890 -0.134202
-vn 0.922895 -0.360906 -0.134207
-vn 0.922895 -0.360906 -0.134207
-vn 0.706319 -0.676125 -0.209686
-vn 0.706342 -0.676101 -0.209685
-vn 0.922902 -0.360890 -0.134202
-vn 0.998923 0.010792 -0.045122
-vn 0.998923 0.010755 -0.045127
-vn 0.998923 0.010755 -0.045127
-vn 0.922895 -0.360906 -0.134207
-vn 0.922902 -0.360890 -0.134202
-vn 0.998923 0.010792 -0.045122
-vn 0.922877 0.382589 0.043869
-vn 0.922885 0.382568 0.043870
-vn 0.922885 0.382568 0.043870
-vn 0.998923 0.010755 -0.045127
-vn 0.998923 0.010792 -0.045122
-vn 0.922877 0.382589 0.043869
-vn 0.706352 0.697725 0.119361
-vn 0.706352 0.697725 0.119357
-vn 0.706352 0.697725 0.119357
-vn 0.922885 0.382568 0.043870
-vn 0.922877 0.382589 0.043869
-vn 0.706352 0.697725 0.119361
-vn 0.382242 0.908327 0.169800
-vn 0.382239 0.908328 0.169804
-vn 0.382239 0.908328 0.169804
-vn 0.706352 0.697725 0.119357
-vn 0.706352 0.697725 0.119361
-vn 0.382242 0.908327 0.169800
-vn 0.000015 0.982272 0.187459
-vn 0.000014 0.982273 0.187459
-vn 0.000014 0.982273 0.187459
-vn 0.382239 0.908328 0.169804
-vn 0.382242 0.908327 0.169800
-vn 0.000015 0.982272 0.187459
-vn -0.382273 0.908314 0.169801
-vn -0.382269 0.908317 0.169798
-vn -0.382269 0.908317 0.169798
-vn 0.000014 0.982273 0.187459
-vn 0.000015 0.982272 0.187459
-vn -0.382273 0.908314 0.169801
-vn -0.706321 0.697755 0.119364
-vn -0.706322 0.697753 0.119368
-vn -0.706322 0.697753 0.119368
-vn -0.382269 0.908317 0.169798
-vn -0.382273 0.908314 0.169801
-vn -0.706321 0.697755 0.119364
-vn -0.922898 0.382537 0.043862
-vn -0.922906 0.382520 0.043853
-vn -0.922906 0.382520 0.043853
-vn -0.706322 0.697753 0.119368
-vn -0.706321 0.697755 0.119364
-vn -0.922898 0.382537 0.043862
-vn -0.998923 0.010848 -0.045105
-vn -0.998923 0.010811 -0.045117
-vn -0.998923 0.010811 -0.045117
-vn -0.922906 0.382520 0.043853
-vn -0.922898 0.382537 0.043862
-vn -0.998923 0.010848 -0.045105
-vn -0.922882 -0.360937 -0.134214
-vn -0.922875 -0.360953 -0.134217
-vn -0.922875 -0.360953 -0.134217
-vn -0.998923 0.010811 -0.045117
-vn -0.998923 0.010848 -0.045105
-vn -0.922882 -0.360937 -0.134214
-vn -0.706374 -0.676072 -0.209673
-vn -0.706350 -0.676094 -0.209683
-vn -0.706350 -0.676094 -0.209683
-vn -0.922875 -0.360953 -0.134217
-vn -0.922882 -0.360937 -0.134214
-vn -0.706374 -0.676072 -0.209673
-vn -0.382243 -0.886697 -0.260111
-vn -0.382228 -0.886701 -0.260124
-vn -0.382228 -0.886701 -0.260124
-vn -0.706350 -0.676094 -0.209683
-vn -0.706374 -0.676072 -0.209673
-vn -0.382243 -0.886697 -0.260111
-vn -0.000034 -0.960657 -0.277738
-vn -0.000034 -0.960657 -0.277738
-vn -0.000034 -0.960657 -0.277738
-vn -0.382228 -0.886701 -0.260124
-vn -0.382243 -0.886697 -0.260111
-# 10365 vertex normals
-
-vt 0.871414 0.798087 0.000000
-vt 0.852228 0.809224 0.000000
-vt 0.861148 0.786935 0.000000
-vt 0.841327 0.795030 0.000000
-vt 0.828293 0.758206 0.000000
-vt 0.816020 0.756311 0.000000
-vt 0.828099 0.744737 0.000000
-vt 0.813639 0.744737 0.000000
-vt 0.845828 0.744737 0.000000
-vt 0.846646 0.759257 0.000000
-vt 0.891059 0.903942 0.000000
-vt 0.935823 0.931981 0.000000
-vt 0.872802 0.939067 0.000000
-vt 0.918410 0.965970 0.000000
-vt 0.861200 0.819309 0.000000
-vt 0.853690 0.824558 0.000000
-vt 0.878421 0.856169 0.000000
-vt 0.865865 0.866034 0.000000
-vt 0.868269 0.851807 0.000000
-vt 0.860035 0.859357 0.000000
-vt 0.888632 0.812956 0.000000
-vt 0.911588 0.875588 0.000000
-vt 0.954616 0.901820 0.000000
-vt 0.818244 0.881121 0.000000
-vt 0.796012 0.884690 0.000000
-vt 0.815839 0.874584 0.000000
-vt 0.794596 0.876787 0.000000
-vt 0.765906 0.885028 0.000000
-vt 0.765811 0.876702 0.000000
-vt 0.742155 0.870843 0.000000
-vt 0.739925 0.878656 0.000000
-vt 0.726420 0.862641 0.000000
-vt 0.720029 0.868469 0.000000
-vt 0.711174 0.858174 0.000000
-vt 0.718540 0.853732 0.000000
-vt 0.694060 0.814896 0.000000
-vt 0.703556 0.812889 0.000000
-vt 0.703614 0.843515 0.000000
-vt 0.713591 0.842403 0.000000
-vt 0.685832 0.779015 0.000000
-vt 0.694305 0.779028 0.000000
-vt 0.681876 0.744763 0.000000
-vt 0.689209 0.744760 0.000000
-vt 0.810489 0.915025 0.000000
-vt 0.789643 0.904915 0.000000
-vt 0.763502 0.897211 0.000000
-vt 0.736882 0.891458 0.000000
-vt 0.833882 0.877925 0.000000
-vt 0.830196 0.870154 0.000000
-vt 0.665446 0.821078 0.000000
-vt 0.675263 0.855962 0.000000
-vt 0.657850 0.783230 0.000000
-vt 0.654816 0.744778 0.000000
-vt 0.715693 0.882966 0.000000
-vt 0.689929 0.874198 0.000000
-vt 0.632023 0.869789 0.000000
-vt 0.648187 0.889954 0.000000
-vt 0.624729 0.831600 0.000000
-vt 0.617650 0.787994 0.000000
-vt 0.614571 0.744755 0.000000
-vt 0.995992 0.846520 0.000000
-vt 0.996536 0.855982 0.000000
-vt 0.991501 0.845898 0.000000
-vt 0.988333 0.853618 0.000000
-vt 0.961924 0.906842 0.000000
-vt 0.944564 0.937158 0.000000
-vt 0.928403 0.970303 0.000000
-vt 0.972178 0.874978 0.000000
-vt 0.981805 0.879609 0.000000
-vt 0.882666 0.843967 0.000000
-vt 0.869907 0.843064 0.000000
-vt 0.922122 0.842760 0.000000
-vt 0.802869 0.744741 0.000000
-vt 0.807042 0.758253 0.000000
-vt 0.814339 0.770298 0.000000
-vt 0.822772 0.766557 0.000000
-vt 0.824571 0.779950 0.000000
-vt 0.832115 0.776998 0.000000
-vt 0.839157 0.813215 0.000000
-vt 0.832958 0.799411 0.000000
-vt 0.844871 0.823460 0.000000
-vt 0.847351 0.838936 0.000000
-vt 0.841673 0.846389 0.000000
-vt 0.810947 0.863486 0.000000
-vt 0.792244 0.868903 0.000000
-vt 0.765926 0.870387 0.000000
-vt 0.743682 0.866644 0.000000
-vt 0.725129 0.849660 0.000000
-vt 0.732520 0.855317 0.000000
-vt 0.709422 0.811892 0.000000
-vt 0.719360 0.841105 0.000000
-vt 0.700735 0.778593 0.000000
-vt 0.696979 0.744761 0.000000
-vt 0.823595 0.857982 0.000000
-vt 0.844697 0.865754 0.000000
-vt 0.832563 0.852946 0.000000
-vt 0.744624 0.859953 0.000000
-vt 0.765077 0.863689 0.000000
-vt 0.790880 0.864773 0.000000
-vt 0.808861 0.860170 0.000000
-vt 0.820940 0.854831 0.000000
-vt 0.829727 0.850030 0.000000
-vt 0.837776 0.843606 0.000000
-vt 0.842833 0.837312 0.000000
-vt 0.840713 0.823410 0.000000
-vt 0.836029 0.814689 0.000000
-vt 0.827901 0.802468 0.000000
-vt 0.814958 0.787188 0.000000
-vt 0.805131 0.775627 0.000000
-vt 0.798631 0.761364 0.000000
-vt 0.794711 0.744744 0.000000
-vt 0.823022 0.805445 0.000000
-vt 0.810293 0.790673 0.000000
-vt 0.800652 0.778128 0.000000
-vt 0.792317 0.762532 0.000000
-vt 0.787037 0.744747 0.000000
-vt 0.733809 0.904559 0.000000
-vt 0.760316 0.911703 0.000000
-vt 0.991287 0.184616 0.000000
-vt 0.966726 0.142552 0.000000
-vt 0.997388 0.179701 0.000000
-vt 0.972845 0.139150 0.000000
-vt 0.961503 0.229079 0.000000
-vt 0.947051 0.254809 0.000000
-vt 0.918936 0.214844 0.000000
-vt 0.978510 0.203906 0.000000
-vt 0.940721 0.176716 0.000000
-vt 0.933799 0.280513 0.000000
-vt 0.905448 0.246653 0.000000
-vt 0.957712 0.149728 0.000000
-vt 0.987296 0.837510 0.000000
-vt 0.984188 0.841948 0.000000
-vt 0.930988 0.811492 0.000000
-vt 0.927908 0.815945 0.000000
-vt 0.874624 0.782600 0.000000
-vt 0.879310 0.778941 0.000000
-vt 0.883390 0.790657 0.000000
-vt 0.886913 0.786537 0.000000
-vt 0.867629 0.773037 0.000000
-vt 0.873149 0.770324 0.000000
-vt 0.863507 0.760529 0.000000
-vt 0.869542 0.759895 0.000000
-vt 0.863822 0.744725 0.000000
-vt 0.869999 0.748511 0.000000
-vt 0.849470 0.873433 0.000000
-vt 0.850926 0.922938 0.000000
-vt 0.832410 0.914605 0.000000
-vt 0.850628 0.946645 0.000000
-vt 0.824017 0.932271 0.000000
-vt 0.782108 0.922937 0.000000
-vt 0.852220 0.774364 0.000000
-vt 0.789699 0.861815 0.000000
-vt 0.806457 0.856563 0.000000
-vt 0.817326 0.851491 0.000000
-vt 0.831713 0.840069 0.000000
-vt 0.825793 0.846134 0.000000
-vt 0.834948 0.832574 0.000000
-vt 0.834331 0.824327 0.000000
-vt 0.831614 0.817057 0.000000
-vt 0.790882 0.763238 0.000000
-vt 0.785571 0.744748 0.000000
-vt 0.799636 0.779181 0.000000
-vt 0.727417 0.897469 0.000000
-vt 0.666699 0.895450 0.000000
-vt 0.687412 0.895364 0.000000
-vt 0.971997 0.103679 0.000000
-vt 0.982230 0.132221 0.000000
-vt 0.848733 0.990427 0.000000
-vt 0.906049 0.994898 0.000000
-vt 0.915518 0.995736 0.000000
-vt 0.994235 0.842300 0.000000
-vt 0.167314 0.941096 0.000000
-vt 0.157005 0.944138 0.000000
-vt 0.159509 0.928502 0.000000
-vt 0.151449 0.935019 0.000000
-vt 0.170045 0.955096 0.000000
-vt 0.159271 0.955096 0.000000
-vt 0.007461 0.900027 0.000000
-vt 0.147352 0.920573 0.000000
-vt 0.143002 0.929894 0.000000
-vt 0.134407 0.917116 0.000000
-vt 0.133248 0.927578 0.000000
-vt 0.092027 0.900998 0.000000
-vt 0.093769 0.900027 0.000000
-vt 0.079956 0.926907 0.000000
-vt 0.080295 0.916335 0.000000
-vt 0.092054 0.858902 0.000000
-vt 0.870027 0.293539 0.000000
-vt 0.898639 0.291452 0.000000
-vt 0.852039 0.313758 0.000000
-vt 0.887557 0.314149 0.000000
-vt 0.887490 0.319958 0.000000
-vt 0.863674 0.832905 0.000000
-vt 0.873407 0.831316 0.000000
-vt 0.848101 0.831633 0.000000
-vt 0.843067 0.831313 0.000000
-vt 0.960419 0.109997 0.000000
-vt 0.951667 0.076577 0.000000
-vt 0.962974 0.070631 0.000000
-vt 0.940444 0.034450 0.000000
-vt 0.952633 0.031365 0.000000
-vt 0.958689 0.139487 0.000000
-vt 0.950838 0.112785 0.000000
-vt 0.942291 0.079891 0.000000
-vt 0.931355 0.036950 0.000000
-vt 0.826583 0.965707 0.000000
-vt 0.835082 0.988600 0.000000
-vt 0.837427 0.951632 0.000000
-vt 0.713565 0.894176 0.000000
-vt 0.719793 0.778743 0.000000
-vt 0.719398 0.745624 0.000000
-vt 0.762929 0.761192 0.000000
-vt 0.759000 0.745624 0.000000
-vt 0.784902 0.783045 0.000000
-vt 0.722839 0.810315 0.000000
-vt 0.773162 0.774560 0.000000
-vt 0.819474 0.811538 0.000000
-vt 0.726166 0.838217 0.000000
-vt 0.815913 0.804902 0.000000
-vt 0.811087 0.799631 0.000000
-vt 0.800198 0.792446 0.000000
-vt 0.809371 0.832209 0.000000
-vt 0.801299 0.839856 0.000000
-vt 0.787602 0.848287 0.000000
-vt 0.730113 0.846807 0.000000
-vt 0.818819 0.818720 0.000000
-vt 0.815480 0.825394 0.000000
-vt 0.766623 0.855835 0.000000
-vt 0.736832 0.852377 0.000000
-vt 0.747833 0.856606 0.000000
-vt 0.015449 0.916548 0.000000
-vt 0.006293 0.926682 0.000000
-vt 0.007110 0.917489 0.000000
-vt 0.814404 0.948279 0.000000
-vt 0.802918 0.937081 0.000000
-vt 0.893087 0.314095 0.000000
-vt 0.095824 0.933535 0.000000
-vt 0.006082 0.933454 0.000000
-vt 0.129599 0.933505 0.000000
-vt 0.138341 0.935053 0.000000
-vt 0.146346 0.939368 0.000000
-vt 0.151038 0.946615 0.000000
-vt 0.152856 0.955096 0.000000
-vt 0.144859 0.871542 0.000000
-vt 0.150949 0.869044 0.000000
-vt 0.146576 0.879589 0.000000
-vt 0.153315 0.879592 0.000000
-vt 0.132861 0.860617 0.000000
-vt 0.124573 0.858902 0.000000
-vt 0.134998 0.854515 0.000000
-vt 0.125084 0.852531 0.000000
-vt 0.140435 0.864707 0.000000
-vt 0.144883 0.859885 0.000000
-vt 0.092027 0.858272 0.000000
-vt 0.093865 0.858902 0.000000
-vt 0.092417 0.852640 0.000000
-vt 0.007461 0.858902 0.000000
-vt 0.007452 0.852187 0.000000
-vt 0.090091 0.858902 0.000000
-vt 0.871074 0.691493 0.000000
-vt 0.860839 0.702619 0.000000
-vt 0.851934 0.680394 0.000000
-vt 0.841067 0.694553 0.000000
-vt 0.828133 0.731290 0.000000
-vt 0.815877 0.733185 0.000000
-vt 0.846453 0.730237 0.000000
-vt 0.890634 0.585910 0.000000
-vt 0.872415 0.550883 0.000000
-vt 0.935172 0.558265 0.000000
-vt 0.918070 0.524370 0.000000
-vt 0.853388 0.665099 0.000000
-vt 0.860880 0.670332 0.000000
-vt 0.878044 0.633561 0.000000
-vt 0.867920 0.637917 0.000000
-vt 0.865519 0.623725 0.000000
-vt 0.859704 0.630389 0.000000
-vt 0.888242 0.676658 0.000000
-vt 0.911120 0.614185 0.000000
-vt 0.953830 0.588286 0.000000
-vt 0.818016 0.608692 0.000000
-vt 0.815620 0.615215 0.000000
-vt 0.795841 0.605140 0.000000
-vt 0.794431 0.613024 0.000000
-vt 0.765813 0.604815 0.000000
-vt 0.765722 0.613118 0.000000
-vt 0.742130 0.618970 0.000000
-vt 0.726439 0.627156 0.000000
-vt 0.739903 0.611179 0.000000
-vt 0.720063 0.621346 0.000000
-vt 0.711235 0.631618 0.000000
-vt 0.718584 0.636045 0.000000
-vt 0.694188 0.674792 0.000000
-vt 0.703702 0.646243 0.000000
-vt 0.703661 0.676789 0.000000
-vt 0.713654 0.647347 0.000000
-vt 0.685979 0.710585 0.000000
-vt 0.694443 0.710570 0.000000
-vt 0.810271 0.574882 0.000000
-vt 0.789483 0.584973 0.000000
-vt 0.763413 0.592665 0.000000
-vt 0.736865 0.598411 0.000000
-vt 0.833615 0.611875 0.000000
-vt 0.829941 0.619629 0.000000
-vt 0.665644 0.668641 0.000000
-vt 0.675421 0.633843 0.000000
-vt 0.658043 0.706395 0.000000
-vt 0.715732 0.606889 0.000000
-vt 0.690040 0.615648 0.000000
-vt 0.632288 0.620073 0.000000
-vt 0.648399 0.599953 0.000000
-vt 0.625032 0.658163 0.000000
-vt 0.617948 0.701623 0.000000
-vt 0.995069 0.643040 0.000000
-vt 0.990604 0.643696 0.000000
-vt 0.995552 0.633629 0.000000
-vt 0.987415 0.636047 0.000000
-vt 0.961069 0.583273 0.000000
-vt 0.943905 0.553197 0.000000
-vt 0.928051 0.520151 0.000000
-vt 0.971278 0.614898 0.000000
-vt 0.980827 0.610256 0.000000
-vt 0.882292 0.645704 0.000000
-vt 0.869588 0.646646 0.000000
-vt 0.921577 0.646846 0.000000
-vt 0.806850 0.731062 0.000000
-vt 0.814103 0.719122 0.000000
-vt 0.824363 0.709601 0.000000
-vt 0.822583 0.722962 0.000000
-vt 0.831893 0.712543 0.000000
-vt 0.838896 0.676420 0.000000
-vt 0.832717 0.690188 0.000000
-vt 0.844593 0.666198 0.000000
-vt 0.847063 0.650758 0.000000
-vt 0.841397 0.643325 0.000000
-vt 0.810746 0.626281 0.000000
-vt 0.792090 0.620887 0.000000
-vt 0.765839 0.619417 0.000000
-vt 0.743656 0.623159 0.000000
-vt 0.725160 0.640106 0.000000
-vt 0.732529 0.634461 0.000000
-vt 0.709517 0.677781 0.000000
-vt 0.719412 0.648642 0.000000
-vt 0.700865 0.711006 0.000000
-vt 0.823364 0.631767 0.000000
-vt 0.844405 0.624013 0.000000
-vt 0.832310 0.636788 0.000000
-vt 0.744600 0.629834 0.000000
-vt 0.764996 0.626100 0.000000
-vt 0.790730 0.625007 0.000000
-vt 0.808665 0.629592 0.000000
-vt 0.820714 0.634913 0.000000
-vt 0.829481 0.639699 0.000000
-vt 0.837510 0.646105 0.000000
-vt 0.842556 0.652380 0.000000
-vt 0.840444 0.666247 0.000000
-vt 0.835773 0.674949 0.000000
-vt 0.827668 0.687141 0.000000
-vt 0.814770 0.702390 0.000000
-vt 0.804977 0.713925 0.000000
-vt 0.798510 0.728153 0.000000
-vt 0.822798 0.684172 0.000000
-vt 0.810113 0.698916 0.000000
-vt 0.800505 0.711432 0.000000
-vt 0.792205 0.726992 0.000000
-vt 0.733795 0.585344 0.000000
-vt 0.760231 0.578210 0.000000
-vt 0.749864 0.185042 0.000000
-vt 0.743741 0.180171 0.000000
-vt 0.774356 0.142860 0.000000
-vt 0.768210 0.139507 0.000000
-vt 0.779944 0.228845 0.000000
-vt 0.822322 0.214214 0.000000
-vt 0.794326 0.254341 0.000000
-vt 0.762833 0.204067 0.000000
-vt 0.800380 0.176439 0.000000
-vt 0.807594 0.279991 0.000000
-vt 0.835667 0.245974 0.000000
-vt 0.783340 0.150069 0.000000
-vt 0.986459 0.652072 0.000000
-vt 0.930486 0.678108 0.000000
-vt 0.983343 0.647676 0.000000
-vt 0.927411 0.673666 0.000000
-vt 0.874280 0.706939 0.000000
-vt 0.883021 0.698900 0.000000
-vt 0.878958 0.710590 0.000000
-vt 0.886537 0.703009 0.000000
-vt 0.867310 0.716479 0.000000
-vt 0.872816 0.719184 0.000000
-vt 0.863241 0.728954 0.000000
-vt 0.869238 0.729573 0.000000
-vt 0.869789 0.740903 0.000000
-vt 0.849164 0.616351 0.000000
-vt 0.850601 0.566978 0.000000
-vt 0.832136 0.575294 0.000000
-vt 0.823758 0.557679 0.000000
-vt 0.850297 0.543332 0.000000
-vt 0.781963 0.567000 0.000000
-vt 0.851947 0.715162 0.000000
-vt 0.789553 0.627962 0.000000
-vt 0.806267 0.633195 0.000000
-vt 0.817109 0.638250 0.000000
-vt 0.831462 0.649635 0.000000
-vt 0.825555 0.643588 0.000000
-vt 0.834690 0.657109 0.000000
-vt 0.834076 0.665334 0.000000
-vt 0.831365 0.672586 0.000000
-vt 0.790768 0.726291 0.000000
-vt 0.552712 0.587402 0.000000
-vt 0.799489 0.710380 0.000000
-vt 0.727422 0.592418 0.000000
-vt 0.666861 0.594460 0.000000
-vt 0.687520 0.594536 0.000000
-vt 0.758743 0.132695 0.000000
-vt 0.768633 0.104037 0.000000
-vt 0.848394 0.499665 0.000000
-vt 0.905796 0.495536 0.000000
-vt 0.915243 0.494743 0.000000
-vt 0.993344 0.647252 0.000000
-vt 0.167314 0.969095 0.000000
-vt 0.159509 0.981689 0.000000
-vt 0.157005 0.966054 0.000000
-vt 0.151449 0.975172 0.000000
-vt 0.851975 0.319566 0.000000
-vt 0.090185 0.900027 0.000000
-vt 0.147352 0.989617 0.000000
-vt 0.134407 0.993075 0.000000
-vt 0.143002 0.980297 0.000000
-vt 0.133248 0.982613 0.000000
-vt 0.092034 0.900027 0.000000
-vt 0.092317 0.906636 0.000000
-vt 0.079956 0.983284 0.000000
-vt 0.080295 0.993856 0.000000
-vt 0.007373 0.906645 0.000000
-vt 0.841469 0.290835 0.000000
-vt 0.863343 0.656769 0.000000
-vt 0.873052 0.658352 0.000000
-vt 0.847813 0.658044 0.000000
-vt 0.842790 0.658363 0.000000
-vt 0.780288 0.110213 0.000000
-vt 0.788631 0.076689 0.000000
-vt 0.777252 0.070881 0.000000
-vt 0.799339 0.034428 0.000000
-vt 0.787113 0.031492 0.000000
-vt 0.782394 0.139672 0.000000
-vt 0.789903 0.112884 0.000000
-vt 0.798046 0.079888 0.000000
-vt 0.808458 0.036817 0.000000
-vt 0.826307 0.524328 0.000000
-vt 0.834775 0.501491 0.000000
-vt 0.837127 0.538362 0.000000
-vt 0.713606 0.595708 0.000000
-vt 0.719793 0.712504 0.000000
-vt 0.762929 0.730056 0.000000
-vt 0.784902 0.708202 0.000000
-vt 0.773162 0.716687 0.000000
-vt 0.722839 0.680933 0.000000
-vt 0.726166 0.653030 0.000000
-vt 0.819474 0.679709 0.000000
-vt 0.815913 0.686345 0.000000
-vt 0.811086 0.691616 0.000000
-vt 0.800198 0.698801 0.000000
-vt 0.809371 0.659038 0.000000
-vt 0.801298 0.651391 0.000000
-vt 0.787602 0.642960 0.000000
-vt 0.730113 0.644440 0.000000
-vt 0.818819 0.672527 0.000000
-vt 0.815480 0.665853 0.000000
-vt 0.766622 0.635412 0.000000
-vt 0.736832 0.638870 0.000000
-vt 0.747833 0.634641 0.000000
-vt 0.015448 0.993642 0.000000
-vt 0.007110 0.992700 0.000000
-vt 0.006293 0.983508 0.000000
-vt 0.814164 0.541714 0.000000
-vt 0.802712 0.552886 0.000000
-vt 0.846511 0.313581 0.000000
-vt 0.095824 0.976655 0.000000
-vt 0.006081 0.976737 0.000000
-vt 0.129598 0.976686 0.000000
-vt 0.138341 0.975139 0.000000
-vt 0.146345 0.970823 0.000000
-vt 0.151038 0.963576 0.000000
-vt 0.144859 0.887630 0.000000
-vt 0.150944 0.890133 0.000000
-vt 0.132861 0.898549 0.000000
-vt 0.134991 0.904652 0.000000
-vt 0.124573 0.900027 0.000000
-vt 0.125074 0.906633 0.000000
-vt 0.140435 0.894463 0.000000
-vt 0.144876 0.899288 0.000000
-vt 0.693946 0.173145 0.000000
-vt 0.722943 0.178965 0.000000
-vt 0.715167 0.213186 0.000000
-vt 0.533605 0.131198 0.000000
-vt 0.518282 0.125114 0.000000
-vt 0.531182 0.095475 0.000000
-vt 0.731544 0.246003 0.000000
-vt 0.729887 0.257924 0.000000
-vt 0.704107 0.246127 0.000000
-vt 0.703427 0.259698 0.000000
-vt 0.655921 0.250000 0.000000
-vt 0.656540 0.265552 0.000000
-vt 0.611689 0.273725 0.000000
-vt 0.602002 0.258946 0.000000
-vt 0.454887 0.271807 0.000000
-vt 0.502496 0.271672 0.000000
-vt 0.455212 0.287864 0.000000
-vt 0.501087 0.287823 0.000000
-vt 0.401482 0.272503 0.000000
-vt 0.401482 0.288670 0.000000
-vt 0.601618 0.272915 0.000000
-vt 0.588511 0.262397 0.000000
-vt 0.558853 0.265784 0.000000
-vt 0.561431 0.278612 0.000000
-vt 0.510280 0.271988 0.000000
-vt 0.518259 0.271446 0.000000
-vt 0.513069 0.287795 0.000000
-vt 0.523551 0.286047 0.000000
-vt 0.535969 0.269399 0.000000
-vt 0.539672 0.281898 0.000000
-vt 0.749649 0.257155 0.000000
-vt 0.767604 0.294187 0.000000
-vt 0.739495 0.264393 0.000000
-vt 0.755078 0.301162 0.000000
-vt 0.724864 0.312010 0.000000
-vt 0.685373 0.328566 0.000000
-vt 0.643620 0.346523 0.000000
-vt 0.460578 0.336119 0.000000
-vt 0.513579 0.340543 0.000000
-vt 0.401473 0.331545 0.000000
-vt 0.601608 0.361711 0.000000
-vt 0.633851 0.350058 0.000000
-vt 0.529671 0.342340 0.000000
-vt 0.544971 0.344404 0.000000
-vt 0.579232 0.370086 0.000000
-vt 0.606396 0.273921 0.000000
-vt 0.638362 0.348486 0.000000
-vt 0.738390 0.245944 0.000000
-vt 0.735425 0.259160 0.000000
-vt 0.642609 0.223057 0.000000
-vt 0.658537 0.166170 0.000000
-vt 0.686659 0.221168 0.000000
-vt 0.615828 0.155827 0.000000
-vt 0.599276 0.223914 0.000000
-vt 0.463763 0.157942 0.000000
-vt 0.453945 0.235101 0.000000
-vt 0.432699 0.167303 0.000000
-vt 0.402909 0.235101 0.000000
-vt 0.402869 0.170209 0.000000
-vt 0.607818 0.154278 0.000000
-vt 0.591311 0.225769 0.000000
-vt 0.553728 0.229130 0.000000
-vt 0.576439 0.144782 0.000000
-vt 0.581771 0.227055 0.000000
-vt 0.598962 0.152008 0.000000
-vt 0.533257 0.229488 0.000000
-vt 0.557174 0.138522 0.000000
-vt 0.525533 0.186538 0.000000
-vt 0.515975 0.228765 0.000000
-vt 0.578064 0.417206 0.000000
-vt 0.599719 0.514017 0.000000
-vt 0.602713 0.510686 0.000000
-vt 0.614818 0.519487 0.000000
-vt 0.615547 0.514185 0.000000
-vt 0.587761 0.504682 0.000000
-vt 0.590694 0.502497 0.000000
-vt 0.578496 0.011496 0.000000
-vt 0.591295 0.016376 0.000000
-vt 0.575955 0.074693 0.000000
-vt 0.608216 0.027586 0.000000
-vt 0.622451 0.042745 0.000000
-vt 0.636674 0.060017 0.000000
-vt 0.630119 0.053115 0.000000
-vt 0.676348 0.085196 0.000000
-vt 0.708567 0.108239 0.000000
-vt 0.733687 0.125510 0.000000
-vt 0.777022 0.359170 0.000000
-vt 0.791597 0.351363 0.000000
-vt 0.752856 0.384314 0.000000
-vt 0.722727 0.414314 0.000000
-vt 0.686003 0.448900 0.000000
-vt 0.681959 0.454059 0.000000
-vt 0.678966 0.458704 0.000000
-vt 0.645197 0.450985 0.000000
-vt 0.472145 0.378069 0.000000
-vt 0.503514 0.391071 0.000000
-vt 0.528802 0.408323 0.000000
-vt 0.554670 0.430448 0.000000
-vt 0.435389 0.371512 0.000000
-vt 0.401495 0.369589 0.000000
-vt 0.746210 0.251262 0.000000
-vt 0.709480 0.218653 0.000000
-vt 0.771206 0.292787 0.000000
-vt 0.753188 0.256063 0.000000
-vt 0.750507 0.250711 0.000000
-vt 0.510307 0.268374 0.000000
-vt 0.517949 0.267880 0.000000
-vt 0.655348 0.246392 0.000000
-vt 0.703879 0.242550 0.000000
-vt 0.601037 0.255430 0.000000
-vt 0.502698 0.268091 0.000000
-vt 0.454828 0.268222 0.000000
-vt 0.401481 0.268278 0.000000
-vt 0.558121 0.262285 0.000000
-vt 0.587602 0.258919 0.000000
-vt 0.535369 0.265851 0.000000
-vt 0.793560 0.347619 0.000000
-vt 0.731269 0.242097 0.000000
-vt 0.737028 0.241848 0.000000
-vt 0.724406 0.218127 0.000000
-vt 0.734306 0.181288 0.000000
-vt 0.721608 0.222625 0.000000
-vt 0.713560 0.216636 0.000000
-vt 0.507958 0.238879 0.000000
-vt 0.508720 0.229347 0.000000
-vt 0.515396 0.238585 0.000000
-vt 0.643299 0.234864 0.000000
-vt 0.688094 0.231329 0.000000
-vt 0.593788 0.235390 0.000000
-vt 0.454869 0.244112 0.000000
-vt 0.500659 0.240175 0.000000
-vt 0.500770 0.230895 0.000000
-vt 0.402915 0.243859 0.000000
-vt 0.553213 0.238005 0.000000
-vt 0.581215 0.234713 0.000000
-vt 0.531585 0.239088 0.000000
-vt 0.745792 0.127757 0.000000
-vt 0.713337 0.227506 0.000000
-vt 0.718175 0.225676 0.000000
-vt 0.514837 0.183038 0.000000
-vt 0.734256 0.426656 0.000000
-vt 0.764033 0.394527 0.000000
-vt 0.792874 0.363108 0.000000
-vt 0.670541 0.470179 0.000000
-vt 0.676761 0.482066 0.000000
-vt 0.655994 0.486028 0.000000
-vt 0.660688 0.497354 0.000000
-vt 0.638921 0.498168 0.000000
-vt 0.641617 0.509754 0.000000
-vt 0.691540 0.469228 0.000000
-vt 0.627036 0.503995 0.000000
-vt 0.626833 0.514062 0.000000
-vt 0.401503 0.375423 0.000000
-vt 0.434700 0.376915 0.000000
-vt 0.470320 0.383334 0.000000
-vt 0.524924 0.412296 0.000000
-vt 0.500532 0.396636 0.000000
-vt 0.544747 0.436849 0.000000
-vt 0.548949 0.434498 0.000000
-vt 0.569271 0.458371 0.000000
-vt 0.564441 0.460718 0.000000
-vt 0.490755 0.141271 0.000000
-vt 0.501690 0.183534 0.000000
-vt 0.510448 0.119966 0.000000
-vt 0.560442 0.463538 0.000000
-vt 0.572800 0.485657 0.000000
-vt 0.576378 0.482320 0.000000
-vt 0.644348 0.514569 0.000000
-vt 0.626588 0.519585 0.000000
-vt 0.664762 0.499949 0.000000
-vt 0.682758 0.483184 0.000000
-vt 0.696871 0.470881 0.000000
-vt 0.738781 0.428313 0.000000
-vt 0.767651 0.395884 0.000000
-vt 0.593580 0.008852 0.000000
-vt 0.578618 0.005160 0.000000
-vt 0.612085 0.020123 0.000000
-vt 0.627247 0.035345 0.000000
-vt 0.639441 0.045805 0.000000
-vt 0.682593 0.076621 0.000000
-vt 0.714939 0.099261 0.000000
-vt 0.744716 0.120095 0.000000
-vt 0.570488 0.010347 0.000000
-vt 0.559181 0.013750 0.000000
-vt 0.569002 0.005348 0.000000
-vt 0.557040 0.009988 0.000000
-vt 0.617299 0.506217 0.000000
-vt 0.606542 0.504426 0.000000
-vt 0.595934 0.497686 0.000000
-vt 0.552393 0.020923 0.000000
-vt 0.548159 0.019039 0.000000
-vt 0.541175 0.040180 0.000000
-vt 0.581309 0.479426 0.000000
-vt 0.550680 0.068236 0.000000
-vt 0.558203 0.045627 0.000000
-vt 0.523687 0.091131 0.000000
-vt 0.533774 0.062861 0.000000
-vt 0.794219 0.367093 0.000000
-vt 0.606654 0.476742 0.000000
-vt 0.619535 0.475150 0.000000
-vt 0.613626 0.491031 0.000000
-vt 0.596427 0.469565 0.000000
-vt 0.589574 0.474348 0.000000
-vt 0.601644 0.488238 0.000000
-vt 0.596462 0.456333 0.000000
-vt 0.580238 0.456401 0.000000
-vt 0.564474 0.423905 0.000000
-vt 0.629122 0.454336 0.000000
-vt 0.619476 0.446204 0.000000
-vt 0.628661 0.466544 0.000000
-vt 0.626669 0.455159 0.000000
-vt 0.626709 0.465909 0.000000
-vt 0.600154 0.467647 0.000000
-vt 0.607877 0.474550 0.000000
-vt 0.605921 0.447138 0.000000
-vt 0.618663 0.447919 0.000000
-vt 0.599035 0.456745 0.000000
-vt 0.539124 0.064358 0.000000
-vt 0.545401 0.041526 0.000000
-vt 0.111791 0.173540 0.000000
-vt 0.090623 0.213611 0.000000
-vt 0.082803 0.179397 0.000000
-vt 0.272074 0.131370 0.000000
-vt 0.274445 0.095645 0.000000
-vt 0.287389 0.125266 0.000000
-vt 0.072237 0.240197 0.000000
-vt 0.100093 0.240551 0.000000
-vt 0.073743 0.252125 0.000000
-vt 0.100672 0.254197 0.000000
-vt 0.149945 0.243724 0.000000
-vt 0.148516 0.260403 0.000000
-vt 0.192696 0.271216 0.000000
-vt 0.202678 0.256657 0.000000
-vt 0.348145 0.271854 0.000000
-vt 0.347812 0.287920 0.000000
-vt 0.300772 0.271629 0.000000
-vt 0.302124 0.287805 0.000000
-vt 0.215875 0.260681 0.000000
-vt 0.202692 0.270854 0.000000
-vt 0.245096 0.265004 0.000000
-vt 0.242353 0.277848 0.000000
-vt 0.293058 0.271898 0.000000
-vt 0.290208 0.287705 0.000000
-vt 0.285158 0.271285 0.000000
-vt 0.279807 0.285861 0.000000
-vt 0.267659 0.269015 0.000000
-vt 0.263862 0.281496 0.000000
-vt 0.053635 0.251116 0.000000
-vt 0.063805 0.258444 0.000000
-vt 0.034438 0.287782 0.000000
-vt 0.046915 0.294948 0.000000
-vt 0.077447 0.306727 0.000000
-vt 0.117338 0.324766 0.000000
-vt 0.159191 0.344854 0.000000
-vt 0.342353 0.336220 0.000000
-vt 0.289299 0.340680 0.000000
-vt 0.201098 0.361667 0.000000
-vt 0.168986 0.348811 0.000000
-vt 0.273166 0.342554 0.000000
-vt 0.257850 0.344685 0.000000
-vt 0.223430 0.370626 0.000000
-vt 0.197934 0.271664 0.000000
-vt 0.164473 0.347056 0.000000
-vt 0.065374 0.240067 0.000000
-vt 0.068078 0.253266 0.000000
-vt 0.163196 0.223380 0.000000
-vt 0.119146 0.221551 0.000000
-vt 0.147190 0.166514 0.000000
-vt 0.189886 0.156113 0.000000
-vt 0.206530 0.224177 0.000000
-vt 0.341957 0.158019 0.000000
-vt 0.373034 0.167341 0.000000
-vt 0.351874 0.235164 0.000000
-vt 0.197894 0.154553 0.000000
-vt 0.214499 0.226020 0.000000
-vt 0.252086 0.229332 0.000000
-vt 0.224041 0.227293 0.000000
-vt 0.229260 0.145017 0.000000
-vt 0.206746 0.152272 0.000000
-vt 0.272558 0.229664 0.000000
-vt 0.248515 0.138730 0.000000
-vt 0.280223 0.186700 0.000000
-vt 0.289840 0.228914 0.000000
-vt 0.224183 0.418689 0.000000
-vt 0.198386 0.517693 0.000000
-vt 0.182576 0.522783 0.000000
-vt 0.195417 0.514164 0.000000
-vt 0.182046 0.517301 0.000000
-vt 0.211939 0.507362 0.000000
-vt 0.208810 0.505280 0.000000
-vt 0.227018 0.011731 0.000000
-vt 0.229646 0.074925 0.000000
-vt 0.214225 0.016629 0.000000
-vt 0.197320 0.027860 0.000000
-vt 0.183105 0.043039 0.000000
-vt 0.168907 0.060337 0.000000
-vt 0.175452 0.053419 0.000000
-vt 0.129267 0.085565 0.000000
-vt 0.097081 0.108655 0.000000
-vt 0.071984 0.125960 0.000000
-vt 0.021267 0.351703 0.000000
-vt 0.006537 0.343143 0.000000
-vt 0.045268 0.378490 0.000000
-vt 0.075606 0.410662 0.000000
-vt 0.112661 0.447514 0.000000
-vt 0.116676 0.452988 0.000000
-vt 0.119526 0.457894 0.000000
-vt 0.154527 0.452184 0.000000
-vt 0.330720 0.378225 0.000000
-vt 0.299179 0.391414 0.000000
-vt 0.273621 0.408968 0.000000
-vt 0.247402 0.431586 0.000000
-vt 0.367575 0.371577 0.000000
-vt 0.057152 0.245252 0.000000
-vt 0.096319 0.219066 0.000000
-vt 0.030850 0.286314 0.000000
-vt 0.050074 0.249996 0.000000
-vt 0.052831 0.244671 0.000000
-vt 0.293045 0.268282 0.000000
-vt 0.285494 0.267719 0.000000
-vt 0.150722 0.239937 0.000000
-vt 0.100334 0.236957 0.000000
-vt 0.203748 0.253166 0.000000
-vt 0.300577 0.268047 0.000000
-vt 0.348204 0.268269 0.000000
-vt 0.245873 0.261516 0.000000
-vt 0.216849 0.257222 0.000000
-vt 0.268291 0.265471 0.000000
-vt 0.004761 0.339404 0.000000
-vt 0.072545 0.236292 0.000000
-vt 0.066778 0.235993 0.000000
-vt 0.081395 0.218565 0.000000
-vt 0.071442 0.181735 0.000000
-vt 0.084196 0.223057 0.000000
-vt 0.092236 0.217056 0.000000
-vt 0.297872 0.239016 0.000000
-vt 0.290432 0.238737 0.000000
-vt 0.297096 0.229486 0.000000
-vt 0.162522 0.235187 0.000000
-vt 0.117723 0.231713 0.000000
-vt 0.212035 0.235645 0.000000
-vt 0.350965 0.244177 0.000000
-vt 0.305170 0.240301 0.000000
-vt 0.305047 0.231022 0.000000
-vt 0.252613 0.238208 0.000000
-vt 0.224605 0.234952 0.000000
-vt 0.274245 0.239260 0.000000
-vt 0.059882 0.128223 0.000000
-vt 0.092473 0.227926 0.000000
-vt 0.087633 0.226102 0.000000
-vt 0.290913 0.183183 0.000000
-vt 0.062992 0.422821 0.000000
-vt 0.033371 0.388577 0.000000
-vt 0.004787 0.355169 0.000000
-vt 0.127012 0.469953 0.000000
-vt 0.141408 0.486812 0.000000
-vt 0.120140 0.481961 0.000000
-vt 0.136095 0.498246 0.000000
-vt 0.158539 0.499928 0.000000
-vt 0.154140 0.511211 0.000000
-vt 0.105596 0.468174 0.000000
-vt 0.170639 0.506311 0.000000
-vt 0.169501 0.516436 0.000000
-vt 0.368282 0.376978 0.000000
-vt 0.332565 0.383486 0.000000
-vt 0.277537 0.412901 0.000000
-vt 0.302193 0.396965 0.000000
-vt 0.257454 0.437684 0.000000
-vt 0.253170 0.435458 0.000000
-vt 0.231778 0.460510 0.000000
-vt 0.236732 0.462620 0.000000
-vt 0.304061 0.183661 0.000000
-vt 0.314941 0.141380 0.000000
-vt 0.295214 0.120104 0.000000
-vt 0.240837 0.465265 0.000000
-vt 0.227655 0.488107 0.000000
-vt 0.223823 0.485141 0.000000
-vt 0.150332 0.515520 0.000000
-vt 0.169290 0.522106 0.000000
-vt 0.131069 0.499883 0.000000
-vt 0.113942 0.482898 0.000000
-vt 0.099861 0.469714 0.000000
-vt 0.058201 0.424334 0.000000
-vt 0.029594 0.389718 0.000000
-vt 0.211931 0.009108 0.000000
-vt 0.226886 0.005396 0.000000
-vt 0.193440 0.020406 0.000000
-vt 0.178297 0.035647 0.000000
-vt 0.166119 0.046125 0.000000
-vt 0.123009 0.076999 0.000000
-vt 0.090697 0.099685 0.000000
-vt 0.060948 0.120559 0.000000
-vt 0.235025 0.010571 0.000000
-vt 0.236503 0.005569 0.000000
-vt 0.246336 0.013959 0.000000
-vt 0.248472 0.010195 0.000000
-vt 0.180545 0.509024 0.000000
-vt 0.191699 0.507574 0.000000
-vt 0.202897 0.500989 0.000000
-vt 0.253135 0.021122 0.000000
-vt 0.257366 0.019230 0.000000
-vt 0.264380 0.040366 0.000000
-vt 0.218624 0.482684 0.000000
-vt 0.254909 0.068434 0.000000
-vt 0.247358 0.045835 0.000000
-vt 0.281935 0.091292 0.000000
-vt 0.271810 0.063036 0.000000
-vt 0.003278 0.359082 0.000000
-vt 0.192604 0.479055 0.000000
-vt 0.184887 0.493505 0.000000
-vt 0.179390 0.476946 0.000000
-vt 0.203351 0.472074 0.000000
-vt 0.210277 0.477187 0.000000
-vt 0.197336 0.491065 0.000000
-vt 0.203837 0.458398 0.000000
-vt 0.220554 0.458999 0.000000
-vt 0.237641 0.425200 0.000000
-vt 0.170829 0.456184 0.000000
-vt 0.180902 0.447969 0.000000
-vt 0.170608 0.468301 0.000000
-vt 0.173278 0.457092 0.000000
-vt 0.172615 0.467684 0.000000
-vt 0.199614 0.469991 0.000000
-vt 0.191472 0.476881 0.000000
-vt 0.194696 0.449079 0.000000
-vt 0.181670 0.449709 0.000000
-vt 0.201214 0.458873 0.000000
-vt 0.266462 0.064539 0.000000
-vt 0.260154 0.041717 0.000000
-vt 0.482915 0.511831 0.000000
-vt 0.482610 0.488350 0.000000
-vt 0.490098 0.511783 0.000000
-vt 0.490752 0.486237 0.000000
-vt 0.480782 0.575114 0.000000
-vt 0.482154 0.545693 0.000000
-vt 0.487471 0.574910 0.000000
-vt 0.489282 0.544717 0.000000
-vt 0.479787 0.604766 0.000000
-vt 0.486236 0.604792 0.000000
-vt 0.479125 0.629922 0.000000
-vt 0.485964 0.629904 0.000000
-vt 0.479061 0.681800 0.000000
-vt 0.479247 0.656026 0.000000
-vt 0.485423 0.681073 0.000000
-vt 0.485814 0.655306 0.000000
-vt 0.479246 0.707916 0.000000
-vt 0.485364 0.707913 0.000000
-vt 0.475201 0.546442 0.000000
-vt 0.472464 0.576105 0.000000
-vt 0.471307 0.605406 0.000000
-vt 0.471458 0.630164 0.000000
-vt 0.471499 0.655773 0.000000
-vt 0.471913 0.681355 0.000000
-vt 0.471690 0.707919 0.000000
-vt 0.449729 0.518008 0.000000
-vt 0.451946 0.553017 0.000000
-vt 0.433817 0.529127 0.000000
-vt 0.431346 0.556872 0.000000
-vt 0.449892 0.579969 0.000000
-vt 0.429941 0.580608 0.000000
-vt 0.449255 0.605463 0.000000
-vt 0.429112 0.604658 0.000000
-vt 0.448974 0.629552 0.000000
-vt 0.428810 0.628782 0.000000
-vt 0.449326 0.656276 0.000000
-vt 0.449454 0.682068 0.000000
-vt 0.429745 0.656150 0.000000
-vt 0.429377 0.682280 0.000000
-vt 0.450119 0.707927 0.000000
-vt 0.431044 0.707932 0.000000
-vt 0.409940 0.531912 0.000000
-vt 0.407190 0.554682 0.000000
-vt 0.406182 0.578987 0.000000
-vt 0.406388 0.602829 0.000000
-vt 0.406787 0.627217 0.000000
-vt 0.408421 0.654939 0.000000
-vt 0.408026 0.682236 0.000000
-vt 0.409702 0.707936 0.000000
-vt 0.355853 0.512436 0.000000
-vt 0.369251 0.524398 0.000000
-vt 0.345538 0.546253 0.000000
-vt 0.363452 0.549839 0.000000
-vt 0.364225 0.576145 0.000000
-vt 0.347854 0.574374 0.000000
-vt 0.365389 0.599963 0.000000
-vt 0.351123 0.599282 0.000000
-vt 0.370565 0.681832 0.000000
-vt 0.370848 0.707939 0.000000
-vt 0.357319 0.681832 0.000000
-vt 0.358099 0.707938 0.000000
-vt 0.330312 0.542903 0.000000
-vt 0.334132 0.573059 0.000000
-vt 0.339320 0.598579 0.000000
-vt 0.342638 0.620129 0.000000
-vt 0.352827 0.621273 0.000000
-vt 0.347483 0.651191 0.000000
-vt 0.357000 0.651802 0.000000
-vt 0.348834 0.682175 0.000000
-vt 0.350115 0.707938 0.000000
-vt 0.305823 0.547449 0.000000
-vt 0.301797 0.519485 0.000000
-vt 0.333524 0.518145 0.000000
-vt 0.338936 0.500273 0.000000
-vt 0.311563 0.575768 0.000000
-vt 0.317777 0.600481 0.000000
-vt 0.341023 0.624266 0.000000
-vt 0.344054 0.651215 0.000000
-vt 0.323803 0.627792 0.000000
-vt 0.327079 0.651190 0.000000
-vt 0.346214 0.677847 0.000000
-vt 0.329012 0.674650 0.000000
-vt 0.330966 0.707939 0.000000
-vt 0.328754 0.678846 0.000000
-vt 0.273878 0.529732 0.000000
-vt 0.278426 0.550496 0.000000
-vt 0.244103 0.546457 0.000000
-vt 0.256721 0.564160 0.000000
-vt 0.288572 0.580695 0.000000
-vt 0.269655 0.589431 0.000000
-vt 0.297132 0.605744 0.000000
-vt 0.279997 0.613270 0.000000
-vt 0.218771 0.558590 0.000000
-vt 0.241448 0.573633 0.000000
-vt 0.255567 0.595358 0.000000
-vt 0.266771 0.618375 0.000000
-vt 0.286115 0.635085 0.000000
-vt 0.274545 0.639546 0.000000
-vt 0.290074 0.656650 0.000000
-vt 0.278043 0.660112 0.000000
-vt 0.293519 0.679034 0.000000
-vt 0.294683 0.707936 0.000000
-vt 0.281495 0.682427 0.000000
-vt 0.282565 0.707934 0.000000
-vt 0.197466 0.568998 0.000000
-vt 0.228265 0.581211 0.000000
-vt 0.246206 0.600962 0.000000
-vt 0.258120 0.621869 0.000000
-vt 0.266270 0.642009 0.000000
-vt 0.271178 0.662999 0.000000
-vt 0.274847 0.684195 0.000000
-vt 0.276242 0.707934 0.000000
-vt 0.338103 0.488842 0.000000
-vt 0.298557 0.509756 0.000000
-vt 0.269754 0.515859 0.000000
-vt 0.238490 0.540172 0.000000
-vt 0.195889 0.563777 0.000000
-vt 0.247009 0.486454 0.000000
-vt 0.479035 0.481969 0.000000
-vt 0.472333 0.492290 0.000000
-vt 0.372675 0.471561 0.000000
-vt 0.363380 0.490034 0.000000
-vt 0.394516 0.488115 0.000000
-vt 0.399217 0.472286 0.000000
-vt 0.350804 0.497150 0.000000
-vt 0.388639 0.681115 0.000000
-vt 0.389596 0.707938 0.000000
-vt 0.386097 0.624788 0.000000
-vt 0.388500 0.653691 0.000000
-vt 0.366524 0.623096 0.000000
-vt 0.370395 0.653619 0.000000
-vt 0.385178 0.577071 0.000000
-vt 0.385549 0.601740 0.000000
-vt 0.385564 0.551720 0.000000
-vt 0.388514 0.529997 0.000000
-vt 0.463785 0.503472 0.000000
-vt 0.460114 0.491472 0.000000
-vt 0.455275 0.500656 0.000000
-vt 0.428881 0.523387 0.000000
-vt 0.442370 0.513141 0.000000
-vt 0.409522 0.526631 0.000000
-vt 0.362968 0.507688 0.000000
-vt 0.372486 0.518590 0.000000
-vt 0.388440 0.524230 0.000000
-vt 0.628464 0.959968 0.000000
-vt 0.667299 0.976136 0.000000
-vt 0.629123 0.991329 0.000000
-vt 0.667774 0.987916 0.000000
-vt 0.689824 0.906209 0.000000
-vt 0.699322 0.915706 0.000000
-vt 0.694924 0.917012 0.000000
-vt 0.705958 0.952044 0.000000
-vt 0.711347 0.953871 0.000000
-vt 0.715867 0.931975 0.000000
-vt 0.730120 0.946134 0.000000
-vt 0.718174 0.956626 0.000000
-vt 0.729013 0.962078 0.000000
-vt 0.748405 0.956986 0.000000
-vt 0.745142 0.969781 0.000000
-vt 0.801180 0.970564 0.000000
-vt 0.779917 0.986372 0.000000
-vt 0.784998 0.971072 0.000000
-vt 0.774850 0.983603 0.000000
-vt 0.819465 0.971518 0.000000
-vt 0.785125 0.989405 0.000000
-vt 0.768474 0.966156 0.000000
-vt 0.764585 0.979136 0.000000
-vt 0.431365 0.486021 0.000000
-vt 0.438406 0.474564 0.000000
-vt 0.669224 0.934353 0.000000
-vt 0.629277 0.922974 0.000000
-vt 0.217657 0.607018 0.000000
-vt 0.240582 0.632635 0.000000
-vt 0.250462 0.649633 0.000000
-vt 0.255702 0.668837 0.000000
-vt 0.258206 0.686452 0.000000
-vt 0.258729 0.707933 0.000000
-vt 0.230238 0.646244 0.000000
-vt 0.208135 0.630735 0.000000
-vt 0.196996 0.683217 0.000000
-vt 0.221139 0.685315 0.000000
-vt 0.196883 0.707932 0.000000
-vt 0.221353 0.707932 0.000000
-vt 0.240550 0.686341 0.000000
-vt 0.240923 0.707933 0.000000
-vt 0.238938 0.663913 0.000000
-vt 0.222156 0.666598 0.000000
-vt 0.200453 0.657886 0.000000
-vt 0.144918 0.596816 0.000000
-vt 0.145204 0.620342 0.000000
-vt 0.107470 0.605446 0.000000
-vt 0.111566 0.626940 0.000000
-vt 0.142863 0.681242 0.000000
-vt 0.141661 0.707934 0.000000
-vt 0.113415 0.682656 0.000000
-vt 0.112473 0.707936 0.000000
-vt 0.143943 0.650990 0.000000
-vt 0.113487 0.655378 0.000000
-vt 0.058396 0.637178 0.000000
-vt 0.078958 0.618625 0.000000
-vt 0.070774 0.646156 0.000000
-vt 0.086594 0.636979 0.000000
-vt 0.067998 0.662096 0.000000
-vt 0.048782 0.658921 0.000000
-vt 0.042104 0.707939 0.000000
-vt 0.043633 0.684310 0.000000
-vt 0.063861 0.707938 0.000000
-vt 0.065358 0.684252 0.000000
-vt 0.088722 0.684106 0.000000
-vt 0.087552 0.707936 0.000000
-vt 0.088869 0.660187 0.000000
-vt 0.292279 0.470181 0.000000
-vt 0.264842 0.446841 0.000000
-vt 0.332321 0.472762 0.000000
-vt 0.092806 0.584468 0.000000
-vt 0.304041 0.427535 0.000000
-vt 0.099272 0.591632 0.000000
-vt 0.143620 0.579027 0.000000
-vt 0.042357 0.624292 0.000000
-vt 0.064943 0.603139 0.000000
-vt 0.048778 0.628470 0.000000
-vt 0.070534 0.608373 0.000000
-vt 0.025638 0.650617 0.000000
-vt 0.033877 0.654026 0.000000
-vt 0.023639 0.707940 0.000000
-vt 0.012744 0.707941 0.000000
-vt 0.026187 0.681527 0.000000
-vt 0.015898 0.680189 0.000000
-vt 0.171531 0.680159 0.000000
-vt 0.170526 0.707933 0.000000
-vt 0.173540 0.649678 0.000000
-vt 0.177517 0.618979 0.000000
-vt 0.184034 0.593011 0.000000
-vt 0.452802 0.448268 0.000000
-vt 0.488856 0.450285 0.000000
-vt 0.629874 0.895273 0.000000
-vt 0.639039 0.902919 0.000000
-vt 0.670272 0.922120 0.000000
-vt 0.311425 0.707939 0.000000
-vt 0.310176 0.674868 0.000000
-vt 0.309822 0.651748 0.000000
-vt 0.312773 0.671381 0.000000
-vt 0.307535 0.632952 0.000000
-vt 0.535128 0.477085 0.000000
-vt 0.526310 0.459993 0.000000
-vt 0.541837 0.457686 0.000000
-vt 0.534518 0.481019 0.000000
-vt 0.530576 0.512506 0.000000
-vt 0.527092 0.545951 0.000000
-vt 0.522544 0.577332 0.000000
-vt 0.518386 0.604826 0.000000
-vt 0.514778 0.628781 0.000000
-vt 0.509785 0.681252 0.000000
-vt 0.511940 0.654815 0.000000
-vt 0.508560 0.707899 0.000000
-vt 0.420344 0.441968 0.000000
-vt 0.304061 0.629959 0.000000
-vt 0.322646 0.623275 0.000000
-vt 0.306474 0.651689 0.000000
-vt 0.523938 0.446384 0.000000
-vt 0.329696 0.435529 0.000000
-vt 0.403783 0.431796 0.000000
-vt 0.370055 0.433250 0.000000
-vt 0.358127 0.426878 0.000000
-vt 0.535228 0.447553 0.000000
-vt 0.547018 0.454368 0.000000
-vt 0.542978 0.481702 0.000000
-vt 0.454873 0.443496 0.000000
-vt 0.490968 0.444779 0.000000
-vt 0.526394 0.440261 0.000000
-vt 0.424038 0.437860 0.000000
-vt 0.538592 0.442415 0.000000
-vt 0.408324 0.428918 0.000000
-vt 0.371607 0.427446 0.000000
-vt 0.362862 0.418824 0.000000
-vt 0.540562 0.451998 0.000000
-vt 0.544607 0.447268 0.000000
-vt 0.525965 0.604851 0.000000
-vt 0.530366 0.577302 0.000000
-vt 0.522416 0.629304 0.000000
-vt 0.516381 0.707897 0.000000
-vt 0.517485 0.681565 0.000000
-vt 0.534783 0.546455 0.000000
-vt 0.538415 0.512651 0.000000
-vt 0.519613 0.655015 0.000000
-vt 0.059134 0.595488 0.000000
-vt 0.088193 0.580851 0.000000
-vt 0.031040 0.618387 0.000000
-vt 0.011698 0.646450 0.000000
-vt 0.003887 0.677496 0.000000
-vt 0.000875 0.707941 0.000000
-vt 0.331248 0.430808 0.000000
-vt 0.307204 0.423902 0.000000
-vt 0.638791 0.591661 0.000000
-vt 0.635998 0.579790 0.000000
-vt 0.647217 0.593248 0.000000
-vt 0.732192 0.550887 0.000000
-vt 0.713599 0.519664 0.000000
-vt 0.753006 0.537760 0.000000
-vt 0.732612 0.507331 0.000000
-vt 0.769900 0.525029 0.000000
-vt 0.748313 0.496575 0.000000
-vt 0.782214 0.468103 0.000000
-vt 0.801054 0.453833 0.000000
-vt 0.805407 0.496905 0.000000
-vt 0.823062 0.482264 0.000000
-vt 0.689798 0.533164 0.000000
-vt 0.706693 0.564704 0.000000
-vt 0.675778 0.579067 0.000000
-vt 0.645461 0.554901 0.000000
-vt 0.604630 0.548419 0.000000
-vt 0.787477 0.511308 0.000000
-vt 0.764812 0.482881 0.000000
-vt 0.632039 0.536327 0.000000
-vt 0.314384 0.032524 0.000000
-vt 0.322689 0.003520 0.000000
-vt 0.320572 0.037033 0.000000
-vt 0.687420 0.955784 0.000000
-vt 0.687407 0.937818 0.000000
-vt 0.683227 0.977054 0.000000
-vt 0.682377 0.926682 0.000000
-vt 0.675969 0.922939 0.000000
-vt 0.677930 0.987012 0.000000
-vt 0.673249 0.990463 0.000000
-vt 0.355777 0.422588 0.000000
-vt 0.613567 0.598127 0.000000
-vt 0.620434 0.606398 0.000000
-vt 0.613050 0.605615 0.000000
-vt 0.607914 0.599196 0.000000
-vt 0.605944 0.586046 0.000000
-vt 0.610373 0.585928 0.000000
-vt 0.685816 0.524372 0.000000
-vt 0.677273 0.508610 0.000000
-vt 0.707485 0.510754 0.000000
-vt 0.698145 0.495105 0.000000
-vt 0.647636 0.545059 0.000000
-vt 0.637729 0.530161 0.000000
-vt 0.776732 0.460553 0.000000
-vt 0.766336 0.445814 0.000000
-vt 0.794961 0.445940 0.000000
-vt 0.784125 0.431889 0.000000
-vt 0.758684 0.474273 0.000000
-vt 0.748709 0.459214 0.000000
-vt 0.741759 0.486821 0.000000
-vt 0.731964 0.471566 0.000000
-vt 0.725281 0.498946 0.000000
-vt 0.715662 0.483898 0.000000
-vt 0.612713 0.587337 0.000000
-vt 0.634987 0.581679 0.000000
-vt 0.614560 0.596182 0.000000
-vt 0.636567 0.590340 0.000000
-vt 0.482979 0.904091 0.000000
-vt 0.490218 0.904105 0.000000
-vt 0.483048 0.927651 0.000000
-vt 0.491184 0.929739 0.000000
-vt 0.480834 0.840726 0.000000
-vt 0.487525 0.840907 0.000000
-vt 0.482359 0.870104 0.000000
-vt 0.489452 0.871097 0.000000
-vt 0.479797 0.811091 0.000000
-vt 0.486243 0.811041 0.000000
-vt 0.479128 0.785926 0.000000
-vt 0.485962 0.785928 0.000000
-vt 0.479061 0.734032 0.000000
-vt 0.485420 0.734754 0.000000
-vt 0.479246 0.759813 0.000000
-vt 0.485808 0.760522 0.000000
-vt 0.475459 0.869323 0.000000
-vt 0.472488 0.839795 0.000000
-vt 0.471323 0.810475 0.000000
-vt 0.471468 0.785698 0.000000
-vt 0.471503 0.760076 0.000000
-vt 0.471915 0.734485 0.000000
-vt 0.450241 0.896940 0.000000
-vt 0.433732 0.887437 0.000000
-vt 0.451860 0.862932 0.000000
-vt 0.431406 0.859250 0.000000
-vt 0.449931 0.835984 0.000000
-vt 0.430020 0.835382 0.000000
-vt 0.449296 0.810452 0.000000
-vt 0.429179 0.811265 0.000000
-vt 0.449004 0.786334 0.000000
-vt 0.428857 0.787113 0.000000
-vt 0.449344 0.759591 0.000000
-vt 0.429773 0.759726 0.000000
-vt 0.449463 0.733790 0.000000
-vt 0.429390 0.733589 0.000000
-vt 0.409989 0.884294 0.000000
-vt 0.407303 0.861344 0.000000
-vt 0.406296 0.836942 0.000000
-vt 0.406471 0.813072 0.000000
-vt 0.406843 0.788671 0.000000
-vt 0.408453 0.760939 0.000000
-vt 0.408040 0.733637 0.000000
-vt 0.356047 0.903846 0.000000
-vt 0.345608 0.869667 0.000000
-vt 0.369294 0.891113 0.000000
-vt 0.363532 0.865925 0.000000
-vt 0.364308 0.839701 0.000000
-vt 0.347915 0.841498 0.000000
-vt 0.365456 0.815908 0.000000
-vt 0.351184 0.816589 0.000000
-vt 0.370582 0.734044 0.000000
-vt 0.357336 0.734043 0.000000
-vt 0.330378 0.872980 0.000000
-vt 0.334202 0.842813 0.000000
-vt 0.339380 0.817291 0.000000
-vt 0.342688 0.795743 0.000000
-vt 0.347515 0.764686 0.000000
-vt 0.352878 0.794602 0.000000
-vt 0.357034 0.764075 0.000000
-vt 0.348849 0.733698 0.000000
-vt 0.305894 0.868388 0.000000
-vt 0.301866 0.896315 0.000000
-vt 0.333608 0.897683 0.000000
-vt 0.338957 0.915462 0.000000
-vt 0.311628 0.840090 0.000000
-vt 0.317832 0.815386 0.000000
-vt 0.341070 0.791606 0.000000
-vt 0.323845 0.788081 0.000000
-vt 0.344085 0.764660 0.000000
-vt 0.327110 0.764684 0.000000
-vt 0.346233 0.738030 0.000000
-vt 0.329032 0.741226 0.000000
-vt 0.328770 0.737029 0.000000
-vt 0.273951 0.886069 0.000000
-vt 0.244158 0.869371 0.000000
-vt 0.278490 0.865333 0.000000
-vt 0.256773 0.851677 0.000000
-vt 0.288628 0.835155 0.000000
-vt 0.269702 0.826422 0.000000
-vt 0.297178 0.810117 0.000000
-vt 0.280037 0.802591 0.000000
-vt 0.218817 0.857254 0.000000
-vt 0.241493 0.842209 0.000000
-vt 0.255608 0.820492 0.000000
-vt 0.266806 0.797485 0.000000
-vt 0.286149 0.780780 0.000000
-vt 0.274574 0.776318 0.000000
-vt 0.290099 0.759218 0.000000
-vt 0.278064 0.755754 0.000000
-vt 0.293533 0.736838 0.000000
-vt 0.281506 0.733442 0.000000
-vt 0.197505 0.846856 0.000000
-vt 0.228305 0.834638 0.000000
-vt 0.246243 0.814892 0.000000
-vt 0.258152 0.793989 0.000000
-vt 0.266299 0.773853 0.000000
-vt 0.271197 0.752868 0.000000
-vt 0.274856 0.731672 0.000000
-vt 0.338179 0.926897 0.000000
-vt 0.298631 0.906029 0.000000
-vt 0.269832 0.899920 0.000000
-vt 0.238549 0.875659 0.000000
-vt 0.213107 0.861337 0.000000
-vt 0.195928 0.852076 0.000000
-vt 0.479524 0.934132 0.000000
-vt 0.472806 0.923619 0.000000
-vt 0.363459 0.925055 0.000000
-vt 0.372848 0.944020 0.000000
-vt 0.395333 0.928534 0.000000
-vt 0.399667 0.943829 0.000000
-vt 0.350715 0.918398 0.000000
-vt 0.388656 0.734760 0.000000
-vt 0.386154 0.791092 0.000000
-vt 0.366577 0.792780 0.000000
-vt 0.388534 0.762185 0.000000
-vt 0.370429 0.762259 0.000000
-vt 0.385285 0.838803 0.000000
-vt 0.385629 0.814141 0.000000
-vt 0.385712 0.864134 0.000000
-vt 0.388567 0.885956 0.000000
-vt 0.460877 0.924580 0.000000
-vt 0.463628 0.912609 0.000000
-vt 0.454945 0.915570 0.000000
-vt 0.428549 0.893362 0.000000
-vt 0.443156 0.901478 0.000000
-vt 0.409510 0.889669 0.000000
-vt 0.372649 0.896619 0.000000
-vt 0.362845 0.909258 0.000000
-vt 0.388398 0.891757 0.000000
-vt 0.622782 0.959823 0.000000
-vt 0.621661 0.991109 0.000000
-vt 0.583762 0.975340 0.000000
-vt 0.583107 0.987103 0.000000
-vt 0.577558 0.773552 0.000000
-vt 0.583408 0.783969 0.000000
-vt 0.579796 0.786797 0.000000
-vt 0.605568 0.813259 0.000000
-vt 0.603935 0.818711 0.000000
-vt 0.583470 0.809708 0.000000
-vt 0.602225 0.825871 0.000000
-vt 0.586752 0.829528 0.000000
-vt 0.600388 0.837865 0.000000
-vt 0.585002 0.850719 0.000000
-vt 0.597321 0.855473 0.000000
-vt 0.565490 0.901600 0.000000
-vt 0.575280 0.888706 0.000000
-vt 0.590694 0.893430 0.000000
-vt 0.591373 0.887695 0.000000
-vt 0.555673 0.917056 0.000000
-vt 0.590149 0.899431 0.000000
-vt 0.580848 0.872389 0.000000
-vt 0.593680 0.876741 0.000000
-vt 0.432247 0.929890 0.000000
-vt 0.438774 0.941718 0.000000
-vt 0.582559 0.933566 0.000000
-vt 0.622669 0.922876 0.000000
-vt 0.217687 0.808839 0.000000
-vt 0.240608 0.783224 0.000000
-vt 0.250486 0.766229 0.000000
-vt 0.255718 0.747028 0.000000
-vt 0.258214 0.729413 0.000000
-vt 0.230258 0.769617 0.000000
-vt 0.208158 0.785125 0.000000
-vt 0.197004 0.732646 0.000000
-vt 0.221147 0.730549 0.000000
-vt 0.240559 0.729524 0.000000
-vt 0.238953 0.751950 0.000000
-vt 0.222170 0.749266 0.000000
-vt 0.200468 0.757976 0.000000
-vt 0.144941 0.819049 0.000000
-vt 0.107489 0.810422 0.000000
-vt 0.145222 0.795523 0.000000
-vt 0.111581 0.788931 0.000000
-vt 0.142868 0.734627 0.000000
-vt 0.113420 0.733214 0.000000
-vt 0.143955 0.764878 0.000000
-vt 0.113497 0.760493 0.000000
-vt 0.058408 0.778697 0.000000
-vt 0.070784 0.769718 0.000000
-vt 0.078973 0.797249 0.000000
-vt 0.086606 0.778894 0.000000
-vt 0.068006 0.753779 0.000000
-vt 0.048789 0.756957 0.000000
-vt 0.043636 0.731568 0.000000
-vt 0.065360 0.731624 0.000000
-vt 0.088725 0.731768 0.000000
-vt 0.088877 0.755686 0.000000
-vt 0.292377 0.945568 0.000000
-vt 0.141063 0.845974 0.000000
-vt 0.332451 0.942991 0.000000
-vt 0.281041 0.994248 0.000000
-vt 0.304121 0.988208 0.000000
-vt 0.099293 0.824241 0.000000
-vt 0.143647 0.836839 0.000000
-vt 0.042371 0.791587 0.000000
-vt 0.048791 0.787407 0.000000
-vt 0.064959 0.812736 0.000000
-vt 0.070549 0.807502 0.000000
-vt 0.025645 0.765263 0.000000
-vt 0.033884 0.761852 0.000000
-vt 0.026190 0.734350 0.000000
-vt 0.015901 0.735691 0.000000
-vt 0.171538 0.735706 0.000000
-vt 0.173554 0.766186 0.000000
-vt 0.177539 0.796883 0.000000
-vt 0.184062 0.822848 0.000000
-vt 0.453000 0.968186 0.000000
-vt 0.489318 0.965798 0.000000
-vt 0.622679 0.895236 0.000000
-vt 0.613360 0.902669 0.000000
-vt 0.581776 0.921307 0.000000
-vt 0.310194 0.741006 0.000000
-vt 0.309850 0.764125 0.000000
-vt 0.312792 0.744492 0.000000
-vt 0.307570 0.782919 0.000000
-vt 0.535620 0.938607 0.000000
-vt 0.542396 0.958048 0.000000
-vt 0.526858 0.955811 0.000000
-vt 0.534989 0.934668 0.000000
-vt 0.530795 0.903122 0.000000
-vt 0.527204 0.869708 0.000000
-vt 0.522577 0.838354 0.000000
-vt 0.518380 0.810903 0.000000
-vt 0.514760 0.786983 0.000000
-vt 0.509775 0.734545 0.000000
-vt 0.511920 0.760969 0.000000
-vt 0.420258 0.974202 0.000000
-vt 0.304097 0.785910 0.000000
-vt 0.322690 0.792596 0.000000
-vt 0.306501 0.764184 0.000000
-vt 0.524518 0.969438 0.000000
-vt 0.329809 0.980211 0.000000
-vt 0.403448 0.984133 0.000000
-vt 0.370196 0.982445 0.000000
-vt 0.358274 0.988822 0.000000
-vt 0.535809 0.968218 0.000000
-vt 0.547588 0.961358 0.000000
-vt 0.543442 0.933924 0.000000
-vt 0.455021 0.972949 0.000000
-vt 0.491473 0.971280 0.000000
-vt 0.527001 0.975548 0.000000
-vt 0.423815 0.978395 0.000000
-vt 0.539185 0.973348 0.000000
-vt 0.407937 0.987081 0.000000
-vt 0.371751 0.988250 0.000000
-vt 0.363012 0.996874 0.000000
-vt 0.541136 0.963749 0.000000
-vt 0.545189 0.968476 0.000000
-vt 0.525957 0.810847 0.000000
-vt 0.530400 0.838340 0.000000
-vt 0.522397 0.786438 0.000000
-vt 0.517475 0.734226 0.000000
-vt 0.534891 0.869143 0.000000
-vt 0.538637 0.902913 0.000000
-vt 0.519593 0.760758 0.000000
-vt 0.059151 0.820387 0.000000
-vt 0.285929 0.997088 0.000000
-vt 0.031054 0.797491 0.000000
-vt 0.011706 0.769430 0.000000
-vt 0.003892 0.738386 0.000000
-vt 0.331361 0.984930 0.000000
-vt 0.307284 0.991844 0.000000
-vt 0.975584 0.331461 0.000000
-vt 0.975408 0.339843 0.000000
-vt 0.964582 0.325672 0.000000
-vt 0.912218 0.411579 0.000000
-vt 0.894182 0.428346 0.000000
-vt 0.886820 0.385800 0.000000
-vt 0.870121 0.401079 0.000000
-vt 0.877752 0.441538 0.000000
-vt 0.855707 0.413556 0.000000
-vt 0.819617 0.439191 0.000000
-vt 0.841673 0.468871 0.000000
-vt 0.905877 0.366154 0.000000
-vt 0.932155 0.390441 0.000000
-vt 0.938018 0.328903 0.000000
-vt 0.953846 0.364152 0.000000
-vt 0.942180 0.287576 0.000000
-vt 0.860132 0.455141 0.000000
-vt 0.838290 0.426225 0.000000
-vt 0.923533 0.311040 0.000000
-vt 0.491340 0.032524 0.000000
-vt 0.485152 0.037033 0.000000
-vt 0.483035 0.003520 0.000000
-vt 0.564012 0.954671 0.000000
-vt 0.564331 0.936719 0.000000
-vt 0.567839 0.975996 0.000000
-vt 0.569546 0.925676 0.000000
-vt 0.576014 0.922046 0.000000
-vt 0.572963 0.986037 0.000000
-vt 0.577582 0.989565 0.000000
-vt 0.355931 0.993115 0.000000
-vt 0.987986 0.308815 0.000000
-vt 0.994242 0.317548 0.000000
-vt 0.995364 0.310228 0.000000
-vt 0.990473 0.303625 0.000000
-vt 0.978243 0.298377 0.000000
-vt 0.977004 0.302628 0.000000
-vt 0.898377 0.360078 0.000000
-vt 0.879759 0.377646 0.000000
-vt 0.885292 0.347826 0.000000
-vt 0.866962 0.364616 0.000000
-vt 0.928026 0.328347 0.000000
-vt 0.916125 0.314987 0.000000
-vt 0.813696 0.431980 0.000000
-vt 0.802080 0.418185 0.000000
-vt 0.831519 0.417972 0.000000
-vt 0.819486 0.404505 0.000000
-vt 0.847924 0.404753 0.000000
-vt 0.835655 0.391410 0.000000
-vt 0.863816 0.391858 0.000000
-vt 0.851701 0.378742 0.000000
-vt 0.977780 0.305227 0.000000
-vt 0.966673 0.325247 0.000000
-vt 0.985895 0.309216 0.000000
-vt 0.974838 0.328959 0.000000
-vt 0.320638 0.081060 0.000000
-vt 0.402862 0.164002 0.000000
-vt 0.324664 0.105278 0.000000
-vt 0.485086 0.081060 0.000000
-vt 0.481060 0.105278 0.000000
-vt 0.425209 0.161125 0.000000
-vt 0.380515 0.161125 0.000000
-vt 0.332120 0.124242 0.000000
-vt 0.360450 0.152261 0.000000
-vt 0.344295 0.139914 0.000000
-vt 0.473604 0.124242 0.000000
-vt 0.445274 0.152261 0.000000
-vt 0.461430 0.139914 0.000000
-vt 0.579428 0.708922 0.000000
-vt 0.579428 0.699501 0.000000
-vt 0.588756 0.708776 0.000000
-vt 0.588756 0.699427 0.000000
-vt 0.579428 0.690089 0.000000
-vt 0.579428 0.680677 0.000000
-vt 0.588756 0.690088 0.000000
-vt 0.588756 0.680748 0.000000
-vt 0.579428 0.671256 0.000000
-vt 0.579428 0.661863 0.000000
-vt 0.588756 0.671399 0.000000
-vt 0.588756 0.662087 0.000000
-vt 0.579428 0.652439 0.000000
-vt 0.579428 0.643087 0.000000
-vt 0.588756 0.652757 0.000000
-vt 0.588756 0.643523 0.000000
-vt 0.579428 0.633661 0.000000
-vt 0.579428 0.624235 0.000000
-vt 0.588756 0.634319 0.000000
-vt 0.588756 0.625362 0.000000
-vt 0.579428 0.765732 0.000000
-vt 0.579428 0.755934 0.000000
-vt 0.588756 0.763691 0.000000
-vt 0.588756 0.754804 0.000000
-vt 0.579428 0.746508 0.000000
-vt 0.579428 0.737083 0.000000
-vt 0.588756 0.745848 0.000000
-vt 0.588756 0.736645 0.000000
-vt 0.579428 0.727732 0.000000
-vt 0.579428 0.718309 0.000000
-vt 0.588756 0.727414 0.000000
-vt 0.588756 0.718086 0.000000
-vt 0.543043 0.690089 0.000000
-vt 0.543043 0.700034 0.000000
-vt 0.543043 0.670205 0.000000
-vt 0.543043 0.680144 0.000000
-vt 0.543043 0.650359 0.000000
-vt 0.543043 0.660272 0.000000
-vt 0.543043 0.630600 0.000000
-vt 0.543043 0.640468 0.000000
-vt 0.579428 0.614437 0.000000
-vt 0.543043 0.610746 0.000000
-vt 0.543043 0.620698 0.000000
-vt 0.543043 0.749586 0.000000
-vt 0.543043 0.759488 0.000000
-vt 0.543043 0.729825 0.000000
-vt 0.543043 0.739718 0.000000
-vt 0.543043 0.709979 0.000000
-vt 0.543043 0.719912 0.000000
-vt 0.588756 0.616475 0.000000
-vt 0.545255 0.581832 0.000000
-vt 0.548621 0.581473 0.000000
-vt 0.547886 0.590030 0.000000
-vt 0.550841 0.588419 0.000000
-vt 0.553348 0.596685 0.000000
-vt 0.555469 0.594058 0.000000
-vt 0.550035 0.565607 0.000000
-vt 0.552663 0.567728 0.000000
-vt 0.546099 0.573264 0.000000
-vt 0.549324 0.574215 0.000000
-vt 0.564888 0.557513 0.000000
-vt 0.565247 0.560874 0.000000
-vt 0.556690 0.560144 0.000000
-vt 0.558301 0.563100 0.000000
-vt 0.581113 0.562293 0.000000
-vt 0.578989 0.564924 0.000000
-vt 0.573456 0.558357 0.000000
-vt 0.572504 0.561588 0.000000
-vt 0.589206 0.577146 0.000000
-vt 0.585842 0.577505 0.000000
-vt 0.586575 0.568948 0.000000
-vt 0.583620 0.570558 0.000000
-vt 0.584427 0.593372 0.000000
-vt 0.581795 0.591247 0.000000
-vt 0.588363 0.585714 0.000000
-vt 0.585138 0.584765 0.000000
-vt 0.569574 0.601465 0.000000
-vt 0.569215 0.598104 0.000000
-vt 0.577771 0.598834 0.000000
-vt 0.576160 0.595877 0.000000
-vt 0.561005 0.600621 0.000000
-vt 0.561958 0.597389 0.000000
-vt 0.583108 0.543469 0.000000
-vt 0.568362 0.528654 0.000000
-vt 0.589256 0.528684 0.000000
-vt 0.583149 0.513881 0.000000
-vt 0.568364 0.507733 0.000000
-vt 0.553562 0.513840 0.000000
-vt 0.547413 0.528625 0.000000
-vt 0.553521 0.543428 0.000000
-vt 0.568305 0.549576 0.000000
-vt 0.543043 0.769441 0.000000
-vt 0.189202 0.922547 0.000000
-vt 0.194374 0.916535 0.000000
-vt 0.198773 0.926174 0.000000
-vt 0.203134 0.920371 0.000000
-vt 0.177801 0.919806 0.000000
-vt 0.183202 0.912819 0.000000
-vt 0.167758 0.914178 0.000000
-vt 0.172618 0.907346 0.000000
-vt 0.220115 0.948440 0.000000
-vt 0.212790 0.940629 0.000000
-vt 0.223630 0.941400 0.000000
-vt 0.216271 0.933559 0.000000
-vt 0.206585 0.932412 0.000000
-vt 0.210079 0.926013 0.000000
-vt 0.208160 0.912489 0.000000
-vt 0.216391 0.919213 0.000000
-vt 0.223502 0.926914 0.000000
-vt 0.230788 0.934720 0.000000
-vt 0.187652 0.902823 0.000000
-vt 0.177162 0.897793 0.000000
-vt 0.198434 0.907279 0.000000
-vt 0.196169 0.890532 0.000000
-vt 0.201570 0.884097 0.000000
-vt 0.205839 0.894268 0.000000
-vt 0.210469 0.888108 0.000000
-vt 0.184517 0.887654 0.000000
-vt 0.190284 0.880163 0.000000
-vt 0.174180 0.881720 0.000000
-vt 0.179530 0.874410 0.000000
-vt 0.227288 0.916745 0.000000
-vt 0.220082 0.908995 0.000000
-vt 0.231089 0.909587 0.000000
-vt 0.223876 0.901635 0.000000
-vt 0.213754 0.900690 0.000000
-vt 0.217559 0.893929 0.000000
-vt 0.215435 0.880468 0.000000
-vt 0.223799 0.887344 0.000000
-vt 0.230998 0.895336 0.000000
-vt 0.238143 0.903446 0.000000
-vt 0.194712 0.870528 0.000000
-vt 0.184148 0.865255 0.000000
-vt 0.205595 0.875126 0.000000
-vt 0.920507 0.064713 0.000000
-vt 0.924814 0.065630 0.000000
-vt 0.920507 0.092523 0.000000
-vt 0.929448 0.091956 0.000000
-vt 0.902188 0.077993 0.000000
-vt 0.843705 0.077993 0.000000
-vt 0.902188 0.050487 0.000000
-vt 0.840060 0.050487 0.000000
-vt 0.840060 0.077993 0.000000
-vt 0.815555 0.066728 0.000000
-vt 0.819312 0.048894 0.000000
-vt 0.820626 0.065231 0.000000
-vt 0.892909 0.133819 0.000000
-vt 0.892909 0.115039 0.000000
-vt 0.894521 0.133819 0.000000
-vt 0.894521 0.113899 0.000000
-vt 0.940268 0.125989 0.000000
-vt 0.917817 0.126119 0.000000
-vt 0.843705 0.113899 0.000000
-vt 0.840060 0.115039 0.000000
-vt 0.801232 0.128311 0.000000
-vt 0.810083 0.092706 0.000000
-vt 0.820619 0.128448 0.000000
-vt 0.820626 0.093144 0.000000
-vt 0.902188 0.111827 0.000000
-vt 0.902188 0.133819 0.000000
-vt 0.840060 0.133819 0.000000
-vt 0.917435 0.092679 0.000000
-vt 0.845226 0.080753 0.000000
-vt 0.845226 0.111827 0.000000
-vt 0.902188 0.080753 0.000000
-vt 0.902188 0.037776 0.000000
-vt 0.840060 0.037776 0.000000
-vt 0.902188 0.030619 0.000000
-vt 0.840060 0.030619 0.000000
-vt 0.840060 0.016054 0.000000
-vt 0.902188 0.016054 0.000000
-vt 0.832705 0.061296 0.000000
-vt 0.832755 0.054199 0.000000
-vt 0.921776 0.048371 0.000000
-vt 0.908309 0.053735 0.000000
-vt 0.908390 0.060832 0.000000
-vt 0.050479 0.007302 0.000000
-vt 0.056861 0.007404 0.000000
-vt 0.051463 0.009775 0.000000
-vt 0.056861 0.011657 0.000000
-vt 0.063099 0.054914 0.000000
-vt 0.056796 0.054954 0.000000
-vt 0.062091 0.052515 0.000000
-vt 0.056796 0.050719 0.000000
-vt 0.050490 0.054889 0.000000
-vt 0.051483 0.052490 0.000000
-vt 0.062530 0.012897 0.000000
-vt 0.065128 0.012911 0.000000
-vt 0.062353 0.049784 0.000000
-vt 0.064960 0.049800 0.000000
-vt 0.056891 0.012788 0.000000
-vt 0.056762 0.049768 0.000000
-vt 0.051292 0.012770 0.000000
-vt 0.051139 0.049748 0.000000
-vt 0.048532 0.049735 0.000000
-vt 0.048676 0.012757 0.000000
-vt 0.063137 0.007377 0.000000
-vt 0.062178 0.009772 0.000000
-vt 0.071380 0.007571 0.000000
-vt 0.070080 0.005252 0.000000
-vt 0.079089 0.011386 0.000000
-vt 0.083258 0.005035 0.000000
-vt 0.083397 0.057409 0.000000
-vt 0.087655 0.050841 0.000000
-vt 0.096993 0.057219 0.000000
-vt 0.095643 0.054807 0.000000
-vt 0.079096 0.050862 0.000000
-vt 0.087535 0.011384 0.000000
-vt 0.069787 0.057294 0.000000
-vt 0.071112 0.054867 0.000000
-vt 0.096483 0.012337 0.000000
-vt 0.099245 0.012331 0.000000
-vt 0.096598 0.049580 0.000000
-vt 0.099367 0.049574 0.000000
-vt 0.087535 0.012376 0.000000
-vt 0.087655 0.049619 0.000000
-vt 0.079089 0.012378 0.000000
-vt 0.079096 0.049640 0.000000
-vt 0.070143 0.012381 0.000000
-vt 0.070140 0.049650 0.000000
-vt 0.067368 0.049646 0.000000
-vt 0.067368 0.012376 0.000000
-vt 0.096678 0.005012 0.000000
-vt 0.095382 0.007402 0.000000
-vt 0.016910 0.005225 0.000000
-vt 0.030451 0.005126 0.000000
-vt 0.018613 0.007584 0.000000
-vt 0.026276 0.011479 0.000000
-vt 0.044278 0.057230 0.000000
-vt 0.030536 0.057394 0.000000
-vt 0.042545 0.054843 0.000000
-vt 0.034767 0.050919 0.000000
-vt 0.026273 0.050930 0.000000
-vt 0.034741 0.011450 0.000000
-vt 0.016782 0.057284 0.000000
-vt 0.018489 0.054884 0.000000
-vt 0.043577 0.012457 0.000000
-vt 0.046551 0.012462 0.000000
-vt 0.043573 0.049701 0.000000
-vt 0.046554 0.049705 0.000000
-vt 0.034741 0.012443 0.000000
-vt 0.034767 0.049697 0.000000
-vt 0.026276 0.012471 0.000000
-vt 0.026273 0.049708 0.000000
-vt 0.017461 0.012505 0.000000
-vt 0.017453 0.049714 0.000000
-vt 0.014475 0.049710 0.000000
-vt 0.014475 0.012501 0.000000
-vt 0.044106 0.005028 0.000000
-vt 0.042434 0.007422 0.000000
-vt 0.032434 0.074006 0.000000
-vt 0.030188 0.077648 0.000000
-vt 0.011149 0.075985 0.000000
-vt 0.012992 0.077648 0.000000
-vt 0.030188 0.079941 0.000000
-vt 0.034467 0.079941 0.000000
-vt 0.030188 0.082340 0.000000
-vt 0.034467 0.082340 0.000000
-vt 0.012992 0.079941 0.000000
-vt 0.012992 0.082340 0.000000
-vt 0.010510 0.079941 0.000000
-vt 0.010510 0.082340 0.000000
-vt 0.003332 0.079941 0.000000
-vt 0.003332 0.082341 0.000000
-vt 0.032434 0.087859 0.000000
-vt 0.011149 0.085879 0.000000
-vt 0.030188 0.084216 0.000000
-vt 0.012992 0.084216 0.000000
-vt 0.039666 0.079941 0.000000
-vt 0.039666 0.082340 0.000000
-vt 0.075539 0.074187 0.000000
-vt 0.073240 0.077648 0.000000
-vt 0.054285 0.075983 0.000000
-vt 0.056129 0.077648 0.000000
-vt 0.073240 0.079941 0.000000
-vt 0.077395 0.079941 0.000000
-vt 0.073240 0.082340 0.000000
-vt 0.077395 0.082340 0.000000
-vt 0.056129 0.079941 0.000000
-vt 0.056129 0.082340 0.000000
-vt 0.053645 0.079941 0.000000
-vt 0.053645 0.082340 0.000000
-vt 0.046466 0.079941 0.000000
-vt 0.046466 0.082340 0.000000
-vt 0.075539 0.093059 0.000000
-vt 0.054285 0.093059 0.000000
-vt 0.075539 0.087678 0.000000
-vt 0.054285 0.085881 0.000000
-vt 0.082777 0.079941 0.000000
-vt 0.082777 0.082340 0.000000
-vt 0.040086 0.111572 0.000000
-vt 0.037836 0.114696 0.000000
-vt 0.017421 0.111572 0.000000
-vt 0.019303 0.114696 0.000000
-vt 0.037836 0.116989 0.000000
-vt 0.041686 0.116989 0.000000
-vt 0.037836 0.119389 0.000000
-vt 0.041686 0.119389 0.000000
-vt 0.019303 0.116989 0.000000
-vt 0.019303 0.119389 0.000000
-vt 0.015656 0.116989 0.000000
-vt 0.015656 0.119389 0.000000
-vt 0.008477 0.116990 0.000000
-vt 0.008478 0.119389 0.000000
-vt 0.040086 0.131567 0.000000
-vt 0.017421 0.131568 0.000000
-vt 0.040086 0.124389 0.000000
-vt 0.017421 0.124389 0.000000
-vt 0.048865 0.116989 0.000000
-vt 0.048865 0.119389 0.000000
-vt 0.039949 0.179600 0.000000
-vt 0.037786 0.182725 0.000000
-vt 0.018964 0.179600 0.000000
-vt 0.020809 0.182725 0.000000
-vt 0.037786 0.185018 0.000000
-vt 0.041586 0.185018 0.000000
-vt 0.037786 0.187417 0.000000
-vt 0.041586 0.187417 0.000000
-vt 0.020809 0.185018 0.000000
-vt 0.020809 0.187417 0.000000
-vt 0.017180 0.185018 0.000000
-vt 0.017180 0.187417 0.000000
-vt 0.010002 0.185018 0.000000
-vt 0.010002 0.187417 0.000000
-vt 0.039949 0.199596 0.000000
-vt 0.018964 0.199596 0.000000
-vt 0.039949 0.192418 0.000000
-vt 0.018964 0.192418 0.000000
-vt 0.048764 0.185018 0.000000
-vt 0.048764 0.187417 0.000000
-vt 0.011955 0.206884 0.000000
-vt 0.023639 0.217218 0.000000
-vt 0.012555 0.214766 0.000000
-vt 0.049360 0.219511 0.000000
-vt 0.053288 0.219511 0.000000
-vt 0.049360 0.221910 0.000000
-vt 0.053289 0.221911 0.000000
-vt 0.023639 0.219511 0.000000
-vt 0.023639 0.221910 0.000000
-vt 0.012287 0.219511 0.000000
-vt 0.012287 0.221911 0.000000
-vt 0.004383 0.219511 0.000000
-vt 0.004383 0.221911 0.000000
-vt 0.023639 0.223787 0.000000
-vt 0.011955 0.234120 0.000000
-vt 0.012555 0.226239 0.000000
-vt 0.060380 0.219511 0.000000
-vt 0.060380 0.221911 0.000000
-vt 0.042641 0.146377 0.000000
-vt 0.017963 0.146377 0.000000
-vt 0.042642 0.139199 0.000000
-vt 0.017963 0.139199 0.000000
-vt 0.040527 0.151802 0.000000
-vt 0.044306 0.151802 0.000000
-vt 0.040527 0.154201 0.000000
-vt 0.044306 0.154202 0.000000
-vt 0.019687 0.151802 0.000000
-vt 0.019687 0.154201 0.000000
-vt 0.016112 0.151802 0.000000
-vt 0.016112 0.154202 0.000000
-vt 0.008934 0.151802 0.000000
-vt 0.008934 0.154202 0.000000
-vt 0.042641 0.166388 0.000000
-vt 0.017963 0.166388 0.000000
-vt 0.042641 0.159210 0.000000
-vt 0.017963 0.159210 0.000000
-vt 0.051484 0.151802 0.000000
-vt 0.051484 0.154202 0.000000
-vt 0.953336 0.444671 0.000000
-vt 0.954273 0.450779 0.000000
-vt 0.930785 0.443134 0.000000
-vt 0.924201 0.450924 0.000000
-vt 0.953331 0.432617 0.000000
-vt 0.948256 0.436532 0.000000
-vt 0.930744 0.434128 0.000000
-vt 0.932094 0.436532 0.000000
-vt 0.926823 0.437891 0.000000
-vt 0.929554 0.437891 0.000000
-vt 0.926793 0.439649 0.000000
-vt 0.929521 0.439649 0.000000
-vt 0.915044 0.437891 0.000000
-vt 0.922704 0.437891 0.000000
-vt 0.914934 0.439649 0.000000
-vt 0.922685 0.439649 0.000000
-vt 0.982288 0.437891 0.000000
-vt 0.950670 0.437891 0.000000
-vt 0.982225 0.439649 0.000000
-vt 0.950530 0.439649 0.000000
-vt 0.977352 0.437891 0.000000
-vt 0.977314 0.439649 0.000000
-vt 0.960063 0.437891 0.000000
-vt 0.960055 0.439649 0.000000
-vt 0.953878 0.437891 0.000000
-vt 0.953814 0.439649 0.000000
-vt 0.951968 0.437891 0.000000
-vt 0.951905 0.439649 0.000000
-vt 0.945517 0.437891 0.000000
-vt 0.945502 0.439649 0.000000
-vt 0.924228 0.426253 0.000000
-vt 0.926663 0.433590 0.000000
-vt 0.926705 0.443627 0.000000
-vt 0.948283 0.440741 0.000000
-vt 0.932138 0.440741 0.000000
-vt 0.955235 0.444674 0.000000
-vt 0.980535 0.450855 0.000000
-vt 0.980512 0.444540 0.000000
-vt 0.960055 0.440741 0.000000
-vt 0.977314 0.440741 0.000000
-vt 0.954273 0.426504 0.000000
-vt 0.955235 0.432615 0.000000
-vt 0.977352 0.436532 0.000000
-vt 0.960063 0.436532 0.000000
-vt 0.980560 0.432731 0.000000
-vt 0.980600 0.426418 0.000000
-vt 0.903459 0.479755 0.000000
-vt 0.904437 0.485835 0.000000
-vt 0.881075 0.478400 0.000000
-vt 0.874501 0.486121 0.000000
-vt 0.903413 0.467730 0.000000
-vt 0.898406 0.471678 0.000000
-vt 0.880896 0.469431 0.000000
-vt 0.882264 0.471819 0.000000
-vt 0.877016 0.473223 0.000000
-vt 0.879736 0.473199 0.000000
-vt 0.877010 0.474981 0.000000
-vt 0.879724 0.474957 0.000000
-vt 0.865282 0.473325 0.000000
-vt 0.872926 0.473259 0.000000
-vt 0.865280 0.475083 0.000000
-vt 0.872939 0.475017 0.000000
-vt 0.932254 0.472741 0.000000
-vt 0.938486 0.472687 0.000000
-vt 0.932245 0.474499 0.000000
-vt 0.938466 0.474445 0.000000
-vt 0.927336 0.472784 0.000000
-vt 0.927338 0.474542 0.000000
-vt 0.910131 0.472934 0.000000
-vt 0.910134 0.474692 0.000000
-vt 0.903963 0.472988 0.000000
-vt 0.903922 0.474746 0.000000
-vt 0.902060 0.473004 0.000000
-vt 0.902022 0.474763 0.000000
-vt 0.895641 0.473061 0.000000
-vt 0.895647 0.474818 0.000000
-vt 0.874324 0.461617 0.000000
-vt 0.876814 0.468927 0.000000
-vt 0.877017 0.478871 0.000000
-vt 0.898408 0.475887 0.000000
-vt 0.882404 0.476026 0.000000
-vt 0.905354 0.479742 0.000000
-vt 0.930634 0.485707 0.000000
-vt 0.930573 0.479398 0.000000
-vt 0.910144 0.475784 0.000000
-vt 0.927348 0.475634 0.000000
-vt 0.904297 0.461637 0.000000
-vt 0.905304 0.467712 0.000000
-vt 0.927324 0.471425 0.000000
-vt 0.910119 0.471575 0.000000
-vt 0.930483 0.467616 0.000000
-vt 0.930469 0.461329 0.000000
-vt 0.933565 0.698823 0.000000
-vt 0.936203 0.698823 0.000000
-vt 0.933565 0.700678 0.000000
-vt 0.936203 0.700678 0.000000
-vt 0.984256 0.683372 0.000000
-vt 0.987217 0.683372 0.000000
-vt 0.984208 0.685130 0.000000
-vt 0.987170 0.685130 0.000000
-vt 0.969899 0.683372 0.000000
-vt 0.969872 0.685130 0.000000
-vt 0.967097 0.683372 0.000000
-vt 0.967069 0.685130 0.000000
-vt 0.950331 0.698823 0.000000
-vt 0.953277 0.698823 0.000000
-vt 0.950331 0.700678 0.000000
-vt 0.953277 0.700678 0.000000
-vt 0.924196 0.698823 0.000000
-vt 0.924196 0.700678 0.000000
-vt 0.952001 0.704133 0.000000
-vt 0.935169 0.704133 0.000000
-vt 0.950331 0.701706 0.000000
-vt 0.936203 0.701706 0.000000
-vt 0.935169 0.685999 0.000000
-vt 0.952001 0.685999 0.000000
-vt 0.935169 0.695368 0.000000
-vt 0.952001 0.695368 0.000000
-vt 0.962646 0.698823 0.000000
-vt 0.962646 0.700678 0.000000
-vt 0.957856 0.683372 0.000000
-vt 0.957809 0.685130 0.000000
-vt 0.985992 0.697973 0.000000
-vt 0.968437 0.697993 0.000000
-vt 0.985971 0.688627 0.000000
-vt 0.968401 0.688627 0.000000
-vt 0.986036 0.679598 0.000000
-vt 0.984256 0.682013 0.000000
-vt 0.968415 0.679602 0.000000
-vt 0.969899 0.682013 0.000000
-vt 0.996459 0.683372 0.000000
-vt 0.996377 0.685130 0.000000
-vt 0.915612 0.737535 0.000000
-vt 0.916538 0.743631 0.000000
-vt 0.893258 0.735979 0.000000
-vt 0.886595 0.743620 0.000000
-vt 0.915705 0.725470 0.000000
-vt 0.910656 0.729413 0.000000
-vt 0.893164 0.727027 0.000000
-vt 0.894517 0.729413 0.000000
-vt 0.889198 0.730772 0.000000
-vt 0.891925 0.730772 0.000000
-vt 0.889182 0.732530 0.000000
-vt 0.891898 0.732530 0.000000
-vt 0.877447 0.730772 0.000000
-vt 0.885103 0.730772 0.000000
-vt 0.877402 0.732530 0.000000
-vt 0.885094 0.732530 0.000000
-vt 0.944522 0.730772 0.000000
-vt 0.950759 0.730772 0.000000
-vt 0.944500 0.732530 0.000000
-vt 0.950740 0.732530 0.000000
-vt 0.939596 0.730772 0.000000
-vt 0.939585 0.732530 0.000000
-vt 0.922366 0.730772 0.000000
-vt 0.922354 0.732530 0.000000
-vt 0.916190 0.730772 0.000000
-vt 0.916129 0.732530 0.000000
-vt 0.914286 0.730772 0.000000
-vt 0.914227 0.732530 0.000000
-vt 0.907859 0.730772 0.000000
-vt 0.907849 0.732530 0.000000
-vt 0.886535 0.719285 0.000000
-vt 0.889081 0.726564 0.000000
-vt 0.889196 0.736401 0.000000
-vt 0.910587 0.733622 0.000000
-vt 0.894607 0.733622 0.000000
-vt 0.917510 0.737539 0.000000
-vt 0.942776 0.743734 0.000000
-vt 0.942781 0.737419 0.000000
-vt 0.922354 0.733622 0.000000
-vt 0.939585 0.733622 0.000000
-vt 0.916654 0.719367 0.000000
-vt 0.917600 0.725471 0.000000
-vt 0.939596 0.729413 0.000000
-vt 0.922366 0.729413 0.000000
-vt 0.942768 0.725646 0.000000
-vt 0.942770 0.719401 0.000000
-vt 0.965227 0.726360 0.000000
-vt 0.967878 0.726360 0.000000
-vt 0.965227 0.728225 0.000000
-vt 0.967878 0.728225 0.000000
-vt 0.913166 0.769950 0.000000
-vt 0.916120 0.769950 0.000000
-vt 0.913130 0.771708 0.000000
-vt 0.916084 0.771708 0.000000
-vt 0.898867 0.769950 0.000000
-vt 0.898840 0.771708 0.000000
-vt 0.896075 0.769950 0.000000
-vt 0.896044 0.771708 0.000000
-vt 0.982077 0.726360 0.000000
-vt 0.985038 0.726360 0.000000
-vt 0.982077 0.728225 0.000000
-vt 0.985038 0.728225 0.000000
-vt 0.955811 0.726361 0.000000
-vt 0.955811 0.728225 0.000000
-vt 0.983755 0.731673 0.000000
-vt 0.966838 0.731672 0.000000
-vt 0.982077 0.729234 0.000000
-vt 0.967878 0.729234 0.000000
-vt 0.966838 0.713419 0.000000
-vt 0.983755 0.713419 0.000000
-vt 0.966838 0.722835 0.000000
-vt 0.983755 0.722835 0.000000
-vt 0.994453 0.726361 0.000000
-vt 0.994453 0.728225 0.000000
-vt 0.886859 0.769950 0.000000
-vt 0.886836 0.771708 0.000000
-vt 0.914897 0.775196 0.000000
-vt 0.897372 0.775201 0.000000
-vt 0.913130 0.772800 0.000000
-vt 0.898840 0.772800 0.000000
-vt 0.914938 0.766186 0.000000
-vt 0.913166 0.768591 0.000000
-vt 0.897389 0.766190 0.000000
-vt 0.898867 0.768591 0.000000
-vt 0.925319 0.769950 0.000000
-vt 0.925268 0.771708 0.000000
-vt 0.961534 0.767992 0.000000
-vt 0.962458 0.774076 0.000000
-vt 0.939199 0.766454 0.000000
-vt 0.932597 0.774100 0.000000
-vt 0.961630 0.755984 0.000000
-vt 0.956603 0.759885 0.000000
-vt 0.939137 0.757489 0.000000
-vt 0.940480 0.759885 0.000000
-vt 0.935223 0.761244 0.000000
-vt 0.937942 0.761244 0.000000
-vt 0.935200 0.763002 0.000000
-vt 0.937911 0.763002 0.000000
-vt 0.923490 0.761244 0.000000
-vt 0.931131 0.761244 0.000000
-vt 0.923478 0.763002 0.000000
-vt 0.931135 0.763002 0.000000
-vt 0.990375 0.761244 0.000000
-vt 0.996597 0.761244 0.000000
-vt 0.990362 0.763002 0.000000
-vt 0.996575 0.763002 0.000000
-vt 0.985453 0.761244 0.000000
-vt 0.985443 0.763002 0.000000
-vt 0.968284 0.761244 0.000000
-vt 0.968266 0.763002 0.000000
-vt 0.962118 0.761244 0.000000
-vt 0.962056 0.763002 0.000000
-vt 0.960219 0.761244 0.000000
-vt 0.960157 0.763002 0.000000
-vt 0.953798 0.761244 0.000000
-vt 0.953763 0.763002 0.000000
-vt 0.932665 0.749651 0.000000
-vt 0.935079 0.756950 0.000000
-vt 0.935155 0.766898 0.000000
-vt 0.956511 0.764094 0.000000
-vt 0.940544 0.764094 0.000000
-vt 0.963428 0.767997 0.000000
-vt 0.988624 0.774185 0.000000
-vt 0.988628 0.767881 0.000000
-vt 0.968266 0.764094 0.000000
-vt 0.985443 0.764094 0.000000
-vt 0.962560 0.749919 0.000000
-vt 0.963513 0.755983 0.000000
-vt 0.985453 0.759885 0.000000
-vt 0.968284 0.759885 0.000000
-vt 0.988636 0.756108 0.000000
-vt 0.988680 0.749832 0.000000
-vt 0.964067 0.802347 0.000000
-vt 0.963147 0.798874 0.000000
-vt 0.965000 0.798874 0.000000
-vt 0.963158 0.787013 0.000000
-vt 0.958257 0.790840 0.000000
-vt 0.940454 0.787871 0.000000
-vt 0.944550 0.790840 0.000000
-vt 0.936831 0.792199 0.000000
-vt 0.941876 0.792199 0.000000
-vt 0.936821 0.793957 0.000000
-vt 0.941874 0.793957 0.000000
-vt 0.931912 0.792199 0.000000
-vt 0.931895 0.793957 0.000000
-vt 0.991281 0.792199 0.000000
-vt 0.994895 0.792199 0.000000
-vt 0.991265 0.793957 0.000000
-vt 0.994879 0.793957 0.000000
-vt 0.986476 0.792199 0.000000
-vt 0.986469 0.793957 0.000000
-vt 0.969698 0.792199 0.000000
-vt 0.969694 0.793957 0.000000
-vt 0.963655 0.792199 0.000000
-vt 0.963628 0.793957 0.000000
-vt 0.961795 0.792199 0.000000
-vt 0.961771 0.793957 0.000000
-vt 0.955542 0.792199 0.000000
-vt 0.955533 0.793957 0.000000
-vt 0.940431 0.798021 0.000000
-vt 0.958239 0.795049 0.000000
-vt 0.944527 0.795049 0.000000
-vt 0.969694 0.795049 0.000000
-vt 0.989583 0.798736 0.000000
-vt 0.986469 0.795049 0.000000
-vt 0.989584 0.802369 0.000000
-vt 0.938070 0.802357 0.000000
-vt 0.964077 0.783540 0.000000
-vt 0.965009 0.787012 0.000000
-vt 0.938091 0.783540 0.000000
-vt 0.986476 0.790840 0.000000
-vt 0.969698 0.790840 0.000000
-vt 0.989591 0.787154 0.000000
-vt 0.989592 0.783522 0.000000
-vt 0.968521 0.409102 0.000000
-vt 0.966908 0.409102 0.000000
-vt 0.968521 0.381437 0.000000
-vt 0.966908 0.381437 0.000000
-vt 0.971179 0.409102 0.000000
-vt 0.971179 0.381437 0.000000
-vt 0.972793 0.409102 0.000000
-vt 0.972792 0.381437 0.000000
-vt 0.975452 0.409102 0.000000
-vt 0.975450 0.381437 0.000000
-vt 0.958676 0.409102 0.000000
-vt 0.957063 0.409102 0.000000
-vt 0.958676 0.381437 0.000000
-vt 0.957063 0.381437 0.000000
-vt 0.961334 0.409102 0.000000
-vt 0.961333 0.381437 0.000000
-vt 0.962948 0.409102 0.000000
-vt 0.962946 0.381437 0.000000
-vt 0.965607 0.409102 0.000000
-vt 0.965605 0.381437 0.000000
-vt 0.978370 0.409102 0.000000
-vt 0.976757 0.409102 0.000000
-vt 0.978370 0.381437 0.000000
-vt 0.976757 0.381437 0.000000
-vt 0.981028 0.409102 0.000000
-vt 0.981027 0.381437 0.000000
-vt 0.982641 0.409102 0.000000
-vt 0.982640 0.381437 0.000000
-vt 0.985300 0.409102 0.000000
-vt 0.985298 0.381437 0.000000
-vt 0.914975 0.784495 0.000000
-vt 0.897349 0.784533 0.000000
-vt 0.983755 0.741088 0.000000
-vt 0.966838 0.741088 0.000000
-vt 0.982077 0.725274 0.000000
-vt 0.967878 0.725274 0.000000
-vt 0.897275 0.756816 0.000000
-vt 0.915027 0.756790 0.000000
-vt 0.952001 0.713502 0.000000
-vt 0.935169 0.713502 0.000000
-vt 0.984208 0.686222 0.000000
-vt 0.969872 0.686222 0.000000
-vt 0.968302 0.670193 0.000000
-vt 0.986120 0.670167 0.000000
-vt 0.950331 0.697794 0.000000
-vt 0.936203 0.697794 0.000000
-vt 0.040527 0.149509 0.000000
-vt 0.019687 0.149509 0.000000
-vt 0.011149 0.068807 0.000000
-vt 0.032434 0.068807 0.000000
-vt 0.032434 0.093057 0.000000
-vt 0.011149 0.093057 0.000000
-vt 0.040527 0.156078 0.000000
-vt 0.019687 0.156078 0.000000
-vt 0.051577 0.234120 0.000000
-vt 0.049360 0.223787 0.000000
-vt 0.051577 0.227029 0.000000
-vt 0.051577 0.206884 0.000000
-vt 0.049360 0.217218 0.000000
-vt 0.051577 0.213976 0.000000
-vt 0.037786 0.189293 0.000000
-vt 0.020809 0.189293 0.000000
-vt 0.037836 0.121265 0.000000
-vt 0.019303 0.121265 0.000000
-vt 0.073240 0.084216 0.000000
-vt 0.056129 0.084216 0.000000
-vt 0.054285 0.068805 0.000000
-vt 0.075539 0.068805 0.000000
-vt 0.040086 0.104394 0.000000
-vt 0.017421 0.104394 0.000000
-vt 0.039949 0.172422 0.000000
-vt 0.018964 0.172422 0.000000
-vt 0.964590 0.522158 0.000000
-vt 0.959201 0.521125 0.000000
-vt 0.964590 0.519914 0.000000
-vt 0.967084 0.499552 0.000000
-vt 0.959201 0.488378 0.000000
-vt 0.962516 0.488378 0.000000
-vt 0.976836 0.488902 0.000000
-vt 0.976836 0.481364 0.000000
-vt 0.980227 0.480191 0.000000
-vt 0.973117 0.490470 0.000000
-vt 0.973117 0.494058 0.000000
-vt 0.971682 0.490470 0.000000
-vt 0.971682 0.494058 0.000000
-vt 0.973117 0.481924 0.000000
-vt 0.971682 0.481924 0.000000
-vt 0.973117 0.476970 0.000000
-vt 0.971682 0.476970 0.000000
-vt 0.973117 0.473655 0.000000
-vt 0.971682 0.473655 0.000000
-vt 0.973117 0.552237 0.000000
-vt 0.973117 0.559418 0.000000
-vt 0.971682 0.552237 0.000000
-vt 0.971682 0.559418 0.000000
-vt 0.973117 0.547443 0.000000
-vt 0.971682 0.547443 0.000000
-vt 0.973117 0.533935 0.000000
-vt 0.971682 0.533935 0.000000
-vt 0.973117 0.529924 0.000000
-vt 0.971682 0.529925 0.000000
-vt 0.971682 0.521965 0.000000
-vt 0.973117 0.521964 0.000000
-vt 0.973117 0.519069 0.000000
-vt 0.971682 0.519069 0.000000
-vt 0.973116 0.516825 0.000000
-vt 0.971682 0.516825 0.000000
-vt 0.973117 0.510196 0.000000
-vt 0.971682 0.510196 0.000000
-vt 0.973117 0.501596 0.000000
-vt 0.971682 0.502290 0.000000
-vt 0.984087 0.528982 0.000000
-vt 0.981902 0.538842 0.000000
-vt 0.981902 0.530882 0.000000
-vt 0.973117 0.502986 0.000000
-vt 0.989475 0.509744 0.000000
-vt 0.989475 0.516476 0.000000
-vt 0.978202 0.510935 0.000000
-vt 0.978202 0.516476 0.000000
-vt 0.976836 0.494443 0.000000
-vt 0.988109 0.495633 0.000000
-vt 0.988109 0.488902 0.000000
-vt 0.978658 0.502986 0.000000
-vt 0.978658 0.501596 0.000000
-vt 0.980941 0.506545 0.000000
-vt 0.979575 0.498832 0.000000
-vt 0.983832 0.502986 0.000000
-vt 0.983832 0.501596 0.000000
-vt 0.973359 0.257115 0.000000
-vt 0.975141 0.257115 0.000000
-vt 0.973359 0.269863 0.000000
-vt 0.975141 0.269863 0.000000
-vt 0.973130 0.255269 0.000000
-vt 0.975369 0.255269 0.000000
-vt 0.977001 0.257115 0.000000
-vt 0.977001 0.269863 0.000000
-vt 0.971498 0.269863 0.000000
-vt 0.971498 0.257115 0.000000
-vt 0.985058 0.255305 0.000000
-vt 0.987874 0.255305 0.000000
-vt 0.985058 0.270384 0.000000
-vt 0.987874 0.270384 0.000000
-vt 0.984558 0.253444 0.000000
-vt 0.988374 0.253444 0.000000
-vt 0.989801 0.255305 0.000000
-vt 0.989801 0.270384 0.000000
-vt 0.983131 0.270384 0.000000
-vt 0.983131 0.255305 0.000000
-vt 0.970475 0.508957 0.000000
-vt 0.970475 0.500724 0.000000
-vt 0.970475 0.516864 0.000000
-vt 0.959201 0.508957 0.000000
-vt 0.966712 0.491013 0.000000
-vt 0.966776 0.532018 0.000000
-vt 0.966775 0.524058 0.000000
-vt 0.966383 0.549573 0.000000
-vt 0.970475 0.547074 0.000000
-vt 0.970475 0.533567 0.000000
-vt 0.959201 0.549573 0.000000
-vt 0.989476 0.527949 0.000000
-vt 0.984087 0.526738 0.000000
-vt 0.982294 0.556397 0.000000
-vt 0.978203 0.553899 0.000000
-vt 0.978203 0.540391 0.000000
-vt 0.989476 0.556397 0.000000
-vt 0.978202 0.523688 0.000000
-vt 0.984794 0.469017 0.000000
-vt 0.980599 0.471653 0.000000
-vt 0.988109 0.469017 0.000000
-vt 0.036158 0.564907 0.000000
-vt 0.042931 0.561729 0.000000
-vt 0.039648 0.569603 0.000000
-vt 0.044450 0.567575 0.000000
-vt 0.069579 0.489637 0.000000
-vt 0.075548 0.485887 0.000000
-vt 0.067437 0.496174 0.000000
-vt 0.069496 0.502727 0.000000
-vt 0.081131 0.485167 0.000000
-vt 0.088793 0.488090 0.000000
-vt 0.072957 0.507161 0.000000
-vt 0.079458 0.509815 0.000000
-vt 0.084988 0.508995 0.000000
-vt 0.092504 0.492747 0.000000
-vt 0.094186 0.499592 0.000000
-vt 0.091181 0.505779 0.000000
-vt 0.076508 0.514686 0.000000
-vt 0.071543 0.512667 0.000000
-vt 0.045317 0.556387 0.000000
-vt 0.047907 0.556929 0.000000
-vt 0.045721 0.562095 0.000000
-vt 0.046960 0.549557 0.000000
-vt 0.049534 0.549258 0.000000
-vt 0.044699 0.543388 0.000000
-vt 0.046629 0.541757 0.000000
-vt 0.038629 0.539977 0.000000
-vt 0.039721 0.537682 0.000000
-vt 0.032719 0.538938 0.000000
-vt 0.033766 0.536382 0.000000
-vt 0.028931 0.536033 0.000000
-vt 0.030041 0.533637 0.000000
-vt 0.024622 0.537946 0.000000
-vt 0.027905 0.533605 0.000000
-vt 0.023533 0.535508 0.000000
-vt 0.024653 0.542363 0.000000
-vt 0.021992 0.541551 0.000000
-vt 0.022092 0.537296 0.000000
-vt 0.021569 0.548023 0.000000
-vt 0.018989 0.547382 0.000000
-vt 0.020453 0.555022 0.000000
-vt 0.017968 0.555623 0.000000
-vt 0.023849 0.560665 0.000000
-vt 0.022136 0.562522 0.000000
-vt 0.030293 0.563537 0.000000
-vt 0.029239 0.565854 0.000000
-vt 0.034695 0.567306 0.000000
-vt 0.038059 0.571675 0.000000
-vt 0.040647 0.572067 0.000000
-vt 0.045544 0.569989 0.000000
-vt 0.047061 0.567608 0.000000
-vt 0.084626 0.482086 0.000000
-vt 0.088924 0.483963 0.000000
-vt 0.031381 0.506898 0.000000
-vt 0.038672 0.505332 0.000000
-vt 0.033972 0.512201 0.000000
-vt 0.038858 0.511367 0.000000
-vt 0.074140 0.536886 0.000000
-vt 0.080441 0.533896 0.000000
-vt 0.071230 0.543168 0.000000
-vt 0.072489 0.549916 0.000000
-vt 0.086223 0.533755 0.000000
-vt 0.093390 0.537557 0.000000
-vt 0.075545 0.554628 0.000000
-vt 0.081657 0.557947 0.000000
-vt 0.087194 0.557912 0.000000
-vt 0.096527 0.542635 0.000000
-vt 0.097413 0.549628 0.000000
-vt 0.093716 0.555429 0.000000
-vt 0.077950 0.562333 0.000000
-vt 0.073478 0.559879 0.000000
-vt 0.042277 0.500721 0.000000
-vt 0.041301 0.506293 0.000000
-vt 0.044718 0.501840 0.000000
-vt 0.045476 0.494511 0.000000
-vt 0.047939 0.494865 0.000000
-vt 0.044706 0.487950 0.000000
-vt 0.047050 0.486927 0.000000
-vt 0.039610 0.483193 0.000000
-vt 0.041318 0.481139 0.000000
-vt 0.033907 0.480587 0.000000
-vt 0.035595 0.478360 0.000000
-vt 0.030931 0.476898 0.000000
-vt 0.032608 0.474874 0.000000
-vt 0.026101 0.477905 0.000000
-vt 0.030365 0.474299 0.000000
-vt 0.025472 0.475307 0.000000
-vt 0.025357 0.482314 0.000000
-vt 0.022877 0.481001 0.000000
-vt 0.023709 0.476805 0.000000
-vt 0.021057 0.487188 0.000000
-vt 0.018643 0.486040 0.000000
-vt 0.018321 0.493727 0.000000
-vt 0.015865 0.493695 0.000000
-vt 0.020343 0.499987 0.000000
-vt 0.018137 0.501347 0.000000
-vt 0.025977 0.504320 0.000000
-vt 0.024315 0.506425 0.000000
-vt 0.029485 0.508959 0.000000
-vt 0.032017 0.513939 0.000000
-vt 0.034384 0.514842 0.000000
-vt 0.039384 0.513975 0.000000
-vt 0.041417 0.511910 0.000000
-vt 0.089860 0.530982 0.000000
-vt 0.094114 0.533429 0.000000
-vt 0.551366 0.574813 0.000000
-vt 0.550737 0.581246 0.000000
-vt 0.554314 0.569062 0.000000
-vt 0.559318 0.564972 0.000000
-vt 0.565469 0.562986 0.000000
-vt 0.571901 0.563630 0.000000
-vt 0.577654 0.566578 0.000000
-vt 0.581751 0.571577 0.000000
-vt 0.583728 0.577731 0.000000
-vt 0.583097 0.584164 0.000000
-vt 0.580144 0.589912 0.000000
-vt 0.575141 0.594007 0.000000
-vt 0.568990 0.595992 0.000000
-vt 0.562558 0.595344 0.000000
-vt 0.556800 0.592407 0.000000
-vt 0.092826 0.831401 0.000000
-vt 0.088214 0.835020 0.000000
-vt 0.264916 0.968892 0.000000
-vt 0.282005 0.423679 0.000000
-vt 0.286894 0.420841 0.000000
-vt 0.141035 0.569892 0.000000
-vt 0.247093 0.929289 0.000000
-vt 0.247850 0.938786 0.000000
-vt 0.213061 0.554509 0.000000
-vt 0.247770 0.476953 0.000000
-vt 0.252671 0.914515 0.000000
-vt 0.252588 0.501244 0.000000
-# 2574 texture coords
-
-g asdf
-f 18/1/1 27/2/2 19/3/3
-f 19/3/4 27/2/5 72/4/6
-f 128/5/7 22/6/8 2/7/9
-f 2/7/10 22/6/11 3/8/12
-f 2/7/13 17/9/14 128/5/15
-f 128/5/16 17/9/17 23/10/18
-f 25/11/19 66/12/20 26/13/21
-f 26/13/22 66/12/23 150/14/24
-f 27/2/25 29/15/26 28/16/27
-f 30/17/28 33/18/29 31/19/30
-f 31/19/31 33/18/32 32/20/33
-f 34/21/34 29/15/35 18/1/36
-f 18/1/37 29/15/38 27/2/39
-f 25/11/40 33/18/41 35/22/42
-f 35/22/43 33/18/44 30/17/45
-f 25/11/46 35/22/47 66/12/48
-f 66/12/49 35/22/50 69/23/51
-f 36/24/52 39/25/53 37/26/54
-f 37/26/55 39/25/56 38/27/57
-f 39/25/58 41/28/59 38/27/60
-f 38/27/61 41/28/62 40/29/63
-f 42/30/64 45/31/65 43/32/66
-f 43/32/67 45/31/68 44/33/69
-f 47/34/70 46/35/71 44/33/72
-f 44/33/73 46/35/74 43/32/75
-f 51/36/76 50/37/77 48/38/78
-f 48/38/79 50/37/80 49/39/81
-f 53/40/82 52/41/83 51/36/84
-f 51/36/85 52/41/86 50/37/87
-f 4/42/88 5/43/89 53/40/90
-f 53/40/91 5/43/92 52/41/93
-f 41/28/94 45/31/95 40/29/96
-f 40/29/97 45/31/98 42/30/99
-f 36/24/100 107/44/101 39/25/102
-f 39/25/103 107/44/104 106/45/105
-f 39/25/106 106/45/107 41/28/108
-f 41/28/109 106/45/110 108/46/111
-f 45/31/112 41/28/113 109/47/114
-f 109/47/115 41/28/116 108/46/117
-f 54/48/118 36/24/119 55/49/120
-f 55/49/121 36/24/122 37/26/123
-f 51/36/124 48/38/125 56/50/126
-f 56/50/127 48/38/128 57/51/129
-f 51/36/130 56/50/131 53/40/132
-f 53/40/133 56/50/134 58/52/135
-f 4/42/136 53/40/137 7/53/138
-f 7/53/139 53/40/140 58/52/141
-f 44/33/142 45/31/143 172/54/144
-f 172/54/145 45/31/146 109/47/147
-f 59/55/148 47/34/149 172/54/150
-f 172/54/151 47/34/152 44/33/153
-f 60/56/154 57/51/155 61/57/156
-f 61/57/157 57/51/158 59/55/159
-f 60/56/160 62/58/161 57/51/162
-f 57/51/163 62/58/164 56/50/165
-f 62/58/166 63/59/167 56/50/168
-f 56/50/169 63/59/170 58/52/171
-f 63/59/172 6/60/173 58/52/174
-f 58/52/175 6/60/176 7/53/177
-f 152/61/178 64/62/179 151/63/180
-f 151/63/181 64/62/182 65/64/183
-f 69/23/184 68/65/185 66/12/186
-f 66/12/187 68/65/188 67/66/189
-f 66/12/190 67/66/191 150/14/192
-f 150/14/193 67/66/194 149/67/195
-f 69/23/196 158/68/197 68/65/198
-f 68/65/199 158/68/200 157/69/201
-f 70/70/202 30/17/203 71/71/204
-f 71/71/205 30/17/206 31/19/207
-f 24/72/208 35/22/209 70/70/210
-f 70/70/211 35/22/212 30/17/213
-f 10/73/214 3/8/215 98/74/216
-f 98/74/217 3/8/218 22/6/219
-f 95/75/220 21/76/221 93/77/222
-f 93/77/223 21/76/224 20/78/225
-f 27/2/226 87/79/227 72/4/228
-f 72/4/229 87/79/230 92/80/231
-f 87/79/232 28/16/233 90/81/234
-f 28/16/235 87/79/236 27/2/237
-f 71/71/238 31/19/239 85/82/240
-f 85/82/241 31/19/242 82/83/243
-f 37/26/244 38/27/245 78/84/246
-f 78/84/247 38/27/248 76/85/249
-f 38/27/250 40/29/251 76/85/252
-f 76/85/253 40/29/254 74/86/255
-f 42/30/256 43/32/257 73/87/258
-f 46/35/259 132/88/260 43/32/261
-f 43/32/262 132/88/263 133/89/264
-f 50/37/265 130/90/266 49/39/267
-f 49/39/268 130/90/269 131/91/270
-f 52/41/271 129/92/272 50/37/273
-f 50/37/274 129/92/275 130/90/276
-f 5/43/277 9/93/278 52/41/279
-f 52/41/280 9/93/281 129/92/282
-f 40/29/283 42/30/284 74/86/285
-f 74/86/286 42/30/287 73/87/288
-f 55/49/289 37/26/290 80/94/291
-f 80/94/292 37/26/293 78/84/294
-f 31/19/295 32/20/296 82/83/297
-f 32/20/298 177/95/299 82/83/300
-f 82/83/301 177/95/302 176/96/303
-f 43/32/304 133/89/305 73/87/306
-f 73/87/307 133/89/308 134/97/309
-f 74/86/310 73/87/311 75/98/312
-f 75/98/313 73/87/314 134/97/315
-f 76/85/316 74/86/317 77/99/318
-f 77/99/319 74/86/320 75/98/321
-f 78/84/322 76/85/323 79/100/324
-f 79/100/325 76/85/326 77/99/327
-f 80/94/328 78/84/329 81/101/330
-f 81/101/331 78/84/332 79/100/333
-f 84/102/334 83/103/335 176/96/336
-f 176/96/337 83/103/338 82/83/339
-f 85/82/340 82/83/341 86/104/342
-f 86/104/343 82/83/344 83/103/345
-f 90/81/346 89/105/347 87/79/348
-f 87/79/349 89/105/350 88/106/351
-f 92/80/352 87/79/353 91/107/354
-f 91/107/355 87/79/356 88/106/357
-f 93/77/358 92/80/359 94/108/360
-f 94/108/361 92/80/362 91/107/363
-f 93/77/364 94/108/365 95/75/366
-f 95/75/367 94/108/368 96/109/369
-f 98/74/370 97/110/371 10/73/372
-f 10/73/373 97/110/374 11/111/375
-f 91/107/376 100/112/377 94/108/378
-f 94/108/379 100/112/380 99/113/381
-f 94/108/382 99/113/383 96/109/384
-f 96/109/385 99/113/386 101/114/387
-f 97/110/388 102/115/389 11/111/390
-f 11/111/391 102/115/392 8/116/393
-f 109/47/394 108/46/395 148/117/396
-f 148/117/397 108/46/398 142/118/399
-f 47/34/400 59/55/401 48/38/402
-f 48/38/403 59/55/404 57/51/405
-f 48/38/406 49/39/407 47/34/408
-f 47/34/409 49/39/410 46/35/411
-f 49/39/412 131/91/413 46/35/414
-f 46/35/415 131/91/416 132/88/417
-f 104/119/418 114/120/419 103/121/420
-f 103/121/421 114/120/422 105/122/423
-f 67/123/424 68/124/425 159/125/426
-f 149/126/427 67/123/428 161/127/429
-f 161/127/430 67/123/431 159/125/432
-f 157/128/433 16/129/434 68/124/435
-f 68/124/436 16/129/437 159/125/438
-f 104/119/439 160/130/440 114/120/441
-f 115/131/442 116/132/443 185/133/444
-f 185/133/445 116/132/446 184/134/447
-f 120/135/448 119/136/449 117/137/450
-f 117/137/451 119/136/452 118/138/453
-f 122/139/454 121/140/455 120/135/456
-f 120/135/457 121/140/458 119/136/459
-f 124/141/460 123/142/461 122/139/462
-f 122/139/463 123/142/464 121/140/465
-f 124/141/466 1/143/467 123/142/468
-f 123/142/469 1/143/470 12/144/471
-f 178/145/472 26/13/473 126/146/474
-f 54/48/475 126/146/476 125/147/477
-f 125/147/478 189/148/479 188/149/480
-f 189/148/481 125/147/482 126/146/483
-f 108/46/484 106/45/485 142/118/486
-f 142/118/487 106/45/488 143/150/489
-f 107/44/490 125/147/491 188/149/492
-f 54/48/493 125/147/494 36/24/495
-f 36/24/496 125/147/497 107/44/498
-f 127/151/499 20/78/500 23/10/501
-f 23/10/502 20/78/503 128/5/504
-f 19/3/505 72/4/506 127/151/507
-f 127/151/508 72/4/509 20/78/510
-f 77/99/511 75/98/512 135/152/513
-f 79/100/514 77/99/515 136/153/516
-f 136/153/517 77/99/518 135/152/519
-f 81/101/520 79/100/521 137/154/522
-f 137/154/523 79/100/524 136/153/525
-f 83/103/526 84/102/527 138/155/528
-f 138/155/529 84/102/530 139/156/531
-f 138/155/532 86/104/533 83/103/534
-f 86/104/535 138/155/536 140/157/537
-f 89/105/538 179/158/539 88/106/540
-f 88/106/541 179/158/542 141/159/543
-f 88/106/544 141/159/545 91/107/546
-f 91/107/547 141/159/548 100/112/549
-f 174/160/550 175/161/551 102/115/552
-f 102/115/553 175/161/554 8/116/555
-f 99/113/556 173/162/557 101/114/558
-f 110/163/559 109/47/560 148/117/561
-f 61/57/562 59/55/563 113/164/564
-f 113/164/565 59/55/566 111/165/567
-f 105/122/568 162/166/569 145/167/570
-f 105/168/571 189/148/572 26/13/573
-f 105/168/574 150/14/575 103/169/576
-f 150/14/577 105/168/578 26/13/579
-f 149/67/580 104/170/581 150/14/582
-f 150/14/583 104/170/584 103/169/585
-f 116/132/586 115/131/587 151/63/588
-f 151/63/589 115/131/590 152/171/591
-f 65/64/592 116/132/593 151/63/594
-f 123/172/595 156/173/596 121/174/597
-f 121/174/598 156/173/599 155/175/600
-f 12/176/601 13/177/602 123/172/603
-f 123/172/604 13/177/605 156/173/606
-f 119/179/607 154/180/608 118/181/609
-f 118/181/610 154/180/611 153/182/612
-f 121/174/613 155/175/614 119/179/615
-f 119/179/616 155/175/617 154/180/618
-f 186/185/619 185/186/620 153/182/621
-f 153/182/622 185/186/623 118/181/624
-f 15/188/625 16/129/626 157/189/627
-f 64/62/628 157/69/629 65/64/630
-f 65/64/631 157/69/632 158/68/633
-f 359/190/634 190/191/635 14/192/636
-f 182/193/637 183/194/638 71/71/639
-f 71/71/640 183/194/641 70/70/642
-f 181/195/643 182/193/644 85/82/645
-f 85/82/646 182/193/647 71/71/648
-f 180/196/649 181/195/650 86/104/651
-f 86/104/652 181/195/653 85/82/654
-f 84/102/655 81/101/656 139/156/657
-f 139/156/658 81/101/659 137/154/660
-f 176/96/661 80/94/662 84/102/663
-f 84/102/664 80/94/665 81/101/666
-f 177/95/667 55/49/668 176/96/669
-f 176/96/670 55/49/671 80/94/672
-f 178/145/673 54/48/674 177/95/675
-f 177/95/676 54/48/677 55/49/678
-f 178/145/679 126/146/680 54/48/681
-f 24/72/682 183/194/683 34/21/684
-f 183/194/685 24/72/686 70/70/687
-f 65/64/688 158/68/689 116/132/690
-f 184/134/691 158/68/692 24/72/693
-f 24/72/694 158/68/695 35/22/696
-f 35/22/697 158/68/698 69/23/699
-f 124/141/700 23/10/701 1/143/702
-f 1/143/703 23/10/704 17/9/705
-f 122/139/706 127/151/707 124/141/708
-f 124/141/709 127/151/710 23/10/711
-f 120/135/712 19/3/713 122/139/714
-f 122/139/715 19/3/716 127/151/717
-f 117/137/718 18/1/719 120/135/720
-f 120/135/721 18/1/722 19/3/723
-f 18/1/724 117/137/725 34/21/726
-f 117/137/727 184/134/728 34/21/729
-f 184/134/730 24/72/731 34/21/732
-f 173/162/733 174/160/734 101/114/735
-f 101/114/736 174/160/737 102/115/738
-f 96/109/739 101/114/740 97/110/741
-f 97/110/742 101/114/743 102/115/744
-f 98/74/745 95/75/746 97/110/747
-f 97/110/748 95/75/749 96/109/750
-f 21/76/751 95/75/752 22/6/753
-f 22/6/754 95/75/755 98/74/756
-f 22/6/757 128/5/758 21/76/759
-f 21/76/760 128/5/761 20/78/762
-f 149/126/763 161/127/764 104/119/765
-f 104/119/766 161/127/767 160/130/768
-f 162/166/769 105/122/770 163/197/771
-f 163/197/772 105/122/773 114/120/774
-f 163/197/775 165/198/776 162/166/777
-f 162/166/778 165/198/779 164/199/780
-f 165/198/781 167/200/782 164/199/783
-f 164/199/784 167/200/785 166/201/786
-f 160/130/787 168/202/788 114/120/789
-f 114/120/790 168/202/791 163/197/792
-f 168/202/793 169/203/794 163/197/795
-f 169/203/796 170/204/797 163/197/798
-f 163/197/799 170/204/800 165/198/801
-f 170/204/802 171/205/803 165/198/804
-f 165/198/805 171/205/806 167/200/807
-f 147/206/808 105/168/809 145/207/810
-f 105/168/811 187/208/812 189/148/813
-f 72/4/814 92/80/815 20/78/816
-f 20/78/817 92/80/818 93/77/819
-f 109/47/820 110/163/821 172/54/822
-f 172/54/823 110/163/824 112/209/825
-f 59/55/826 172/54/827 111/165/828
-f 111/165/829 172/54/830 112/209/831
-f 129/210/832 9/211/833 174/212/834
-f 174/212/835 9/211/836 175/213/837
-f 99/214/838 130/215/839 173/216/840
-f 130/215/841 129/210/842 173/216/843
-f 129/210/844 174/212/845 173/216/846
-f 130/215/847 140/217/848 131/218/849
-f 140/217/850 130/215/851 179/219/852
-f 130/215/853 141/220/854 179/219/855
-f 130/215/856 100/221/857 141/220/858
-f 100/221/859 130/215/860 99/214/861
-f 137/222/862 136/223/863 131/218/864
-f 136/223/865 135/224/866 131/218/867
-f 135/224/868 132/225/869 131/218/870
-f 140/217/871 138/226/872 131/218/873
-f 138/226/874 139/227/875 131/218/876
-f 131/218/877 139/227/878 137/222/879
-f 135/224/880 75/228/881 132/225/882
-f 132/225/883 75/228/884 133/229/885
-f 75/228/886 134/230/887 133/229/888
-f 33/18/889 178/145/890 32/20/891
-f 32/20/892 178/145/893 177/95/894
-f 26/13/895 178/145/896 25/11/897
-f 178/145/898 33/18/899 25/11/900
-f 140/157/901 180/196/902 86/104/903
-f 180/196/904 179/158/905 89/105/906
-f 179/158/907 180/196/908 140/157/909
-f 89/105/910 90/81/911 180/196/912
-f 180/196/913 90/81/914 181/195/915
-f 90/81/916 28/16/917 181/195/918
-f 181/195/919 28/16/920 182/193/921
-f 28/16/922 29/15/923 182/193/924
-f 182/193/925 29/15/926 183/194/927
-f 29/15/928 34/21/929 183/194/930
-f 185/133/931 184/134/932 118/138/933
-f 118/138/934 184/134/935 117/137/936
-f 115/231/937 64/232/938 152/233/939
-f 158/68/940 184/134/941 116/132/942
-f 105/168/943 147/206/944 187/208/945
-f 188/149/946 187/208/947 146/234/948
-f 146/234/949 187/208/950 147/206/951
-f 107/44/952 188/149/953 144/235/954
-f 144/235/955 188/149/956 146/234/957
-f 106/45/958 107/44/959 143/150/960
-f 143/150/961 107/44/962 144/235/963
-f 185/186/964 186/185/965 115/231/966
-f 115/231/967 186/185/968 64/232/969
-f 188/149/970 189/148/971 187/208/972
-f 26/13/973 189/148/974 126/146/975
-f 64/236/976 190/191/977 157/189/978
-f 157/189/979 190/191/980 15/188/981
-f 191/237/982 190/238/983 186/185/984
-f 186/185/985 190/238/986 64/232/987
-f 192/239/988 191/237/989 153/182/990
-f 153/182/991 191/237/992 186/185/993
-f 154/180/994 193/240/995 153/182/996
-f 153/182/997 193/240/998 192/239/999
-f 155/175/1000 194/241/1001 154/180/1002
-f 154/180/1003 194/241/1004 193/240/1005
-f 156/173/1006 195/242/1007 155/175/1008
-f 155/175/1009 195/242/1010 194/241/1011
-f 13/177/1012 196/243/1013 156/173/1014
-f 156/173/1015 196/243/1016 195/242/1017
-f 200/244/1018 195/245/1019 197/246/1020
-f 197/246/1021 195/245/1022 196/247/1023
-f 201/248/1024 199/249/1025 193/250/1026
-f 193/250/1027 199/249/1028 192/251/1029
-f 200/244/1030 198/252/1031 195/245/1032
-f 195/245/1033 198/252/1034 194/253/1035
-f 201/248/1036 193/250/1037 198/252/1038
-f 198/252/1039 193/250/1040 194/253/1041
-f 191/256/1042 203/255/1043 202/254/1044
-f 203/255/1045 191/256/1046 192/251/1047
-f 203/255/1048 192/251/1049 199/249/1050
-f 14/257/1051 190/258/1052 204/259/1053
-f 191/256/1054 204/259/1055 190/258/1056
-f 204/259/1057 191/256/1058 202/254/1059
-f 205/260/1060 207/261/1061 206/262/1062
-f 207/261/1063 208/263/1064 206/262/1065
-f 209/264/1066 2/7/1067 210/265/1068
-f 2/7/1069 3/8/1070 210/265/1071
-f 2/7/1072 209/264/1073 17/9/1074
-f 209/264/1075 211/266/1076 17/9/1077
-f 212/267/1078 214/268/1079 213/269/1080
-f 214/268/1081 215/270/1082 213/269/1083
-f 206/262/1084 217/271/1085 216/272/1086
-f 218/273/1087 220/274/1088 219/275/1089
-f 220/274/1090 221/276/1091 219/275/1092
-f 222/277/1093 205/260/1094 216/272/1095
-f 205/260/1096 206/262/1097 216/272/1098
-f 212/267/1099 223/278/1100 219/275/1101
-f 223/278/1102 218/273/1103 219/275/1104
-f 212/267/1105 213/269/1106 223/278/1107
-f 213/269/1108 224/279/1109 223/278/1110
-f 225/280/1111 227/281/1112 226/282/1113
-f 227/281/1114 228/283/1115 226/282/1116
-f 226/282/1117 228/283/1118 229/284/1119
-f 228/283/1120 230/285/1121 229/284/1122
-f 231/286/1123 233/287/1124 232/288/1125
-f 233/287/1126 234/289/1127 232/288/1128
-f 235/290/1129 234/289/1130 236/291/1131
-f 234/289/1132 233/287/1133 236/291/1134
-f 237/292/1135 239/293/1136 238/294/1137
-f 239/293/1138 240/295/1139 238/294/1140
-f 241/296/1141 237/292/1142 242/297/1143
-f 237/292/1144 238/294/1145 242/297/1146
-f 4/42/1147 241/296/1148 5/43/1149
-f 241/296/1150 242/297/1151 5/43/1152
-f 229/284/1153 230/285/1154 232/288/1155
-f 230/285/1156 231/286/1157 232/288/1158
-f 225/280/1159 226/282/1160 243/298/1161
-f 226/282/1162 244/299/1163 243/298/1164
-f 226/282/1165 229/284/1166 244/299/1167
-f 229/284/1168 245/300/1169 244/299/1170
-f 232/288/1171 246/301/1172 229/284/1173
-f 246/301/1174 245/300/1175 229/284/1176
-f 247/302/1177 248/303/1178 225/280/1179
-f 248/303/1180 227/281/1181 225/280/1182
-f 237/292/1183 249/304/1184 239/293/1185
-f 249/304/1186 250/305/1187 239/293/1188
-f 237/292/1189 241/296/1190 249/304/1191
-f 241/296/1192 251/306/1193 249/304/1194
-f 4/42/1195 7/53/1196 241/296/1197
-f 7/53/1198 251/306/1199 241/296/1200
-f 234/289/1201 252/307/1202 232/288/1203
-f 252/307/1204 246/301/1205 232/288/1206
-f 253/308/1207 252/307/1208 235/290/1209
-f 252/307/1210 234/289/1211 235/290/1212
-f 254/309/1213 255/310/1214 250/305/1215
-f 255/310/1216 253/308/1217 250/305/1218
-f 254/309/1219 250/305/1220 256/311/1221
-f 250/305/1222 249/304/1223 256/311/1224
-f 256/311/1225 249/304/1226 257/312/1227
-f 249/304/1228 251/306/1229 257/312/1230
-f 257/312/1231 251/306/1232 6/60/1233
-f 251/306/1234 7/53/1235 6/60/1236
-f 258/313/1237 260/314/1238 259/315/1239
-f 260/314/1240 261/316/1241 259/315/1242
-f 224/279/1243 213/269/1244 262/317/1245
-f 213/269/1246 263/318/1247 262/317/1248
-f 213/269/1249 215/270/1250 263/318/1251
-f 215/270/1252 264/319/1253 263/318/1254
-f 224/279/1255 262/317/1256 265/320/1257
-f 262/317/1258 266/321/1259 265/320/1260
-f 267/322/1261 268/323/1262 218/273/1263
-f 268/323/1264 220/274/1265 218/273/1266
-f 269/324/1267 267/322/1268 223/278/1269
-f 267/322/1270 218/273/1271 223/278/1272
-f 10/73/1273 270/325/1274 3/8/1275
-f 270/325/1276 210/265/1277 3/8/1278
-f 271/326/1279 273/327/1280 272/328/1281
-f 273/327/1282 274/329/1283 272/328/1284
-f 206/262/1285 208/263/1286 275/330/1287
-f 208/263/1288 276/331/1289 275/330/1290
-f 275/330/1291 277/332/1292 217/271/1293
-f 217/271/1294 206/262/1295 275/330/1296
-f 268/323/1297 278/333/1298 220/274/1299
-f 278/333/1300 279/334/1301 220/274/1302
-f 227/281/1303 280/335/1304 228/283/1305
-f 280/335/1306 281/336/1307 228/283/1308
-f 228/283/1309 281/336/1310 230/285/1311
-f 281/336/1312 282/337/1313 230/285/1314
-f 231/286/1315 283/338/1316 233/287/1317
-f 236/291/1318 233/287/1319 284/339/1320
-f 233/287/1321 285/340/1322 284/339/1323
-f 238/294/1324 240/295/1325 286/341/1326
-f 240/295/1327 287/342/1328 286/341/1329
-f 242/297/1330 238/294/1331 288/343/1332
-f 238/294/1333 286/341/1334 288/343/1335
-f 5/43/1336 242/297/1337 9/93/1338
-f 242/297/1339 288/343/1340 9/93/1341
-f 230/285/1342 282/337/1343 231/286/1344
-f 282/337/1345 283/338/1346 231/286/1347
-f 248/303/1348 289/344/1349 227/281/1350
-f 289/344/1351 280/335/1352 227/281/1353
-f 220/274/1354 279/334/1355 221/276/1356
-f 221/276/1357 279/334/1358 290/345/1359
-f 279/334/1360 291/346/1361 290/345/1362
-f 233/287/1363 283/338/1364 285/340/1365
-f 283/338/1366 292/347/1367 285/340/1368
-f 282/337/1369 293/348/1370 283/338/1371
-f 293/348/1372 292/347/1373 283/338/1374
-f 281/336/1375 294/349/1376 282/337/1377
-f 294/349/1378 293/348/1379 282/337/1380
-f 280/335/1381 295/350/1382 281/336/1383
-f 295/350/1384 294/349/1385 281/336/1386
-f 289/344/1387 296/351/1388 280/335/1389
-f 296/351/1390 295/350/1391 280/335/1392
-f 297/352/1393 291/346/1394 298/353/1395
-f 291/346/1396 279/334/1397 298/353/1398
-f 278/333/1399 299/354/1400 279/334/1401
-f 299/354/1402 298/353/1403 279/334/1404
-f 277/332/1405 275/330/1406 300/355/1407
-f 275/330/1408 301/356/1409 300/355/1410
-f 276/331/1411 302/357/1412 275/330/1413
-f 302/357/1414 301/356/1415 275/330/1416
-f 273/327/1417 303/358/1418 276/331/1419
-f 303/358/1420 302/357/1421 276/331/1422
-f 273/327/1423 271/326/1424 303/358/1425
-f 271/326/1426 304/359/1427 303/358/1428
-f 270/325/1429 10/73/1430 305/360/1431
-f 10/73/1432 11/111/1433 305/360/1434
-f 302/357/1435 303/358/1436 306/361/1437
-f 303/358/1438 307/362/1439 306/361/1440
-f 303/358/1441 304/359/1442 307/362/1443
-f 304/359/1444 308/363/1445 307/362/1446
-f 305/360/1447 11/111/1448 309/364/1449
-f 11/111/1450 8/116/1451 309/364/1452
-f 246/301/1453 310/365/1454 245/300/1455
-f 310/365/1456 311/366/1457 245/300/1458
-f 235/290/1459 239/293/1460 253/308/1461
-f 239/293/1462 250/305/1463 253/308/1464
-f 239/293/1465 235/290/1466 240/295/1467
-f 235/290/1468 236/291/1469 240/295/1470
-f 240/295/1471 236/291/1472 287/342/1473
-f 236/291/1474 284/339/1475 287/342/1476
-f 312/367/1477 314/368/1478 313/369/1479
-f 314/368/1480 315/370/1481 313/369/1482
-f 263/371/1483 316/372/1484 262/373/1485
-f 264/374/1486 317/375/1487 263/371/1488
-f 317/375/1489 316/372/1490 263/371/1491
-f 266/376/1492 262/373/1493 318/377/1494
-f 262/373/1495 316/372/1496 318/377/1497
-f 312/367/1498 313/369/1499 319/378/1500
-f 320/379/1501 322/380/1502 321/381/1503
-f 322/380/1504 323/382/1505 321/381/1506
-f 324/383/1507 326/384/1508 325/385/1509
-f 326/384/1510 327/386/1511 325/385/1512
-f 328/387/1513 324/383/1514 329/388/1515
-f 324/383/1516 325/385/1517 329/388/1518
-f 330/389/1519 328/387/1520 331/390/1521
-f 328/387/1522 329/388/1523 331/390/1524
-f 330/389/1525 331/390/1526 1/143/1527
-f 331/390/1528 12/391/1529 1/143/1530
-f 332/392/1531 333/393/1532 214/268/1533
-f 247/302/1534 334/394/1535 333/393/1536
-f 334/394/1537 336/395/1538 335/396/1539
-f 335/396/1540 333/393/1541 334/394/1542
-f 245/300/1543 311/366/1544 244/299/1545
-f 311/366/1546 337/397/1547 244/299/1548
-f 243/298/1549 336/395/1550 334/394/1551
-f 247/302/1552 225/280/1553 334/394/1554
-f 225/280/1555 243/298/1556 334/394/1557
-f 338/398/1558 211/266/1559 274/329/1560
-f 211/266/1561 209/264/1562 274/329/1563
-f 207/261/1564 338/398/1565 208/263/1566
-f 338/398/1567 274/329/1568 208/263/1569
-f 294/349/1570 339/399/1571 293/348/1572
-f 295/350/1573 340/400/1574 294/349/1575
-f 340/400/1576 339/399/1577 294/349/1578
-f 296/351/1579 341/401/1580 295/350/1581
-f 341/401/1582 340/400/1583 295/350/1584
-f 298/353/1585 342/402/1586 297/352/1587
-f 342/402/1588 343/403/1589 297/352/1590
-f 342/402/1591 298/353/1592 299/354/1593
-f 299/354/1594 344/404/1595 342/402/1596
-f 300/355/1597 301/356/1598 345/405/1599
-f 301/356/1600 346/406/1601 345/405/1602
-f 301/356/1603 302/357/1604 346/406/1605
-f 302/357/1606 306/361/1607 346/406/1608
-f 347/407/1609 309/364/1610 175/161/1611
-f 309/364/1612 8/116/1613 175/161/1614
-f 307/362/1615 308/363/1616 348/409/1617
-f 349/410/1618 310/365/1619 246/301/1620
-f 255/310/1621 350/411/1622 253/308/1623
-f 350/411/1624 351/412/1625 253/308/1626
-f 315/370/1627 353/413/1628 352/414/1629
-f 315/415/1630 214/268/1631 335/396/1632
-f 315/415/1633 314/416/1634 215/270/1635
-f 215/270/1636 214/268/1637 315/415/1638
-f 264/319/1639 215/270/1640 312/417/1641
-f 215/270/1642 314/416/1643 312/417/1644
-f 321/381/1645 260/314/1646 320/379/1647
-f 260/314/1648 258/418/1649 320/379/1650
-f 261/316/1651 260/314/1652 321/381/1653
-f 331/419/1654 329/420/1655 354/421/1656
-f 329/420/1657 355/422/1658 354/421/1659
-f 12/176/1660 331/419/1661 13/177/1662
-f 331/419/1663 354/421/1664 13/177/1665
-f 325/425/1666 327/426/1667 356/427/1668
-f 327/426/1669 357/428/1670 356/427/1671
-f 329/420/1672 325/425/1673 355/422/1674
-f 325/425/1675 356/427/1676 355/422/1677
-f 358/431/1678 357/428/1679 322/432/1680
-f 357/428/1681 327/426/1682 322/432/1683
-f 318/377/1684 15/188/1685 266/434/1686
-f 15/188/1687 318/377/1688 16/129/1689
-f 259/315/1690 261/316/1691 266/321/1692
-f 261/316/1693 265/320/1694 266/321/1695
-f 190/191/1696 359/190/1697 15/188/1698
-f 360/435/1699 268/323/1700 361/436/1701
-f 268/323/1702 267/322/1703 361/436/1704
-f 362/437/1705 278/333/1706 360/435/1707
-f 278/333/1708 268/323/1709 360/435/1710
-f 363/438/1711 299/354/1712 362/437/1713
-f 299/354/1714 278/333/1715 362/437/1716
-f 297/352/1717 343/403/1718 296/351/1719
-f 343/403/1720 341/401/1721 296/351/1722
-f 291/346/1723 297/352/1724 289/344/1725
-f 297/352/1726 296/351/1727 289/344/1728
-f 290/345/1729 291/346/1730 248/303/1731
-f 291/346/1732 289/344/1733 248/303/1734
-f 332/392/1735 290/345/1736 247/302/1737
-f 290/345/1738 248/303/1739 247/302/1740
-f 332/392/1741 247/302/1742 333/393/1743
-f 269/324/1744 222/277/1745 361/436/1746
-f 361/436/1747 267/322/1748 269/324/1749
-f 261/316/1750 321/381/1751 265/320/1752
-f 323/382/1753 269/324/1754 265/320/1755
-f 269/324/1756 223/278/1757 265/320/1758
-f 223/278/1759 224/279/1760 265/320/1761
-f 330/389/1762 1/143/1763 211/266/1764
-f 1/143/1765 17/9/1766 211/266/1767
-f 328/387/1768 330/389/1769 338/398/1770
-f 330/389/1771 211/266/1772 338/398/1773
-f 324/383/1774 328/387/1775 207/261/1776
-f 328/387/1777 338/398/1778 207/261/1779
-f 326/384/1780 324/383/1781 205/260/1782
-f 324/383/1783 207/261/1784 205/260/1785
-f 205/260/1786 222/277/1787 326/384/1788
-f 326/384/1789 222/277/1790 323/382/1791
-f 323/382/1792 222/277/1793 269/324/1794
-f 348/409/1795 308/363/1796 347/407/1797
-f 308/363/1798 309/364/1799 347/407/1800
-f 304/359/1801 305/360/1802 308/363/1803
-f 305/360/1804 309/364/1805 308/363/1806
-f 270/325/1807 305/360/1808 271/326/1809
-f 305/360/1810 304/359/1811 271/326/1812
-f 272/328/1813 210/265/1814 271/326/1815
-f 210/265/1816 270/325/1817 271/326/1818
-f 210/265/1819 272/328/1820 209/264/1821
-f 272/328/1822 274/329/1823 209/264/1824
-f 264/374/1825 312/367/1826 317/375/1827
-f 312/367/1828 319/378/1829 317/375/1830
-f 352/414/1831 364/439/1832 315/370/1833
-f 364/439/1834 313/369/1835 315/370/1836
-f 364/439/1837 352/414/1838 366/440/1839
-f 352/414/1840 365/441/1841 366/440/1842
-f 366/440/1843 365/441/1844 368/442/1845
-f 365/441/1846 367/443/1847 368/442/1848
-f 319/378/1849 313/369/1850 369/444/1851
-f 313/369/1852 364/439/1853 369/444/1854
-f 369/444/1855 364/439/1856 370/445/1857
-f 370/445/1858 364/439/1859 371/446/1860
-f 364/439/1861 366/440/1862 371/446/1863
-f 371/446/1864 366/440/1865 372/447/1866
-f 366/440/1867 368/442/1868 372/447/1869
-f 16/129/1870 318/377/1871 159/125/1872
-f 318/377/1873 316/372/1874 159/125/1875
-f 161/127/1876 317/375/1877 160/130/1878
-f 317/375/1879 319/378/1880 160/130/1881
-f 159/125/1882 316/372/1883 161/127/1884
-f 316/372/1885 317/375/1886 161/127/1887
-f 160/130/1888 319/378/1889 168/202/1890
-f 319/378/1891 369/444/1892 168/202/1893
-f 373/448/1894 353/449/1895 315/415/1896
-f 315/415/1897 335/396/1898 374/450/1899
-f 208/263/1900 274/329/1901 276/331/1902
-f 274/329/1903 273/327/1904 276/331/1905
-f 246/301/1906 252/307/1907 349/410/1908
-f 252/307/1909 375/451/1910 349/410/1911
-f 253/308/1912 351/412/1913 252/307/1914
-f 351/412/1915 375/451/1916 252/307/1917
-f 288/452/1918 347/453/1919 9/211/1920
-f 347/453/1921 175/213/1922 9/211/1923
-f 307/454/1924 348/455/1925 286/456/1926
-f 286/456/1927 348/455/1928 288/452/1929
-f 288/452/1930 348/455/1931 347/453/1932
-f 286/456/1933 287/457/1934 344/458/1935
-f 344/458/1936 345/459/1937 286/456/1938
-f 286/456/1939 345/459/1940 346/460/1941
-f 286/456/1942 346/460/1943 306/461/1944
-f 306/461/1945 307/454/1946 286/456/1947
-f 341/462/1948 287/457/1949 340/463/1950
-f 340/463/1951 287/457/1952 339/464/1953
-f 339/464/1954 287/457/1955 284/465/1956
-f 344/458/1957 287/457/1958 342/466/1959
-f 342/466/1960 287/457/1961 343/467/1962
-f 287/457/1963 341/462/1964 343/467/1965
-f 339/464/1966 284/465/1967 293/468/1968
-f 284/465/1969 285/469/1970 293/468/1971
-f 293/468/1972 285/469/1973 292/470/1974
-f 219/275/1975 221/276/1976 332/392/1977
-f 221/276/1978 290/345/1979 332/392/1980
-f 214/268/1981 212/267/1982 332/392/1983
-f 332/392/1984 212/267/1985 219/275/1986
-f 344/404/1987 299/354/1988 363/438/1989
-f 363/438/1990 300/355/1991 345/405/1992
-f 345/405/1993 344/404/1994 363/438/1995
-f 300/355/1996 363/438/1997 277/332/1998
-f 363/438/1999 362/437/2000 277/332/2001
-f 277/332/2002 362/437/2003 217/271/2004
-f 362/437/2005 360/435/2006 217/271/2007
-f 217/271/2008 360/435/2009 216/272/2010
-f 360/435/2011 361/436/2012 216/272/2013
-f 216/272/2014 361/436/2015 222/277/2016
-f 322/380/2017 327/386/2018 323/382/2019
-f 327/386/2020 326/384/2021 323/382/2022
-f 320/471/2023 258/472/2024 259/473/2025
-f 265/320/2026 321/381/2027 323/382/2028
-f 315/415/2029 374/450/2030 373/448/2031
-f 336/395/2032 376/474/2033 374/450/2034
-f 376/474/2035 373/448/2036 374/450/2037
-f 243/298/2038 377/475/2039 336/395/2040
-f 377/475/2041 376/474/2042 336/395/2043
-f 244/299/2044 337/397/2045 243/298/2046
-f 337/397/2047 377/475/2048 243/298/2049
-f 322/432/2050 320/471/2051 358/431/2052
-f 320/471/2053 259/473/2054 358/431/2055
-f 336/395/2056 374/450/2057 335/396/2058
-f 214/268/2059 333/393/2060 335/396/2061
-f 259/476/2062 266/434/2063 359/190/2064
-f 266/434/2065 15/188/2066 359/190/2067
-f 378/477/2068 358/431/2069 359/478/2070
-f 358/431/2071 259/473/2072 359/478/2073
-f 379/479/2074 357/428/2075 378/477/2076
-f 357/428/2077 358/431/2078 378/477/2079
-f 356/427/2080 357/428/2081 380/480/2082
-f 357/428/2083 379/479/2084 380/480/2085
-f 355/422/2086 356/427/2087 381/481/2088
-f 356/427/2089 380/480/2090 381/481/2091
-f 354/421/2092 355/422/2093 382/482/2094
-f 355/422/2095 381/481/2096 382/482/2097
-f 13/177/2098 354/421/2099 196/243/2100
-f 354/421/2101 382/482/2102 196/243/2103
-f 383/483/2104 197/246/2105 382/484/2106
-f 197/246/2107 196/247/2108 382/484/2109
-f 384/485/2110 380/486/2111 385/487/2112
-f 380/486/2113 379/488/2114 385/487/2115
-f 383/483/2116 382/484/2117 386/489/2118
-f 382/484/2119 381/490/2120 386/489/2121
-f 384/485/2122 386/489/2123 380/486/2124
-f 386/489/2125 381/490/2126 380/486/2127
-f 14/192/2128 387/423/2129 359/190/2130
-f 388/424/2131 387/178/2132 204/259/2133
-f 387/178/2134 14/257/2135 204/259/2136
-f 201/248/2137 384/485/2138 199/249/2139
-f 384/485/2140 385/487/2141 199/249/2142
-f 200/244/2143 383/483/2144 198/252/2145
-f 383/483/2146 386/489/2147 198/252/2148
-f 378/430/2149 390/184/2150 379/488/2151
-f 202/187/2152 389/429/2153 204/259/2154
-f 389/429/2155 388/424/2156 204/259/2157
-f 389/429/2158 202/187/2159 390/184/2160
-f 202/187/2161 203/255/2162 390/184/2163
-f 385/487/2164 390/184/2165 199/249/2166
-f 390/184/2167 203/255/2168 199/249/2169
-f 198/252/2170 386/489/2171 201/248/2172
-f 386/489/2173 384/485/2174 201/248/2175
-f 390/184/2176 378/430/2177 389/183/2178
-f 390/184/2179 385/487/2180 379/488/2181
-f 387/178/2182 388/424/2183 359/433/2184
-f 378/430/2185 388/424/2186 389/183/2187
-f 197/246/2188 383/483/2189 200/244/2190
-f 388/424/2191 378/430/2192 359/433/2193
-f 465/491/2194 466/492/2195 467/493/2196
-f 469/494/2197 564/495/2198 550/496/2199
-f 424/497/2200 425/498/2201 391/499/2202
-f 391/499/2203 425/498/2204 401/500/2205
-f 391/499/2206 401/500/2207 393/501/2208
-f 393/501/2209 401/500/2210 403/502/2211
-f 403/502/2212 410/503/2213 393/501/2214
-f 393/501/2215 410/503/2216 394/504/2217
-f 396/505/2218 395/506/2219 406/507/2220
-f 406/507/2221 395/506/2222 405/508/2223
-f 397/509/2224 396/505/2225 407/510/2226
-f 407/510/2227 396/505/2228 406/507/2229
-f 394/504/2230 404/511/2231 398/512/2232
-f 398/512/2233 404/511/2234 399/513/2235
-f 399/513/2236 404/511/2237 408/514/2238
-f 558/515/2239 400/516/2240 557/517/2241
-f 557/517/2242 400/516/2243 409/518/2244
-f 426/519/2245 427/520/2246 400/516/2247
-f 400/516/2248 427/520/2249 409/518/2250
-f 392/521/2251 436/522/2252 402/523/2253
-f 402/523/2254 436/522/2255 437/524/2256
-f 429/525/2257 401/500/2258 425/498/2259
-f 403/502/2260 401/500/2261 430/526/2262
-f 430/526/2263 401/500/2264 429/525/2265
-f 430/526/2266 431/527/2267 403/502/2268
-f 403/502/2269 431/527/2270 410/503/2271
-f 406/507/2272 405/508/2273 445/528/2274
-f 445/528/2275 405/508/2276 444/529/2277
-f 407/510/2278 406/507/2279 446/530/2280
-f 446/530/2281 406/507/2282 445/528/2283
-f 408/514/2284 404/511/2285 433/531/2286
-f 433/531/2287 404/511/2288 432/532/2289
-f 557/517/2290 409/518/2291 556/533/2292
-f 556/533/2293 409/518/2294 435/534/2295
-f 409/518/2296 427/520/2297 435/534/2298
-f 435/534/2299 427/520/2300 434/535/2301
-f 496/536/2302 410/503/2303 495/537/2304
-f 495/537/2305 410/503/2306 431/527/2307
-f 447/538/2308 448/539/2309 424/497/2310
-f 424/497/2311 448/539/2312 425/498/2313
-f 399/513/2314 408/514/2315 426/519/2316
-f 426/519/2317 408/514/2318 427/520/2319
-f 427/520/2320 408/514/2321 434/535/2322
-f 434/535/2323 408/514/2324 433/531/2325
-f 472/540/2326 473/541/2327 474/542/2328
-f 474/542/2329 473/541/2330 465/491/2331
-f 473/541/2332 472/540/2333 476/543/2334
-f 476/543/2335 472/540/2336 475/544/2337
-f 563/545/2338 477/546/2339 479/547/2340
-f 477/546/2341 480/548/2342 479/547/2343
-f 480/548/2344 481/549/2345 479/547/2346
-f 476/543/2347 475/544/2348 483/550/2349
-f 483/550/2350 475/544/2351 482/551/2352
-f 484/552/2353 485/553/2354 487/554/2355
-f 487/554/2356 485/553/2357 486/555/2358
-f 488/556/2359 489/557/2360 484/552/2361
-f 484/552/2362 489/557/2363 485/553/2364
-f 567/558/2365 489/557/2366 488/556/2367
-f 489/557/2368 567/558/2369 469/494/2370
-f 488/556/2371 468/559/2372 567/558/2373
-f 435/534/2374 434/535/2375 442/560/2376
-f 529/561/2377 530/562/2378 528/563/2379
-f 528/563/2380 530/562/2381 527/564/2382
-f 532/565/2383 531/566/2384 529/561/2385
-f 529/561/2386 531/566/2387 530/562/2388
-f 500/567/2389 501/568/2390 549/569/2391
-f 501/568/2392 502/570/2393 549/569/2394
-f 486/555/2395 485/553/2396 503/571/2397
-f 502/570/2398 485/553/2399 549/569/2400
-f 476/543/2401 483/550/2402 505/572/2403
-f 505/572/2404 483/550/2405 504/573/2406
-f 473/541/2407 476/543/2408 506/574/2409
-f 506/574/2410 476/543/2411 505/572/2412
-f 465/491/2413 473/541/2414 507/575/2415
-f 507/575/2416 473/541/2417 506/574/2418
-f 466/492/2419 465/491/2420 508/576/2421
-f 508/576/2422 465/491/2423 507/575/2424
-f 412/577/2425 437/524/2426 411/578/2427
-f 411/578/2428 437/524/2429 436/522/2430
-f 413/579/2431 429/525/2432 412/577/2433
-f 412/577/2434 429/525/2435 437/524/2436
-f 414/580/2437 430/526/2438 413/579/2439
-f 413/579/2440 430/526/2441 429/525/2442
-f 415/581/2443 431/527/2444 414/580/2445
-f 414/580/2446 431/527/2447 430/526/2448
-f 431/527/2449 415/581/2450 495/537/2451
-f 495/537/2452 415/581/2453 494/582/2454
-f 420/583/2455 439/584/2456 432/532/2457
-f 562/585/2458 444/529/2459 417/586/2460
-f 417/586/2461 444/529/2462 416/587/2463
-f 416/587/2464 444/529/2465 441/588/2466
-f 418/589/2467 445/528/2468 562/585/2469
-f 419/590/2470 446/530/2471 418/589/2472
-f 418/589/2473 446/530/2474 445/528/2475
-f 447/591/2476 392/521/2477 448/539/2478
-f 448/539/2479 392/521/2480 402/523/2481
-f 402/523/2482 437/524/2483 429/525/2484
-f 474/542/2485 465/491/2486 492/592/2487
-f 483/550/2488 482/551/2489 486/555/2490
-f 486/555/2491 482/551/2492 487/554/2493
-f 483/550/2494 486/555/2495 504/573/2496
-f 504/573/2497 486/555/2498 503/571/2499
-f 394/504/2500 410/503/2501 496/536/2502
-f 451/593/2503 436/522/2504 452/594/2505
-f 452/594/2506 436/522/2507 392/521/2508
-f 452/594/2509 392/521/2510 450/595/2511
-f 450/595/2512 392/521/2513 447/591/2514
-f 558/515/2515 559/596/2516 400/516/2517
-f 400/516/2518 559/596/2519 453/597/2520
-f 455/598/2521 456/599/2522 393/501/2523
-f 393/501/2524 456/599/2525 391/499/2526
-f 393/501/2527 394/504/2528 455/598/2529
-f 455/598/2530 394/504/2531 457/600/2532
-f 454/601/2533 395/506/2534 458/602/2535
-f 458/602/2536 395/506/2537 396/505/2538
-f 459/603/2539 458/602/2540 397/509/2541
-f 397/509/2542 458/602/2543 396/505/2544
-f 460/604/2545 461/605/2546 399/513/2547
-f 399/513/2548 461/605/2549 398/512/2550
-f 460/604/2551 399/513/2552 462/606/2553
-f 462/606/2554 399/513/2555 426/519/2556
-f 462/606/2557 426/519/2558 453/597/2559
-f 453/597/2560 426/519/2561 400/516/2562
-f 451/593/2563 509/607/2564 436/522/2565
-f 436/522/2566 509/607/2567 411/578/2568
-f 463/608/2569 450/609/2570 424/497/2571
-f 424/497/2572 450/609/2573 447/538/2574
-f 456/599/2575 463/608/2576 391/499/2577
-f 391/499/2578 463/608/2579 424/497/2580
-f 457/600/2581 394/504/2582 461/605/2583
-f 461/605/2584 394/504/2585 398/512/2586
-f 452/610/2587 467/493/2588 451/611/2589
-f 451/611/2590 467/493/2591 466/492/2592
-f 450/612/2593 464/613/2594 452/610/2595
-f 452/610/2596 464/613/2597 467/493/2598
-f 559/614/2599 560/615/2600 453/616/2601
-f 453/616/2602 560/615/2603 468/559/2604
-f 472/540/2605 474/542/2606 455/617/2607
-f 455/617/2608 474/542/2609 456/618/2610
-f 472/540/2611 455/617/2612 475/544/2613
-f 475/544/2614 455/617/2615 457/619/2616
-f 458/620/2617 477/546/2618 454/621/2619
-f 454/621/2620 477/546/2621 470/622/2622
-f 480/548/2623 477/546/2624 459/623/2625
-f 459/623/2626 477/546/2627 458/620/2628
-f 482/551/2629 475/544/2630 457/619/2631
-f 460/624/2632 484/552/2633 461/625/2634
-f 461/625/2635 484/552/2636 487/554/2637
-f 462/626/2638 488/556/2639 460/624/2640
-f 460/624/2641 488/556/2642 484/552/2643
-f 488/556/2644 462/626/2645 468/559/2646
-f 468/559/2647 462/626/2648 453/616/2649
-f 466/492/2650 508/576/2651 451/611/2652
-f 451/611/2653 508/576/2654 509/627/2655
-f 492/592/2656 464/613/2657 463/628/2658
-f 463/628/2659 464/613/2660 450/629/2661
-f 474/542/2662 492/592/2663 456/618/2664
-f 456/618/2665 492/592/2666 463/628/2667
-f 487/554/2668 482/551/2669 461/625/2670
-f 461/625/2671 482/551/2672 457/619/2673
-f 567/558/2674 468/559/2675 561/630/2676
-f 561/630/2677 468/559/2678 560/615/2679
-f 420/583/2680 432/532/2681 494/582/2682
-f 494/582/2683 432/532/2684 495/537/2685
-f 404/511/2686 496/536/2687 432/532/2688
-f 432/532/2689 496/536/2690 495/537/2691
-f 394/504/2692 496/536/2693 404/511/2694
-f 425/498/2695 448/539/2696 429/525/2697
-f 448/539/2698 402/523/2699 429/525/2700
-f 465/491/2701 467/493/2702 464/613/2703
-f 465/491/2704 464/613/2705 492/592/2706
-f 414/580/2707 413/579/2708 521/631/2709
-f 521/631/2710 413/579/2711 523/632/2712
-f 413/579/2713 412/577/2714 523/632/2715
-f 523/632/2716 412/577/2717 411/633/2718
-f 421/634/2719 517/635/2720 422/636/2721
-f 422/636/2722 517/635/2723 515/637/2724
-f 422/636/2725 515/637/2726 428/638/2727
-f 428/638/2728 515/637/2729 513/639/2730
-f 421/634/2731 420/583/2732 517/635/2733
-f 517/635/2734 420/583/2735 518/640/2736
-f 518/640/2737 415/581/2738 521/631/2739
-f 521/631/2740 415/581/2741 414/580/2742
-f 494/582/2743 415/581/2744 518/640/2745
-f 420/583/2746 494/582/2747 518/640/2748
-f 428/638/2749 513/639/2750 423/641/2751
-f 423/641/2752 513/639/2753 512/642/2754
-f 481/643/2755 419/590/2756 479/644/2757
-f 479/644/2758 419/590/2759 418/589/2760
-f 562/585/2761 563/645/2762 418/589/2763
-f 418/589/2764 563/645/2765 479/644/2766
-f 416/587/2767 471/646/2768 417/586/2769
-f 417/586/2770 471/646/2771 478/647/2772
-f 471/646/2773 416/587/2774 490/648/2775
-f 490/648/2776 416/587/2777 497/649/2778
-f 546/650/2779 547/651/2780 441/588/2781
-f 441/588/2782 547/651/2783 497/649/2784
-f 563/545/2785 478/652/2786 493/653/2787
-f 564/495/2788 478/652/2789 471/654/2790
-f 547/651/2791 548/655/2792 497/649/2793
-f 497/649/2794 548/655/2795 490/648/2796
-f 441/588/2797 497/649/2798 416/587/2799
-f 491/656/2800 499/657/2801 532/565/2802
-f 532/565/2803 499/657/2804 531/566/2805
-f 511/658/2806 510/659/2807 513/639/2808
-f 513/639/2809 510/659/2810 512/642/2811
-f 514/660/2812 511/658/2813 515/637/2814
-f 515/637/2815 511/658/2816 513/639/2817
-f 516/661/2818 514/660/2819 517/635/2820
-f 517/635/2821 514/660/2822 515/637/2823
-f 517/635/2824 518/640/2825 516/661/2826
-f 516/661/2827 518/640/2828 519/662/2829
-f 518/640/2830 521/631/2831 519/662/2832
-f 519/662/2833 521/631/2834 520/663/2835
-f 522/664/2836 520/663/2837 523/632/2838
-f 523/632/2839 520/663/2840 521/631/2841
-f 501/568/2842 500/567/2843 511/665/2844
-f 511/665/2845 500/567/2846 510/666/2847
-f 502/570/2848 501/568/2849 514/667/2850
-f 514/667/2851 501/568/2852 511/665/2853
-f 503/571/2854 502/570/2855 516/668/2856
-f 516/668/2857 502/570/2858 514/667/2859
-f 519/669/2860 504/573/2861 516/668/2862
-f 516/668/2863 504/573/2864 503/571/2865
-f 519/669/2866 505/572/2867 504/573/2868
-f 506/574/2869 505/572/2870 520/670/2871
-f 520/670/2872 505/572/2873 519/669/2874
-f 522/671/2875 507/575/2876 520/670/2877
-f 520/670/2878 507/575/2879 506/574/2880
-f 507/575/2881 522/671/2882 508/576/2883
-f 508/576/2884 522/671/2885 509/672/2886
-f 510/659/2887 528/563/2888 512/642/2889
-f 512/642/2890 528/563/2891 527/564/2892
-f 525/673/2893 524/674/2894 528/675/2895
-f 528/675/2896 524/674/2897 529/676/2898
-f 438/677/2899 527/564/2900 449/678/2901
-f 449/678/2902 527/564/2903 530/562/2904
-f 449/678/2905 530/562/2906 443/679/2907
-f 443/679/2908 530/562/2909 531/566/2910
-f 524/674/2911 526/680/2912 529/676/2913
-f 529/676/2914 526/680/2915 532/681/2916
-f 491/682/2917 532/681/2918 526/680/2919
-f 443/679/2920 531/566/2921 498/683/2922
-f 498/683/2923 531/566/2924 499/657/2925
-f 500/567/2926 525/673/2927 510/666/2928
-f 510/666/2929 525/673/2930 528/675/2931
-f 423/641/2932 512/642/2933 438/677/2934
-f 438/677/2935 512/642/2936 527/564/2937
-f 568/684/2938 569/685/2939 549/569/2940
-f 490/686/2941 548/687/2942 550/496/2943
-f 564/495/2944 469/494/2945 561/630/2946
-f 411/633/2947 509/688/2948 523/632/2949
-f 523/632/2950 509/688/2951 522/664/2952
-f 534/689/2953 535/690/2954 554/691/2955
-f 535/690/2956 423/641/2957 554/691/2958
-f 423/641/2959 438/677/2960 554/691/2961
-f 449/678/2962 554/691/2963 438/677/2964
-f 533/692/2965 534/689/2966 552/693/2967
-f 552/693/2968 534/689/2969 551/694/2970
-f 538/695/2971 553/696/2972 442/560/2973
-f 442/560/2974 553/696/2975 555/697/2976
-f 439/584/2977 440/698/2978 433/531/2979
-f 440/698/2980 539/699/2981 433/531/2982
-f 433/531/2983 539/699/2984 434/535/2985
-f 428/638/2986 536/700/2987 422/636/2988
-f 439/584/2989 422/636/2990 440/698/2991
-f 422/636/2992 536/700/2993 440/698/2994
-f 423/641/2995 535/690/2996 428/638/2997
-f 428/638/2998 535/690/2999 536/700/3000
-f 440/698/3001 536/700/3002 540/701/3003
-f 540/701/3004 536/700/3005 541/702/3006
-f 533/692/3007 542/703/3008 534/689/3009
-f 534/689/3010 542/703/3011 543/704/3012
-f 535/690/3013 534/689/3014 543/704/3015
-f 536/700/3016 535/690/3017 541/702/3018
-f 537/705/3019 539/699/3020 544/706/3021
-f 538/695/3022 537/705/3023 545/707/3024
-f 533/692/3025 538/695/3026 542/703/3027
-f 542/703/3028 538/695/3029 545/707/3030
-f 440/698/3031 540/701/3032 539/699/3033
-f 539/699/3034 540/701/3035 544/706/3036
-f 553/696/3037 538/695/3038 552/693/3039
-f 552/693/3040 538/695/3041 533/692/3042
-f 498/683/3043 499/657/3044 546/650/3045
-f 546/650/3046 499/657/3047 547/651/3048
-f 491/656/3049 548/655/3050 499/657/3051
-f 499/657/3052 548/655/3053 547/651/3054
-f 539/699/3055 537/705/3056 434/535/3057
-f 538/695/3058 442/560/3059 537/705/3060
-f 442/560/3061 434/535/3062 537/705/3063
-f 422/636/3064 439/584/3065 421/634/3066
-f 439/584/3067 420/583/3068 421/634/3069
-f 439/584/3070 433/531/3071 432/532/3072
-f 485/553/3073 502/570/3074 503/571/3075
-f 489/557/3076 568/684/3077 549/569/3078
-f 568/684/3079 489/557/3080 469/494/3081
-f 485/553/3082 489/557/3083 549/569/3084
-f 544/706/3085 540/701/3086 537/705/3087
-f 535/690/3088 540/701/3089 541/702/3090
-f 542/703/3091 540/701/3092 543/704/3093
-f 543/704/3094 540/701/3095 535/690/3096
-f 537/705/3097 540/701/3098 545/707/3099
-f 545/707/3100 540/701/3101 542/703/3102
-f 552/693/3103 551/694/3104 498/683/3105
-f 498/683/3106 551/694/3107 443/679/3108
-f 546/650/3109 553/696/3110 498/683/3111
-f 498/683/3112 553/696/3113 552/693/3114
-f 551/694/3115 534/689/3116 554/691/3117
-f 449/678/3118 551/694/3119 554/691/3120
-f 551/694/3121 449/678/3122 443/679/3123
-f 441/588/3124 555/697/3125 546/650/3126
-f 546/650/3127 555/697/3128 553/696/3129
-f 556/533/3130 435/534/3131 555/697/3132
-f 555/697/3133 435/534/3134 442/560/3135
-f 405/508/3136 557/517/3137 444/529/3138
-f 444/529/3139 557/517/3140 556/533/3141
-f 395/506/3142 558/515/3143 405/508/3144
-f 405/508/3145 558/515/3146 557/517/3147
-f 395/506/3148 454/601/3149 558/515/3150
-f 558/515/3151 454/601/3152 559/596/3153
-f 454/621/3154 470/622/3155 559/614/3156
-f 559/614/3157 470/622/3158 560/615/3159
-f 470/622/3160 493/653/3161 560/615/3162
-f 560/615/3163 493/653/3164 561/630/3165
-f 444/529/3166 556/533/3167 441/588/3168
-f 441/588/3169 556/533/3170 555/697/3171
-f 478/652/3172 564/495/3173 493/653/3174
-f 444/529/3175 562/585/3176 445/528/3177
-f 563/645/3178 562/585/3179 478/647/3180
-f 478/647/3181 562/585/3182 417/586/3183
-f 563/545/3184 493/653/3185 477/546/3186
-f 477/546/3187 493/653/3188 470/622/3189
-f 493/653/3190 564/495/3191 561/630/3192
-f 490/686/3193 564/495/3194 471/654/3195
-f 564/495/3196 490/686/3197 550/496/3198
-f 550/496/3199 548/687/3200 565/708/3201
-f 566/709/3202 548/687/3203 491/682/3204
-f 548/687/3205 566/709/3206 565/708/3207
-f 491/682/3208 526/680/3209 566/709/3210
-f 469/494/3211 567/558/3212 561/630/3213
-f 550/496/3214 568/684/3215 469/494/3216
-f 568/684/3217 550/496/3218 565/708/3219
-f 565/708/3220 566/709/3221 568/684/3222
-f 566/709/3223 569/685/3224 568/684/3225
-f 526/680/3226 569/685/3227 566/709/3228
-f 569/685/3229 526/680/3230 524/674/3231
-f 525/673/3232 569/685/3233 524/674/3234
-f 500/567/3235 569/685/3236 525/673/3237
-f 549/569/3238 569/685/3239 500/567/3240
-f 570/710/3241 572/711/3242 571/712/3243
-f 573/713/3244 575/714/3245 574/715/3246
-f 576/716/3247 578/717/3248 577/718/3249
-f 578/717/3250 579/719/3251 577/718/3252
-f 578/717/3253 580/720/3254 579/719/3255
-f 580/720/3256 581/721/3257 579/719/3258
-f 581/721/3259 580/720/3260 582/722/3261
-f 580/720/3262 583/723/3263 582/722/3264
-f 584/724/3265 586/725/3266 585/726/3267
-f 586/725/3268 587/727/3269 585/726/3270
-f 397/509/3271 407/510/3272 584/724/3273
-f 407/510/3274 586/725/3275 584/724/3276
-f 583/723/3277 589/728/3278 588/729/3279
-f 589/728/3280 590/730/3281 588/729/3282
-f 590/730/3283 591/731/3284 588/729/3285
-f 592/732/3286 594/733/3287 593/734/3288
-f 594/733/3289 595/735/3290 593/734/3291
-f 596/736/3292 593/734/3293 597/737/3294
-f 593/734/3295 595/735/3296 597/737/3297
-f 598/738/3298 600/739/3299 599/740/3300
-f 600/739/3301 601/741/3302 599/740/3303
-f 602/742/3304 577/718/3305 579/719/3306
-f 581/721/3307 603/743/3308 579/719/3309
-f 603/743/3310 602/742/3311 579/719/3312
-f 603/743/3313 581/721/3314 604/744/3315
-f 581/721/3316 582/722/3317 604/744/3318
-f 586/725/3319 605/745/3320 587/727/3321
-f 605/745/3322 606/746/3323 587/727/3324
-f 407/510/3325 446/530/3326 586/725/3327
-f 446/530/3328 605/745/3329 586/725/3330
-f 591/731/3331 607/747/3332 588/729/3333
-f 607/747/3334 608/748/3335 588/729/3336
-f 594/733/3337 609/749/3338 595/735/3339
-f 609/749/3340 610/750/3341 595/735/3342
-f 595/735/3343 610/750/3344 597/737/3345
-f 610/750/3346 611/751/3347 597/737/3348
-f 612/752/3349 613/753/3350 582/722/3351
-f 613/753/3352 604/744/3353 582/722/3354
-f 614/754/3355 576/716/3356 615/755/3357
-f 576/716/3358 577/718/3359 615/755/3360
-f 590/730/3361 596/736/3362 591/731/3363
-f 596/736/3364 597/737/3365 591/731/3366
-f 597/737/3367 611/751/3368 591/731/3369
-f 611/751/3370 607/747/3371 591/731/3372
-f 616/756/3373 618/757/3374 617/758/3375
-f 618/757/3376 570/710/3377 617/758/3378
-f 617/758/3379 619/759/3380 616/756/3381
-f 619/759/3382 620/760/3383 616/756/3384
-f 621/761/3385 623/762/3386 622/763/3387
-f 622/763/3388 623/762/3389 480/548/3390
-f 480/548/3391 623/762/3392 481/549/3393
-f 619/759/3394 624/764/3395 620/760/3396
-f 624/764/3397 625/765/3398 620/760/3399
-f 626/766/3400 628/767/3401 627/768/3402
-f 628/767/3403 629/769/3404 627/768/3405
-f 630/770/3406 626/766/3407 631/771/3408
-f 626/766/3409 627/768/3410 631/771/3411
-f 632/772/3412 630/770/3413 631/771/3414
-f 631/771/3415 573/713/3416 632/772/3417
-f 630/770/3418 632/772/3419 633/773/3420
-f 610/750/3421 634/774/3422 611/751/3423
-f 635/775/3424 637/776/3425 636/777/3426
-f 637/776/3427 638/778/3428 636/777/3429
-f 639/779/3430 635/775/3431 640/780/3432
-f 635/775/3433 636/777/3434 640/780/3435
-f 641/781/3436 643/782/3437 642/783/3438
-f 642/783/3439 643/782/3440 644/784/3441
-f 629/769/3442 645/785/3443 627/768/3444
-f 644/784/3445 643/782/3446 627/768/3447
-f 619/759/3448 646/786/3449 624/764/3450
-f 646/786/3451 647/787/3452 624/764/3453
-f 617/758/3454 648/788/3455 619/759/3456
-f 648/788/3457 646/786/3458 619/759/3459
-f 570/710/3460 649/789/3461 617/758/3462
-f 649/789/3463 648/788/3464 617/758/3465
-f 571/712/3466 650/790/3467 570/710/3468
-f 650/790/3469 649/789/3470 570/710/3471
-f 651/791/3472 652/792/3473 601/741/3474
-f 652/792/3475 599/740/3476 601/741/3477
-f 653/793/3478 651/791/3479 602/742/3480
-f 651/791/3481 601/741/3482 602/742/3483
-f 654/794/3484 653/793/3485 603/743/3486
-f 653/793/3487 602/742/3488 603/743/3489
-f 655/795/3490 654/794/3491 604/744/3492
-f 654/794/3493 603/743/3494 604/744/3495
-f 604/744/3496 613/753/3497 655/795/3498
-f 613/753/3499 656/796/3500 655/795/3501
-f 657/797/3502 608/748/3503 658/798/3504
-f 659/799/3505 660/800/3506 606/746/3507
-f 660/800/3508 661/801/3509 606/746/3510
-f 661/801/3511 662/802/3512 606/746/3513
-f 663/803/3514 659/799/3515 605/745/3516
-f 419/590/3517 663/803/3518 446/530/3519
-f 663/803/3520 605/745/3521 446/530/3522
-f 614/804/3523 615/755/3524 598/738/3525
-f 615/755/3526 600/739/3527 598/738/3528
-f 600/739/3529 602/742/3530 601/741/3531
-f 618/757/3532 664/805/3533 570/710/3534
-f 624/764/3535 629/769/3536 625/765/3537
-f 629/769/3538 628/767/3539 625/765/3540
-f 624/764/3541 647/787/3542 629/769/3543
-f 647/787/3544 645/785/3545 629/769/3546
-f 583/723/3547 612/752/3548 582/722/3549
-f 665/806/3550 666/807/3551 599/740/3552
-f 666/807/3553 598/738/3554 599/740/3555
-f 666/807/3556 667/808/3557 598/738/3558
-f 667/808/3559 614/804/3560 598/738/3561
-f 592/732/3562 593/734/3563 668/809/3564
-f 593/734/3565 669/810/3566 668/809/3567
-f 670/811/3568 580/720/3569 671/812/3570
-f 580/720/3571 578/717/3572 671/812/3573
-f 580/720/3574 670/811/3575 583/723/3576
-f 670/811/3577 672/813/3578 583/723/3579
-f 673/814/3580 674/815/3581 585/726/3582
-f 674/815/3583 584/724/3584 585/726/3585
-f 459/603/3586 397/509/3587 674/815/3588
-f 397/509/3589 584/724/3590 674/815/3591
-f 675/816/3592 590/730/3593 676/817/3594
-f 590/730/3595 589/728/3596 676/817/3597
-f 675/816/3598 677/818/3599 590/730/3600
-f 677/818/3601 596/736/3602 590/730/3603
-f 677/818/3604 669/810/3605 596/736/3606
-f 669/810/3607 593/734/3608 596/736/3609
-f 665/806/3610 599/740/3611 678/819/3612
-f 599/740/3613 652/792/3614 678/819/3615
-f 679/820/3616 576/716/3617 667/821/3618
-f 576/716/3619 614/754/3620 667/821/3621
-f 671/812/3622 578/717/3623 679/820/3624
-f 578/717/3625 576/716/3626 679/820/3627
-f 672/813/3628 676/817/3629 583/723/3630
-f 676/817/3631 589/728/3632 583/723/3633
-f 666/822/3634 665/823/3635 572/711/3636
-f 665/823/3637 571/712/3638 572/711/3639
-f 667/824/3640 666/822/3641 680/825/3642
-f 666/822/3643 572/711/3644 680/825/3645
-f 668/826/3646 669/827/3647 681/828/3648
-f 669/827/3649 633/773/3650 681/828/3651
-f 616/756/3652 670/829/3653 618/757/3654
-f 670/829/3655 671/830/3656 618/757/3657
-f 616/756/3658 620/760/3659 670/829/3660
-f 620/760/3661 672/831/3662 670/829/3663
-f 674/832/3664 673/833/3665 622/763/3666
-f 673/833/3667 682/834/3668 622/763/3669
-f 480/548/3670 459/623/3671 622/763/3672
-f 459/623/3673 674/832/3674 622/763/3675
-f 625/765/3676 672/831/3677 620/760/3678
-f 675/835/3679 676/836/3680 626/766/3681
-f 676/836/3682 628/767/3683 626/766/3684
-f 677/837/3685 675/835/3686 630/770/3687
-f 675/835/3688 626/766/3689 630/770/3690
-f 630/770/3691 633/773/3692 677/837/3693
-f 633/773/3694 669/827/3695 677/837/3696
-f 571/712/3697 665/823/3698 650/790/3699
-f 665/823/3700 678/838/3701 650/790/3702
-f 664/805/3703 679/839/3704 680/825/3705
-f 679/839/3706 667/840/3707 680/825/3708
-f 618/757/3709 671/830/3710 664/805/3711
-f 671/830/3712 679/839/3713 664/805/3714
-f 628/767/3715 676/836/3716 625/765/3717
-f 676/836/3718 672/831/3719 625/765/3720
-f 632/772/3721 683/841/3722 633/773/3723
-f 683/841/3724 681/828/3725 633/773/3726
-f 657/797/3727 656/796/3728 608/748/3729
-f 656/796/3730 613/753/3731 608/748/3732
-f 588/729/3733 608/748/3734 612/752/3735
-f 608/748/3736 613/753/3737 612/752/3738
-f 583/723/3739 588/729/3740 612/752/3741
-f 577/718/3742 602/742/3743 615/755/3744
-f 615/755/3745 602/742/3746 600/739/3747
-f 570/710/3748 680/825/3749 572/711/3750
-f 570/710/3751 664/805/3752 680/825/3753
-f 654/794/3754 684/842/3755 653/793/3756
-f 684/842/3757 685/843/3758 653/793/3759
-f 653/793/3760 685/843/3761 651/791/3762
-f 685/843/3763 652/844/3764 651/791/3765
-f 686/845/3766 688/846/3767 687/847/3768
-f 688/846/3769 689/848/3770 687/847/3771
-f 688/846/3772 690/849/3773 689/848/3774
-f 690/849/3775 691/850/3776 689/848/3777
-f 686/845/3778 687/847/3779 657/797/3780
-f 687/847/3781 692/851/3782 657/797/3783
-f 692/851/3784 684/842/3785 655/795/3786
-f 684/842/3787 654/794/3788 655/795/3789
-f 656/796/3790 692/851/3791 655/795/3792
-f 657/797/3793 692/851/3794 656/796/3795
-f 690/849/3796 693/852/3797 691/850/3798
-f 693/852/3799 694/853/3800 691/850/3801
-f 481/643/3802 623/854/3803 419/590/3804
-f 623/854/3805 663/803/3806 419/590/3807
-f 659/799/3808 663/803/3809 621/855/3810
-f 663/803/3811 623/854/3812 621/855/3813
-f 661/801/3814 660/800/3815 695/856/3816
-f 660/800/3817 696/857/3818 695/856/3819
-f 695/856/3820 697/858/3821 661/801/3822
-f 697/858/3823 698/859/3824 661/801/3825
-f 699/860/3826 662/802/3827 700/861/3828
-f 662/802/3829 698/859/3830 700/861/3831
-f 621/761/3832 701/862/3833 696/863/3834
-f 574/715/3835 695/864/3836 696/863/3837
-f 700/861/3838 698/859/3839 702/865/3840
-f 698/859/3841 697/858/3842 702/865/3843
-f 662/802/3844 661/801/3845 698/859/3846
-f 703/866/3847 639/779/3848 704/867/3849
-f 639/779/3850 640/780/3851 704/867/3852
-f 705/868/3853 691/850/3854 706/869/3855
-f 691/850/3856 694/853/3857 706/869/3858
-f 707/870/3859 689/848/3860 705/868/3861
-f 689/848/3862 691/850/3863 705/868/3864
-f 708/871/3865 687/847/3866 707/870/3867
-f 687/847/3868 689/848/3869 707/870/3870
-f 687/847/3871 708/871/3872 692/851/3873
-f 708/871/3874 709/872/3875 692/851/3876
-f 692/851/3877 709/872/3878 684/842/3879
-f 709/872/3880 710/873/3881 684/842/3882
-f 711/874/3883 685/843/3884 710/873/3885
-f 685/843/3886 684/842/3887 710/873/3888
-f 642/783/3889 705/875/3890 641/781/3891
-f 705/875/3892 706/876/3893 641/781/3894
-f 644/784/3895 707/877/3896 642/783/3897
-f 707/877/3898 705/875/3899 642/783/3900
-f 645/785/3901 708/878/3902 644/784/3903
-f 708/878/3904 707/877/3905 644/784/3906
-f 709/879/3907 708/878/3908 647/787/3909
-f 708/878/3910 645/785/3911 647/787/3912
-f 709/879/3913 647/787/3914 646/786/3915
-f 648/788/3916 710/880/3917 646/786/3918
-f 710/880/3919 709/879/3920 646/786/3921
-f 711/881/3922 710/880/3923 649/789/3924
-f 710/880/3925 648/788/3926 649/789/3927
-f 649/789/3928 650/790/3929 711/881/3930
-f 650/790/3931 678/882/3932 711/881/3933
-f 706/869/3934 694/853/3935 637/776/3936
-f 694/853/3937 638/778/3938 637/776/3939
-f 712/883/3940 637/884/3941 713/885/3942
-f 637/884/3943 635/886/3944 713/885/3945
-f 714/887/3946 715/888/3947 638/778/3948
-f 715/888/3949 636/777/3950 638/778/3951
-f 715/888/3952 716/889/3953 636/777/3954
-f 716/889/3955 640/780/3956 636/777/3957
-f 713/885/3958 635/886/3959 717/890/3960
-f 635/886/3961 639/891/3962 717/890/3963
-f 703/892/3964 717/890/3965 639/891/3966
-f 716/889/3967 718/893/3968 640/780/3969
-f 718/893/3970 704/867/3971 640/780/3972
-f 641/781/3973 706/876/3974 712/883/3975
-f 706/876/3976 637/884/3977 712/883/3978
-f 693/852/3979 714/887/3980 694/853/3981
-f 714/887/3982 638/778/3983 694/853/3984
-f 719/894/3985 643/782/3986 720/895/3987
-f 697/896/3988 575/714/3989 702/897/3990
-f 574/715/3991 683/841/3992 573/713/3993
-f 652/844/3994 685/843/3995 678/898/3996
-f 685/843/3997 711/874/3998 678/898/3999
-f 721/899/4000 723/900/4001 722/901/4002
-f 722/901/4003 723/900/4004 693/852/4005
-f 693/852/4006 723/900/4007 714/887/4008
-f 715/888/4009 714/887/4010 723/900/4011
-f 724/902/4012 725/903/4013 721/899/4014
-f 725/903/4015 726/904/4016 721/899/4017
-f 727/905/4018 634/774/4019 728/906/4020
-f 634/774/4021 729/907/4022 728/906/4023
-f 658/798/4024 607/747/4025 730/908/4026
-f 730/908/4027 607/747/4028 731/909/4029
-f 607/747/4030 611/751/4031 731/909/4032
-f 690/849/4033 688/846/4034 732/910/4035
-f 658/798/4036 730/908/4037 688/846/4038
-f 688/846/4039 730/908/4040 732/910/4041
-f 693/852/4042 690/849/4043 722/901/4044
-f 690/849/4045 732/910/4046 722/901/4047
-f 730/908/4048 733/911/4049 732/910/4050
-f 733/911/4051 734/912/4052 732/910/4053
-f 724/902/4054 721/899/4055 735/913/4056
-f 721/899/4057 736/914/4058 735/913/4059
-f 722/901/4060 736/914/4061 721/899/4062
-f 732/910/4063 734/912/4064 722/901/4065
-f 737/915/4066 738/916/4067 731/909/4068
-f 727/905/4069 739/917/4070 737/915/4071
-f 724/902/4072 735/913/4073 727/905/4074
-f 735/913/4075 739/917/4076 727/905/4077
-f 730/908/4078 731/909/4079 733/911/4080
-f 731/909/4081 738/916/4082 733/911/4083
-f 728/906/4084 725/903/4085 727/905/4086
-f 725/903/4087 724/902/4088 727/905/4089
-f 718/893/4090 699/860/4091 704/867/4092
-f 699/860/4093 700/861/4094 704/867/4095
-f 703/866/4096 704/867/4097 702/865/4098
-f 704/867/4099 700/861/4100 702/865/4101
-f 731/909/4102 611/751/4103 737/915/4104
-f 727/905/4105 737/915/4106 634/774/4107
-f 634/774/4108 737/915/4109 611/751/4110
-f 688/846/4111 686/845/4112 658/798/4113
-f 658/798/4114 686/845/4115 657/797/4116
-f 658/798/4117 608/748/4118 607/747/4119
-f 627/768/4120 645/785/4121 644/784/4122
-f 631/771/4123 643/782/4124 719/894/4125
-f 719/894/4126 573/713/4127 631/771/4128
-f 627/768/4129 643/782/4130 631/771/4131
-f 738/916/4132 737/915/4133 733/911/4134
-f 722/901/4135 734/912/4136 733/911/4137
-f 735/913/4138 736/914/4139 733/911/4140
-f 736/914/4141 722/901/4142 733/911/4143
-f 737/915/4144 739/917/4145 733/911/4146
-f 739/917/4147 735/913/4148 733/911/4149
-f 725/903/4150 718/893/4151 726/904/4152
-f 718/893/4153 716/889/4154 726/904/4155
-f 699/860/4156 718/893/4157 728/906/4158
-f 718/893/4159 725/903/4160 728/906/4161
-f 726/904/4162 723/900/4163 721/899/4164
-f 715/888/4165 723/900/4166 726/904/4167
-f 726/904/4168 716/889/4169 715/888/4170
-f 662/802/4171 699/860/4172 729/907/4173
-f 699/860/4174 728/906/4175 729/907/4176
-f 609/749/4177 729/907/4178 610/750/4179
-f 729/907/4180 634/774/4181 610/750/4182
-f 587/727/4183 606/746/4184 594/733/4185
-f 606/746/4186 609/749/4187 594/733/4188
-f 585/726/4189 587/727/4190 592/732/4191
-f 587/727/4192 594/733/4193 592/732/4194
-f 585/726/4195 592/732/4196 673/814/4197
-f 592/732/4198 668/809/4199 673/814/4200
-f 673/833/4201 668/826/4202 682/834/4203
-f 668/826/4204 681/828/4205 682/834/4206
-f 682/834/4207 681/828/4208 701/862/4209
-f 681/828/4210 683/841/4211 701/862/4212
-f 606/746/4213 662/802/4214 609/749/4215
-f 662/802/4216 729/907/4217 609/749/4218
-f 696/863/4219 701/862/4220 574/715/4221
-f 606/746/4222 605/745/4223 659/799/4224
-f 621/855/4225 696/857/4226 659/799/4227
-f 696/857/4228 660/800/4229 659/799/4230
-f 621/761/4231 622/763/4232 701/862/4233
-f 622/763/4234 682/834/4235 701/862/4236
-f 701/862/4237 683/841/4238 574/715/4239
-f 697/896/4240 695/864/4241 574/715/4242
-f 574/715/4243 575/714/4244 697/896/4245
-f 575/714/4246 740/918/4247 702/897/4248
-f 741/919/4249 703/892/4250 702/897/4251
-f 702/897/4252 740/918/4253 741/919/4254
-f 703/892/4255 741/919/4256 717/890/4257
-f 573/713/4258 683/841/4259 632/772/4260
-f 575/714/4261 573/713/4262 719/894/4263
-f 719/894/4264 740/918/4265 575/714/4266
-f 740/918/4267 719/894/4268 741/919/4269
-f 741/919/4270 719/894/4271 720/895/4272
-f 717/890/4273 741/919/4274 720/895/4275
-f 720/895/4276 713/885/4277 717/890/4278
-f 712/883/4279 713/885/4280 720/895/4281
-f 641/781/4282 712/883/4283 720/895/4284
-f 643/782/4285 641/781/4286 720/895/4287
-f 772/920/4288 845/921/4289 940/922/4290
-f 940/922/4291 845/921/4292 939/923/4293
-f 774/924/4294 773/925/4295 942/926/4296
-f 942/926/4297 773/925/4298 941/927/4299
-f 775/928/4300 774/924/4301 943/929/4302
-f 943/929/4303 774/924/4304 942/926/4305
-f 776/930/4306 775/928/4307 944/931/4308
-f 944/931/4309 775/928/4310 943/929/4311
-f 778/932/4312 777/933/4313 946/934/4314
-f 946/934/4315 777/933/4316 945/935/4317
-f 743/936/4318 778/932/4319 769/937/4320
-f 769/937/4321 778/932/4322 946/934/4323
-f 773/925/4324 774/924/4325 779/938/4326
-f 779/938/4327 774/924/4328 780/939/4329
-f 774/924/4330 775/928/4331 780/939/4332
-f 780/939/4333 775/928/4334 781/940/4335
-f 775/928/4336 776/930/4337 781/940/4338
-f 781/940/4339 776/930/4340 782/941/4341
-f 783/942/4342 777/933/4343 784/943/4344
-f 784/943/4345 777/933/4346 778/932/4347
-f 743/936/4348 754/944/4349 778/932/4350
-f 778/932/4351 754/944/4352 784/943/4353
-f 786/945/4354 787/946/4355 785/947/4356
-f 785/947/4357 787/946/4358 788/948/4359
-f 787/946/4360 790/949/4361 788/948/4362
-f 788/948/4363 790/949/4364 789/950/4365
-f 790/949/4366 792/951/4367 789/950/4368
-f 789/950/4369 792/951/4370 791/952/4371
-f 792/951/4372 794/953/4373 791/952/4374
-f 791/952/4375 794/953/4376 793/954/4377
-f 796/955/4378 795/956/4379 797/957/4380
-f 797/957/4381 795/956/4382 798/958/4383
-f 744/959/4384 745/960/4385 795/956/4386
-f 795/956/4387 745/960/4388 798/958/4389
-f 785/947/4390 788/948/4391 799/961/4392
-f 799/961/4393 788/948/4394 800/962/4395
-f 788/948/4396 789/950/4397 800/962/4398
-f 800/962/4399 789/950/4400 801/963/4401
-f 789/950/4402 791/952/4403 801/963/4404
-f 801/963/4405 791/952/4406 802/964/4407
-f 791/952/4408 793/954/4409 802/964/4410
-f 802/964/4411 793/954/4412 803/965/4413
-f 797/957/4414 798/958/4415 804/966/4416
-f 804/966/4417 798/958/4418 805/967/4419
-f 745/960/4420 768/968/4421 798/958/4422
-f 798/958/4423 768/968/4424 805/967/4425
-f 806/969/4426 807/970/4427 809/971/4428
-f 809/971/4429 807/970/4430 808/972/4431
-f 811/973/4432 810/974/4433 808/972/4434
-f 808/972/4435 810/974/4436 809/971/4437
-f 811/973/4438 813/975/4439 810/974/4440
-f 810/974/4441 813/975/4442 812/976/4443
-f 816/977/4444 746/978/4445 817/979/4446
-f 817/979/4447 746/978/4448 747/980/4449
-f 819/981/4450 809/971/4451 820/982/4452
-f 820/982/4453 809/971/4454 810/974/4455
-f 820/982/4456 810/974/4457 821/983/4458
-f 821/983/4459 810/974/4460 812/976/4461
-f 962/984/4462 963/985/4463 935/986/4464
-f 935/986/4465 963/985/4466 814/987/4467
-f 814/987/4468 817/979/4469 935/986/4470
-f 935/986/4471 817/979/4472 824/988/4473
-f 817/979/4474 747/980/4475 824/988/4476
-f 824/988/4477 747/980/4478 748/989/4479
-f 932/990/4480 933/991/4481 819/981/4482
-f 1019/992/4483 933/991/4484 818/993/4485
-f 819/981/4486 820/982/4487 932/990/4488
-f 932/990/4489 820/982/4490 930/994/4491
-f 820/982/4492 821/983/4493 930/994/4494
-f 930/994/4495 821/983/4496 931/995/4497
-f 965/996/4498 822/997/4499 966/998/4500
-f 966/998/4501 822/997/4502 929/999/4503
-f 823/1000/4504 928/1001/4505 822/997/4506
-f 822/997/4507 928/1001/4508 929/999/4509
-f 748/989/4510 767/1002/4511 824/988/4512
-f 824/988/4513 767/1002/4514 927/1003/4515
-f 825/1004/4516 827/1005/4517 826/1006/4518
-f 826/1006/4519 827/1005/4520 828/1007/4521
-f 827/1005/4522 830/1008/4523 828/1007/4524
-f 828/1007/4525 830/1008/4526 829/1009/4527
-f 830/1008/4528 832/1010/4529 829/1009/4530
-f 829/1009/4531 832/1010/4532 831/1011/4533
-f 833/1012/4534 826/1006/4535 834/1013/4536
-f 834/1013/4537 826/1006/4538 828/1007/4539
-f 829/1009/4540 835/1014/4541 828/1007/4542
-f 828/1007/4543 835/1014/4544 834/1013/4545
-f 831/1011/4546 836/1015/4547 829/1009/4548
-f 829/1009/4549 836/1015/4550 835/1014/4551
-f 831/1011/4552 838/1016/4553 836/1015/4554
-f 836/1015/4555 838/1016/4556 837/1017/4557
-f 838/1016/4558 840/1018/4559 837/1017/4560
-f 837/1017/4561 840/1018/4562 839/1019/4563
-f 841/1020/4564 750/1021/4565 842/1022/4566
-f 842/1022/4567 750/1021/4568 751/1023/4569
-f 920/1024/4570 833/1012/4571 863/1025/4572
-f 863/1025/4573 833/1012/4574 834/1013/4575
-f 835/1014/4576 864/1026/4577 834/1013/4578
-f 834/1013/4579 864/1026/4580 863/1025/4581
-f 836/1015/4582 865/1027/4583 835/1014/4584
-f 835/1014/4585 865/1027/4586 864/1026/4587
-f 837/1017/4588 866/1028/4589 836/1015/4590
-f 836/1015/4591 866/1028/4592 865/1027/4593
-f 837/1017/4594 839/1019/4595 866/1028/4596
-f 866/1028/4597 839/1019/4598 867/1029/4599
-f 842/1022/4600 751/1023/4601 868/1030/4602
-f 868/1030/4603 751/1023/4604 752/1031/4605
-f 904/1032/4606 818/993/4607 934/1033/4608
-f 934/1033/4609 818/993/4610 933/991/4611
-f 825/1004/4612 826/1006/4613 900/1034/4614
-f 900/1034/4615 826/1006/4616 901/1035/4617
-f 833/1012/4618 902/1036/4619 903/2571/4620
-f 843/1038/4621 845/921/4622 844/1039/4623
-f 904/1032/4624 905/1040/4625 861/1041/4626
-f 861/1041/4627 905/1040/4628 862/1042/4629
-f 905/1040/4630 906/1043/4631 862/1042/4632
-f 904/1032/4633 846/1044/4634 818/993/4635
-f 847/1045/4636 753/1046/4637 816/977/4638
-f 816/977/4639 753/1046/4640 746/978/4641
-f 948/1047/4642 947/1048/4643 964/1049/4644
-f 964/1049/4645 947/1048/4646 815/1050/4647
-f 848/1051/4648 849/1052/4649 811/973/4650
-f 811/973/4651 849/1052/4652 813/975/4653
-f 850/1053/4654 848/1051/4655 808/972/4656
-f 808/972/4657 848/1051/4658 811/973/4659
-f 851/1054/4660 850/1053/4661 807/970/4662
-f 807/970/4663 850/1053/4664 808/972/4665
-f 844/1039/4666 854/1055/4667 852/1056/4668
-f 852/1056/4669 854/1055/4670 853/1057/4671
-f 856/1058/4672 786/945/4673 785/947/4674
-f 786/945/4675 856/1058/4676 855/1059/4677
-f 785/947/4678 799/961/4679 856/1058/4680
-f 856/1058/4681 799/961/4682 857/1060/4683
-f 807/970/4684 859/1061/4685 858/1062/4686
-f 859/1061/4687 807/970/4688 806/969/4689
-f 860/1063/4690 807/970/4691 858/1062/4692
-f 807/970/4693 860/1063/4694 851/1054/4695
-f 784/943/4696 754/944/4697 795/956/4698
-f 795/956/4699 754/944/4700 744/959/4701
-f 783/942/4702 784/943/4703 796/955/4704
-f 796/955/4705 784/943/4706 795/956/4707
-f 781/940/4708 782/941/4709 792/951/4710
-f 792/951/4711 782/941/4712 794/953/4713
-f 780/939/4714 781/940/4715 790/949/4716
-f 790/949/4717 781/940/4718 792/951/4719
-f 779/938/4720 780/939/4721 787/946/4722
-f 787/946/4723 780/939/4724 790/949/4725
-f 854/1055/4726 779/938/4727 786/945/4728
-f 786/945/4729 779/938/4730 787/946/4731
-f 854/1055/4732 786/945/4733 853/1057/4734
-f 853/1057/4735 786/945/4736 855/1059/4737
-f 862/1064/4738 950/1065/4739 861/1066/4740
-f 861/1066/4741 950/1065/4742 949/1067/4743
-f 852/1068/4744 853/1069/4745 1020/1070/4746
-f 951/1071/4747 853/1069/4748 952/1072/4749
-f 855/1073/4750 856/1074/4751 953/1075/4752
-f 953/1075/4753 856/1074/4754 954/1076/4755
-f 856/1074/4756 857/1077/4757 954/1076/4758
-f 954/1076/4759 857/1077/4760 955/1078/4761
-f 859/1079/4762 957/1080/4763 858/1081/4764
-f 858/1081/4765 957/1080/4766 956/1082/4767
-f 861/1083/4768 949/1084/4769 859/1079/4770
-f 859/1079/4771 949/1084/4772 957/1080/4773
-f 858/1081/4774 956/1082/4775 860/1085/4776
-f 860/1085/4777 956/1082/4778 958/1086/4779
-f 853/1069/4780 855/1073/4781 952/1072/4782
-f 952/1072/4783 855/1073/4784 953/1075/4785
-f 861/1041/4786 846/1044/4787 904/1032/4788
-f 846/1044/4789 859/1061/4790 806/969/4791
-f 859/1061/4792 846/1044/4793 861/1041/4794
-f 862/1042/4795 906/1043/4796 926/1087/4797
-f 926/1087/4798 906/1043/4799 925/1088/4800
-f 950/1065/4801 862/1064/4802 959/1089/4803
-f 959/1089/4804 862/1064/4805 926/1090/4806
-f 843/1038/4807 844/1039/4808 852/1056/4809
-f 854/1055/4810 844/1039/4811 772/920/4812
-f 772/920/4813 844/1039/4814 845/921/4815
-f 773/925/4816 772/920/4817 941/927/4818
-f 941/927/4819 772/920/4820 940/922/4821
-f 863/1025/4822 864/1026/4823 869/1091/4824
-f 865/1027/4825 872/1092/4826 864/1026/4827
-f 864/1026/4828 872/1092/4829 869/1091/4830
-f 866/1028/4831 876/1093/4832 865/1027/4833
-f 865/1027/4834 876/1093/4835 872/1092/4836
-f 866/1028/4837 867/1029/4838 876/1093/4839
-f 876/1093/4840 867/1029/4841 878/1094/4842
-f 868/1030/4843 752/1031/4844 879/1095/4845
-f 879/1095/4846 752/1031/4847 755/1096/4848
-f 871/1097/4849 870/1098/4850 872/1092/4851
-f 872/1092/4852 870/1098/4853 869/1091/4854
-f 873/1099/4855 874/1100/4856 757/1101/4857
-f 757/1101/4858 874/1100/4859 758/1102/4860
-f 874/1100/4861 875/1103/4862 758/1102/4863
-f 758/1102/4864 875/1103/4865 759/1104/4866
-f 877/1105/4867 871/1097/4868 876/1093/4869
-f 876/1093/4870 871/1097/4871 872/1092/4872
-f 878/1094/4873 877/1105/4874 876/1093/4875
-f 755/1096/4876 759/1104/4877 879/1095/4878
-f 879/1095/4879 759/1104/4880 875/1103/4881
-f 877/1105/4882 880/1106/4883 871/1097/4884
-f 880/1106/4885 881/1107/4886 871/1097/4887
-f 871/1097/4888 881/1107/4889 870/1098/4890
-f 882/1108/4891 885/1109/4892 883/1110/4893
-f 883/1110/4894 885/1109/4895 884/1111/4896
-f 886/1112/4897 760/1113/4898 887/1114/4899
-f 887/1114/4900 760/1113/4901 761/1115/4902
-f 885/1109/4903 889/1116/4904 884/1111/4905
-f 884/1111/4906 889/1116/4907 888/1117/4908
-f 890/1118/4909 893/1119/4910 891/1120/4911
-f 891/1120/4912 893/1119/4913 892/1121/4914
-f 894/1122/4915 895/1123/4916 891/1120/4917
-f 891/1120/4918 895/1123/4919 890/1118/4920
-f 764/1124/4921 897/1125/4922 765/1126/4923
-f 765/1126/4924 897/1125/4925 896/1127/4926
-f 898/1128/4927 762/1129/4928 896/1127/4929
-f 896/1127/4930 762/1129/4931 765/1126/4932
-f 894/1122/4933 891/1120/4934 899/1130/4935
-f 899/1130/4936 891/1120/4937 892/1121/4938
-f 901/2574/4939 907/1131/4940 900/1034/4941
-f 903/1037/4942 907/1131/4943 901/2574/4944
-f 902/2572/4945 907/1131/4946 903/1037/4947
-f 907/1131/4948 902/2572/4949 909/1132/4950
-f 934/1033/4951 1017/1133/4952 904/1032/4953
-f 904/1032/4954 1017/1133/4955 905/1040/4956
-f 911/2566/4957 1002/1135/4958 909/1132/4959
-f 909/1132/4960 1002/1135/4961 907/1131/4962
-f 909/2568/4963 908/1136/4964 911/1134/4965
-f 910/1137/4966 908/1136/4967 909/2568/4968
-f 913/1138/4969 912/1139/4970 916/1140/4971
-f 916/1140/4972 912/1139/4973 917/1141/4974
-f 913/1138/4975 916/1140/4976 914/1142/4977
-f 914/1142/4978 916/1140/4979 918/1143/4980
-f 763/1144/4981 766/1145/4982 919/1146/4983
-f 919/1146/4984 766/1145/4985 915/1147/4986
-f 882/1108/4987 883/1110/4988 910/1137/4989
-f 910/1137/4990 883/1110/4991 908/1136/4992
-f 917/1141/4993 893/1119/4994 916/1140/4995
-f 916/1140/4996 893/1119/4997 890/1118/4998
-f 895/1123/4999 918/1143/5000 890/1118/5001
-f 890/1118/5002 918/1143/5003 916/1140/5004
-f 919/1146/5005 897/1125/5006 763/1144/5007
-f 763/1144/5008 897/1125/5009 764/1124/5010
-f 921/1148/5011 756/1149/5012 886/1112/5013
-f 886/1112/5014 756/1149/5015 760/1113/5016
-f 889/1116/5017 885/1109/5018 922/1150/5019
-f 922/1150/5020 885/1109/5021 923/1151/5022
-f 923/1151/5023 885/1109/5024 924/1152/5025
-f 924/1152/5026 885/1109/5027 882/1108/5028
-f 920/1024/5029 924/1152/5030 910/1137/5031
-f 910/1137/5032 924/1152/5033 882/1108/5034
-f 1019/992/5035 806/969/5036 809/971/5037
-f 846/1044/5038 1019/992/5039 818/993/5040
-f 924/1152/5041 869/1091/5042 923/1151/5043
-f 923/1151/5044 869/1091/5045 870/1098/5046
-f 923/1151/5047 870/1098/5048 922/1150/5049
-f 922/1150/5050 870/1098/5051 881/1107/5052
-f 757/1101/5053 756/1149/5054 873/1099/5055
-f 873/1099/5056 756/1149/5057 921/1148/5058
-f 826/1006/5059 833/1012/5060 901/1035/5061
-f 901/1035/5062 833/1012/5063 903/2571/5064
-f 902/1036/5065 833/1012/5066 920/1024/5067
-f 869/1091/5068 924/1152/5069 863/1025/5070
-f 863/1025/5071 924/1152/5072 920/1024/5073
-f 854/1055/5074 772/920/5075 779/938/5076
-f 779/938/5077 772/920/5078 773/925/5079
-f 925/1088/5080 976/1153/5081 843/1038/5082
-f 843/1038/5083 976/1153/5084 971/1154/5085
-f 926/1087/5086 925/1088/5087 852/1056/5088
-f 852/1056/5089 925/1088/5090 843/1038/5091
-f 852/1155/5092 1020/1156/5093 926/1090/5094
-f 926/1090/5095 951/1157/5096 959/1089/5097
-f 1017/1133/5098 934/1033/5099 907/1131/5100
-f 767/1002/5101 749/1158/5102 927/1003/5103
-f 927/1003/5104 749/1158/5105 936/1159/5106
-f 938/1160/5107 929/999/5108 937/1161/5109
-f 937/1161/5110 929/999/5111 928/1001/5112
-f 938/1160/5113 968/1162/5114 929/999/5115
-f 929/999/5116 968/1162/5117 966/998/5118
-f 930/994/5119 931/995/5120 830/1008/5121
-f 830/1008/5122 931/995/5123 832/1010/5124
-f 932/990/5125 930/994/5126 827/1005/5127
-f 827/1005/5128 930/994/5129 830/1008/5130
-f 969/1163/5131 1018/1164/5132 983/1165/5133
-f 843/1038/5134 969/1163/5135 939/923/5136
-f 939/923/5137 969/1163/5138 987/1166/5139
-f 987/1166/5140 993/1167/5141 939/923/5142
-f 939/923/5143 993/1167/5144 940/922/5145
-f 941/927/5146 940/922/5147 992/1168/5148
-f 992/1168/5149 940/922/5150 993/1167/5151
-f 942/926/5152 941/927/5153 989/1169/5154
-f 989/1169/5155 941/927/5156 992/1168/5157
-f 943/929/5158 942/926/5159 988/1170/5160
-f 988/1170/5161 942/926/5162 989/1169/5163
-f 944/931/5164 943/929/5165 990/1171/5166
-f 990/1171/5167 943/929/5168 988/1170/5169
-f 946/934/5170 945/935/5171 991/1172/5172
-f 991/1172/5173 945/935/5174 994/1173/5175
-f 769/937/5176 946/934/5177 742/1174/5178
-f 742/1174/5179 946/934/5180 991/1172/5181
-f 768/968/5182 753/1046/5183 805/967/5184
-f 805/967/5185 753/1046/5186 847/1045/5187
-f 804/966/5188 805/967/5189 947/1048/5190
-f 947/1048/5191 805/967/5192 847/1045/5193
-f 802/964/5194 803/965/5195 849/1052/5196
-f 849/1052/5197 803/965/5198 948/1047/5199
-f 801/963/5200 802/964/5201 848/1051/5202
-f 848/1051/5203 802/964/5204 849/1052/5205
-f 800/962/5206 801/963/5207 850/1053/5208
-f 850/1053/5209 801/963/5210 848/1051/5211
-f 799/961/5212 800/962/5213 851/1054/5214
-f 851/1054/5215 800/962/5216 850/1053/5217
-f 851/1054/5218 860/1063/5219 799/961/5220
-f 799/961/5221 860/1063/5222 857/1060/5223
-f 857/1077/5224 860/1085/5225 955/1078/5226
-f 955/1078/5227 860/1085/5228 958/1086/5229
-f 976/1153/5230 925/1088/5231 974/1175/5232
-f 974/1175/5233 925/1088/5234 906/1043/5235
-f 909/2568/5236 902/1036/5237 910/1137/5238
-f 910/1137/5239 902/1036/5240 920/1024/5241
-f 960/1176/5242 832/1010/5243 961/1177/5244
-f 961/1177/5245 832/1010/5246 931/995/5247
-f 821/983/5248 962/984/5249 931/995/5250
-f 931/995/5251 962/984/5252 961/1177/5253
-f 812/976/5254 963/985/5255 821/983/5256
-f 821/983/5257 963/985/5258 962/984/5259
-f 813/975/5260 964/1049/5261 812/976/5262
-f 812/976/5263 964/1049/5264 963/985/5265
-f 849/1052/5266 948/1047/5267 813/975/5268
-f 813/975/5269 948/1047/5270 964/1049/5271
-f 822/997/5272 965/996/5273 935/986/5274
-f 935/986/5275 965/996/5276 962/984/5277
-f 824/988/5278 823/1000/5279 935/986/5280
-f 935/986/5281 823/1000/5282 822/997/5283
-f 824/988/5284 927/1003/5285 823/1000/5286
-f 823/1000/5287 927/1003/5288 928/1001/5289
-f 966/998/5290 961/1177/5291 965/996/5292
-f 965/996/5293 961/1177/5294 962/984/5295
-f 936/1159/5296 937/1161/5297 927/1003/5298
-f 927/1003/5299 937/1161/5300 928/1001/5301
-f 936/1159/5302 967/1178/5303 937/1161/5304
-f 937/1161/5305 967/1178/5306 938/1160/5307
-f 938/1160/5308 967/1178/5309 968/1162/5310
-f 968/1162/5311 967/1178/5312 960/1176/5313
-f 960/1176/5314 961/1177/5315 968/1162/5316
-f 968/1162/5317 961/1177/5318 966/998/5319
-f 803/965/5320 804/966/5321 948/1047/5322
-f 948/1047/5323 804/966/5324 947/1048/5325
-f 793/954/5326 797/957/5327 803/965/5328
-f 803/965/5329 797/957/5330 804/966/5331
-f 794/953/5332 796/955/5333 793/954/5334
-f 793/954/5335 796/955/5336 797/957/5337
-f 782/941/5338 783/942/5339 794/953/5340
-f 794/953/5341 783/942/5342 796/955/5343
-f 776/930/5344 777/933/5345 782/941/5346
-f 782/941/5347 777/933/5348 783/942/5349
-f 777/933/5350 776/930/5351 945/935/5352
-f 945/935/5353 776/930/5354 944/931/5355
-f 945/935/5356 944/931/5357 994/1173/5358
-f 994/1173/5359 944/931/5360 990/1171/5361
-f 947/1048/5362 847/1045/5363 815/1050/5364
-f 815/1050/5365 847/1045/5366 816/977/5367
-f 840/1018/5368 841/1020/5369 839/1019/5370
-f 839/1019/5371 841/1020/5372 842/1022/5373
-f 839/1019/5374 842/1022/5375 867/1029/5376
-f 867/1029/5377 842/1022/5378 868/1030/5379
-f 867/1029/5380 868/1030/5381 878/1094/5382
-f 878/1094/5383 868/1030/5384 879/1095/5385
-f 879/1095/5386 875/1103/5387 878/1094/5388
-f 878/1094/5389 875/1103/5390 877/1105/5391
-f 875/1103/5392 874/1100/5393 877/1105/5394
-f 877/1105/5395 874/1100/5396 880/1106/5397
-f 874/1100/5398 873/1099/5399 880/1106/5400
-f 880/1106/5401 873/1099/5402 881/1107/5403
-f 873/1099/5404 921/1148/5405 881/1107/5406
-f 881/1107/5407 921/1148/5408 922/1150/5409
-f 886/1112/5410 889/1116/5411 921/1148/5412
-f 921/1148/5413 889/1116/5414 922/1150/5415
-f 889/1116/5416 886/1112/5417 888/1117/5418
-f 888/1117/5419 886/1112/5420 887/1114/5421
-f 896/1127/5422 894/1122/5423 898/1128/5424
-f 898/1128/5425 894/1122/5426 899/1130/5427
-f 897/1125/5428 895/1123/5429 896/1127/5430
-f 896/1127/5431 895/1123/5432 894/1122/5433
-f 897/1125/5434 919/1146/5435 895/1123/5436
-f 895/1123/5437 919/1146/5438 918/1143/5439
-f 914/1142/5440 918/1143/5441 915/1147/5442
-f 915/1147/5443 918/1143/5444 919/1146/5445
-f 841/1020/5446 840/1018/5447 936/1159/5448
-f 936/1159/5449 840/1018/5450 967/1178/5451
-f 750/1021/5452 841/1020/5453 749/1158/5454
-f 749/1158/5455 841/1020/5456 936/1159/5457
-f 840/1018/5458 838/1016/5459 967/1178/5460
-f 967/1178/5461 838/1016/5462 960/1176/5463
-f 832/1010/5464 960/1176/5465 831/1011/5466
-f 831/1011/5467 960/1176/5468 838/1016/5469
-f 932/990/5470 827/1005/5471 933/991/5472
-f 827/1005/5473 825/1004/5474 933/991/5475
-f 934/1033/5476 933/991/5477 900/1034/5478
-f 900/1034/5479 933/991/5480 825/1004/5481
-f 900/1034/5482 907/1131/5483 934/1033/5484
-f 1018/1164/5485 971/1154/5486 977/1179/5487
-f 939/923/5488 845/921/5489 843/1038/5490
-f 1017/1133/5491 907/1131/5492 1016/1180/5493
-f 1016/1180/5494 907/1131/5495 1002/1135/5496
-f 905/1040/5497 982/1181/5498 906/1043/5499
-f 906/1043/5500 982/1181/5501 974/1175/5502
-f 982/1182/5503 905/1040/5504 1003/1183/5505
-f 1018/1164/5506 977/1179/5507 979/1184/5508
-f 984/1185/5509 970/1186/5510 983/1165/5511
-f 983/1165/5512 970/1186/5513 969/1163/5514
-f 976/1153/5515 975/1187/5516 971/1154/5517
-f 971/1154/5518 975/1187/5519 972/1188/5520
-f 978/1189/5521 977/1179/5522 972/1188/5523
-f 972/1188/5524 977/1179/5525 971/1154/5526
-f 975/1187/5527 976/1153/5528 973/1190/5529
-f 973/1190/5530 976/1153/5531 974/1175/5532
-f 977/1179/5533 978/1189/5534 979/1184/5535
-f 979/1184/5536 978/1189/5537 980/1191/5538
-f 982/1181/5539 981/1192/5540 974/1175/5541
-f 974/1175/5542 981/1192/5543 973/1190/5544
-f 981/1193/5545 982/1182/5546 1004/1194/5547
-f 1004/1194/5548 982/1182/5549 1003/1183/5550
-f 983/1165/5551 986/1195/5552 984/1185/5553
-f 984/1185/5554 986/1195/5555 985/1196/5556
-f 988/1170/5557 989/1169/5558 995/1197/5559
-f 995/1197/5560 989/1169/5561 996/1198/5562
-f 990/1171/5563 988/1170/5564 997/1199/5565
-f 997/1199/5566 988/1170/5567 995/1197/5568
-f 742/1174/5569 991/1172/5570 770/1200/5571
-f 770/1200/5572 991/1172/5573 998/1201/5574
-f 989/1169/5575 992/1168/5576 996/1198/5577
-f 996/1198/5578 992/1168/5579 999/1202/5580
-f 992/1168/5581 993/1167/5582 999/1202/5583
-f 999/1202/5584 993/1167/5585 1000/1203/5586
-f 1000/1203/5587 993/1167/5588 970/1186/5589
-f 970/1186/5590 993/1167/5591 987/1166/5592
-f 970/1186/5593 987/1166/5594 969/1163/5595
-f 994/1173/5596 990/1171/5597 1001/1204/5598
-f 1001/1204/5599 990/1171/5600 997/1199/5601
-f 991/1172/5602 994/1173/5603 998/1201/5604
-f 998/1201/5605 994/1173/5606 1001/1204/5607
-f 908/1136/5608 917/1141/5609 911/1134/5610
-f 911/1134/5611 917/1141/5612 912/1139/5613
-f 887/1114/5614 761/1115/5615 898/1128/5616
-f 898/1128/5617 761/1115/5618 762/1129/5619
-f 888/1117/5620 887/1114/5621 899/1130/5622
-f 899/1130/5623 887/1114/5624 898/1128/5625
-f 884/1111/5626 888/1117/5627 892/1121/5628
-f 892/1121/5629 888/1117/5630 899/1130/5631
-f 883/1110/5632 884/1111/5633 893/1119/5634
-f 893/1119/5635 884/1111/5636 892/1121/5637
-f 883/1110/5638 893/1119/5639 908/1136/5640
-f 908/1136/5641 893/1119/5642 917/1141/5643
-f 986/1195/5644 983/1165/5645 1018/1164/5646
-f 986/1195/5647 979/1184/5648 985/1196/5649
-f 985/1196/5650 979/1184/5651 980/1191/5652
-f 986/1195/5653 1018/1164/5654 979/1184/5655
-f 1006/1205/5656 1005/1206/5657 912/1139/5658
-f 912/1139/5659 1005/1206/5660 911/1134/5661
-f 1007/1207/5662 1006/1205/5663 913/1138/5664
-f 913/1138/5665 1006/1205/5666 912/1139/5667
-f 1008/1208/5668 1007/1207/5669 914/1142/5670
-f 914/1142/5671 1007/1207/5672 913/1138/5673
-f 915/1147/5674 1009/1209/5675 914/1142/5676
-f 914/1142/5677 1009/1209/5678 1008/1208/5679
-f 766/1145/5680 771/1210/5681 915/1147/5682
-f 915/1147/5683 771/1210/5684 1009/1209/5685
-f 1015/1211/5686 1016/1180/5687 1010/1212/5688
-f 1010/1212/5689 1016/1180/5690 1002/1135/5691
-f 1010/1212/5692 1002/1135/5693 1005/2567/5694
-f 1005/2567/5695 1002/1135/5696 911/2566/5697
-f 815/1050/5698 814/987/5699 964/1049/5700
-f 964/1049/5701 814/987/5702 963/985/5703
-f 817/979/5704 814/987/5705 816/977/5706
-f 816/977/5707 814/987/5708 815/1050/5709
-f 1044/1213/5710 1045/1214/5711 970/1215/5712
-f 996/1216/5713 1023/1217/5714 995/1218/5715
-f 995/1218/5716 1023/1217/5717 1024/1219/5718
-f 997/1220/5719 995/1218/5720 1025/1221/5721
-f 1025/1221/5722 995/1218/5723 1024/1219/5724
-f 1027/1222/5725 1028/1223/5726 998/1224/5727
-f 998/1224/5728 1028/1223/5729 770/1225/5730
-f 1023/1217/5731 996/1216/5732 1022/1226/5733
-f 1022/1226/5734 996/1216/5735 999/1227/5736
-f 1022/1226/5737 1000/1228/5738 1021/1229/5739
-f 1000/1228/5740 1022/1226/5741 999/1227/5742
-f 972/1230/5743 1021/1229/5744 1045/1214/5745
-f 1045/1214/5746 1021/1229/5747 970/1215/5748
-f 970/1215/5749 1021/1229/5750 1000/1228/5751
-f 997/1220/5752 1025/1221/5753 1001/1231/5754
-f 1001/1231/5755 1025/1221/5756 1026/1232/5757
-f 1001/1231/5758 1026/1232/5759 998/1224/5760
-f 998/1224/5761 1026/1232/5762 1027/1222/5763
-f 1021/1229/5764 972/1230/5765 1012/1233/5766
-f 1012/1234/5767 972/1235/5768 1014/1236/5769
-f 955/1237/5770 959/1089/5771 954/1238/5772
-f 959/1089/5773 955/1237/5774 950/1065/5775
-f 955/1237/5776 958/1239/5777 950/1065/5778
-f 954/1238/5779 959/1089/5780 953/1240/5781
-f 953/1240/5782 959/1089/5783 952/1241/5784
-f 952/1241/5785 959/1089/5786 951/1157/5787
-f 958/1239/5788 956/1242/5789 950/1065/5790
-f 956/1242/5791 957/1243/5792 950/1065/5793
-f 950/1065/5794 957/1243/5795 949/1067/5796
-f 1011/1244/5797 1003/1183/5798 1015/1211/5799
-f 1015/1211/5800 1003/1183/5801 1016/1180/5802
-f 905/1040/5803 1017/1133/5804 1003/1183/5805
-f 1003/1183/5806 1017/1133/5807 1016/1180/5808
-f 1043/1245/5809 1044/1213/5810 984/1246/5811
-f 984/1246/5812 1044/1213/5813 970/1215/5814
-f 985/1247/5815 1043/1245/5816 984/1246/5817
-f 985/1247/5818 980/1248/5819 1043/1245/5820
-f 978/1249/5821 1046/1250/5822 980/1248/5823
-f 980/1248/5824 1046/1250/5825 1043/1245/5826
-f 1046/1250/5827 978/1249/5828 972/1230/5829
-f 969/1163/5830 843/1038/5831 1018/1164/5832
-f 843/1038/5833 971/1154/5834 1018/1164/5835
-f 806/969/5836 1019/992/5837 846/1044/5838
-f 1019/992/5839 809/971/5840 819/981/5841
-f 819/981/5842 933/991/5843 1019/992/5844
-f 1020/1070/5845 853/1069/5846 951/1071/5847
-f 926/1090/5848 1020/1156/5849 951/1157/5850
-f 1037/1251/5851 1013/1252/5852 1042/1253/5853
-f 1042/1253/5854 1013/1252/5855 1034/1254/5856
-f 1036/1255/5857 1014/1256/5858 1037/1251/5859
-f 1037/1251/5860 1014/1256/5861 1013/1252/5862
-f 1038/1257/5863 1030/1258/5864 1035/1259/5865
-f 1035/1259/5866 1030/1258/5867 1029/1260/5868
-f 1039/1261/5869 1031/1262/5870 1038/1257/5871
-f 1038/1257/5872 1031/1262/5873 1030/1258/5874
-f 1040/1263/5875 1032/1264/5876 1039/1261/5877
-f 1039/1261/5878 1032/1264/5879 1031/1262/5880
-f 1041/1265/5881 1033/1266/5882 1040/1263/5883
-f 1040/1263/5884 1033/1266/5885 1032/1264/5886
-f 1042/1253/5887 1034/1254/5888 1041/1265/5889
-f 1041/1265/5890 1034/1254/5891 1033/1266/5892
-f 1021/1229/5893 1012/1233/5894 1036/1255/5895
-f 1036/1255/5896 1012/1233/5897 1014/1256/5898
-f 1021/1229/5899 1036/1255/5900 1022/1226/5901
-f 1022/1226/5902 1036/1255/5903 1037/1251/5904
-f 1023/1217/5905 1022/1226/5906 1042/1253/5907
-f 1042/1253/5908 1022/1226/5909 1037/1251/5910
-f 1024/1219/5911 1023/1217/5912 1041/1265/5913
-f 1041/1265/5914 1023/1217/5915 1042/1253/5916
-f 1025/1221/5917 1024/1219/5918 1040/1263/5919
-f 1040/1263/5920 1024/1219/5921 1041/1265/5922
-f 1025/1221/5923 1040/1263/5924 1026/1232/5925
-f 1026/1232/5926 1040/1263/5927 1039/1261/5928
-f 1038/1257/5929 1027/1222/5930 1039/1261/5931
-f 1039/1261/5932 1027/1222/5933 1026/1232/5934
-f 1027/1222/5935 1038/1257/5936 1028/1223/5937
-f 1028/1223/5938 1038/1257/5939 1035/1259/5940
-f 972/1230/5941 1045/1214/5942 1046/1250/5943
-f 1046/1250/5944 1045/1214/5945 1047/1267/5946
-f 1047/1267/5947 1045/1214/5948 1048/1268/5949
-f 1049/1269/5950 1047/1267/5951 1050/1270/5952
-f 1050/1270/5953 1047/1267/5954 1048/1268/5955
-f 1049/1269/5956 1050/1270/5957 1043/1245/5958
-f 1043/1245/5959 1050/1270/5960 1044/1213/5961
-f 1050/1270/5962 1048/1268/5963 1044/1213/5964
-f 1044/1213/5965 1048/1268/5966 1045/1214/5967
-f 1043/1245/5968 1046/1250/5969 1049/1269/5970
-f 1049/1269/5971 1046/1250/5972 1047/1267/5973
-f 1051/1271/5974 1053/1272/5975 1052/1273/5976
-f 1053/1272/5977 1054/1274/5978 1052/1273/5979
-f 1055/1275/5980 1057/1276/5981 1056/1277/5982
-f 1057/1276/5983 1058/1278/5984 1056/1277/5985
-f 1059/1279/5986 1060/1280/5987 1055/1275/5988
-f 1060/1280/5989 1057/1276/5990 1055/1275/5991
-f 1061/1281/5992 1062/1282/5993 1059/1279/5994
-f 1062/1282/5995 1060/1280/5996 1059/1279/5997
-f 1063/1283/5998 1065/1284/5999 1064/1285/6000
-f 1065/1284/6001 1066/1286/6002 1064/1285/6003
-f 743/936/6004 769/937/6005 1063/1283/6006
-f 769/937/6007 1065/1284/6008 1063/1283/6009
-f 1056/1277/6010 1067/1287/6011 1055/1275/6012
-f 1067/1287/6013 1068/1288/6014 1055/1275/6015
-f 1055/1275/6016 1068/1288/6017 1059/1279/6018
-f 1068/1288/6019 1069/1289/6020 1059/1279/6021
-f 1059/1279/6022 1069/1289/6023 1061/1281/6024
-f 1069/1289/6025 1070/1290/6026 1061/1281/6027
-f 1071/1291/6028 1072/1292/6029 1064/1285/6030
-f 1072/1292/6031 1063/1283/6032 1064/1285/6033
-f 743/936/6034 1063/1283/6035 754/944/6036
-f 1063/1283/6037 1072/1292/6038 754/944/6039
-f 1073/1293/6040 1075/1294/6041 1074/1295/6042
-f 1075/1294/6043 1076/1296/6044 1074/1295/6045
-f 1074/1295/6046 1076/1296/6047 1077/1297/6048
-f 1076/1296/6049 1078/1298/6050 1077/1297/6051
-f 1077/1297/6052 1078/1298/6053 1079/1299/6054
-f 1078/1298/6055 1080/1300/6056 1079/1299/6057
-f 1079/1299/6058 1080/1300/6059 1081/1301/6060
-f 1080/1300/6061 1082/1302/6062 1081/1301/6063
-f 1083/1303/6064 1085/1304/6065 1084/1305/6066
-f 1085/1304/6067 1086/1306/6068 1084/1305/6069
-f 744/959/6070 1084/1305/6071 745/960/6072
-f 1084/1305/6073 1086/1306/6074 745/960/6075
-f 1075/1294/6076 1087/1307/6077 1076/1296/6078
-f 1087/1307/6079 1088/1308/6080 1076/1296/6081
-f 1076/1296/6082 1088/1308/6083 1078/1298/6084
-f 1088/1308/6085 1089/1309/6086 1078/1298/6087
-f 1078/1298/6088 1089/1309/6089 1080/1300/6090
-f 1089/1309/6091 1090/1310/6092 1080/1300/6093
-f 1080/1300/6094 1090/1310/6095 1082/1302/6096
-f 1090/1310/6097 1091/1311/6098 1082/1302/6099
-f 1085/1304/6100 1092/1312/6101 1086/1306/6102
-f 1092/1312/6103 1093/1313/6104 1086/1306/6105
-f 745/960/6106 1086/1306/6107 768/968/6108
-f 1086/1306/6109 1093/1313/6110 768/968/6111
-f 1094/1314/6112 1096/1315/6113 1095/1316/6114
-f 1096/1315/6115 1097/1317/6116 1095/1316/6117
-f 1098/1318/6118 1097/1317/6119 1099/1319/6120
-f 1097/1317/6121 1096/1315/6122 1099/1319/6123
-f 1098/1318/6124 1099/1319/6125 1100/1320/6126
-f 1099/1319/6127 1101/1321/6128 1100/1320/6129
-f 1102/1322/6130 1103/1323/6131 746/978/6132
-f 1103/1323/6133 747/980/6134 746/978/6135
-f 1104/1324/6136 1105/1325/6137 1096/1315/6138
-f 1105/1325/6139 1099/1319/6140 1096/1315/6141
-f 1105/1325/6142 1106/1326/6143 1099/1319/6144
-f 1106/1326/6145 1101/1321/6146 1099/1319/6147
-f 1107/1327/6148 1109/1328/6149 1108/1329/6150
-f 1109/1328/6151 1110/1330/6152 1108/1329/6153
-f 1110/1330/6154 1109/1328/6155 1103/1323/6156
-f 1109/1328/6157 1111/1331/6158 1103/1323/6159
-f 1103/1323/6160 1111/1331/6161 747/980/6162
-f 1111/1331/6163 748/989/6164 747/980/6165
-f 1112/1332/6166 1104/1324/6167 1113/1333/6168
-f 1114/1334/6169 1115/1335/6170 1113/1333/6171
-f 1104/1324/6172 1112/1332/6173 1105/1325/6174
-f 1112/1332/6175 1116/1336/6176 1105/1325/6177
-f 1105/1325/6178 1116/1336/6179 1106/1326/6180
-f 1116/1336/6181 1117/1337/6182 1106/1326/6183
-f 1118/1338/6184 1120/1339/6185 1119/1340/6186
-f 1120/1339/6187 1121/1341/6188 1119/1340/6189
-f 1122/1342/6190 1119/1340/6191 1123/1343/6192
-f 1119/1340/6193 1121/1341/6194 1123/1343/6195
-f 748/989/6196 1111/1331/6197 767/1002/6198
-f 1111/1331/6199 1124/1344/6200 767/1002/6201
-f 1125/1345/6202 1127/1346/6203 1126/1347/6204
-f 1127/1346/6205 1128/1348/6206 1126/1347/6207
-f 1126/1347/6208 1128/1348/6209 1129/1349/6210
-f 1128/1348/6211 1130/1350/6212 1129/1349/6213
-f 1129/1349/6214 1130/1350/6215 1131/1351/6216
-f 1130/1350/6217 1132/1352/6218 1131/1351/6219
-f 1133/1353/6220 1134/1354/6221 1127/1346/6222
-f 1134/1354/6223 1128/1348/6224 1127/1346/6225
-f 1130/1350/6226 1128/1348/6227 1135/1355/6228
-f 1128/1348/6229 1134/1354/6230 1135/1355/6231
-f 1132/1352/6232 1130/1350/6233 1136/1356/6234
-f 1130/1350/6235 1135/1355/6236 1136/1356/6237
-f 1132/1352/6238 1136/1356/6239 1137/1357/6240
-f 1136/1356/6241 1138/1358/6242 1137/1357/6243
-f 1137/1357/6244 1138/1358/6245 1139/1359/6246
-f 1138/1358/6247 1140/1360/6248 1139/1359/6249
-f 1141/1361/6250 1142/1362/6251 750/1021/6252
-f 1142/1362/6253 751/1023/6254 750/1021/6255
-f 1143/1363/6256 1144/1364/6257 1133/1353/6258
-f 1144/1364/6259 1134/1354/6260 1133/1353/6261
-f 1135/1355/6262 1134/1354/6263 1145/1365/6264
-f 1134/1354/6265 1144/1364/6266 1145/1365/6267
-f 1136/1356/6268 1135/1355/6269 1146/1366/6270
-f 1135/1355/6271 1145/1365/6272 1146/1366/6273
-f 1138/1358/6274 1136/1356/6275 1147/1367/6276
-f 1136/1356/6277 1146/1366/6278 1147/1367/6279
-f 1138/1358/6280 1147/1367/6281 1140/1360/6282
-f 1147/1367/6283 1148/1368/6284 1140/1360/6285
-f 1142/1362/6286 1149/1369/6287 751/1023/6288
-f 1149/1369/6289 752/1031/6290 751/1023/6291
-f 1150/1370/6292 1151/1371/6293 1115/1335/6294
-f 1151/1371/6295 1113/1333/6296 1115/1335/6297
-f 1125/1345/6298 1152/1372/6299 1127/1346/6300
-f 1152/1372/6301 1153/1373/6302 1127/1346/6303
-f 1133/1353/6304 1155/1374/6305 1154/1375/6306
-f 1156/1376/6307 1157/1377/6308 1052/1273/6309
-f 1150/1370/6310 1159/1378/6311 1158/1379/6312
-f 1159/1378/6313 1160/1380/6314 1158/1379/6315
-f 1158/1379/6316 1160/1380/6317 1161/1381/6318
-f 1150/1370/6319 1115/1335/6320 1162/1382/6321
-f 1163/1383/6322 1102/1322/6323 753/1046/6324
-f 1102/1322/6325 746/978/6326 753/1046/6327
-f 1164/1384/6328 1166/1385/6329 1165/1386/6330
-f 1166/1385/6331 1167/1387/6332 1165/1386/6333
-f 1168/1388/6334 1098/1318/6335 1169/1389/6336
-f 1098/1318/6337 1100/1320/6338 1169/1389/6339
-f 1170/1390/6340 1097/1317/6341 1168/1388/6342
-f 1097/1317/6343 1098/1318/6344 1168/1388/6345
-f 1171/1391/6346 1095/1316/6347 1170/1390/6348
-f 1095/1316/6349 1097/1317/6350 1170/1390/6351
-f 1157/1377/6352 1173/1392/6353 1172/1393/6354
-f 1173/1392/6355 1174/1394/6356 1172/1393/6357
-f 1175/1395/6358 1075/1294/6359 1073/1293/6360
-f 1073/1293/6361 1176/1396/6362 1175/1395/6363
-f 1075/1294/6364 1175/1395/6365 1087/1307/6366
-f 1175/1395/6367 1177/1397/6368 1087/1307/6369
-f 1095/1316/6370 1179/1398/6371 1178/1399/6372
-f 1178/1399/6373 1094/1314/6374 1095/1316/6375
-f 1180/1400/6376 1179/1398/6377 1095/1316/6378
-f 1095/1316/6379 1171/1391/6380 1180/1400/6381
-f 1072/1292/6382 1084/1305/6383 754/944/6384
-f 1084/1305/6385 744/959/6386 754/944/6387
-f 1071/1291/6388 1083/1303/6389 1072/1292/6390
-f 1083/1303/6391 1084/1305/6392 1072/1292/6393
-f 1069/1289/6394 1079/1299/6395 1070/1290/6396
-f 1079/1299/6397 1081/1301/6398 1070/1290/6399
-f 1068/1288/6400 1077/1297/6401 1069/1289/6402
-f 1077/1297/6403 1079/1299/6404 1069/1289/6405
-f 1067/1287/6406 1074/1295/6407 1068/1288/6408
-f 1074/1295/6409 1077/1297/6410 1068/1288/6411
-f 1172/1393/6412 1073/1293/6413 1067/1287/6414
-f 1073/1293/6415 1074/1295/6416 1067/1287/6417
-f 1172/1393/6418 1174/1394/6419 1073/1293/6420
-f 1174/1394/6421 1176/1396/6422 1073/1293/6423
-f 1160/1401/6424 1159/1402/6425 1181/1403/6426
-f 1159/1402/6427 1182/1404/6428 1181/1403/6429
-f 1173/1405/6430 1183/1406/6431 1174/1407/6432
-f 1184/1408/6433 1185/1409/6434 1174/1407/6435
-f 1176/1410/6436 1186/1411/6437 1175/1412/6438
-f 1186/1411/6439 1187/1413/6440 1175/1412/6441
-f 1175/1412/6442 1187/1413/6443 1177/1414/6444
-f 1187/1413/6445 1188/1415/6446 1177/1414/6447
-f 1178/1416/6448 1179/1417/6449 1189/1418/6450
-f 1179/1417/6451 1190/1419/6452 1189/1418/6453
-f 1159/1420/6454 1178/1416/6455 1182/1421/6456
-f 1178/1416/6457 1189/1418/6458 1182/1421/6459
-f 1179/1417/6460 1180/1422/6461 1190/1419/6462
-f 1180/1422/6463 1191/1423/6464 1190/1419/6465
-f 1174/1407/6466 1185/1409/6467 1176/1410/6468
-f 1185/1409/6469 1186/1411/6470 1176/1410/6471
-f 1159/1378/6472 1150/1370/6473 1162/1382/6474
-f 1162/1382/6475 1094/1314/6476 1178/1399/6477
-f 1178/1399/6478 1159/1378/6479 1162/1382/6480
-f 1160/1380/6481 1192/1424/6482 1161/1381/6483
-f 1192/1424/6484 1193/1425/6485 1161/1381/6486
-f 1181/1403/6487 1194/1426/6488 1160/1401/6489
-f 1194/1426/6490 1192/1427/6491 1160/1401/6492
-f 1156/1376/6493 1173/1392/6494 1157/1377/6495
-f 1172/1393/6496 1051/1271/6497 1157/1377/6498
-f 1051/1271/6499 1052/1273/6500 1157/1377/6501
-f 1056/1277/6502 1058/1278/6503 1051/1271/6504
-f 1058/1278/6505 1053/1272/6506 1051/1271/6507
-f 1144/1364/6508 1195/1428/6509 1145/1365/6510
-f 1146/1366/6511 1145/1365/6512 1196/1429/6513
-f 1145/1365/6514 1195/1428/6515 1196/1429/6516
-f 1147/1367/6517 1146/1366/6518 1197/1430/6519
-f 1146/1366/6520 1196/1429/6521 1197/1430/6522
-f 1147/1367/6523 1197/1430/6524 1148/1368/6525
-f 1197/1430/6526 1198/1431/6527 1148/1368/6528
-f 1149/1369/6529 1199/1432/6530 752/1031/6531
-f 1199/1432/6532 755/1096/6533 752/1031/6534
-f 1200/1433/6535 1196/1429/6536 1201/1434/6537
-f 1196/1429/6538 1195/1428/6539 1201/1434/6540
-f 1202/1435/6541 757/1101/6542 1203/1436/6543
-f 757/1101/6544 758/1102/6545 1203/1436/6546
-f 1203/1436/6547 758/1102/6548 1204/1437/6549
-f 758/1102/6550 759/1104/6551 1204/1437/6552
-f 1205/1438/6553 1197/1430/6554 1200/1433/6555
-f 1197/1430/6556 1196/1429/6557 1200/1433/6558
-f 1198/1431/6559 1197/1430/6560 1205/1438/6561
-f 755/1096/6562 1199/1432/6563 759/1104/6564
-f 1199/1432/6565 1204/1437/6566 759/1104/6567
-f 1205/1438/6568 1200/1433/6569 1206/1439/6570
-f 1206/1439/6571 1200/1433/6572 1207/1440/6573
-f 1200/1433/6574 1201/1434/6575 1207/1440/6576
-f 1208/1441/6577 1210/1442/6578 1209/1443/6579
-f 1210/1442/6580 1211/1444/6581 1209/1443/6582
-f 1212/1445/6583 1213/1446/6584 760/1113/6585
-f 1213/1446/6586 761/1115/6587 760/1113/6588
-f 1209/1443/6589 1211/1444/6590 1214/1447/6591
-f 1211/1444/6592 1215/1448/6593 1214/1447/6594
-f 1216/1449/6595 1218/1450/6596 1217/1451/6597
-f 1218/1450/6598 1219/1452/6599 1217/1451/6600
-f 1220/1453/6601 1218/1450/6602 1221/1454/6603
-f 1218/1450/6604 1216/1449/6605 1221/1454/6606
-f 764/1124/6607 765/1126/6608 1222/1455/6609
-f 765/1126/6610 1223/1456/6611 1222/1455/6612
-f 1224/1457/6613 1223/1456/6614 762/1129/6615
-f 1223/1456/6616 765/1126/6617 762/1129/6618
-f 1220/1453/6619 1225/1458/6620 1218/1450/6621
-f 1225/1458/6622 1219/1452/6623 1218/1450/6624
-f 1153/2573/6625 1152/1372/6626 1226/1459/6627
-f 1155/2569/6628 1153/2573/6629 1226/1459/6630
-f 1154/2570/6631 1155/2569/6632 1226/1459/6633
-f 1226/1459/6634 1227/2565/6635 1154/2570/6636
-f 1151/1371/6637 1150/1370/6638 1228/1461/6639
-f 1150/1370/6640 1158/1379/6641 1228/1461/6642
-f 1229/1462/6643 1227/2565/6644 1230/1463/6645
-f 1227/2565/6646 1226/1459/6647 1230/1463/6648
-f 1227/1460/6649 1229/2563/6650 1231/1464/6651
-f 1232/1465/6652 1227/1460/6653 1231/1464/6654
-f 1233/1466/6655 1235/1467/6656 1234/1468/6657
-f 1235/1467/6658 1236/1469/6659 1234/1468/6660
-f 1233/1466/6661 1237/1470/6662 1235/1467/6663
-f 1237/1470/6664 1238/1471/6665 1235/1467/6666
-f 763/1144/6667 1239/1472/6668 766/1145/6669
-f 1239/1472/6670 1240/1473/6671 766/1145/6672
-f 1208/1441/6673 1232/1465/6674 1210/1442/6675
-f 1232/1465/6676 1231/1464/6677 1210/1442/6678
-f 1236/1469/6679 1235/1467/6680 1217/1451/6681
-f 1235/1467/6682 1216/1449/6683 1217/1451/6684
-f 1221/1454/6685 1216/1449/6686 1238/1471/6687
-f 1216/1449/6688 1235/1467/6689 1238/1471/6690
-f 1239/1472/6691 763/1144/6692 1222/1455/6693
-f 763/1144/6694 764/1124/6695 1222/1455/6696
-f 1241/1474/6697 1212/1445/6698 756/1149/6699
-f 1212/1445/6700 760/1113/6701 756/1149/6702
-f 1214/1447/6703 1242/1475/6704 1209/1443/6705
-f 1242/1475/6706 1243/1476/6707 1209/1443/6708
-f 1243/1476/6709 1244/1477/6710 1209/1443/6711
-f 1244/1477/6712 1208/1441/6713 1209/1443/6714
-f 1143/1363/6715 1232/1465/6716 1244/1477/6717
-f 1232/1465/6718 1208/1441/6719 1244/1477/6720
-f 1114/1334/6721 1096/1315/6722 1094/1314/6723
-f 1162/1382/6724 1115/1335/6725 1114/1334/6726
-f 1244/1477/6727 1243/1476/6728 1195/1428/6729
-f 1243/1476/6730 1201/1434/6731 1195/1428/6732
-f 1243/1476/6733 1242/1475/6734 1201/1434/6735
-f 1242/1475/6736 1207/1440/6737 1201/1434/6738
-f 757/1101/6739 1202/1435/6740 756/1149/6741
-f 1202/1435/6742 1241/1474/6743 756/1149/6744
-f 1127/1346/6745 1153/1373/6746 1133/1353/6747
-f 1153/1373/6748 1155/1374/6749 1133/1353/6750
-f 1154/1375/6751 1143/1363/6752 1133/1353/6753
-f 1195/1428/6754 1144/1364/6755 1244/1477/6756
-f 1144/1364/6757 1143/1363/6758 1244/1477/6759
-f 1172/1393/6760 1067/1287/6761 1051/1271/6762
-f 1067/1287/6763 1056/1277/6764 1051/1271/6765
-f 1193/1425/6766 1156/1376/6767 1245/1478/6768
-f 1156/1376/6769 1246/1479/6770 1245/1478/6771
-f 1192/1424/6772 1173/1392/6773 1193/1425/6774
-f 1173/1392/6775 1156/1376/6776 1193/1425/6777
-f 1173/1480/6778 1192/1427/6779 1183/1481/6780
-f 1192/1427/6781 1194/1426/6782 1184/1482/6783
-f 1228/1461/6784 1226/1459/6785 1151/1371/6786
-f 767/1002/6787 1124/1344/6788 749/1158/6789
-f 1124/1344/6790 1247/1483/6791 749/1158/6792
-f 1248/1484/6793 1249/1485/6794 1121/1341/6795
-f 1249/1485/6796 1123/1343/6797 1121/1341/6798
-f 1248/1484/6799 1121/1341/6800 1250/1486/6801
-f 1121/1341/6802 1120/1339/6803 1250/1486/6804
-f 1116/1336/6805 1129/1349/6806 1117/1337/6807
-f 1129/1349/6808 1131/1351/6809 1117/1337/6810
-f 1112/1332/6811 1126/1347/6812 1116/1336/6813
-f 1126/1347/6814 1129/1349/6815 1116/1336/6816
-f 1251/1487/6817 1253/1488/6818 1252/1489/6819
-f 1156/1376/6820 1054/1274/6821 1251/1487/6822
-f 1054/1274/6823 1254/1490/6824 1251/1487/6825
-f 1254/1490/6826 1054/1274/6827 1255/1491/6828
-f 1054/1274/6829 1053/1272/6830 1255/1491/6831
-f 1058/1278/6832 1256/1492/6833 1053/1272/6834
-f 1256/1492/6835 1255/1491/6836 1053/1272/6837
-f 1057/1276/6838 1257/1493/6839 1058/1278/6840
-f 1257/1493/6841 1256/1492/6842 1058/1278/6843
-f 1060/1280/6844 1258/1494/6845 1057/1276/6846
-f 1258/1494/6847 1257/1493/6848 1057/1276/6849
-f 1062/1282/6850 1259/1495/6851 1060/1280/6852
-f 1259/1495/6853 1258/1494/6854 1060/1280/6855
-f 1065/1284/6856 1260/1496/6857 1066/1286/6858
-f 1260/1496/6859 1261/1497/6860 1066/1286/6861
-f 769/937/6862 742/1174/6863 1065/1284/6864
-f 742/1174/6865 1260/1496/6866 1065/1284/6867
-f 768/968/6868 1093/1313/6869 753/1046/6870
-f 1093/1313/6871 1163/1383/6872 753/1046/6873
-f 1092/1312/6874 1165/1386/6875 1093/1313/6876
-f 1165/1386/6877 1163/1383/6878 1093/1313/6879
-f 1090/1310/6880 1169/1389/6881 1091/1311/6882
-f 1169/1389/6883 1164/1384/6884 1091/1311/6885
-f 1089/1309/6886 1168/1388/6887 1090/1310/6888
-f 1168/1388/6889 1169/1389/6890 1090/1310/6891
-f 1088/1308/6892 1170/1390/6893 1089/1309/6894
-f 1170/1390/6895 1168/1388/6896 1089/1309/6897
-f 1087/1307/6898 1171/1391/6899 1088/1308/6900
-f 1171/1391/6901 1170/1390/6902 1088/1308/6903
-f 1171/1391/6904 1087/1307/6905 1180/1400/6906
-f 1087/1307/6907 1177/1397/6908 1180/1400/6909
-f 1177/1414/6910 1188/1415/6911 1180/1422/6912
-f 1188/1415/6913 1191/1423/6914 1180/1422/6915
-f 1245/1478/6916 1262/1498/6917 1193/1425/6918
-f 1262/1498/6919 1161/1381/6920 1193/1425/6921
-f 1227/1460/6922 1232/1465/6923 1154/1375/6924
-f 1232/1465/6925 1143/1363/6926 1154/1375/6927
-f 1263/1499/6928 1264/1500/6929 1131/1351/6930
-f 1264/1500/6931 1117/1337/6932 1131/1351/6933
-f 1106/1326/6934 1117/1337/6935 1107/1327/6936
-f 1117/1337/6937 1264/1500/6938 1107/1327/6939
-f 1101/1321/6940 1106/1326/6941 1108/1329/6942
-f 1106/1326/6943 1107/1327/6944 1108/1329/6945
-f 1100/1320/6946 1101/1321/6947 1166/1385/6948
-f 1101/1321/6949 1108/1329/6950 1166/1385/6951
-f 1169/1389/6952 1100/1320/6953 1164/1384/6954
-f 1100/1320/6955 1166/1385/6956 1164/1384/6957
-f 1119/1340/6958 1109/1328/6959 1118/1338/6960
-f 1109/1328/6961 1107/1327/6962 1118/1338/6963
-f 1111/1331/6964 1109/1328/6965 1122/1342/6966
-f 1109/1328/6967 1119/1340/6968 1122/1342/6969
-f 1111/1331/6970 1122/1342/6971 1124/1344/6972
-f 1122/1342/6973 1123/1343/6974 1124/1344/6975
-f 1120/1339/6976 1118/1338/6977 1264/1500/6978
-f 1118/1338/6979 1107/1327/6980 1264/1500/6981
-f 1247/1483/6982 1124/1344/6983 1249/1485/6984
-f 1124/1344/6985 1123/1343/6986 1249/1485/6987
-f 1247/1483/6988 1249/1485/6989 1265/1501/6990
-f 1249/1485/6991 1248/1484/6992 1265/1501/6993
-f 1248/1484/6994 1250/1486/6995 1265/1501/6996
-f 1250/1486/6997 1263/1499/6998 1265/1501/6999
-f 1263/1499/7000 1250/1486/7001 1264/1500/7002
-f 1250/1486/7003 1120/1339/7004 1264/1500/7005
-f 1091/1311/7006 1164/1384/7007 1092/1312/7008
-f 1164/1384/7009 1165/1386/7010 1092/1312/7011
-f 1082/1302/7012 1091/1311/7013 1085/1304/7014
-f 1091/1311/7015 1092/1312/7016 1085/1304/7017
-f 1081/1301/7018 1082/1302/7019 1083/1303/7020
-f 1082/1302/7021 1085/1304/7022 1083/1303/7023
-f 1070/1290/7024 1081/1301/7025 1071/1291/7026
-f 1081/1301/7027 1083/1303/7028 1071/1291/7029
-f 1061/1281/7030 1070/1290/7031 1064/1285/7032
-f 1070/1290/7033 1071/1291/7034 1064/1285/7035
-f 1064/1285/7036 1066/1286/7037 1061/1281/7038
-f 1066/1286/7039 1062/1282/7040 1061/1281/7041
-f 1066/1286/7042 1261/1497/7043 1062/1282/7044
-f 1261/1497/7045 1259/1495/7046 1062/1282/7047
-f 1165/1386/7048 1167/1387/7049 1163/1383/7050
-f 1167/1387/7051 1102/1322/7052 1163/1383/7053
-f 1139/1359/7054 1140/1360/7055 1141/1361/7056
-f 1140/1360/7057 1142/1362/7058 1141/1361/7059
-f 1140/1360/7060 1148/1368/7061 1142/1362/7062
-f 1148/1368/7063 1149/1369/7064 1142/1362/7065
-f 1148/1368/7066 1198/1431/7067 1149/1369/7068
-f 1198/1431/7069 1199/1432/7070 1149/1369/7071
-f 1199/1432/7072 1198/1431/7073 1204/1437/7074
-f 1198/1431/7075 1205/1438/7076 1204/1437/7077
-f 1204/1437/7078 1205/1438/7079 1203/1436/7080
-f 1205/1438/7081 1206/1439/7082 1203/1436/7083
-f 1203/1436/7084 1206/1439/7085 1202/1435/7086
-f 1206/1439/7087 1207/1440/7088 1202/1435/7089
-f 1202/1435/7090 1207/1440/7091 1241/1474/7092
-f 1207/1440/7093 1242/1475/7094 1241/1474/7095
-f 1212/1445/7096 1241/1474/7097 1214/1447/7098
-f 1241/1474/7099 1242/1475/7100 1214/1447/7101
-f 1214/1447/7102 1215/1448/7103 1212/1445/7104
-f 1215/1448/7105 1213/1446/7106 1212/1445/7107
-f 1223/1456/7108 1224/1457/7109 1220/1453/7110
-f 1224/1457/7111 1225/1458/7112 1220/1453/7113
-f 1222/1455/7114 1223/1456/7115 1221/1454/7116
-f 1223/1456/7117 1220/1453/7118 1221/1454/7119
-f 1222/1455/7120 1221/1454/7121 1239/1472/7122
-f 1221/1454/7123 1238/1471/7124 1239/1472/7125
-f 1237/1470/7126 1240/1473/7127 1238/1471/7128
-f 1240/1473/7129 1239/1472/7130 1238/1471/7131
-f 1141/1361/7132 1247/1483/7133 1139/1359/7134
-f 1247/1483/7135 1265/1501/7136 1139/1359/7137
-f 750/1021/7138 749/1158/7139 1141/1361/7140
-f 749/1158/7141 1247/1483/7142 1141/1361/7143
-f 1139/1359/7144 1265/1501/7145 1137/1357/7146
-f 1265/1501/7147 1263/1499/7148 1137/1357/7149
-f 1131/1351/7150 1132/1352/7151 1263/1499/7152
-f 1132/1352/7153 1137/1357/7154 1263/1499/7155
-f 1112/1332/7156 1113/1333/7157 1126/1347/7158
-f 1126/1347/7159 1113/1333/7160 1125/1345/7161
-f 1151/1371/7162 1152/1372/7163 1113/1333/7164
-f 1152/1372/7165 1125/1345/7166 1113/1333/7167
-f 1152/1372/7168 1151/1371/7169 1226/1459/7170
-f 1252/1489/7171 1266/1502/7172 1246/1479/7173
-f 1054/1274/7174 1156/1376/7175 1052/1273/7176
-f 1228/1461/7177 1267/1503/7178 1226/1459/7179
-f 1267/1503/7180 1230/1463/7181 1226/1459/7182
-f 1158/1379/7183 1161/1381/7184 1268/1504/7185
-f 1161/1381/7186 1262/1498/7187 1268/1504/7188
-f 1268/1505/7189 1269/1506/7190 1158/1379/7191
-f 1252/1489/7192 1270/1507/7193 1266/1502/7194
-f 1271/1508/7195 1253/1488/7196 1272/1509/7197
-f 1253/1488/7198 1251/1487/7199 1272/1509/7200
-f 1245/1478/7201 1246/1479/7202 1273/1510/7203
-f 1246/1479/7204 1274/1511/7205 1273/1510/7206
-f 1275/1512/7207 1274/1511/7208 1266/1502/7209
-f 1274/1511/7210 1246/1479/7211 1266/1502/7212
-f 1273/1510/7213 1276/1513/7214 1245/1478/7215
-f 1276/1513/7216 1262/1498/7217 1245/1478/7218
-f 1266/1502/7219 1270/1507/7220 1275/1512/7221
-f 1270/1507/7222 1277/1514/7223 1275/1512/7224
-f 1268/1504/7225 1262/1498/7226 1278/1515/7227
-f 1262/1498/7228 1276/1513/7229 1278/1515/7230
-f 1278/1516/7231 1279/1517/7232 1268/1505/7233
-f 1279/1517/7234 1269/1506/7235 1268/1505/7236
-f 1253/1488/7237 1271/1508/7238 1280/1518/7239
-f 1271/1508/7240 1281/1519/7241 1280/1518/7242
-f 1258/1494/7243 1282/1520/7244 1257/1493/7245
-f 1282/1520/7246 1283/1521/7247 1257/1493/7248
-f 1259/1495/7249 1284/1522/7250 1258/1494/7251
-f 1284/1522/7252 1282/1520/7253 1258/1494/7254
-f 742/1174/7255 770/1200/7256 1260/1496/7257
-f 770/1200/7258 1285/1523/7259 1260/1496/7260
-f 1257/1493/7261 1283/1521/7262 1256/1492/7263
-f 1283/1521/7264 1286/1524/7265 1256/1492/7266
-f 1256/1492/7267 1286/1524/7268 1255/1491/7269
-f 1286/1524/7270 1287/1525/7271 1255/1491/7272
-f 1287/1525/7273 1272/1509/7274 1255/1491/7275
-f 1272/1509/7276 1254/1490/7277 1255/1491/7278
-f 1272/1509/7279 1251/1487/7280 1254/1490/7281
-f 1261/1497/7282 1288/1526/7283 1259/1495/7284
-f 1288/1526/7285 1284/1522/7286 1259/1495/7287
-f 1260/1496/7288 1285/1523/7289 1261/1497/7290
-f 1285/1523/7291 1288/1526/7292 1261/1497/7293
-f 1231/1464/7294 1229/2563/7295 1236/1469/7296
-f 1229/2563/7297 1234/1468/7298 1236/1469/7299
-f 1213/1446/7300 1224/1457/7301 761/1115/7302
-f 1224/1457/7303 762/1129/7304 761/1115/7305
-f 1215/1448/7306 1225/1458/7307 1213/1446/7308
-f 1225/1458/7309 1224/1457/7310 1213/1446/7311
-f 1211/1444/7312 1219/1452/7313 1215/1448/7314
-f 1219/1452/7315 1225/1458/7316 1215/1448/7317
-f 1210/1442/7318 1217/1451/7319 1211/1444/7320
-f 1217/1451/7321 1219/1452/7322 1211/1444/7323
-f 1210/1442/7324 1231/1464/7325 1217/1451/7326
-f 1231/1464/7327 1236/1469/7328 1217/1451/7329
-f 1280/1518/7330 1252/1489/7331 1253/1488/7332
-f 1280/1518/7333 1281/1519/7334 1270/1507/7335
-f 1281/1519/7336 1277/1514/7337 1270/1507/7338
-f 1280/1518/7339 1270/1507/7340 1252/1489/7341
-f 1289/1527/7342 1234/1468/7343 1290/2564/7344
-f 1234/1468/7345 1229/2563/7346 1290/2564/7347
-f 1291/1529/7348 1233/1466/7349 1289/1527/7350
-f 1233/1466/7351 1234/1468/7352 1289/1527/7353
-f 1292/1530/7354 1237/1470/7355 1291/1529/7356
-f 1237/1470/7357 1233/1466/7358 1291/1529/7359
-f 1240/1473/7360 1237/1470/7361 1293/1531/7362
-f 1237/1470/7363 1292/1530/7364 1293/1531/7365
-f 766/1145/7366 1240/1473/7367 771/1210/7368
-f 1240/1473/7369 1293/1531/7370 771/1210/7371
-f 1294/1532/7372 1295/1533/7373 1267/1503/7374
-f 1295/1533/7375 1230/1463/7376 1267/1503/7377
-f 1295/1533/7378 1290/1528/7379 1230/1463/7380
-f 1290/1528/7381 1229/1462/7382 1230/1463/7383
-f 1167/1387/7384 1166/1385/7385 1110/1330/7386
-f 1166/1385/7387 1108/1329/7388 1110/1330/7389
-f 1103/1323/7390 1102/1322/7391 1110/1330/7392
-f 1102/1322/7393 1167/1387/7394 1110/1330/7395
-f 1296/1534/7396 1272/1535/7397 1297/1536/7398
-f 1283/1537/7399 1282/1538/7400 1298/1539/7401
-f 1282/1538/7402 1299/1540/7403 1298/1539/7404
-f 1284/1541/7405 1300/1542/7406 1282/1538/7407
-f 1300/1542/7408 1299/1540/7409 1282/1538/7410
-f 1301/1543/7411 1285/1544/7412 1028/1223/7413
-f 1285/1544/7414 770/1225/7415 1028/1223/7416
-f 1298/1539/7417 1302/1545/7418 1283/1537/7419
-f 1302/1545/7420 1286/1546/7421 1283/1537/7422
-f 1302/1545/7423 1303/1547/7424 1287/1548/7425
-f 1287/1548/7426 1286/1546/7427 1302/1545/7428
-f 1274/1549/7429 1297/1536/7430 1303/1547/7431
-f 1297/1536/7432 1272/1535/7433 1303/1547/7434
-f 1272/1535/7435 1287/1548/7436 1303/1547/7437
-f 1284/1541/7438 1288/1550/7439 1300/1542/7440
-f 1288/1550/7441 1304/1551/7442 1300/1542/7443
-f 1288/1550/7444 1285/1544/7445 1304/1551/7446
-f 1285/1544/7447 1301/1543/7448 1304/1551/7449
-f 1303/1547/7450 1305/1552/7451 1274/1549/7452
-f 1305/1553/7453 1306/1554/7454 1274/1555/7455
-f 1188/1556/7456 1187/1557/7457 1194/1426/7458
-f 1194/1426/7459 1181/1403/7460 1188/1556/7461
-f 1188/1556/7462 1181/1403/7463 1191/1558/7464
-f 1187/1557/7465 1186/1559/7466 1194/1426/7467
-f 1186/1559/7468 1185/1560/7469 1194/1426/7470
-f 1185/1560/7471 1184/1482/7472 1194/1426/7473
-f 1191/1558/7474 1181/1403/7475 1190/1561/7476
-f 1190/1561/7477 1181/1403/7478 1189/1562/7479
-f 1181/1403/7480 1182/1404/7481 1189/1562/7482
-f 1307/1563/7483 1294/1532/7484 1269/1506/7485
-f 1294/1532/7486 1267/1503/7487 1269/1506/7488
-f 1158/1379/7489 1269/1506/7490 1228/1461/7491
-f 1269/1506/7492 1267/1503/7493 1228/1461/7494
-f 1308/1564/7495 1271/1565/7496 1296/1534/7497
-f 1271/1565/7498 1272/1535/7499 1296/1534/7500
-f 1281/1566/7501 1271/1565/7502 1308/1564/7503
-f 1281/1566/7504 1308/1564/7505 1277/1567/7506
-f 1275/1568/7507 1277/1567/7508 1309/1569/7509
-f 1277/1567/7510 1308/1564/7511 1309/1569/7512
-f 1309/1569/7513 1274/1549/7514 1275/1568/7515
-f 1251/1487/7516 1252/1489/7517 1156/1376/7518
-f 1156/1376/7519 1252/1489/7520 1246/1479/7521
-f 1094/1314/7522 1162/1382/7523 1114/1334/7524
-f 1114/1334/7525 1104/1324/7526 1096/1315/7527
-f 1104/1324/7528 1114/1334/7529 1113/1333/7530
-f 1183/1406/7531 1184/1408/7532 1174/1407/7533
-f 1192/1427/7534 1184/1482/7535 1183/1481/7536
-f 1310/1570/7537 1312/1571/7538 1311/1572/7539
-f 1312/1571/7540 1313/1573/7541 1311/1572/7542
-f 1314/1574/7543 1310/1570/7544 1306/1575/7545
-f 1310/1570/7546 1311/1572/7547 1306/1575/7548
-f 1315/1576/7549 1035/1259/7550 1316/1577/7551
-f 1035/1259/7552 1029/1260/7553 1316/1577/7554
-f 1317/1578/7555 1315/1576/7556 1318/1579/7557
-f 1315/1576/7558 1316/1577/7559 1318/1579/7560
-f 1319/1580/7561 1317/1578/7562 1320/1581/7563
-f 1317/1578/7564 1318/1579/7565 1320/1581/7566
-f 1321/1582/7567 1319/1580/7568 1322/1583/7569
-f 1319/1580/7570 1320/1581/7571 1322/1583/7572
-f 1312/1571/7573 1321/1582/7574 1313/1573/7575
-f 1321/1582/7576 1322/1583/7577 1313/1573/7578
-f 1303/1547/7579 1314/1574/7580 1305/1552/7581
-f 1314/1574/7582 1306/1575/7583 1305/1552/7584
-f 1303/1547/7585 1302/1545/7586 1314/1574/7587
-f 1302/1545/7588 1310/1570/7589 1314/1574/7590
-f 1298/1539/7591 1312/1571/7592 1302/1545/7593
-f 1312/1571/7594 1310/1570/7595 1302/1545/7596
-f 1299/1540/7597 1321/1582/7598 1298/1539/7599
-f 1321/1582/7600 1312/1571/7601 1298/1539/7602
-f 1300/1542/7603 1319/1580/7604 1299/1540/7605
-f 1319/1580/7606 1321/1582/7607 1299/1540/7608
-f 1300/1542/7609 1304/1551/7610 1319/1580/7611
-f 1304/1551/7612 1317/1578/7613 1319/1580/7614
-f 1315/1576/7615 1317/1578/7616 1301/1543/7617
-f 1317/1578/7618 1304/1551/7619 1301/1543/7620
-f 1301/1543/7621 1028/1223/7622 1315/1576/7623
-f 1028/1223/7624 1035/1259/7625 1315/1576/7626
-f 1274/1549/7627 1309/1569/7628 1297/1536/7629
-f 1309/1569/7630 1323/1584/7631 1297/1536/7632
-f 1323/1584/7633 1324/1585/7634 1297/1536/7635
-f 1325/1586/7636 1326/1587/7637 1323/1584/7638
-f 1326/1587/7639 1324/1585/7640 1323/1584/7641
-f 1325/1586/7642 1308/1564/7643 1326/1587/7644
-f 1308/1564/7645 1296/1534/7646 1326/1587/7647
-f 1326/1587/7648 1296/1534/7649 1324/1585/7650
-f 1296/1534/7651 1297/1536/7652 1324/1585/7653
-f 1308/1564/7654 1325/1586/7655 1309/1569/7656
-f 1325/1586/7657 1323/1584/7658 1309/1569/7659
-f 1013/1588/7660 1029/1589/7661 1034/1590/7662
-f 1274/1555/7663 1306/1554/7664 1014/1236/7665
-f 1014/1236/7666 972/1235/7667 1274/1555/7668
-f 1311/1591/7669 1013/1588/7670 1306/1554/7671
-f 1013/1588/7672 1014/1236/7673 1306/1554/7674
-f 1313/1592/7675 1316/1593/7676 1029/1589/7677
-f 1311/1591/7678 1029/1589/7679 1013/1588/7680
-f 1034/1590/7681 1030/1594/7682 1033/1595/7683
-f 1034/1590/7684 1029/1589/7685 1030/1594/7686
-f 1033/1595/7687 1031/1596/7688 1032/1597/7689
-f 1033/1595/7690 1030/1594/7691 1031/1596/7692
-f 1313/1592/7693 1029/1589/7694 1311/1591/7695
-f 1322/1598/7696 1318/1599/7697 1316/1593/7698
-f 1322/1598/7699 1316/1593/7700 1313/1592/7701
-f 1320/1600/7702 1318/1599/7703 1322/1598/7704
-f 1327/1601/7705 1343/1602/7706 1335/1603/7707
-f 1335/1603/7708 1343/1602/7709 1351/1604/7710
-f 1328/1605/7711 1344/1606/7712 1336/1607/7713
-f 1336/1607/7714 1344/1606/7715 1352/1608/7716
-f 1329/1609/7717 1345/1610/7718 1337/1611/7719
-f 1337/1611/7720 1345/1610/7721 1353/1612/7722
-f 1330/1613/7723 1346/1614/7724 1338/1615/7725
-f 1338/1615/7726 1346/1614/7727 1354/1616/7728
-f 1331/1617/7729 1347/1618/7730 1339/1619/7731
-f 1339/1619/7732 1347/1618/7733 1355/1620/7734
-f 1332/1621/7735 1348/1622/7736 1340/1623/7737
-f 1340/1623/7738 1348/1622/7739 1356/1624/7740
-f 1333/1625/7741 1349/1626/7742 1341/1627/7743
-f 1341/1627/7744 1349/1626/7745 1357/1628/7746
-f 1334/1629/7747 1350/1630/7748 1342/1631/7749
-f 1342/1631/7750 1350/1630/7751 1358/1632/7752
-f 1328/1605/7753 1343/1602/7754 1381/1633/7755
-f 1381/1633/7756 1343/1602/7757 1380/1634/7758
-f 1329/1609/7759 1344/1606/7760 1383/1635/7761
-f 1383/1635/7762 1344/1606/7763 1382/1636/7764
-f 1330/1613/7765 1345/1610/7766 1369/1637/7767
-f 1369/1637/7768 1345/1610/7769 1368/1638/7770
-f 1331/1617/7771 1346/1614/7772 1371/1639/7773
-f 1371/1639/7774 1346/1614/7775 1370/1640/7776
-f 1332/1641/7777 1347/1618/7778 1373/1642/7779
-f 1373/1642/7780 1347/1618/7781 1372/1643/7782
-f 1333/1625/7783 1348/1622/7784 1375/1644/7785
-f 1375/1644/7786 1348/1622/7787 1374/1645/7788
-f 1334/1629/7789 1349/1626/7790 1377/1646/7791
-f 1377/1646/7792 1349/1626/7793 1376/1647/7794
-f 1379/1648/7795 1327/1601/7796 1378/1649/7797
-f 1378/1649/7798 1327/1601/7799 1350/1630/7800
-f 1379/1648/7801 1380/1634/7802 1327/1601/7803
-f 1327/1601/7804 1380/1634/7805 1343/1602/7806
-f 1328/1605/7807 1381/1633/7808 1344/1606/7809
-f 1344/1606/7810 1381/1633/7811 1382/1636/7812
-f 1329/1609/7813 1383/1635/7814 1345/1610/7815
-f 1345/1610/7816 1383/1635/7817 1368/1638/7818
-f 1330/1613/7819 1369/1637/7820 1346/1614/7821
-f 1346/1614/7822 1369/1637/7823 1370/1640/7824
-f 1333/1625/7825 1375/1644/7826 1349/1626/7827
-f 1349/1626/7828 1375/1644/7829 1376/1647/7830
-f 1334/1629/7831 1377/1646/7832 1350/1630/7833
-f 1350/1630/7834 1377/1646/7835 1378/1649/7836
-f 1358/1632/7837 1350/1630/7838 1335/1603/7839
-f 1335/1603/7840 1350/1630/7841 1327/1601/7842
-f 1334/1629/7843 1342/1631/7844 1349/1626/7845
-f 1349/1626/7846 1342/1631/7847 1357/1628/7848
-f 1333/1625/7849 1341/1627/7850 1348/1622/7851
-f 1348/1622/7852 1341/1627/7853 1356/1624/7854
-f 1332/1641/7855 1340/1650/7856 1347/1618/7857
-f 1347/1618/7858 1340/1650/7859 1355/1620/7860
-f 1331/1617/7861 1339/1619/7862 1346/1614/7863
-f 1346/1614/7864 1339/1619/7865 1354/1616/7866
-f 1330/1613/7867 1338/1615/7868 1345/1610/7869
-f 1345/1610/7870 1338/1615/7871 1353/1612/7872
-f 1329/1609/7873 1337/1611/7874 1344/1606/7875
-f 1344/1606/7876 1337/1611/7877 1352/1608/7878
-f 1328/1605/7879 1336/1607/7880 1343/1602/7881
-f 1343/1602/7882 1336/1607/7883 1351/1604/7884
-f 1336/1651/7885 1871/1652/7886 1351/1653/7887
-f 1351/1653/7888 1871/1652/7889 1886/1654/7890
-f 1335/1655/7891 1351/1653/7892 1885/1656/7893
-f 1885/1656/7894 1351/1653/7895 1886/1654/7896
-f 1337/1657/7897 1873/1658/7898 1352/1659/7899
-f 1352/1659/7900 1873/1658/7901 1872/1660/7902
-f 1336/1651/7903 1352/1659/7904 1871/1652/7905
-f 1871/1652/7906 1352/1659/7907 1872/1660/7908
-f 1338/1661/7909 1875/1662/7910 1353/1663/7911
-f 1353/1663/7912 1875/1662/7913 1874/1664/7914
-f 1337/1657/7915 1353/1663/7916 1873/1658/7917
-f 1873/1658/7918 1353/1663/7919 1874/1664/7920
-f 1339/1665/7921 1877/1666/7922 1354/1667/7923
-f 1354/1667/7924 1877/1666/7925 1876/1668/7926
-f 1338/1661/7927 1354/1667/7928 1875/1662/7929
-f 1875/1662/7930 1354/1667/7931 1876/1668/7932
-f 1340/1669/7933 1879/1670/7934 1355/1671/7935
-f 1355/1671/7936 1879/1670/7937 1878/1672/7938
-f 1339/1665/7939 1355/1671/7940 1877/1666/7941
-f 1877/1666/7942 1355/1671/7943 1878/1672/7944
-f 1341/1673/7945 1881/1674/7946 1356/1675/7947
-f 1356/1675/7948 1881/1674/7949 1880/1676/7950
-f 1340/1669/7951 1356/1675/7952 1879/1670/7953
-f 1879/1670/7954 1356/1675/7955 1880/1676/7956
-f 1342/1677/7957 1883/1678/7958 1357/1679/7959
-f 1357/1679/7960 1883/1678/7961 1882/1680/7962
-f 1341/1673/7963 1357/1679/7964 1881/1674/7965
-f 1881/1674/7966 1357/1679/7967 1882/1680/7968
-f 1335/1655/7969 1885/1656/7970 1358/1681/7971
-f 1358/1681/7972 1885/1656/7973 1884/1682/7974
-f 1342/1677/7975 1358/1681/7976 1883/1678/7977
-f 1883/1678/7978 1358/1681/7979 1884/1682/7980
-f 1360/1683/7981 1359/1684/7982 1361/1685/7983
-f 1361/1685/7984 1359/1684/7985 1362/1686/7986
-f 1362/1686/7987 1359/1684/7988 1363/1687/7989
-f 1363/1687/7990 1359/1684/7991 1364/1688/7992
-f 1364/1688/7993 1359/1684/7994 1365/1689/7995
-f 1365/1689/7996 1359/1684/7997 1366/1690/7998
-f 1366/1690/7999 1359/1684/8000 1367/1691/8001
-f 1367/1691/8002 1359/1684/8003 1360/1683/8004
-f 1331/1617/8005 1371/1639/8006 1347/1618/8007
-f 1347/1618/8008 1371/1639/8009 1372/1643/8010
-f 1332/1621/8011 1373/1692/8012 1348/1622/8013
-f 1348/1622/8014 1373/1692/8015 1374/1645/8016
-f 1385/1693/8017 1401/1694/8018 1384/1695/8019
-f 1384/1695/8020 1401/1694/8021 1396/1696/8022
-f 1386/1697/8023 1400/1698/8024 1385/1693/8025
-f 1385/1693/8026 1400/1698/8027 1401/1694/8028
-f 1387/1699/8029 1399/1700/8030 1386/1697/8031
-f 1386/1697/8032 1399/1700/8033 1400/1698/8034
-f 1387/1701/8035 1388/1702/8036 1399/1703/8037
-f 1399/1703/8038 1388/1702/8039 1398/1704/8040
-f 1388/1702/8041 1389/1705/8042 1398/1704/8043
-f 1398/1704/8044 1389/1705/8045 1397/1706/8046
-f 1389/1705/8047 1384/1695/8048 1397/1706/8049
-f 1397/1706/8050 1384/1695/8051 1396/1696/8052
-f 1396/1696/8053 1390/1707/8054 1397/1706/8055
-f 1397/1706/8056 1390/1707/8057 1395/1708/8058
-f 1397/1706/8059 1395/1708/8060 1398/1704/8061
-f 1398/1704/8062 1395/1708/8063 1394/1709/8064
-f 1398/1704/8065 1394/1709/8066 1399/1703/8067
-f 1399/1703/8068 1394/1709/8069 1393/1710/8070
-f 1400/1698/8071 1399/1700/8072 1392/1711/8073
-f 1392/1711/8074 1399/1700/8075 1393/1712/8076
-f 1401/1694/8077 1400/1698/8078 1391/1713/8079
-f 1391/1713/8080 1400/1698/8081 1392/1711/8082
-f 1396/1696/8083 1401/1694/8084 1390/1707/8085
-f 1390/1707/8086 1401/1694/8087 1391/1713/8088
-f 1403/1714/8089 1419/1715/8090 1402/1716/8091
-f 1402/1716/8092 1419/1715/8093 1414/1717/8094
-f 1404/1718/8095 1418/1719/8096 1403/1714/8097
-f 1403/1714/8098 1418/1719/8099 1419/1715/8100
-f 1405/1720/8101 1417/1721/8102 1404/1718/8103
-f 1404/1718/8104 1417/1721/8105 1418/1719/8106
-f 1405/1722/8107 1406/1723/8108 1417/1724/8109
-f 1417/1724/8110 1406/1723/8111 1416/1725/8112
-f 1406/1723/8113 1407/1726/8114 1416/1725/8115
-f 1416/1725/8116 1407/1726/8117 1415/1727/8118
-f 1407/1726/8119 1402/1716/8120 1415/1727/8121
-f 1415/1727/8122 1402/1716/8123 1414/1717/8124
-f 1414/1717/8125 1408/1728/8126 1415/1727/8127
-f 1415/1727/8128 1408/1728/8129 1413/1729/8130
-f 1415/1727/8131 1413/1729/8132 1416/1725/8133
-f 1416/1725/8134 1413/1729/8135 1412/1730/8136
-f 1416/1725/8137 1412/1730/8138 1417/1724/8139
-f 1417/1724/8140 1412/1730/8141 1411/1731/8142
-f 1418/1719/8143 1417/1721/8144 1410/1732/8145
-f 1410/1732/8146 1417/1721/8147 1411/1733/8148
-f 1419/1715/8149 1418/1719/8150 1409/1734/8151
-f 1409/1734/8152 1418/1719/8153 1410/1732/8154
-f 1414/1717/8155 1419/1715/8156 1408/1728/8157
-f 1408/1728/8158 1419/1715/8159 1409/1734/8160
-f 1439/1735/8161 1485/1736/8162 1429/1737/8163
-f 1429/1737/8164 1485/1736/8165 1428/1738/8166
-f 1429/1739/8167 1432/1740/8168 1439/1741/8169
-f 1439/1741/8170 1432/1740/8171 1438/1742/8172
-f 1438/1742/8173 1432/1740/8174 1430/1743/8175
-f 1486/1744/8176 1437/1745/8177 1438/1746/8178
-f 1427/1747/8179 1426/1748/8180 1424/1749/8181
-f 1424/1749/8182 1426/1748/8183 1425/1750/8184
-f 1423/1751/8185 1422/1752/8186 1428/1738/8187
-f 1428/1738/8188 1422/1752/8189 1429/1737/8190
-f 1432/1740/8191 1433/1753/8192 1430/1743/8193
-f 1430/1743/8194 1433/1753/8195 1420/1754/8196
-f 1421/1755/8197 1431/1756/8198 1420/1757/8199
-f 1420/1757/8200 1431/1756/8201 1430/1758/8202
-f 1422/1759/8203 1423/1760/8204 1425/1750/8205
-f 1425/1750/8206 1423/1760/8207 1424/1749/8208
-f 1420/1754/8209 1433/1753/8210 1426/1748/8211
-f 1426/1748/8212 1433/1753/8213 1425/1750/8214
-f 1427/1747/8215 1421/1761/8216 1426/1748/8217
-f 1426/1748/8218 1421/1761/8219 1420/1754/8220
-f 1422/1752/8221 1435/1762/8222 1429/1737/8223
-f 1434/1763/8224 1436/1764/8225 1432/1740/8226
-f 1432/1740/8227 1436/1764/8228 1433/1753/8229
-f 1435/1765/8230 1434/1763/8231 1429/1739/8232
-f 1429/1739/8233 1434/1763/8234 1432/1740/8235
-f 1435/1765/8236 1422/1759/8237 1434/1763/8238
-f 1434/1763/8239 1422/1759/8240 1436/1764/8241
-f 1422/1759/8242 1425/1750/8243 1436/1764/8244
-f 1436/1764/8245 1425/1750/8246 1433/1753/8247
-f 1442/1766/8248 1439/1741/8249 1441/1767/8250
-f 1441/1767/8251 1439/1741/8252 1438/1742/8253
-f 1444/1768/8254 1442/1766/8255 1443/1769/8256
-f 1443/1769/8257 1442/1766/8258 1441/1767/8259
-f 1437/1770/8260 1440/1771/8261 1443/1769/8262
-f 1443/1769/8263 1440/1771/8264 1444/1768/8265
-f 1441/1772/8266 1438/1746/8267 1443/1773/8268
-f 1443/1773/8269 1438/1746/8270 1437/1745/8271
-f 1440/1774/8272 1439/1735/8273 1444/1775/8274
-f 1444/1775/8275 1439/1735/8276 1442/1776/8277
-f 1454/1777/8278 1456/1778/8279 1453/1779/8280
-f 1453/1779/8281 1456/1778/8282 1452/1780/8283
-f 1445/1781/8284 1455/1782/8285 1446/1783/8286
-f 1446/1783/8287 1455/1782/8288 1447/1784/8289
-f 1449/1785/8290 1448/1786/8291 1455/1782/8292
-f 1455/1782/8293 1448/1786/8294 1447/1784/8295
-f 1451/1787/8296 1450/1788/8297 1446/1789/8298
-f 1446/1789/8299 1450/1788/8300 1445/1790/8301
-f 1452/1791/8302 1451/1787/8303 1447/1792/8304
-f 1447/1792/8305 1451/1787/8306 1446/1789/8307
-f 1453/1793/8308 1452/1791/8309 1448/1794/8310
-f 1448/1794/8311 1452/1791/8312 1447/1792/8313
-f 1449/1795/8314 1454/1796/8315 1448/1794/8316
-f 1448/1794/8317 1454/1796/8318 1453/1793/8319
-f 1450/1797/8320 1451/1798/8321 1456/1778/8322
-f 1456/1778/8323 1451/1798/8324 1452/1780/8325
-f 1467/1799/8326 1468/1800/8327 1466/1801/8328
-f 1466/1801/8329 1468/1800/8330 1470/1802/8331
-f 1469/1803/8332 1459/1804/8333 1457/1805/8334
-f 1457/1805/8335 1459/1804/8336 1458/1806/8337
-f 1459/1804/8338 1469/1803/8339 1460/1807/8340
-f 1465/1808/8341 1466/1801/8342 1470/1802/8343
-f 1469/1803/8344 1462/1809/8345 1460/1807/8346
-f 1460/1807/8347 1462/1809/8348 1461/1810/8349
-f 1464/1811/8350 1463/1812/8351 1458/1813/8352
-f 1458/1813/8353 1463/1812/8354 1457/1814/8355
-f 1464/1811/8356 1458/1813/8357 1465/1815/8358
-f 1465/1815/8359 1458/1813/8360 1459/1816/8361
-f 1466/1817/8362 1465/1815/8363 1460/1818/8364
-f 1460/1818/8365 1465/1815/8366 1459/1816/8367
-f 1467/1819/8368 1466/1817/8369 1461/1820/8370
-f 1461/1820/8371 1466/1817/8372 1460/1818/8373
-f 1462/1821/8374 1468/1822/8375 1461/1820/8376
-f 1461/1820/8377 1468/1822/8378 1467/1819/8379
-f 1470/1802/8380 1463/1823/8381 1465/1808/8382
-f 1465/1808/8383 1463/1823/8384 1464/1824/8385
-f 1482/1825/8386 1484/1826/8387 1481/1827/8388
-f 1481/1827/8389 1484/1826/8390 1480/1828/8391
-f 1471/1829/8392 1483/1830/8393 1472/1831/8394
-f 1483/1830/8395 1473/1832/8396 1472/1831/8397
-f 1473/1832/8398 1483/1830/8399 1474/1833/8400
-f 1479/1834/8401 1480/1828/8402 1484/1826/8403
-f 1476/1835/8404 1475/1836/8405 1483/1830/8406
-f 1483/1830/8407 1475/1836/8408 1474/1833/8409
-f 1478/1837/8410 1477/1838/8411 1472/1839/8412
-f 1472/1839/8413 1477/1838/8414 1471/1840/8415
-f 1478/1837/8416 1472/1839/8417 1479/1841/8418
-f 1479/1841/8419 1472/1839/8420 1473/1842/8421
-f 1480/1843/8422 1479/1841/8423 1474/1844/8424
-f 1474/1844/8425 1479/1841/8426 1473/1842/8427
-f 1481/1845/8428 1480/1843/8429 1475/1846/8430
-f 1475/1846/8431 1480/1843/8432 1474/1844/8433
-f 1476/1847/8434 1482/1848/8435 1475/1846/8436
-f 1475/1846/8437 1482/1848/8438 1481/1845/8439
-f 1477/1849/8440 1478/1850/8441 1484/1826/8442
-f 1484/1826/8443 1478/1850/8444 1479/1834/8445
-f 1439/1735/8446 1440/1774/8447 1485/1736/8448
-f 1431/1756/8449 1486/1744/8450 1430/1758/8451
-f 1430/1758/8452 1486/1744/8453 1438/1746/8454
-f 1491/1851/8455 1492/1852/8456 1494/1853/8457
-f 1494/1853/8458 1492/1852/8459 1493/1854/8460
-f 1492/1855/8461 1491/1856/8462 1488/1857/8463
-f 1488/1857/8464 1491/1856/8465 1487/1858/8466
-f 1493/1859/8467 1492/1855/8468 1489/1860/8469
-f 1489/1860/8470 1492/1855/8471 1488/1857/8472
-f 1494/1861/8473 1493/1859/8474 1490/1862/8475
-f 1490/1862/8476 1493/1859/8477 1489/1860/8478
-f 1494/1861/8479 1490/1862/8480 1497/1863/8481
-f 1497/1863/8482 1490/1862/8483 1495/1864/8484
-f 1487/1865/8485 1490/1866/8486 1488/1867/8487
-f 1488/1867/8488 1490/1866/8489 1489/1868/8490
-f 1491/1856/8491 1498/1869/8492 1487/1858/8493
-f 1487/1858/8494 1498/1869/8495 1496/1870/8496
-f 1503/1871/8497 1504/1872/8498 1506/1873/8499
-f 1506/1873/8500 1504/1872/8501 1505/1874/8502
-f 1504/1875/8503 1503/1876/8504 1500/1877/8505
-f 1500/1877/8506 1503/1876/8507 1499/1878/8508
-f 1505/1879/8509 1504/1875/8510 1501/1880/8511
-f 1501/1880/8512 1504/1875/8513 1500/1877/8514
-f 1506/1881/8515 1505/1879/8516 1502/1882/8517
-f 1502/1882/8518 1505/1879/8519 1501/1880/8520
-f 1506/1881/8521 1502/1882/8522 1509/1883/8523
-f 1509/1883/8524 1502/1882/8525 1507/1884/8526
-f 1508/1885/8527 1507/1886/8528 1499/1887/8529
-f 1499/1887/8530 1507/1886/8531 1502/1888/8532
-f 1503/1876/8533 1510/1889/8534 1499/1878/8535
-f 1499/1878/8536 1510/1889/8537 1508/1890/8538
-f 1515/1891/8539 1516/1892/8540 1518/1893/8541
-f 1518/1893/8542 1516/1892/8543 1517/1894/8544
-f 1516/1895/8545 1515/1896/8546 1512/1897/8547
-f 1512/1897/8548 1515/1896/8549 1511/1898/8550
-f 1517/1899/8551 1516/1895/8552 1513/1900/8553
-f 1513/1900/8554 1516/1895/8555 1512/1897/8556
-f 1518/1901/8557 1517/1899/8558 1514/1902/8559
-f 1514/1902/8560 1517/1899/8561 1513/1900/8562
-f 1518/1901/8563 1514/1902/8564 1521/1903/8565
-f 1521/1903/8566 1514/1902/8567 1519/1904/8568
-f 1520/1905/8569 1519/1906/8570 1511/1907/8571
-f 1511/1907/8572 1519/1906/8573 1514/1908/8574
-f 1515/1896/8575 1522/1909/8576 1511/1898/8577
-f 1511/1898/8578 1522/1909/8579 1520/1910/8580
-f 1527/1911/8581 1528/1912/8582 1530/1913/8583
-f 1530/1913/8584 1528/1912/8585 1529/1914/8586
-f 1528/1915/8587 1527/1916/8588 1524/1917/8589
-f 1524/1917/8590 1527/1916/8591 1523/1918/8592
-f 1529/1919/8593 1528/1915/8594 1525/1920/8595
-f 1525/1920/8596 1528/1915/8597 1524/1917/8598
-f 1530/1921/8599 1529/1919/8600 1526/1922/8601
-f 1526/1922/8602 1529/1919/8603 1525/1920/8604
-f 1530/1921/8605 1526/1922/8606 1533/1923/8607
-f 1533/1923/8608 1526/1922/8609 1531/1924/8610
-f 1532/1925/8611 1531/1926/8612 1523/1927/8613
-f 1523/1927/8614 1531/1926/8615 1526/1928/8616
-f 1527/1916/8617 1534/1929/8618 1523/1918/8619
-f 1523/1918/8620 1534/1929/8621 1532/1930/8622
-f 1545/1931/8623 1541/1932/8624 1542/1933/8625
-f 1540/1934/8626 1539/1935/8627 1536/1936/8628
-f 1536/1936/8629 1539/1935/8630 1535/1937/8631
-f 1541/1938/8632 1540/1934/8633 1537/1939/8634
-f 1537/1939/8635 1540/1934/8636 1536/1936/8637
-f 1542/1940/8638 1541/1938/8639 1538/1941/8640
-f 1538/1941/8641 1541/1938/8642 1537/1939/8643
-f 1542/1940/8644 1538/1941/8645 1545/1942/8646
-f 1545/1942/8647 1538/1941/8648 1543/1943/8649
-f 1537/1944/8650 1543/1945/8651 1538/1946/8652
-f 1539/1935/8653 1546/1947/8654 1535/1937/8655
-f 1535/1937/8656 1546/1947/8657 1544/1948/8658
-f 1551/1949/8659 1554/1950/8660 1558/1951/8661
-f 1558/1951/8662 1554/1950/8663 1557/1952/8664
-f 1552/1953/8665 1551/1954/8666 1548/1955/8667
-f 1548/1955/8668 1551/1954/8669 1547/1956/8670
-f 1553/1957/8671 1552/1953/8672 1549/1958/8673
-f 1549/1958/8674 1552/1953/8675 1548/1955/8676
-f 1554/1959/8677 1553/1957/8678 1550/1960/8679
-f 1550/1960/8680 1553/1957/8681 1549/1958/8682
-f 1554/1959/8683 1550/1960/8684 1557/1961/8685
-f 1557/1961/8686 1550/1960/8687 1555/1962/8688
-f 1556/1963/8689 1555/1964/8690 1547/1965/8691
-f 1547/1965/8692 1555/1964/8693 1550/1966/8694
-f 1551/1954/8695 1558/1967/8696 1547/1956/8697
-f 1547/1956/8698 1558/1967/8699 1556/1968/8700
-f 1564/1969/8701 1581/1970/8702 1562/1971/8703
-f 1562/1971/8704 1581/1970/8705 1559/1972/8706
-f 1574/1973/8707 1577/1974/8708 1572/1975/8709
-f 1572/1975/8710 1577/1974/8711 1571/1976/8712
-f 1572/1977/8713 1571/1978/8714 1562/1979/8715
-f 1562/1979/8716 1571/1978/8717 1561/1980/8718
-f 1569/1981/8719 1579/1982/8720 1559/1983/8721
-f 1559/1983/8722 1579/1982/8723 1580/1984/8724
-f 1573/1985/8725 1570/1986/8726 1563/1987/8727
-f 1563/1987/8728 1570/1986/8729 1560/1988/8730
-f 1576/1989/8731 1573/1985/8732 1566/1990/8733
-f 1566/1990/8734 1573/1985/8735 1563/1987/8736
-f 1578/1991/8737 1576/1989/8738 1568/1992/8739
-f 1568/1992/8740 1576/1989/8741 1566/1990/8742
-f 1575/1993/8743 1578/1991/8744 1565/1994/8745
-f 1565/1994/8746 1578/1991/8747 1568/1992/8748
-f 1574/1995/8749 1575/1993/8750 1564/1996/8751
-f 1564/1996/8752 1575/1993/8753 1565/1994/8754
-f 1574/1995/8755 1564/1996/8756 1577/1997/8757
-f 1577/1997/8758 1564/1996/8759 1567/1998/8760
-f 1571/1978/8761 1577/1997/8762 1561/1980/8763
-f 1561/1980/8764 1577/1997/8765 1567/1998/8766
-f 1569/1999/8767 1572/1975/8768 1579/2000/8769
-f 1572/1977/8770 1562/1979/8771 1579/1982/8772
-f 1579/1982/8773 1562/1979/8774 1580/1984/8775
-f 1562/1971/8776 1559/1972/8777 1580/2001/8778
-f 1564/1969/8779 1562/1971/8780 1567/2002/8781
-f 1567/2002/8782 1562/1971/8783 1561/2003/8784
-f 1581/1970/8785 1565/2004/8786 1560/2005/8787
-f 1560/2005/8788 1565/2004/8789 1563/2006/8790
-f 1581/1970/8791 1564/1969/8792 1565/2004/8793
-f 1565/2004/8794 1568/2007/8795 1563/2006/8796
-f 1563/2006/8797 1568/2007/8798 1566/2008/8799
-f 1582/2009/8800 1575/2010/8801 1574/1973/8802
-f 1574/1973/8803 1572/1975/8804 1582/2009/8805
-f 1582/2009/8806 1572/1975/8807 1569/1999/8808
-f 1576/2011/8809 1578/2012/8810 1573/2013/8811
-f 1573/2013/8812 1578/2012/8813 1575/2010/8814
-f 1573/2013/8815 1575/2010/8816 1570/2014/8817
-f 1570/2014/8818 1575/2010/8819 1582/2009/8820
-f 1588/2015/8821 1605/2016/8822 1586/2017/8823
-f 1586/2017/8824 1605/2016/8825 1583/2018/8826
-f 1598/2019/8827 1601/2020/8828 1596/2021/8829
-f 1596/2021/8830 1601/2020/8831 1595/2022/8832
-f 1596/2023/8833 1595/2024/8834 1586/2025/8835
-f 1586/2025/8836 1595/2024/8837 1585/2026/8838
-f 1593/2027/8839 1603/2028/8840 1583/2029/8841
-f 1583/2029/8842 1603/2028/8843 1604/2030/8844
-f 1597/2031/8845 1594/2032/8846 1587/2033/8847
-f 1587/2033/8848 1594/2032/8849 1584/2034/8850
-f 1600/2035/8851 1597/2031/8852 1590/2036/8853
-f 1590/2036/8854 1597/2031/8855 1587/2033/8856
-f 1602/2037/8857 1600/2035/8858 1592/2038/8859
-f 1592/2038/8860 1600/2035/8861 1590/2036/8862
-f 1599/2039/8863 1602/2037/8864 1589/2040/8865
-f 1589/2040/8866 1602/2037/8867 1592/2038/8868
-f 1598/2041/8869 1599/2039/8870 1588/2042/8871
-f 1588/2042/8872 1599/2039/8873 1589/2040/8874
-f 1598/2041/8875 1588/2042/8876 1601/2043/8877
-f 1601/2043/8878 1588/2042/8879 1591/2044/8880
-f 1595/2024/8881 1601/2043/8882 1585/2026/8883
-f 1585/2026/8884 1601/2043/8885 1591/2044/8886
-f 1593/2045/8887 1596/2021/8888 1603/2046/8889
-f 1596/2023/8890 1586/2025/8891 1603/2028/8892
-f 1603/2028/8893 1586/2025/8894 1604/2030/8895
-f 1586/2017/8896 1583/2018/8897 1604/2047/8898
-f 1588/2015/8899 1586/2017/8900 1591/2048/8901
-f 1591/2048/8902 1586/2017/8903 1585/2049/8904
-f 1605/2016/8905 1589/2050/8906 1584/2051/8907
-f 1584/2051/8908 1589/2050/8909 1587/2052/8910
-f 1605/2016/8911 1588/2015/8912 1589/2050/8913
-f 1589/2050/8914 1592/2053/8915 1587/2052/8916
-f 1587/2052/8917 1592/2053/8918 1590/2054/8919
-f 1606/2055/8920 1599/2056/8921 1598/2019/8922
-f 1598/2019/8923 1596/2021/8924 1606/2055/8925
-f 1606/2055/8926 1596/2021/8927 1593/2045/8928
-f 1600/2057/8929 1602/2058/8930 1597/2059/8931
-f 1597/2059/8932 1602/2058/8933 1599/2056/8934
-f 1597/2059/8935 1599/2056/8936 1594/2060/8937
-f 1594/2060/8938 1599/2056/8939 1606/2055/8940
-f 1616/2061/8941 1615/2062/8942 1608/2063/8943
-f 1608/2063/8944 1615/2062/8945 1607/2064/8946
-f 1618/2065/8947 1617/2066/8948 1610/2067/8949
-f 1610/2067/8950 1617/2066/8951 1609/2068/8952
-f 1621/2069/8953 1618/2065/8954 1613/2070/8955
-f 1613/2070/8956 1618/2065/8957 1610/2067/8958
-f 1622/2071/8959 1621/2069/8960 1614/2072/8961
-f 1614/2072/8962 1621/2069/8963 1613/2070/8964
-f 1619/2073/8965 1620/2074/8966 1611/2075/8967
-f 1611/2075/8968 1620/2074/8969 1612/2076/8970
-f 1615/2062/8971 1619/2073/8972 1607/2064/8973
-f 1607/2064/8974 1619/2073/8975 1611/2075/8976
-f 1616/2061/8977 1608/2063/8978 1624/2077/8979
-f 1624/2077/8980 1608/2063/8981 1623/2078/8982
-f 1612/2079/8983 1608/2080/8984 1611/2081/8985
-f 1611/2081/8986 1608/2080/8987 1607/2082/8988
-f 1624/2083/8989 1626/2084/8990 1616/2085/8991
-f 1616/2085/8992 1626/2084/8993 1620/2086/8994
-f 1620/2074/8995 1626/2087/8996 1612/2076/8997
-f 1612/2076/8998 1626/2087/8999 1625/2088/9000
-f 1622/2071/9001 1614/2072/9002 1629/2089/9003
-f 1629/2089/9004 1614/2072/9005 1627/2090/9006
-f 1628/2091/9007 1627/2092/9008 1609/2093/9009
-f 1609/2093/9010 1627/2092/9011 1614/2094/9012
-f 1617/2095/9013 1618/2096/9014 1622/2097/9015
-f 1622/2097/9016 1618/2096/9017 1621/2098/9018
-f 1617/2066/9019 1630/2099/9020 1609/2068/9021
-f 1609/2068/9022 1630/2099/9023 1628/2100/9024
-f 1636/2101/9025 1653/2102/9026 1634/2103/9027
-f 1634/2103/9028 1653/2102/9029 1631/2104/9030
-f 1646/2105/9031 1649/2106/9032 1644/2107/9033
-f 1644/2107/9034 1649/2106/9035 1643/2108/9036
-f 1644/2109/9037 1643/2110/9038 1634/2111/9039
-f 1634/2111/9040 1643/2110/9041 1633/2112/9042
-f 1641/2113/9043 1651/2114/9044 1631/2115/9045
-f 1631/2115/9046 1651/2114/9047 1652/2116/9048
-f 1645/2117/9049 1642/2118/9050 1635/2119/9051
-f 1635/2119/9052 1642/2118/9053 1632/2120/9054
-f 1648/2121/9055 1645/2117/9056 1638/2122/9057
-f 1638/2122/9058 1645/2117/9059 1635/2119/9060
-f 1650/2123/9061 1648/2121/9062 1640/2124/9063
-f 1640/2124/9064 1648/2121/9065 1638/2122/9066
-f 1647/2125/9067 1650/2123/9068 1637/2126/9069
-f 1637/2126/9070 1650/2123/9071 1640/2124/9072
-f 1646/2127/9073 1647/2125/9074 1636/2128/9075
-f 1636/2128/9076 1647/2125/9077 1637/2126/9078
-f 1646/2127/9079 1636/2128/9080 1649/2129/9081
-f 1649/2129/9082 1636/2128/9083 1639/2130/9084
-f 1643/2110/9085 1649/2129/9086 1633/2112/9087
-f 1633/2112/9088 1649/2129/9089 1639/2130/9090
-f 1641/2131/9091 1644/2107/9092 1651/2132/9093
-f 1644/2109/9094 1634/2111/9095 1651/2114/9096
-f 1651/2114/9097 1634/2111/9098 1652/2116/9099
-f 1634/2103/9100 1631/2104/9101 1652/2133/9102
-f 1636/2101/9103 1634/2103/9104 1639/2134/9105
-f 1639/2134/9106 1634/2103/9107 1633/2135/9108
-f 1653/2102/9109 1637/2136/9110 1632/2137/9111
-f 1632/2137/9112 1637/2136/9113 1635/2138/9114
-f 1653/2102/9115 1636/2101/9116 1637/2136/9117
-f 1637/2136/9118 1640/2139/9119 1635/2138/9120
-f 1635/2138/9121 1640/2139/9122 1638/2140/9123
-f 1654/2141/9124 1647/2142/9125 1646/2105/9126
-f 1646/2105/9127 1644/2107/9128 1654/2141/9129
-f 1654/2141/9130 1644/2107/9131 1641/2131/9132
-f 1648/2143/9133 1650/2144/9134 1645/2145/9135
-f 1645/2145/9136 1650/2144/9137 1647/2142/9138
-f 1645/2145/9139 1647/2142/9140 1642/2146/9141
-f 1642/2146/9142 1647/2142/9143 1654/2141/9144
-f 1664/2147/9145 1663/2148/9146 1656/2149/9147
-f 1656/2149/9148 1663/2148/9149 1655/2150/9150
-f 1666/2151/9151 1665/2152/9152 1658/2153/9153
-f 1658/2153/9154 1665/2152/9155 1657/2154/9156
-f 1669/2155/9157 1666/2151/9158 1661/2156/9159
-f 1661/2156/9160 1666/2151/9161 1658/2153/9162
-f 1670/2157/9163 1669/2155/9164 1662/2158/9165
-f 1662/2158/9166 1669/2155/9167 1661/2156/9168
-f 1667/2159/9169 1668/2160/9170 1659/2161/9171
-f 1659/2161/9172 1668/2160/9173 1660/2162/9174
-f 1663/2148/9175 1667/2159/9176 1655/2150/9177
-f 1655/2150/9178 1667/2159/9179 1659/2161/9180
-f 1664/2147/9181 1656/2149/9182 1672/2163/9183
-f 1672/2163/9184 1656/2149/9185 1671/2164/9186
-f 1660/2165/9187 1656/2166/9188 1659/2167/9189
-f 1659/2167/9190 1656/2166/9191 1655/2168/9192
-f 1672/2169/9193 1674/2170/9194 1664/2171/9195
-f 1664/2171/9196 1674/2170/9197 1668/2172/9198
-f 1668/2160/9199 1674/2173/9200 1660/2162/9201
-f 1660/2162/9202 1674/2173/9203 1673/2174/9204
-f 1670/2157/9205 1662/2158/9206 1677/2175/9207
-f 1677/2175/9208 1662/2158/9209 1675/2176/9210
-f 1657/2177/9211 1662/2178/9212 1658/2179/9213
-f 1658/2179/9214 1662/2178/9215 1661/2180/9216
-f 1665/2181/9217 1666/2182/9218 1670/2183/9219
-f 1670/2183/9220 1666/2182/9221 1669/2184/9222
-f 1665/2152/9223 1678/2185/9224 1657/2154/9225
-f 1657/2154/9226 1678/2185/9227 1676/2186/9228
-f 1684/2187/9229 1701/2188/9230 1682/2189/9231
-f 1682/2189/9232 1701/2188/9233 1679/2190/9234
-f 1694/2191/9235 1697/2192/9236 1692/2193/9237
-f 1692/2193/9238 1697/2192/9239 1691/2194/9240
-f 1692/2195/9241 1691/2196/9242 1682/2197/9243
-f 1682/2197/9244 1691/2196/9245 1681/2198/9246
-f 1689/2199/9247 1699/2200/9248 1679/2201/9249
-f 1679/2201/9250 1699/2200/9251 1700/2202/9252
-f 1693/2203/9253 1690/2204/9254 1683/2205/9255
-f 1683/2205/9256 1690/2204/9257 1680/2206/9258
-f 1696/2207/9259 1693/2203/9260 1686/2208/9261
-f 1686/2208/9262 1693/2203/9263 1683/2205/9264
-f 1698/2209/9265 1696/2207/9266 1688/2210/9267
-f 1688/2210/9268 1696/2207/9269 1686/2208/9270
-f 1695/2211/9271 1698/2209/9272 1685/2212/9273
-f 1685/2212/9274 1698/2209/9275 1688/2210/9276
-f 1694/2213/9277 1695/2211/9278 1684/2214/9279
-f 1684/2214/9280 1695/2211/9281 1685/2212/9282
-f 1694/2213/9283 1684/2214/9284 1697/2215/9285
-f 1697/2215/9286 1684/2214/9287 1687/2216/9288
-f 1691/2196/9289 1697/2215/9290 1681/2198/9291
-f 1681/2198/9292 1697/2215/9293 1687/2216/9294
-f 1689/2217/9295 1692/2193/9296 1699/2218/9297
-f 1692/2195/9298 1682/2197/9299 1699/2200/9300
-f 1699/2200/9301 1682/2197/9302 1700/2202/9303
-f 1682/2189/9304 1679/2190/9305 1700/2219/9306
-f 1684/2187/9307 1682/2189/9308 1687/2220/9309
-f 1687/2220/9310 1682/2189/9311 1681/2221/9312
-f 1701/2188/9313 1685/2222/9314 1680/2223/9315
-f 1680/2223/9316 1685/2222/9317 1683/2224/9318
-f 1701/2188/9319 1684/2187/9320 1685/2222/9321
-f 1685/2222/9322 1688/2225/9323 1683/2224/9324
-f 1683/2224/9325 1688/2225/9326 1686/2226/9327
-f 1702/2227/9328 1695/2228/9329 1694/2191/9330
-f 1694/2191/9331 1692/2193/9332 1702/2227/9333
-f 1702/2227/9334 1692/2193/9335 1689/2217/9336
-f 1696/2229/9337 1698/2230/9338 1693/2231/9339
-f 1693/2231/9340 1698/2230/9341 1695/2228/9342
-f 1693/2231/9343 1695/2228/9344 1690/2232/9345
-f 1690/2232/9346 1695/2228/9347 1702/2227/9348
-f 1723/2233/9349 1708/2234/9350 1709/2235/9351
-f 1718/2236/9352 1721/2237/9353 1716/2238/9354
-f 1716/2238/9355 1721/2237/9356 1715/2239/9357
-f 1716/2240/9358 1715/2241/9359 1706/2242/9360
-f 1706/2242/9361 1715/2241/9362 1705/2243/9363
-f 1713/2244/9364 1716/2240/9365 1703/2245/9366
-f 1703/2245/9367 1716/2240/9368 1706/2242/9369
-f 1717/2246/9370 1714/2247/9371 1707/2248/9372
-f 1707/2248/9373 1714/2247/9374 1704/2249/9375
-f 1720/2250/9376 1717/2246/9377 1710/2251/9378
-f 1710/2251/9379 1717/2246/9380 1707/2248/9381
-f 1722/2252/9382 1720/2250/9383 1712/2253/9384
-f 1712/2253/9385 1720/2250/9386 1710/2251/9387
-f 1719/2254/9388 1722/2252/9389 1709/2255/9390
-f 1709/2255/9391 1722/2252/9392 1712/2253/9393
-f 1718/2256/9394 1719/2254/9395 1708/2257/9396
-f 1708/2257/9397 1719/2254/9398 1709/2255/9399
-f 1718/2256/9400 1708/2257/9401 1721/2258/9402
-f 1721/2258/9403 1708/2257/9404 1711/2259/9405
-f 1715/2241/9406 1721/2258/9407 1705/2243/9408
-f 1705/2243/9409 1721/2258/9410 1711/2259/9411
-f 1708/2234/9412 1706/2260/9413 1711/2261/9414
-f 1711/2261/9415 1706/2260/9416 1705/2262/9417
-f 1709/2235/9418 1712/2263/9419 1707/2264/9420
-f 1707/2264/9421 1712/2263/9422 1710/2265/9423
-f 1723/2233/9424 1709/2235/9425 1704/2266/9426
-f 1704/2266/9427 1709/2235/9428 1707/2264/9429
-f 1708/2234/9430 1723/2233/9431 1706/2260/9432
-f 1706/2260/9433 1723/2233/9434 1703/2267/9435
-f 1724/2268/9436 1719/2269/9437 1718/2236/9438
-f 1718/2236/9439 1716/2238/9440 1724/2268/9441
-f 1724/2268/9442 1716/2238/9443 1713/2270/9444
-f 1720/2271/9445 1722/2272/9446 1717/2273/9447
-f 1717/2273/9448 1722/2272/9449 1719/2269/9450
-f 1717/2273/9451 1719/2269/9452 1714/2274/9453
-f 1714/2274/9454 1719/2269/9455 1724/2268/9456
-f 1730/2275/9457 1729/2276/9458 1726/2277/9459
-f 1726/2277/9460 1729/2276/9461 1725/2278/9462
-f 1731/2279/9463 1730/2275/9464 1727/2280/9465
-f 1727/2280/9466 1730/2275/9467 1726/2277/9468
-f 1732/2281/9469 1731/2279/9470 1728/2282/9471
-f 1728/2282/9472 1731/2279/9473 1727/2280/9474
-f 1729/2283/9475 1732/2281/9476 1725/2284/9477
-f 1725/2284/9478 1732/2281/9479 1728/2282/9480
-f 1738/2285/9481 1737/2286/9482 1734/2287/9483
-f 1734/2287/9484 1737/2286/9485 1733/2288/9486
-f 1739/2289/9487 1738/2285/9488 1735/2290/9489
-f 1735/2290/9490 1738/2285/9491 1734/2287/9492
-f 1740/2291/9493 1739/2289/9494 1736/2292/9495
-f 1736/2292/9496 1739/2289/9497 1735/2290/9498
-f 1737/2293/9499 1740/2291/9500 1733/2294/9501
-f 1733/2294/9502 1740/2291/9503 1736/2292/9504
-f 1746/2295/9505 1745/2296/9506 1742/2297/9507
-f 1742/2297/9508 1745/2296/9509 1741/2298/9510
-f 1747/2299/9511 1746/2295/9512 1743/2300/9513
-f 1743/2300/9514 1746/2295/9515 1742/2297/9516
-f 1748/2301/9517 1747/2299/9518 1744/2302/9519
-f 1744/2302/9520 1747/2299/9521 1743/2300/9522
-f 1745/2303/9523 1748/2301/9524 1741/2304/9525
-f 1741/2304/9526 1748/2301/9527 1744/2302/9528
-f 1676/2305/9529 1675/2306/9530 1657/2177/9531
-f 1657/2177/9532 1675/2306/9533 1662/2178/9534
-f 1673/2307/9535 1671/2308/9536 1660/2165/9537
-f 1660/2165/9538 1671/2308/9539 1656/2166/9540
-f 1668/2172/9541 1667/2309/9542 1664/2171/9543
-f 1664/2171/9544 1667/2309/9545 1663/2310/9546
-f 1677/2311/9547 1678/2312/9548 1670/2183/9549
-f 1670/2183/9550 1678/2312/9551 1665/2181/9552
-f 1625/2313/9553 1623/2314/9554 1612/2079/9555
-f 1612/2079/9556 1623/2314/9557 1608/2080/9558
-f 1609/2093/9559 1614/2094/9560 1610/2315/9561
-f 1610/2315/9562 1614/2094/9563 1613/2316/9564
-f 1629/2317/9565 1630/2318/9566 1622/2097/9567
-f 1622/2097/9568 1630/2318/9569 1617/2095/9570
-f 1620/2086/9571 1619/2319/9572 1616/2085/9573
-f 1616/2085/9574 1619/2319/9575 1615/2320/9576
-f 1551/1949/9577 1552/2321/9578 1554/1950/9579
-f 1554/1950/9580 1552/2321/9581 1553/2322/9582
-f 1494/1853/9583 1497/2323/9584 1491/1851/9585
-f 1491/1851/9586 1497/2323/9587 1498/2324/9588
-f 1496/2325/9589 1495/2326/9590 1487/1865/9591
-f 1487/1865/9592 1495/2326/9593 1490/1866/9594
-f 1547/1965/9595 1550/1966/9596 1548/2327/9597
-f 1548/2327/9598 1550/1966/9599 1549/2328/9600
-f 1544/2329/9601 1536/2330/9602 1535/2331/9603
-f 1544/2329/9604 1543/1945/9605 1537/1944/9606
-f 1544/2329/9607 1537/1944/9608 1536/2330/9609
-f 1546/2332/9610 1540/2333/9611 1541/1932/9612
-f 1546/2332/9613 1541/1932/9614 1545/1931/9615
-f 1539/2334/9616 1540/2333/9617 1546/2332/9618
-f 1523/1927/9619 1526/1928/9620 1524/2335/9621
-f 1524/2335/9622 1526/1928/9623 1525/2336/9624
-f 1511/1907/9625 1514/1908/9626 1512/2337/9627
-f 1512/2337/9628 1514/1908/9629 1513/2338/9630
-f 1499/1887/9631 1502/1888/9632 1500/2339/9633
-f 1500/2339/9634 1502/1888/9635 1501/2340/9636
-f 1506/1873/9637 1509/2341/9638 1503/1871/9639
-f 1503/1871/9640 1509/2341/9641 1510/2342/9642
-f 1515/1891/9643 1518/1893/9644 1522/2343/9645
-f 1522/2343/9646 1518/1893/9647 1521/2344/9648
-f 1527/1911/9649 1530/1913/9650 1534/2345/9651
-f 1534/2345/9652 1530/1913/9653 1533/2346/9654
-f 1758/2347/9655 1805/2348/9656 1756/2349/9657
-f 1752/2350/9658 1749/2351/9659 1755/2352/9660
-f 1782/2353/9661 1765/2354/9662 1766/2355/9663
-f 1766/2356/9664 1765/2357/9665 1752/2358/9666
-f 1752/2358/9667 1765/2357/9668 1751/2359/9669
-f 1767/2360/9670 1766/2356/9671 1753/2361/9672
-f 1753/2361/9673 1766/2356/9674 1752/2358/9675
-f 1769/2362/9676 1767/2360/9677 1755/2363/9678
-f 1755/2363/9679 1767/2360/9680 1753/2361/9681
-f 1763/2364/9682 1769/2362/9683 1749/2365/9684
-f 1749/2365/9685 1769/2362/9686 1755/2363/9687
-f 1768/2366/9688 1764/2367/9689 1754/2368/9690
-f 1754/2368/9691 1764/2367/9692 1750/2369/9693
-f 1773/2370/9694 1768/2366/9695 1759/2371/9696
-f 1759/2371/9697 1768/2366/9698 1754/2368/9699
-f 1775/2372/9700 1773/2370/9701 1761/2373/9702
-f 1761/2373/9703 1773/2370/9704 1759/2371/9705
-f 1776/2374/9706 1775/2372/9707 1762/2375/9708
-f 1762/2375/9709 1775/2372/9710 1761/2373/9711
-f 1762/2375/9712 1757/2376/9713 1776/2374/9714
-f 1776/2374/9715 1757/2376/9716 1771/2377/9717
-f 1772/2378/9718 1771/2377/9719 1758/2379/9720
-f 1758/2379/9721 1771/2377/9722 1757/2376/9723
-f 1770/2380/9724 1772/2378/9725 1756/2381/9726
-f 1756/2381/9727 1772/2378/9728 1758/2379/9729
-f 1774/2382/9730 1770/2380/9731 1760/2383/9732
-f 1760/2383/9733 1770/2380/9734 1756/2381/9735
-f 1765/2357/9736 1782/2384/9737 1751/2359/9738
-f 1751/2359/9739 1782/2384/9740 1779/2385/9741
-f 1772/2386/9742 1776/2387/9743 1771/2388/9744
-f 1779/2385/9745 1778/2389/9746 1760/2383/9747
-f 1760/2383/9748 1778/2389/9749 1774/2382/9750
-f 1779/2385/9751 1782/2384/9752 1778/2389/9753
-f 1784/2390/9754 1777/2391/9755 1786/2392/9756
-f 1786/2392/9757 1777/2391/9758 1778/2393/9759
-f 1785/2394/9760 1782/2353/9761 1783/2395/9762
-f 1783/2395/9763 1782/2353/9764 1781/2396/9765
-f 1778/2389/9766 1782/2384/9767 1786/2397/9768
-f 1786/2397/9769 1782/2384/9770 1785/2398/9771
-f 1788/2399/9772 1784/2390/9773 1786/2392/9774
-f 1783/2395/9775 1787/2400/9776 1785/2394/9777
-f 1786/2397/9778 1785/2398/9779 1788/2401/9780
-f 1788/2401/9781 1785/2398/9782 1787/2402/9783
-f 1789/2403/9784 1790/2404/9785 1791/2405/9786
-f 1791/2405/9787 1790/2404/9788 1792/2406/9789
-f 1795/2407/9790 1796/2408/9791 1789/2403/9792
-f 1789/2403/9793 1796/2408/9794 1790/2404/9795
-f 1790/2404/9796 1796/2409/9797 1792/2406/9798
-f 1792/2406/9799 1796/2409/9800 1794/2410/9801
-f 1793/2411/9802 1795/2412/9803 1791/2405/9804
-f 1791/2405/9805 1795/2412/9806 1789/2403/9807
-f 1797/2413/9808 1798/2414/9809 1799/2415/9810
-f 1799/2415/9811 1798/2414/9812 1800/2416/9813
-f 1803/2417/9814 1804/2418/9815 1797/2413/9816
-f 1797/2413/9817 1804/2418/9818 1798/2414/9819
-f 1798/2414/9820 1804/2419/9821 1800/2416/9822
-f 1800/2416/9823 1804/2419/9824 1802/2420/9825
-f 1801/2421/9826 1803/2422/9827 1799/2415/9828
-f 1799/2415/9829 1803/2422/9830 1797/2413/9831
-f 1779/2423/9832 1752/2350/9833 1751/2424/9834
-f 1756/2349/9835 1779/2423/9836 1760/2425/9837
-f 1779/2423/9838 1780/2426/9839 1752/2350/9840
-f 1752/2350/9841 1780/2426/9842 1749/2351/9843
-f 1752/2350/9844 1755/2352/9845 1753/2427/9846
-f 1762/2428/9847 1758/2347/9848 1757/2429/9849
-f 1754/2430/9850 1762/2428/9851 1759/2431/9852
-f 1759/2431/9853 1762/2428/9854 1761/2432/9855
-f 1754/2430/9856 1750/2433/9857 1762/2428/9858
-f 1750/2433/9859 1805/2348/9860 1762/2428/9861
-f 1762/2428/9862 1805/2348/9863 1758/2347/9864
-f 1805/2348/9865 1780/2426/9866 1756/2349/9867
-f 1756/2349/9868 1780/2426/9869 1779/2423/9870
-f 1806/2434/9871 1770/2435/9872 1777/2391/9873
-f 1777/2391/9874 1770/2435/9875 1778/2393/9876
-f 1770/2435/9877 1806/2434/9878 1772/2386/9879
-f 1768/2436/9880 1773/2437/9881 1776/2387/9882
-f 1776/2387/9883 1773/2437/9884 1775/2438/9885
-f 1806/2434/9886 1764/2439/9887 1772/2386/9888
-f 1772/2386/9889 1764/2439/9890 1776/2387/9891
-f 1764/2439/9892 1768/2436/9893 1776/2387/9894
-f 1778/2393/9895 1770/2435/9896 1774/2440/9897
-f 1782/2353/9898 1766/2355/9899 1781/2396/9900
-f 1769/2441/9901 1766/2355/9902 1767/2442/9903
-f 1763/2443/9904 1766/2355/9905 1769/2441/9906
-f 1781/2396/9907 1766/2355/9908 1763/2443/9909
-f 1809/2444/9910 1808/2445/9911 1818/2446/9912
-f 1818/2446/9913 1808/2445/9914 1819/2447/9915
-f 1832/2448/9916 1831/2449/9917 1833/2450/9918
-f 1833/2450/9919 1831/2449/9920 1823/2451/9921
-f 1831/2449/9922 1830/2452/9923 1823/2451/9924
-f 1830/2452/9925 1838/2453/9926 1823/2451/9927
-f 1823/2451/9928 1838/2453/9929 1824/2454/9930
-f 1824/2454/9931 1838/2453/9932 1825/2455/9933
-f 1825/2455/9934 1838/2453/9935 1826/2456/9936
-f 1838/2453/9937 1829/2457/9938 1826/2456/9939
-f 1829/2457/9940 1828/2458/9941 1826/2456/9942
-f 1828/2458/9943 1827/2459/9944 1826/2456/9945
-f 1825/2455/9946 1834/2460/9947 1824/2454/9948
-f 1824/2454/9949 1834/2460/9950 1835/2461/9951
-f 1807/2462/9952 1823/2463/9953 1808/2445/9954
-f 1808/2445/9955 1823/2463/9956 1824/2464/9957
-f 1807/2462/9958 1817/2465/9959 1823/2463/9960
-f 1823/2463/9961 1817/2465/9962 1833/2466/9963
-f 1817/2465/9964 1816/2467/9965 1833/2466/9966
-f 1833/2466/9967 1816/2467/9968 1832/2468/9969
-f 1816/2467/9970 1815/2469/9971 1832/2468/9972
-f 1832/2468/9973 1815/2469/9974 1831/2470/9975
-f 1814/2471/9976 1830/2472/9977 1815/2469/9978
-f 1815/2469/9979 1830/2472/9980 1831/2470/9981
-f 1814/2471/9982 1820/2473/9983 1830/2472/9984
-f 1830/2472/9985 1820/2473/9986 1836/2474/9987
-f 1820/2473/9988 1821/2475/9989 1836/2476/9990
-f 1836/2476/9991 1821/2475/9992 1837/2477/9993
-f 1822/2478/9994 1838/2479/9995 1821/2475/9996
-f 1821/2475/9997 1838/2479/9998 1837/2480/9999
-f 1813/2481/10000 1829/2482/10001 1822/2478/10002
-f 1822/2478/10003 1829/2482/10004 1838/2479/10005
-f 1813/2481/10006 1812/2483/10007 1829/2482/10008
-f 1829/2482/10009 1812/2483/10010 1828/2484/10011
-f 1812/2483/10012 1811/2485/10013 1828/2484/10014
-f 1828/2484/10015 1811/2485/10016 1827/2486/10017
-f 1811/2485/10018 1810/2487/10019 1827/2486/10020
-f 1827/2486/10021 1810/2487/10022 1826/2488/10023
-f 1810/2487/10024 1809/2444/10025 1826/2488/10026
-f 1826/2488/10027 1809/2444/10028 1825/2489/10029
-f 1809/2444/10030 1818/2446/10031 1825/2489/10032
-f 1825/2489/10033 1818/2446/10034 1834/2490/10035
-f 1818/2446/10036 1819/2447/10037 1834/2491/10038
-f 1834/2491/10039 1819/2447/10040 1835/2492/10041
-f 1835/2493/10042 1819/2447/10043 1824/2464/10044
-f 1824/2464/10045 1819/2447/10046 1808/2445/10047
-f 1814/2471/10048 1822/2478/10049 1820/2473/10050
-f 1820/2473/10051 1822/2478/10052 1821/2475/10053
-f 1816/2467/10054 1817/2465/10055 1815/2469/10056
-f 1817/2465/10057 1807/2462/10058 1815/2469/10059
-f 1815/2469/10060 1807/2462/10061 1814/2471/10062
-f 1814/2471/10063 1807/2462/10064 1822/2478/10065
-f 1807/2462/10066 1808/2445/10067 1822/2478/10068
-f 1808/2445/10069 1809/2444/10070 1822/2478/10071
-f 1809/2444/10072 1810/2487/10073 1822/2478/10074
-f 1822/2478/10075 1810/2487/10076 1813/2481/10077
-f 1810/2487/10078 1811/2485/10079 1813/2481/10080
-f 1811/2485/10081 1812/2483/10082 1813/2481/10083
-f 1830/2452/10084 1836/2494/10085 1838/2453/10086
-f 1838/2453/10087 1836/2494/10088 1837/2495/10089
-f 1841/2496/10090 1840/2497/10091 1850/2498/10092
-f 1850/2498/10093 1840/2497/10094 1851/2499/10095
-f 1864/2500/10096 1863/2501/10097 1865/2502/10098
-f 1865/2502/10099 1863/2501/10100 1855/2503/10101
-f 1863/2501/10102 1862/2504/10103 1855/2503/10104
-f 1862/2504/10105 1870/2505/10106 1855/2503/10107
-f 1855/2503/10108 1870/2505/10109 1856/2506/10110
-f 1856/2506/10111 1870/2505/10112 1857/2507/10113
-f 1857/2507/10114 1870/2505/10115 1858/2508/10116
-f 1870/2505/10117 1861/2509/10118 1858/2508/10119
-f 1861/2509/10120 1860/2510/10121 1858/2508/10122
-f 1860/2510/10123 1859/2511/10124 1858/2508/10125
-f 1857/2507/10126 1866/2512/10127 1856/2506/10128
-f 1856/2506/10129 1866/2512/10130 1867/2513/10131
-f 1840/2497/10132 1839/2514/10133 1856/2515/10134
-f 1856/2515/10135 1839/2514/10136 1855/2516/10137
-f 1839/2514/10138 1849/2517/10139 1855/2516/10140
-f 1855/2516/10141 1849/2517/10142 1865/2518/10143
-f 1848/2519/10144 1864/2520/10145 1849/2517/10146
-f 1849/2517/10147 1864/2520/10148 1865/2518/10149
-f 1847/2521/10150 1863/2522/10151 1848/2519/10152
-f 1848/2519/10153 1863/2522/10154 1864/2520/10155
-f 1846/2523/10156 1862/2524/10157 1847/2521/10158
-f 1847/2521/10159 1862/2524/10160 1863/2522/10161
-f 1846/2523/10162 1852/2525/10163 1862/2524/10164
-f 1862/2524/10165 1852/2525/10166 1868/2526/10167
-f 1852/2525/10168 1853/2527/10169 1868/2528/10170
-f 1868/2528/10171 1853/2527/10172 1869/2529/10173
-f 1854/2530/10174 1870/2531/10175 1853/2527/10176
-f 1853/2527/10177 1870/2531/10178 1869/2532/10179
-f 1854/2530/10180 1845/2533/10181 1870/2531/10182
-f 1870/2531/10183 1845/2533/10184 1861/2534/10185
-f 1845/2533/10186 1844/2535/10187 1861/2534/10188
-f 1861/2534/10189 1844/2535/10190 1860/2536/10191
-f 1843/2537/10192 1859/2538/10193 1844/2535/10194
-f 1844/2535/10195 1859/2538/10196 1860/2536/10197
-f 1842/2539/10198 1858/2540/10199 1843/2537/10200
-f 1843/2537/10201 1858/2540/10202 1859/2538/10203
-f 1858/2540/10204 1842/2539/10205 1857/2541/10206
-f 1857/2541/10207 1842/2539/10208 1841/2496/10209
-f 1841/2496/10210 1850/2498/10211 1857/2541/10212
-f 1857/2541/10213 1850/2498/10214 1866/2542/10215
-f 1850/2498/10216 1851/2499/10217 1866/2543/10218
-f 1866/2543/10219 1851/2499/10220 1867/2544/10221
-f 1867/2545/10222 1851/2499/10223 1856/2515/10224
-f 1856/2515/10225 1851/2499/10226 1840/2497/10227
-f 1846/2523/10228 1854/2530/10229 1852/2525/10230
-f 1852/2525/10231 1854/2530/10232 1853/2527/10233
-f 1848/2519/10234 1849/2517/10235 1847/2521/10236
-f 1849/2517/10237 1839/2514/10238 1847/2521/10239
-f 1847/2521/10240 1839/2514/10241 1846/2523/10242
-f 1846/2523/10243 1839/2514/10244 1854/2530/10245
-f 1839/2514/10246 1840/2497/10247 1854/2530/10248
-f 1840/2497/10249 1841/2496/10250 1854/2530/10251
-f 1841/2496/10252 1842/2539/10253 1854/2530/10254
-f 1854/2530/10255 1842/2539/10256 1845/2533/10257
-f 1842/2539/10258 1843/2537/10259 1845/2533/10260
-f 1843/2537/10261 1844/2535/10262 1845/2533/10263
-f 1862/2504/10264 1868/2546/10265 1870/2505/10266
-f 1870/2505/10267 1868/2546/10268 1869/2547/10269
-f 1871/1652/10270 1872/1660/10271 1888/2548/10272
-f 1888/2548/10273 1887/2549/10274 1871/1652/10275
-f 1872/1660/10276 1873/1658/10277 1889/2550/10278
-f 1889/2550/10279 1888/2548/10280 1872/1660/10281
-f 1873/1658/10282 1874/1664/10283 1890/2551/10284
-f 1890/2551/10285 1889/2550/10286 1873/1658/10287
-f 1874/1664/10288 1875/1662/10289 1891/2552/10290
-f 1891/2552/10291 1890/2551/10292 1874/1664/10293
-f 1875/1662/10294 1876/1668/10295 1892/2553/10296
-f 1892/2553/10297 1891/2552/10298 1875/1662/10299
-f 1876/1668/10300 1877/1666/10301 1893/2554/10302
-f 1893/2554/10303 1892/2553/10304 1876/1668/10305
-f 1877/1666/10306 1878/1672/10307 1894/2555/10308
-f 1894/2555/10309 1893/2554/10310 1877/1666/10311
-f 1878/1672/10312 1879/1670/10313 1895/2556/10314
-f 1895/2556/10315 1894/2555/10316 1878/1672/10317
-f 1879/1670/10318 1880/1676/10319 1896/2557/10320
-f 1896/2557/10321 1895/2556/10322 1879/1670/10323
-f 1880/1676/10324 1881/1674/10325 1897/2558/10326
-f 1897/2558/10327 1896/2557/10328 1880/1676/10329
-f 1881/1674/10330 1882/1680/10331 1898/2559/10332
-f 1898/2559/10333 1897/2558/10334 1881/1674/10335
-f 1882/1680/10336 1883/1678/10337 1899/2560/10338
-f 1899/2560/10339 1898/2559/10340 1882/1680/10341
-f 1883/1678/10342 1884/1682/10343 1900/2561/10344
-f 1900/2561/10345 1899/2560/10346 1883/1678/10347
-f 1884/1682/10348 1885/1656/10349 1901/2562/10350
-f 1901/2562/10351 1900/2561/10352 1884/1682/10353
-f 1885/1656/10354 1886/1654/10355 1902/408/10356
-f 1902/408/10357 1901/2562/10358 1885/1656/10359
-f 1886/1654/10360 1871/1652/10361 1887/2549/10362
-f 1887/2549/10363 1902/408/10364 1886/1654/10365
-# 3455 faces
-
diff --git a/examples/models/resources/pbr/trooper_albedo.png b/examples/models/resources/pbr/trooper_albedo.png
deleted file mode 100644
index 9ba0f5a61..000000000
Binary files a/examples/models/resources/pbr/trooper_albedo.png and /dev/null differ
diff --git a/examples/models/resources/pbr/trooper_ao.png b/examples/models/resources/pbr/trooper_ao.png
deleted file mode 100644
index 442dd7fb7..000000000
Binary files a/examples/models/resources/pbr/trooper_ao.png and /dev/null differ
diff --git a/examples/models/resources/pbr/trooper_metalness.png b/examples/models/resources/pbr/trooper_metalness.png
deleted file mode 100644
index 6c212a000..000000000
Binary files a/examples/models/resources/pbr/trooper_metalness.png and /dev/null differ
diff --git a/examples/models/resources/pbr/trooper_normals.png b/examples/models/resources/pbr/trooper_normals.png
deleted file mode 100644
index e04be8830..000000000
Binary files a/examples/models/resources/pbr/trooper_normals.png and /dev/null differ
diff --git a/examples/models/resources/pbr/trooper_roughness.png b/examples/models/resources/pbr/trooper_roughness.png
deleted file mode 100644
index 29f418f7d..000000000
Binary files a/examples/models/resources/pbr/trooper_roughness.png and /dev/null differ
diff --git a/examples/models/resources/shaders/glsl330/brdf.fs b/examples/models/resources/shaders/glsl330/brdf.fs
deleted file mode 100644
index 5f44bfe5f..000000000
--- a/examples/models/resources/shaders/glsl330/brdf.fs
+++ /dev/null
@@ -1,124 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-
-// Constant values
-const float PI = 3.14159265359;
-const uint MAX_SAMPLES = 1024u;
-
-// Output fragment color
-out vec4 finalColor;
-
-vec2 Hammersley(uint i, uint N);
-float RadicalInverseVdC(uint bits);
-float GeometrySchlickGGX(float NdotV, float roughness);
-float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness);
-vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness);
-vec2 IntegrateBRDF(float NdotV, float roughness);
-
-float RadicalInverseVdC(uint bits)
-{
- bits = (bits << 16u) | (bits >> 16u);
- bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
- bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
- bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
- bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
- return float(bits) * 2.3283064365386963e-10; // / 0x100000000
-}
-
-// Compute Hammersley coordinates
-vec2 Hammersley(uint i, uint N)
-{
- return vec2(float(i)/float(N), RadicalInverseVdC(i));
-}
-
-// Integrate number of importance samples for (roughness and NoV)
-vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness)
-{
- float a = roughness*roughness;
- float phi = 2.0 * PI * Xi.x;
- float cosTheta = sqrt((1.0 - Xi.y)/(1.0 + (a*a - 1.0)*Xi.y));
- float sinTheta = sqrt(1.0 - cosTheta*cosTheta);
-
- // Transform from spherical coordinates to cartesian coordinates (halfway vector)
- vec3 H = vec3(cos(phi)*sinTheta, sin(phi)*sinTheta, cosTheta);
-
- // Transform from tangent space H vector to world space sample vector
- vec3 up = ((abs(N.z) < 0.999) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0));
- vec3 tangent = normalize(cross(up, N));
- vec3 bitangent = cross(N, tangent);
- vec3 sampleVec = tangent*H.x + bitangent*H.y + N*H.z;
-
- return normalize(sampleVec);
-}
-
-float GeometrySchlickGGX(float NdotV, float roughness)
-{
- // For IBL k is calculated different
- float k = (roughness*roughness)/2.0;
-
- float nom = NdotV;
- float denom = NdotV*(1.0 - k) + k;
-
- return nom/denom;
-}
-
-// Compute the geometry term for the BRDF given roughness squared, NoV, NoL
-float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness)
-{
- float NdotV = max(dot(N, V), 0.0);
- float NdotL = max(dot(N, L), 0.0);
- float ggx2 = GeometrySchlickGGX(NdotV, roughness);
- float ggx1 = GeometrySchlickGGX(NdotL, roughness);
-
- return ggx1*ggx2;
-}
-
-// Bidirectional reflectance distribution function
-// Ref: https://github.com/HectorMF/BRDFGenerator
-vec2 IntegrateBRDF(float NdotV, float roughness)
-{
- float A = 0.0;
- float B = 0.0;
- vec3 V = vec3(sqrt(1.0 - NdotV*NdotV), 0.0, NdotV);
- vec3 N = vec3(0.0, 0.0, 1.0);
-
- for (uint i = 0u; i < MAX_SAMPLES; i++)
- {
- // Generate a sample vector that's biased towards the preferred alignment direction (importance sampling)
-
- vec2 Xi = Hammersley(i, MAX_SAMPLES); // Compute a Hammersely coordinate
- vec3 H = ImportanceSampleGGX(Xi, N, roughness); // Integrate number of importance samples for (roughness and NoV)
- vec3 L = normalize(2.0*dot(V, H)*H - V); // Compute reflection vector L
-
- float NdotL = max(L.z, 0.0); // Compute normal dot light
- float NdotH = max(H.z, 0.0); // Compute normal dot half
- float VdotH = max(dot(V, H), 0.0); // Compute view dot half
-
- if (NdotL > 0.0)
- {
- float G = GeometrySmith(N, V, L, roughness); // Compute the geometry term for the BRDF given roughness squared, NoV, NoL
- float GVis = (G*VdotH)/(NdotH*NdotV); // Compute the visibility term given G, VoH, NoH, NoV, NoL
- float Fc = pow(1.0 - VdotH, 5.0); // Compute the fresnel term given VoH
-
- A += (1.0 - Fc)*GVis; // Sum the result given fresnel, geometry, visibility
- B += Fc*GVis;
- }
- }
-
- // Calculate brdf average sample
- A /= float(MAX_SAMPLES);
- B /= float(MAX_SAMPLES);
-
- return vec2(A, B);
-}
-
-void main()
-{
- // Calculate brdf based on texture coordinates
- vec2 brdf = IntegrateBRDF(fragTexCoord.x, fragTexCoord.y);
-
- // Calculate final fragment color
- finalColor = vec4(brdf.r, brdf.g, 0.0, 1.0);
-}
diff --git a/examples/models/resources/shaders/glsl330/brdf.vs b/examples/models/resources/shaders/glsl330/brdf.vs
deleted file mode 100644
index c93cfd0ea..000000000
--- a/examples/models/resources/shaders/glsl330/brdf.vs
+++ /dev/null
@@ -1,17 +0,0 @@
-#version 330
-
-// Input vertex attributes
-in vec3 vertexPosition;
-in vec2 vertexTexCoord;
-
-// Output vertex attributes (to fragment shader)
-out vec2 fragTexCoord;
-
-void main()
-{
- // Calculate fragment position based on model transformations
- fragTexCoord = vertexTexCoord;
-
- // Calculate final vertex position
- gl_Position = vec4(vertexPosition, 1.0);
-}
\ No newline at end of file
diff --git a/examples/models/resources/shaders/glsl330/irradiance.fs b/examples/models/resources/shaders/glsl330/irradiance.fs
deleted file mode 100644
index 4b74916d9..000000000
--- a/examples/models/resources/shaders/glsl330/irradiance.fs
+++ /dev/null
@@ -1,50 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec3 fragPosition;
-
-// Input uniform values
-uniform samplerCube environmentMap;
-
-// Constant values
-const float PI = 3.14159265359;
-
-// Output fragment color
-out vec4 finalColor;
-
-void main()
-{
- // The sample direction equals the hemisphere's orientation
- vec3 normal = normalize(fragPosition);
-
- vec3 irradiance = vec3(0.0);
-
- vec3 up = vec3(0.0, 1.0, 0.0);
- vec3 right = cross(up, normal);
- up = cross(normal, right);
-
- float sampleDelta = 0.025;
- float nrSamples = 0.0;
-
- for (float phi = 0.0; phi < 2.0*PI; phi += sampleDelta)
- {
- for (float theta = 0.0; theta < 0.5*PI; theta += sampleDelta)
- {
- // Spherical to cartesian (in tangent space)
- vec3 tangentSample = vec3(sin(theta)*cos(phi), sin(theta)*sin(phi), cos(theta));
-
- // tangent space to world
- vec3 sampleVec = tangentSample.x*right + tangentSample.y*up + tangentSample.z*normal;
-
- // Fetch color from environment cubemap
- irradiance += texture(environmentMap, sampleVec).rgb*cos(theta)*sin(theta);
- nrSamples++;
- }
- }
-
- // Calculate irradiance average value from samples
- irradiance = PI*irradiance*(1.0/float(nrSamples));
-
- // Calculate final fragment color
- finalColor = vec4(irradiance, 1.0);
-}
diff --git a/examples/models/resources/shaders/glsl330/pbr.fs b/examples/models/resources/shaders/glsl330/pbr.fs
deleted file mode 100644
index 72779a185..000000000
--- a/examples/models/resources/shaders/glsl330/pbr.fs
+++ /dev/null
@@ -1,292 +0,0 @@
-#version 330
-
-#define MAX_REFLECTION_LOD 4.0
-#define MAX_DEPTH_LAYER 20
-#define MIN_DEPTH_LAYER 10
-
-#define MAX_LIGHTS 4
-#define LIGHT_DIRECTIONAL 0
-#define LIGHT_POINT 1
-
-struct MaterialProperty {
- vec3 color;
- int useSampler;
- sampler2D sampler;
-};
-
-struct Light {
- int enabled;
- int type;
- vec3 position;
- vec3 target;
- vec4 color;
-};
-
-// Input vertex attributes (from vertex shader)
-in vec3 fragPosition;
-in vec2 fragTexCoord;
-in vec3 fragNormal;
-in vec3 fragTangent;
-in vec3 fragBinormal;
-
-// Input material values
-uniform MaterialProperty albedo;
-uniform MaterialProperty normals;
-uniform MaterialProperty metalness;
-uniform MaterialProperty roughness;
-uniform MaterialProperty occlusion;
-uniform MaterialProperty emission;
-uniform MaterialProperty height;
-
-// Input uniform values
-uniform samplerCube irradianceMap;
-uniform samplerCube prefilterMap;
-uniform sampler2D brdfLUT;
-
-// Input lighting values
-uniform Light lights[MAX_LIGHTS];
-
-// Other uniform values
-uniform int renderMode;
-uniform vec3 viewPos;
-vec2 texCoord;
-
-// Constant values
-const float PI = 3.14159265359;
-
-// Output fragment color
-out vec4 finalColor;
-
-vec3 ComputeMaterialProperty(MaterialProperty property);
-float DistributionGGX(vec3 N, vec3 H, float roughness);
-float GeometrySchlickGGX(float NdotV, float roughness);
-float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness);
-vec3 fresnelSchlick(float cosTheta, vec3 F0);
-vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness);
-vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir);
-
-// WARNING: There is some weird behaviour with this function, always returns black!
-// Yes, I even tried: return texture(property.sampler, texCoord).rgb;
-vec3 ComputeMaterialProperty(MaterialProperty property)
-{
- vec3 result = vec3(0.0, 0.0, 0.0);
-
- if (property.useSampler == 1) result = texture(property.sampler, texCoord).rgb;
- else result = property.color;
-
- return result;
-}
-
-float DistributionGGX(vec3 N, vec3 H, float roughness)
-{
- float a = roughness*roughness;
- float a2 = a*a;
- float NdotH = max(dot(N, H), 0.0);
- float NdotH2 = NdotH*NdotH;
-
- float nom = a2;
- float denom = (NdotH2*(a2 - 1.0) + 1.0);
- denom = PI*denom*denom;
-
- return nom/denom;
-}
-
-float GeometrySchlickGGX(float NdotV, float roughness)
-{
- float r = (roughness + 1.0);
- float k = r*r/8.0;
-
- float nom = NdotV;
- float denom = NdotV*(1.0 - k) + k;
-
- return nom/denom;
-}
-float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness)
-{
- float NdotV = max(dot(N, V), 0.0);
- float NdotL = max(dot(N, L), 0.0);
- float ggx2 = GeometrySchlickGGX(NdotV, roughness);
- float ggx1 = GeometrySchlickGGX(NdotL, roughness);
-
- return ggx1*ggx2;
-}
-
-vec3 fresnelSchlick(float cosTheta, vec3 F0)
-{
- return F0 + (1.0 - F0)*pow(1.0 - cosTheta, 5.0);
-}
-
-vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness)
-{
- return F0 + (max(vec3(1.0 - roughness), F0) - F0)*pow(1.0 - cosTheta, 5.0);
-}
-
-vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir)
-{
- // Calculate the number of depth layers and calculate the size of each layer
- float numLayers = mix(MAX_DEPTH_LAYER, MIN_DEPTH_LAYER, abs(dot(vec3(0.0, 0.0, 1.0), viewDir)));
- float layerDepth = 1.0/numLayers;
-
- // Calculate depth of current layer
- float currentLayerDepth = 0.0;
-
- // Calculate the amount to shift the texture coordinates per layer (from vector P)
- // Note: height amount is stored in height material attribute color R channel (sampler use is independent)
- vec2 P = viewDir.xy*height.color.r;
- vec2 deltaTexCoords = P/numLayers;
-
- // Store initial texture coordinates and depth values
- vec2 currentTexCoords = texCoords;
- float currentDepthMapValue = texture(height.sampler, currentTexCoords).r;
-
- while (currentLayerDepth < currentDepthMapValue)
- {
- // Shift texture coordinates along direction of P
- currentTexCoords -= deltaTexCoords;
-
- // Get depth map value at current texture coordinates
- currentDepthMapValue = texture(height.sampler, currentTexCoords).r;
-
- // Get depth of next layer
- currentLayerDepth += layerDepth;
- }
-
- // Get texture coordinates before collision (reverse operations)
- vec2 prevTexCoords = currentTexCoords + deltaTexCoords;
-
- // Get depth after and before collision for linear interpolation
- float afterDepth = currentDepthMapValue - currentLayerDepth;
- float beforeDepth = texture(height.sampler, prevTexCoords).r - currentLayerDepth + layerDepth;
-
- // Interpolation of texture coordinates
- float weight = afterDepth/(afterDepth - beforeDepth);
- vec2 finalTexCoords = prevTexCoords*weight + currentTexCoords*(1.0 - weight);
-
- return finalTexCoords;
-}
-
-void main()
-{
- // Calculate TBN and RM matrices
- mat3 TBN = transpose(mat3(fragTangent, fragBinormal, fragNormal));
-
- // Calculate lighting required attributes
- vec3 normal = normalize(fragNormal);
- vec3 view = normalize(viewPos - fragPosition);
- vec3 refl = reflect(-view, normal);
-
- // Check if parallax mapping is enabled and calculate texture coordinates to use based on height map
- // NOTE: remember that 'texCoord' variable must be assigned before calling any ComputeMaterialProperty() function
- if (height.useSampler == 1) texCoord = ParallaxMapping(fragTexCoord, view);
- else texCoord = fragTexCoord; // Use default texture coordinates
-
- // Fetch material values from texture sampler or color attributes
- vec3 color = texture(albedo.sampler, texCoord).rgb; //ComputeMaterialProperty(albedo);
- vec3 metal = texture(metalness.sampler, texCoord).rgb; //ComputeMaterialProperty(metalness);
- vec3 rough = texture(roughness.sampler, texCoord).rgb; //ComputeMaterialProperty(roughness);
- vec3 emiss = texture(emission.sampler, texCoord).rgb; //ComputeMaterialProperty(emission);
- vec3 ao = texture(occlusion.sampler, texCoord).rgb; //ComputeMaterialProperty(occlusion);
-
- // Check if normal mapping is enabled
- if (normals.useSampler == 1)
- {
- // Fetch normal map color and transform lighting values to tangent space
- normal = texture(normals.sampler, texCoord).rgb; //ComputeMaterialProperty(normals);
- normal = normalize(normal*2.0 - 1.0);
- normal = normalize(normal*TBN);
-
- // Convert tangent space normal to world space due to cubemap reflection calculations
- refl = normalize(reflect(-view, normal));
- }
-
- // Calculate reflectance at normal incidence
- vec3 F0 = vec3(0.04);
- F0 = mix(F0, color, metal.r);
-
- // Calculate lighting for all lights
- vec3 Lo = vec3(0.0);
- vec3 lightDot = vec3(0.0);
-
- for (int i = 0; i < MAX_LIGHTS; i++)
- {
- if (lights[i].enabled == 1)
- {
- // Calculate per-light radiance
- vec3 light = vec3(0.0);
- vec3 radiance = lights[i].color.rgb;
- if (lights[i].type == LIGHT_DIRECTIONAL) light = -normalize(lights[i].target - lights[i].position);
- else if (lights[i].type == LIGHT_POINT)
- {
- light = normalize(lights[i].position - fragPosition);
- float distance = length(lights[i].position - fragPosition);
- float attenuation = 1.0/(distance*distance);
- radiance *= attenuation;
- }
-
- // Cook-torrance BRDF
- vec3 high = normalize(view + light);
- float NDF = DistributionGGX(normal, high, rough.r);
- float G = GeometrySmith(normal, view, light, rough.r);
- vec3 F = fresnelSchlick(max(dot(high, view), 0.0), F0);
- vec3 nominator = NDF*G*F;
- float denominator = 4*max(dot(normal, view), 0.0)*max(dot(normal, light), 0.0) + 0.001;
- vec3 brdf = nominator/denominator;
-
- // Store to kS the fresnel value and calculate energy conservation
- vec3 kS = F;
- vec3 kD = vec3(1.0) - kS;
-
- // Multiply kD by the inverse metalness such that only non-metals have diffuse lighting
- kD *= 1.0 - metal.r;
-
- // Scale light by dot product between normal and light direction
- float NdotL = max(dot(normal, light), 0.0);
-
- // Add to outgoing radiance Lo
- // Note: BRDF is already multiplied by the Fresnel so it doesn't need to be multiplied again
- Lo += (kD*color/PI + brdf)*radiance*NdotL*lights[i].color.a;
- lightDot += radiance*NdotL + brdf*lights[i].color.a;
- }
- }
-
- // Calculate ambient lighting using IBL
- vec3 F = fresnelSchlickRoughness(max(dot(normal, view), 0.0), F0, rough.r);
- vec3 kS = F;
- vec3 kD = 1.0 - kS;
- kD *= 1.0 - metal.r;
-
- // Calculate indirect diffuse
- vec3 irradiance = texture(irradianceMap, fragNormal).rgb;
- vec3 diffuse = color*irradiance;
-
- // Sample both the prefilter map and the BRDF lut and combine them together as per the Split-Sum approximation
- vec3 prefilterColor = textureLod(prefilterMap, refl, rough.r*MAX_REFLECTION_LOD).rgb;
- vec2 brdf = texture(brdfLUT, vec2(max(dot(normal, view), 0.0), rough.r)).rg;
- vec3 reflection = prefilterColor*(F*brdf.x + brdf.y);
-
- // Calculate final lighting
- vec3 ambient = (kD*diffuse + reflection)*ao;
-
- // Calculate fragment color based on render mode
- vec3 fragmentColor = ambient + Lo + emiss; // Physically Based Rendering
-
- if (renderMode == 1) fragmentColor = color; // Albedo
- else if (renderMode == 2) fragmentColor = normal; // Normals
- else if (renderMode == 3) fragmentColor = metal; // Metalness
- else if (renderMode == 4) fragmentColor = rough; // Roughness
- else if (renderMode == 5) fragmentColor = ao; // Ambient Occlusion
- else if (renderMode == 6) fragmentColor = emiss; // Emission
- else if (renderMode == 7) fragmentColor = lightDot; // Lighting
- else if (renderMode == 8) fragmentColor = kS; // Fresnel
- else if (renderMode == 9) fragmentColor = irradiance; // Irradiance
- else if (renderMode == 10) fragmentColor = reflection; // Reflection
-
- // Apply HDR tonemapping
- fragmentColor = fragmentColor/(fragmentColor + vec3(1.0));
-
- // Apply gamma correction
- fragmentColor = pow(fragmentColor, vec3(1.0/2.2));
-
- // Calculate final fragment color
- finalColor = vec4(fragmentColor, 1.0);
-}
diff --git a/examples/models/resources/shaders/glsl330/pbr.vs b/examples/models/resources/shaders/glsl330/pbr.vs
deleted file mode 100644
index 4729b0141..000000000
--- a/examples/models/resources/shaders/glsl330/pbr.vs
+++ /dev/null
@@ -1,41 +0,0 @@
-#version 330
-
-// Input vertex attributes
-in vec3 vertexPosition;
-in vec2 vertexTexCoord;
-in vec3 vertexNormal;
-in vec4 vertexTangent;
-
-// Input uniform values
-uniform mat4 mvp;
-uniform mat4 matModel;
-
-// Output vertex attributes (to fragment shader)
-out vec3 fragPosition;
-out vec2 fragTexCoord;
-out vec3 fragNormal;
-out vec3 fragTangent;
-out vec3 fragBinormal;
-
-void main()
-{
- // Calculate binormal from vertex normal and tangent
- vec3 vertexBinormal = cross(vertexNormal, vec3(vertexTangent));
-
- // Calculate fragment normal based on normal transformations
- mat3 normalMatrix = transpose(inverse(mat3(matModel)));
-
- // Calculate fragment position based on model transformations
- fragPosition = vec3(matModel*vec4(vertexPosition, 1.0));
-
- // Send vertex attributes to fragment shader
- fragTexCoord = vertexTexCoord;
- fragNormal = normalize(normalMatrix*vertexNormal);
- fragTangent = normalize(normalMatrix*vec3(vertexTangent));
- fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
- fragBinormal = normalize(normalMatrix*vertexBinormal);
- fragBinormal = cross(fragNormal, fragTangent);
-
- // Calculate final vertex position
- gl_Position = mvp*vec4(vertexPosition, 1.0);
-}
\ No newline at end of file
diff --git a/examples/models/resources/shaders/glsl330/prefilter.fs b/examples/models/resources/shaders/glsl330/prefilter.fs
deleted file mode 100644
index 3ea694f95..000000000
--- a/examples/models/resources/shaders/glsl330/prefilter.fs
+++ /dev/null
@@ -1,113 +0,0 @@
-#version 330
-
-#define MAX_SAMPLES 1024u
-#define CUBEMAP_RESOLUTION 1024.0
-
-// Input vertex attributes (from vertex shader)
-in vec3 fragPosition;
-
-// Input uniform values
-uniform samplerCube environmentMap;
-uniform float roughness;
-
-// Constant values
-const float PI = 3.14159265359;
-
-// Output fragment color
-out vec4 finalColor;
-
-float DistributionGGX(vec3 N, vec3 H, float roughness);
-float RadicalInverse_VdC(uint bits);
-vec2 Hammersley(uint i, uint N);
-vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness);
-
-float DistributionGGX(vec3 N, vec3 H, float roughness)
-{
- float a = roughness*roughness;
- float a2 = a*a;
- float NdotH = max(dot(N, H), 0.0);
- float NdotH2 = NdotH*NdotH;
-
- float nom = a2;
- float denom = (NdotH2*(a2 - 1.0) + 1.0);
- denom = PI*denom*denom;
-
- return nom/denom;
-}
-
-float RadicalInverse_VdC(uint bits)
-{
- bits = (bits << 16u) | (bits >> 16u);
- bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
- bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
- bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
- bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
- return float(bits)*2.3283064365386963e-10; // / 0x100000000
-}
-
-vec2 Hammersley(uint i, uint N)
-{
- return vec2(float(i)/float(N), RadicalInverse_VdC(i));
-}
-
-vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness)
-{
- float a = roughness*roughness;
- float phi = 2.0*PI*Xi.x;
- float cosTheta = sqrt((1.0 - Xi.y)/(1.0 + (a*a - 1.0)*Xi.y));
- float sinTheta = sqrt(1.0 - cosTheta*cosTheta);
-
- // Transform from spherical coordinates to cartesian coordinates (halfway vector)
- vec3 H = vec3(cos(phi)*sinTheta, sin(phi)*sinTheta, cosTheta);
-
- // Transform from tangent space H vector to world space sample vector
- vec3 up = ((abs(N.z) < 0.999) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0));
- vec3 tangent = normalize(cross(up, N));
- vec3 bitangent = cross(N, tangent);
- vec3 sampleVec = tangent*H.x + bitangent*H.y + N*H.z;
-
- return normalize(sampleVec);
-}
-
-void main()
-{
- // Make the simplyfying assumption that V equals R equals the normal
- vec3 N = normalize(fragPosition);
- vec3 R = N;
- vec3 V = R;
-
- vec3 prefilteredColor = vec3(0.0);
- float totalWeight = 0.0;
-
- for (uint i = 0u; i < MAX_SAMPLES; i++)
- {
- // Generate a sample vector that's biased towards the preferred alignment direction (importance sampling)
- vec2 Xi = Hammersley(i, MAX_SAMPLES);
- vec3 H = ImportanceSampleGGX(Xi, N, roughness);
- vec3 L = normalize(2.0*dot(V, H)*H - V);
-
- float NdotL = max(dot(N, L), 0.0);
- if(NdotL > 0.0)
- {
- // Sample from the environment's mip level based on roughness/pdf
- float D = DistributionGGX(N, H, roughness);
- float NdotH = max(dot(N, H), 0.0);
- float HdotV = max(dot(H, V), 0.0);
- float pdf = D*NdotH/(4.0*HdotV) + 0.0001;
-
- float resolution = CUBEMAP_RESOLUTION;
- float saTexel = 4.0*PI/(6.0*resolution*resolution);
- float saSample = 1.0/(float(MAX_SAMPLES)*pdf + 0.0001);
- float mipLevel = ((roughness == 0.0) ? 0.0 : 0.5*log2(saSample/saTexel));
-
- prefilteredColor += textureLod(environmentMap, L, mipLevel).rgb*NdotL;
- totalWeight += NdotL;
- }
- }
-
- // Calculate prefilter average color
- prefilteredColor = prefilteredColor/totalWeight;
-
- // Calculate final fragment color
- finalColor = vec4(prefilteredColor, 1.0);
-}
diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c
index 2ecc637d5..695910839 100644
--- a/examples/others/raylib_opengl_interop.c
+++ b/examples/others/raylib_opengl_interop.c
@@ -24,8 +24,14 @@
********************************************************************************************/
#include "raylib.h"
+
#include "rlgl.h" // Required for: rlDrawRenderBatchActive(), rlGetMatrixModelview(), rlGetMatrixProjection()
-#include "glad.h" // Required for: OpenGL functionality
+#if defined(__APPLE__)
+ #include // OpenGL 3 library for OSX
+ #include // OpenGL 3 extensions library for OSX
+#else
+ #include "glad.h" // Required for: OpenGL functionality
+#endif
#include "raymath.h" // Required for: MatrixMultiply(), MatrixToFloat()
#if defined(PLATFORM_DESKTOP)
diff --git a/examples/shaders/resources/LICENSE.md b/examples/shaders/resources/LICENSE.md
index b08a555ab..96458eca5 100644
--- a/examples/shaders/resources/LICENSE.md
+++ b/examples/shaders/resources/LICENSE.md
@@ -9,5 +9,3 @@
| raysan.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - |
| space.png | ❔ | ❔ | - |
| texel_checker.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [UV Checker Map Maker](http://uvchecker.byvalle.com/) |
-| egg.png | [@GoldenThumbs](https://github.com/GoldenThumbs) |
-| torus.png | [@GoldenThumbs](https://github.com/GoldenThumbs) |
diff --git a/examples/shaders/resources/egg.png b/examples/shaders/resources/egg.png
deleted file mode 100644
index c85249523..000000000
Binary files a/examples/shaders/resources/egg.png and /dev/null differ
diff --git a/examples/shaders/resources/shaders/glsl100/outline.fs b/examples/shaders/resources/shaders/glsl100/outline.fs
index 67410b3a7..51b1f322a 100644
--- a/examples/shaders/resources/shaders/glsl100/outline.fs
+++ b/examples/shaders/resources/shaders/glsl100/outline.fs
@@ -9,27 +9,29 @@ varying vec4 fragColor;
// Input uniform values
uniform sampler2D texture0;
uniform vec4 colDiffuse;
-uniform vec2 texScale;
-// Function for drawing outlines on alpha-blended textures
-vec4 DrawOutline(sampler2D tex, vec2 uv, vec2 lineScale, vec3 lineCol)
-{
- vec2 texelScale = 1.0 / lineScale;
- vec4 center = texture2D(tex, uv); // We sample the center texel, (with all color data)
- // Next we sample four corner texels, but only for the alpha channel (this is for the outline)
- vec4 corners;
- corners.x = texture2D(tex, uv+vec2( texelScale.x, texelScale.y)).a;
- corners.y = texture2D(tex, uv+vec2( texelScale.x,-texelScale.y)).a;
- corners.z = texture2D(tex, uv+vec2(-texelScale.x, texelScale.y)).a;
- corners.w = texture2D(tex, uv+vec2(-texelScale.x,-texelScale.y)).a;
-
- float outline = min(dot(corners, vec4(1.0)), 1.0);
- vec4 col = mix(vec4(0.0), vec4(lineCol, 1.0), outline);
- col = mix(col, center, center.a);
- return col;
-}
+uniform vec2 textureSize;
+uniform float outlineSize;
+uniform vec4 outlineColor;
+
+// Output fragment color
+out vec4 finalColor;
void main()
{
- gl_FragColor = DrawOutline(texture0, fragTexCoord, texScale, vec3(0.0));
+ vec4 texel = texture2D(texture0, fragTexCoord); // Get texel color
+ vec2 texelScale = vec2(0.0);
+ texelScale.x = outlineSize/textureSize.x;
+ texelScale.y = outlineSize/textureSize.y;
+
+ // We sample four corner texels, but only for the alpha channel (this is for the outline)
+ vec4 corners = vec4(0.0);
+ corners.x = texture2D(texture0, fragTexCoord + vec2(texelScale.x, texelScale.y)).a;
+ corners.y = texture2D(texture0, fragTexCoord + vec2(texelScale.x, -texelScale.y)).a;
+ corners.z = texture2D(texture0, fragTexCoord + vec2(-texelScale.x, texelScale.y)).a;
+ corners.w = texture2D(texture0, fragTexCoord + vec2(-texelScale.x, -texelScale.y)).a;
+
+ float outline = min(dot(corners, vec4(1.0)), 1.0);
+ vec4 color = mix(vec4(0.0), outlineColor, outline);
+ gl_FragColor = mix(color, texel, texel.a);
}
\ No newline at end of file
diff --git a/examples/shaders/resources/shaders/glsl330/outline.fs b/examples/shaders/resources/shaders/glsl330/outline.fs
index c1be1b5de..804a1a597 100644
--- a/examples/shaders/resources/shaders/glsl330/outline.fs
+++ b/examples/shaders/resources/shaders/glsl330/outline.fs
@@ -7,30 +7,29 @@ in vec4 fragColor;
// Input uniform values
uniform sampler2D texture0;
uniform vec4 colDiffuse;
-uniform vec2 texScale;
+
+uniform vec2 textureSize;
+uniform float outlineSize;
+uniform vec4 outlineColor;
// Output fragment color
out vec4 finalColor;
-// Function for drawing outlines on alpha-blended textures
-vec4 DrawOutline(sampler2D tex, vec2 uv, vec2 lineScale, vec3 lineCol)
-{
- vec2 texelScale = 1.0 / lineScale;
- vec4 center = texture(tex, uv); // We sample the center texel, (with all color data)
- // Next we sample four corner texels, but only for the alpha channel (this is for the outline)
- vec4 corners;
- corners.x = texture(tex, uv+vec2( texelScale.x, texelScale.y)).a;
- corners.y = texture(tex, uv+vec2( texelScale.x,-texelScale.y)).a;
- corners.z = texture(tex, uv+vec2(-texelScale.x, texelScale.y)).a;
- corners.w = texture(tex, uv+vec2(-texelScale.x,-texelScale.y)).a;
-
- float outline = min(dot(corners, vec4(1.0)), 1.0);
- vec4 col = mix(vec4(0.0), vec4(lineCol, 1.0), outline);
- col = mix(col, center, center.a);
- return col;
-}
-
void main()
{
- finalColor = DrawOutline(texture0, fragTexCoord, texScale, vec3(0.0));
+ vec4 texel = texture(texture0, fragTexCoord); // Get texel color
+ vec2 texelScale = vec2(0.0);
+ texelScale.x = outlineSize/textureSize.x;
+ texelScale.y = outlineSize/textureSize.y;
+
+ // We sample four corner texels, but only for the alpha channel (this is for the outline)
+ vec4 corners = vec4(0.0);
+ corners.x = texture(texture0, fragTexCoord + vec2(texelScale.x, texelScale.y)).a;
+ corners.y = texture(texture0, fragTexCoord + vec2(texelScale.x, -texelScale.y)).a;
+ corners.z = texture(texture0, fragTexCoord + vec2(-texelScale.x, texelScale.y)).a;
+ corners.w = texture(texture0, fragTexCoord + vec2(-texelScale.x, -texelScale.y)).a;
+
+ float outline = min(dot(corners, vec4(1.0)), 1.0);
+ vec4 color = mix(vec4(0.0), outlineColor, outline);
+ finalColor = mix(color, texel, texel.a);
}
\ No newline at end of file
diff --git a/examples/shaders/resources/torus.png b/examples/shaders/resources/torus.png
deleted file mode 100644
index 399d78257..000000000
Binary files a/examples/shaders/resources/torus.png and /dev/null differ
diff --git a/examples/shaders/shaders_fog.png b/examples/shaders/shaders_fog.png
index 52008e8a1..1be65217d 100644
Binary files a/examples/shaders/shaders_fog.png and b/examples/shaders/shaders_fog.png differ
diff --git a/examples/shaders/shaders_shapes_outline.c b/examples/shaders/shaders_texture_outline.c
similarity index 63%
rename from examples/shaders/shaders_shapes_outline.c
rename to examples/shaders/shaders_texture_outline.c
index 30194c4b7..c40abf950 100644
--- a/examples/shaders/shaders_shapes_outline.c
+++ b/examples/shaders/shaders_texture_outline.c
@@ -5,12 +5,10 @@
* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
*
-* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3).
-*
* This example has been created using raylib 3.8 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
-* Example contributed by Samuel Skiff (@GoldenThumbs)
+* Example contributed by Samuel Skiff (@GoldenThumbs) and reviewed by Ramon Santamaria (@raysan5)
*
* Copyright (c) 2021 Samuel SKiff (@GoldenThumbs) and Ramon Santamaria (@raysan5)
*
@@ -33,13 +31,23 @@ int main(void)
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - Apply an outline to a texture");
- Texture2D egg = LoadTexture("resources/egg.png");
- Texture2D torus = LoadTexture("resources/torus.png");
+ Texture2D texture = LoadTexture("resources/fudesumi.png");
+
Shader shdrOutline = LoadShader(0, TextFormat("resources/shaders/glsl%i/outline.fs", GLSL_VERSION));
- float outlineScale = 16.0f;
- float textureScale[2] = { 16.0f*4, 16.0f*4 };
- SetShaderValue(shdrOutline, GetShaderLocation(shdrOutline, "texScale"), textureScale, SHADER_UNIFORM_VEC2);
+ float outlineSize = 2.0f;
+ float outlineColor[4] = { 1.0f, 0.0f, 0.0f, 1.0f }; // Normalized RED color
+ float textureSize[2] = { (float)texture.width, (float)texture.height };
+
+ // Get shader locations
+ int outlineSizeLoc = GetShaderLocation(shdrOutline, "outlineSize");
+ int outlineColorLoc = GetShaderLocation(shdrOutline, "outlineColor");
+ int textureSizeLoc = GetShaderLocation(shdrOutline, "textureSize");
+
+ // Set shader values (they can be changed later)
+ SetShaderValue(shdrOutline, outlineSizeLoc, &outlineSize, SHADER_UNIFORM_FLOAT);
+ SetShaderValue(shdrOutline, outlineColorLoc, outlineColor, SHADER_UNIFORM_VEC4);
+ SetShaderValue(shdrOutline, textureSizeLoc, textureSize, SHADER_UNIFORM_VEC2);
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -49,7 +57,10 @@ int main(void)
{
// Update
//----------------------------------------------------------------------------------
- // TODO: Update your variables here
+ outlineSize += GetMouseWheelMove();
+ if (outlineSize < 1.0f) outlineSize = 1.0f;
+
+ SetShaderValue(shdrOutline, outlineSizeLoc, &outlineSize, SHADER_UNIFORM_FLOAT);
//----------------------------------------------------------------------------------
// Draw
@@ -59,11 +70,14 @@ int main(void)
ClearBackground(RAYWHITE);
BeginShaderMode(shdrOutline);
- DrawTextureEx(egg, (Vector2){ 0, 230 }, 0.0, outlineScale, WHITE);
- DrawTextureEx(torus, (Vector2){ 544, 230 }, 0.0, outlineScale, WHITE);
+
+ DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, -30, WHITE);
+
EndShaderMode();
- DrawText("Shader-based outlines for textures", 190, 200, 20, LIGHTGRAY);
+ DrawText("Shader-based\ntexture\noutline", 10, 10, 20, GRAY);
+
+ DrawText(TextFormat("Outline size: %i px", (int)outlineSize), 10, 120, 20, MAROON);
DrawFPS(710, 10);
@@ -73,8 +87,7 @@ int main(void)
// De-Initialization
//--------------------------------------------------------------------------------------
- UnloadTexture(egg);
- UnloadTexture(torus);
+ UnloadTexture(texture);
UnloadShader(shdrOutline);
CloseWindow(); // Close window and OpenGL context
diff --git a/examples/shaders/shaders_texture_outline.png b/examples/shaders/shaders_texture_outline.png
new file mode 100644
index 000000000..85c69b180
Binary files /dev/null and b/examples/shaders/shaders_texture_outline.png differ
diff --git a/examples/text/resources/shaders/glsl100/alpha_discard.fs b/examples/text/resources/shaders/glsl100/alpha_discard.fs
new file mode 100644
index 000000000..a6b1e20cf
--- /dev/null
+++ b/examples/text/resources/shaders/glsl100/alpha_discard.fs
@@ -0,0 +1,20 @@
+#version 100
+
+precision mediump float;
+
+// Input vertex attributes (from vertex shader)
+varying vec2 fragTexCoord;
+varying vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+uniform vec4 colDiffuse;
+
+void main()
+{
+ vec4 texelColor = texture2D(texture0, fragTexCoord);
+
+ if (texelColor.a == 0.0) discard;
+
+ gl_FragColor = texelColor*fragColor*colDiffuse;
+}
diff --git a/examples/text/resources/shaders/glsl100/sdf.fs b/examples/text/resources/shaders/glsl100/sdf.fs
index b4214d92c..31323d96b 100644
--- a/examples/text/resources/shaders/glsl100/sdf.fs
+++ b/examples/text/resources/shaders/glsl100/sdf.fs
@@ -1,5 +1,7 @@
#version 100
+precision mediump float;
+
// Input vertex attributes (from vertex shader)
varying vec2 fragTexCoord;
varying vec4 fragColor;
diff --git a/examples/textures/textures_poly.c b/examples/textures/textures_polygon.c
similarity index 82%
rename from examples/textures/textures_poly.c
rename to examples/textures/textures_polygon.c
index a2423a4bb..9d26505e2 100644
--- a/examples/textures/textures_poly.c
+++ b/examples/textures/textures_polygon.c
@@ -15,7 +15,7 @@
#include "raylib.h"
#include "raymath.h"
-#define MAX_POINTS 11 // 10 points and back to the start
+#define MAX_POINTS 11 // 10 points and back to the start
int main(void)
{
@@ -23,7 +23,10 @@ int main(void)
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
+
+ InitWindow(screenWidth, screenHeight, "raylib [textures] example - textured polygon");
+ // Define texture coordinates to map our texture to poly
Vector2 texcoords[MAX_POINTS] = {
(Vector2){ 0.75f, 0.0f },
(Vector2){ 0.25f, 0.0f },
@@ -38,22 +41,24 @@ int main(void)
(Vector2){ 0.75f, 0.0f} // Close the poly
};
+ // Define the base poly vertices from the UV's
+ // NOTE: They can be specified in any other way
Vector2 points[MAX_POINTS] = { 0 };
-
- // Create the poly coords from the UV's
- // you don't have to do this you can specify
- // them however you want
for (int i = 0; i < MAX_POINTS; i++)
{
points[i].x = (texcoords[i].x - 0.5f)*256.0f;
points[i].y = (texcoords[i].y - 0.5f)*256.0f;
}
+
+ // Define the vertices drawing position
+ // NOTE: Initially same as points but updated every frame
+ Vector2 positions[MAX_POINTS] = { 0 };
+ for (int i = 0; i < MAX_POINTS; i++) positions[i] = points[i];
- InitWindow(screenWidth, screenHeight, "raylib [textures] example - textured polygon");
-
+ // Load texture to be mapped to poly
Texture texture = LoadTexture("resources/cat.png");
- float angle = 0.0f;
+ float angle = 0.0f; // Rotation angle (in degrees)
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -63,10 +68,9 @@ int main(void)
{
// Update
//----------------------------------------------------------------------------------
+ // Update points rotation with an angle transform
+ // NOTE: Base points position are not modified
angle++;
-
- Vector2 positions[MAX_POINTS] = { 0 };
-
for (int i = 0; i < MAX_POINTS; i++) positions[i] = Vector2Rotate(points[i], angle*DEG2RAD);
//----------------------------------------------------------------------------------
diff --git a/examples/textures/textures_poly.png b/examples/textures/textures_polygon.png
similarity index 100%
rename from examples/textures/textures_poly.png
rename to examples/textures/textures_polygon.png
diff --git a/projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj b/projects/VS2019/examples/models_loading_vox.vcxproj
similarity index 99%
rename from projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj
rename to projects/VS2019/examples/models_loading_vox.vcxproj
index f2e86c8a6..420e952ab 100644
--- a/projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj
+++ b/projects/VS2019/examples/models_loading_vox.vcxproj
@@ -39,7 +39,7 @@
Win32Proj
models_mesh_magicavoxel_loading
10.0
- models_mesh_magicavoxel_loading
+ models_loading_vox
@@ -379,7 +379,7 @@
-
+
diff --git a/projects/VS2019/raylib.sln b/projects/VS2019/raylib.sln
index f5a4180f2..696d66159 100644
--- a/projects/VS2019/raylib.sln
+++ b/projects/VS2019/raylib.sln
@@ -93,16 +93,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_first_person_maze",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_geometric_shapes", "examples\models_geometric_shapes.vcxproj", "{14BA7F98-02CC-4648-9236-676BFF9458AF}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_gltf_animation", "examples\models_gltf_animation.vcxproj", "{FADC31C3-09AA-4DB4-A289-153482D10C09}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_gltf_model", "examples\models_gltf_model.vcxproj", "{F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_heightmap", "examples\models_heightmap.vcxproj", "{0859A973-E4FE-4688-8D16-0253163FDE24}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading", "examples\models_loading.vcxproj", "{F3412853-2B6A-4334-8CF2-B796CDAE0850}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_material_pbr", "examples\models_material_pbr.vcxproj", "{3A6C48C6-80AB-456F-A3A5-969930958971}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_generation", "examples\models_mesh_generation.vcxproj", "{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_picking", "examples\models_mesh_picking.vcxproj", "{D03F2C82-9553-4AFA-8F49-9234009122B6}"
@@ -275,7 +269,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_standalone", "examples
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_split_screen", "examples\core_split_screen.vcxproj", "{946A1700-C7AA-46F0-AEF2-67C98B5722AC}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_magicavoxel_loading", "examples\models_mesh_magicavoxel_loading.vcxproj", "{2F1B955B-275E-4D8E-8864-06FEC44D7912}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading_vox", "examples\models_loading_vox.vcxproj", "{2F1B955B-275E-4D8E-8864-06FEC44D7912}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -895,38 +889,6 @@ Global
{14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x64.Build.0 = Release|x64
{14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x86.ActiveCfg = Release|Win32
{14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x86.Build.0 = Release|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x64.ActiveCfg = Debug|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x64.Build.0 = Debug|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x86.ActiveCfg = Debug|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x86.Build.0 = Debug|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x64.Build.0 = Release.DLL|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x86.Build.0 = Release.DLL|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x64.ActiveCfg = Release|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x64.Build.0 = Release|x64
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x86.ActiveCfg = Release|Win32
- {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x86.Build.0 = Release|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x64.ActiveCfg = Debug|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x64.Build.0 = Debug|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x86.ActiveCfg = Debug|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x86.Build.0 = Debug|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x64.Build.0 = Release.DLL|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x86.Build.0 = Release.DLL|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x64.ActiveCfg = Release|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x64.Build.0 = Release|x64
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x86.ActiveCfg = Release|Win32
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x86.Build.0 = Release|Win32
{0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
@@ -959,22 +921,6 @@ Global
{F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x64.Build.0 = Release|x64
{F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x86.ActiveCfg = Release|Win32
{F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x86.Build.0 = Release|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x64.ActiveCfg = Debug|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x64.Build.0 = Debug|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x86.ActiveCfg = Debug|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x86.Build.0 = Debug|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x64.Build.0 = Release.DLL|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x86.Build.0 = Release.DLL|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x64.ActiveCfg = Release|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x64.Build.0 = Release|x64
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x86.ActiveCfg = Release|Win32
- {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x86.Build.0 = Release|Win32
{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
@@ -2349,11 +2295,8 @@ Global
{5317807F-61D4-4E0F-B6DC-2D9F12621ED9} = {8716DC0F-4FDE-4F57-8E25-5F78DFB80FE1}
{CBD6C0F8-8200-4E9A-9D7C-6505A2AA4A62} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{14BA7F98-02CC-4648-9236-676BFF9458AF} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
- {FADC31C3-09AA-4DB4-A289-153482D10C09} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
- {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{0859A973-E4FE-4688-8D16-0253163FDE24} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{F3412853-2B6A-4334-8CF2-B796CDAE0850} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
- {3A6C48C6-80AB-456F-A3A5-969930958971} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{D03F2C82-9553-4AFA-8F49-9234009122B6} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
{FE232CA5-6C0D-4ADF-9A21-775D4DC048D3} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C}
diff --git a/projects/VSCode/.vscode/tasks.json b/projects/VSCode/.vscode/tasks.json
index 989e13b0d..a610a248a 100644
--- a/projects/VSCode/.vscode/tasks.json
+++ b/projects/VSCode/.vscode/tasks.json
@@ -9,7 +9,9 @@
"command": "make",
"args": [
"PLATFORM=PLATFORM_DESKTOP",
- "BUILD_MODE=DEBUG"
+ "BUILD_MODE=DEBUG",
+ "PROJECT_NAME=${fileBasenameNoExtension}",
+ "OBJS=${fileBasenameNoExtension}.c"
],
"windows": {
"command": "C:/raylib/mingw/bin/mingw32-make.exe",
@@ -42,6 +44,8 @@
"command": "make",
"args": [
"PLATFORM=PLATFORM_DESKTOP",
+ "PROJECT_NAME=${fileBasenameNoExtension}",
+ "OBJS=${fileBasenameNoExtension}.c"
],
"windows": {
"command": "C:/raylib/mingw/bin/mingw32-make.exe",
@@ -64,4 +68,4 @@
]
}
]
-}
+}
\ No newline at end of file
diff --git a/src/Makefile b/src/Makefile
index 40ebfee0c..62b392abf 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -43,8 +43,8 @@
.PHONY: all clean install uninstall
# Define required raylib variables
-RAYLIB_VERSION = 3.8.1
-RAYLIB_API_VERSION = 381
+RAYLIB_VERSION = 4.0.0
+RAYLIB_API_VERSION = 400
# Define raylib source code path
RAYLIB_SRC_PATH ?= ../src
diff --git a/src/build.zig b/src/build.zig
index 2c304a523..6bdae0f96 100644
--- a/src/build.zig
+++ b/src/build.zig
@@ -25,14 +25,16 @@ pub fn build(b: *std.build.Builder) void {
raylib.addIncludeDir("external/glfw/include");
- raylib.addCSourceFile("rcore.c", raylib_flags);
- raylib.addCSourceFile("rmodels.c", raylib_flags);
- raylib.addCSourceFile("raudio.c", raylib_flags);
- raylib.addCSourceFile("rshapes.c", raylib_flags);
- raylib.addCSourceFile("rtext.c", raylib_flags);
- raylib.addCSourceFile("rtextures.c", raylib_flags);
- raylib.addCSourceFile("utils.c", raylib_flags);
- raylib.addCSourceFile("rglfw.c", raylib_flags);
+ raylib.addCSourceFiles(&.{
+ "raudio.c",
+ "rcore.c",
+ "rglfw.c",
+ "rmodels.c",
+ "rshapes.c",
+ "rtext.c",
+ "rtextures.c",
+ "utils.c",
+ }, raylib_flags);
switch (raylib.target.toTarget().os.tag) {
.windows => {
diff --git a/src/config.h b/src/config.h
index 931fdf5bb..aea7df783 100644
--- a/src/config.h
+++ b/src/config.h
@@ -84,8 +84,12 @@
//------------------------------------------------------------------------------------
// Module: rlgl - Configuration values
//------------------------------------------------------------------------------------
+
+// Enable OpenGL Debug Context (only available on OpenGL 4.3)
+//#define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT 1
+
// Show OpenGL extensions and capabilities detailed logs on init
-//#define RLGL_SHOW_GL_DETAILS_INFO 1
+//#define RLGL_SHOW_GL_DETAILS_INFO 1
//#define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 4096 // Default internal render batch elements limits
#define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering)
diff --git a/src/external/glad.h b/src/external/glad.h
index c92e1845f..5ca3ead32 100644
--- a/src/external/glad.h
+++ b/src/external/glad.h
@@ -1,621 +1,301 @@
-/*
+/**
+ * Loader generated by glad 2.0.0-beta on Sun Oct 17 18:39:09 2021
+ *
+ * Generator: C/C++
+ * Specification: gl
+ * Extensions: 110
+ *
+ * APIs:
+ * - gl:core=4.3
+ *
+ * Options:
+ * - ALIAS = False
+ * - DEBUG = False
+ * - HEADER_ONLY = True
+ * - LOADER = True
+ * - MX = False
+ * - MX_GLOBAL = False
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='gl:core=4.3' --extensions='GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_map_buffer_range,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_pipeline_statistics_query,GL_ARB_query_buffer_object,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_texture_lod,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_spirv_extensions,GL_ARB_tessellation_shader,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_compression,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_rg,GL_ARB_texture_storage,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_OES_compressed_paletted_texture,GL_OES_fixed_point' c --header-only --loader
+ *
+ * Online:
+ * http://glad.sh/#api=gl%3Acore%3D4.3&generator=c&options=HEADER_ONLY%2CLOADER
+ *
+ */
- OpenGL loader generated by glad 0.1.10a0 on Fri Jun 10 12:54:12 2016.
-
- Language/Generator: C/C++
- Specification: gl
- APIs: gl=3.3
- Profile: core
- Extensions:
- GL_AMD_debug_output, GL_AMD_query_buffer_object, GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, GL_ARB_buffer_storage, GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, GL_ARB_fragment_program, GL_ARB_fragment_shader, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_multisample, GL_ARB_sample_locations, GL_ARB_texture_compression, GL_ARB_texture_float, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rg, GL_ARB_texture_swizzle, GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ATI_element_array, GL_ATI_fragment_shader, GL_ATI_vertex_array_object, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_index_array_formats, GL_EXT_texture, GL_EXT_texture_compression_s3tc, GL_EXT_texture_sRGB, GL_EXT_texture_swizzle, GL_EXT_vertex_array, GL_EXT_vertex_shader
- Loader: No
-
- Commandline:
- --profile="core" --api="gl=3.3" --generator="c" --spec="gl" --no-loader --extensions="GL_AMD_debug_output,GL_AMD_query_buffer_object,GL_ARB_ES2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_buffer_storage,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_program,GL_ARB_fragment_shader,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_multisample,GL_ARB_sample_locations,GL_ARB_texture_compression,GL_ARB_texture_float,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_rg,GL_ARB_texture_swizzle,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ATI_element_array,GL_ATI_fragment_shader,GL_ATI_vertex_array_object,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_index_array_formats,GL_EXT_texture,GL_EXT_texture_compression_s3tc,GL_EXT_texture_sRGB,GL_EXT_texture_swizzle,GL_EXT_vertex_array,GL_EXT_vertex_shader"
- Online:
- http://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.3&extensions=GL_AMD_debug_output&extensions=GL_AMD_query_buffer_object&extensions=GL_ARB_ES2_compatibility&extensions=GL_ARB_ES3_compatibility&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_compatibility&extensions=GL_ARB_compressed_texture_pixel_storage&extensions=GL_ARB_debug_output&extensions=GL_ARB_depth_buffer_float&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_depth_texture&extensions=GL_ARB_draw_buffers&extensions=GL_ARB_draw_buffers_blend&extensions=GL_ARB_explicit_attrib_location&extensions=GL_ARB_explicit_uniform_location&extensions=GL_ARB_fragment_program&extensions=GL_ARB_fragment_shader&extensions=GL_ARB_framebuffer_object&extensions=GL_ARB_framebuffer_sRGB&extensions=GL_ARB_multisample&extensions=GL_ARB_sample_locations&extensions=GL_ARB_texture_compression&extensions=GL_ARB_texture_float&extensions=GL_ARB_texture_multisample&extensions=GL_ARB_texture_non_power_of_two&extensions=GL_ARB_texture_rg&extensions=GL_ARB_texture_swizzle&extensions=GL_ARB_uniform_buffer_object&extensions=GL_ARB_vertex_array_object&extensions=GL_ARB_vertex_attrib_binding&extensions=GL_ARB_vertex_buffer_object&extensions=GL_ARB_vertex_program&extensions=GL_ARB_vertex_shader&extensions=GL_ATI_element_array&extensions=GL_ATI_fragment_shader&extensions=GL_ATI_vertex_array_object&extensions=GL_EXT_blend_color&extensions=GL_EXT_blend_equation_separate&extensions=GL_EXT_blend_func_separate&extensions=GL_EXT_framebuffer_blit&extensions=GL_EXT_framebuffer_multisample&extensions=GL_EXT_framebuffer_multisample_blit_scaled&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_framebuffer_sRGB&extensions=GL_EXT_index_array_formats&extensions=GL_EXT_texture&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_sRGB&extensions=GL_EXT_texture_swizzle&extensions=GL_EXT_vertex_array&extensions=GL_EXT_vertex_shader
-*/
-
-
-#ifndef __glad_h_
-#define __glad_h_
+#ifndef GLAD_GL_H_
+#define GLAD_GL_H_
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif
#ifdef __gl_h_
-#error OpenGL header already included, remove this include, glad already provides it
+ #error OpenGL (gl.h) header already included (API: gl), remove previous include!
#endif
-#define __gl_h_
-
-#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN 1
+#define __gl_h_ 1
+#ifdef __gl3_h_
+ #error OpenGL (gl3.h) header already included (API: gl), remove previous include!
#endif
-//#include
-#define APIENTRY __stdcall // RAY: Added
+#define __gl3_h_ 1
+#ifdef __glext_h_
+ #error OpenGL (glext.h) header already included (API: gl), remove previous include!
+#endif
+#define __glext_h_ 1
+#ifdef __gl3ext_h_
+ #error OpenGL (gl3ext.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl3ext_h_ 1
+#ifdef __clang__
+#pragma clang diagnostic pop
#endif
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-#ifndef APIENTRYP
-#define APIENTRYP APIENTRY *
-#endif
-
-// RAY: Added
-#ifndef GLAD_REALLOC
- #define GLAD_REALLOC(n,sz) realloc(n,sz)
-#endif
-#ifndef GLAD_FREE
- #define GLAD_FREE(p) free(p)
-#endif
+#define GLAD_GL
+#define GLAD_OPTION_GL_HEADER_ONLY
+#define GLAD_OPTION_GL_LOADER
#ifdef __cplusplus
extern "C" {
#endif
-struct gladGLversionStruct {
- int major;
- int minor;
-};
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
-typedef void* (* GLADloadproc)(const char *name);
+#ifndef GLAD_PLATFORM_WIN32
+ #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+ #define GLAD_PLATFORM_WIN32 1
+ #else
+ #define GLAD_PLATFORM_WIN32 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+ #ifdef __APPLE__
+ #define GLAD_PLATFORM_APPLE 1
+ #else
+ #define GLAD_PLATFORM_APPLE 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+ #ifdef __EMSCRIPTEN__
+ #define GLAD_PLATFORM_EMSCRIPTEN 1
+ #else
+ #define GLAD_PLATFORM_EMSCRIPTEN 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+ #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+ #ifdef __has_include
+ #if __has_include()
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #endif
+
+ #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+ #include
+ #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ #define GLAD_PLATFORM_UWP 1
+ #endif
+ #endif
+
+ #ifndef GLAD_PLATFORM_UWP
+ #define GLAD_PLATFORM_UWP 0
+ #endif
+#endif
+
+#ifdef __GNUC__
+ #define GLAD_GNUC_EXTENSION __extension__
+#else
+ #define GLAD_GNUC_EXTENSION
+#endif
+
+#ifndef GLAD_API_CALL
+ #if defined(GLAD_API_CALL_EXPORT)
+ #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+ #if defined(GLAD_API_CALL_EXPORT_BUILD)
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllexport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllexport) extern
+ #endif
+ #else
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllimport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllimport) extern
+ #endif
+ #endif
+ #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+ #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+#endif
+
+#ifdef APIENTRY
+ #define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+ #define GLAD_API_PTR __stdcall
+#else
+ #define GLAD_API_PTR
+#endif
#ifndef GLAPI
-# if defined(GLAD_GLAPI_EXPORT)
-# if defined(WIN32) || defined(__CYGWIN__)
-# if defined(GLAD_GLAPI_EXPORT_BUILD)
-# if defined(__GNUC__)
-# define GLAPI __attribute__ ((dllexport)) extern
-# else
-# define GLAPI __declspec(dllexport) extern
-# endif
-# else
-# if defined(__GNUC__)
-# define GLAPI __attribute__ ((dllimport)) extern
-# else
-# define GLAPI __declspec(dllimport) extern
-# endif
-# endif
-# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD)
-# define GLAPI __attribute__ ((visibility ("default"))) extern
-# else
-# define GLAPI extern
-# endif
-# else
-# define GLAPI extern
-# endif
+#define GLAPI GLAD_API_CALL
#endif
-GLAPI struct gladGLversionStruct GLVersion;
-GLAPI int gladLoadGLLoader(GLADloadproc);
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
-#include
-//#include // RAY: Not required
-#ifndef GLEXT_64_TYPES_DEFINED
-/* This code block is duplicated in glxext.h, so must be protected */
-#define GLEXT_64_TYPES_DEFINED
-/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
-/* (as used in the GL_EXT_timer_query extension). */
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include
-#elif defined(__sun__) || defined(__digital__)
-#include
-#if defined(__STDC__)
-#if defined(__arch64__) || defined(_LP64)
-typedef long int int64_t;
-typedef unsigned long int uint64_t;
-#else
-typedef long long int int64_t;
-typedef unsigned long long int uint64_t;
-#endif /* __arch64__ */
-#endif /* __STDC__ */
-#elif defined( __VMS ) || defined(__sgi)
-#include
-#elif defined(__SCO__) || defined(__USLC__)
-#include
-#elif defined(__UNIXOS2__) || defined(__SOL64__)
-typedef long int int32_t;
-typedef long long int int64_t;
-typedef unsigned long long int uint64_t;
-#elif defined(_WIN32) && defined(__GNUC__)
-#include
-#elif defined(_WIN32)
-typedef __int32 int32_t;
-typedef __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-#else
-/* Fallback if nothing above works */
-#include
-#endif
-#endif
-typedef unsigned int GLenum;
-typedef unsigned char GLboolean;
-typedef unsigned int GLbitfield;
-typedef void GLvoid;
-typedef signed char GLbyte;
-typedef short GLshort;
-typedef int GLint;
-typedef int GLclampx;
-typedef unsigned char GLubyte;
-typedef unsigned short GLushort;
-typedef unsigned int GLuint;
-typedef int GLsizei;
-typedef float GLfloat;
-typedef float GLclampf;
-typedef double GLdouble;
-typedef double GLclampd;
-typedef void *GLeglImageOES;
-typedef char GLchar;
-typedef char GLcharARB;
-#ifdef __APPLE__
-typedef void *GLhandleARB;
-#else
-typedef unsigned int GLhandleARB;
-#endif
-typedef unsigned short GLhalfARB;
-typedef unsigned short GLhalf;
-typedef GLint GLfixed;
-typedef ptrdiff_t GLintptr;
-typedef ptrdiff_t GLsizeiptr;
-typedef int64_t GLint64;
-typedef uint64_t GLuint64;
-typedef ptrdiff_t GLintptrARB;
-typedef ptrdiff_t GLsizeiptrARB;
-typedef int64_t GLint64EXT;
-typedef uint64_t GLuint64EXT;
-typedef struct __GLsync *GLsync;
-struct _cl_context;
-struct _cl_event;
-typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
-typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
-typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
-typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
-typedef unsigned short GLhalfNV;
-typedef GLintptr GLvdpauSurfaceNV;
-#define GL_DEPTH_BUFFER_BIT 0x00000100
-#define GL_STENCIL_BUFFER_BIT 0x00000400
-#define GL_COLOR_BUFFER_BIT 0x00004000
-#define GL_FALSE 0
-#define GL_TRUE 1
-#define GL_POINTS 0x0000
-#define GL_LINES 0x0001
-#define GL_LINE_LOOP 0x0002
-#define GL_LINE_STRIP 0x0003
-#define GL_TRIANGLES 0x0004
-#define GL_TRIANGLE_STRIP 0x0005
-#define GL_TRIANGLE_FAN 0x0006
-#define GL_NEVER 0x0200
-#define GL_LESS 0x0201
-#define GL_EQUAL 0x0202
-#define GL_LEQUAL 0x0203
-#define GL_GREATER 0x0204
-#define GL_NOTEQUAL 0x0205
-#define GL_GEQUAL 0x0206
-#define GL_ALWAYS 0x0207
-#define GL_ZERO 0
-#define GL_ONE 1
-#define GL_SRC_COLOR 0x0300
-#define GL_ONE_MINUS_SRC_COLOR 0x0301
-#define GL_SRC_ALPHA 0x0302
-#define GL_ONE_MINUS_SRC_ALPHA 0x0303
-#define GL_DST_ALPHA 0x0304
-#define GL_ONE_MINUS_DST_ALPHA 0x0305
-#define GL_DST_COLOR 0x0306
-#define GL_ONE_MINUS_DST_COLOR 0x0307
-#define GL_SRC_ALPHA_SATURATE 0x0308
-#define GL_NONE 0
-#define GL_FRONT_LEFT 0x0400
-#define GL_FRONT_RIGHT 0x0401
-#define GL_BACK_LEFT 0x0402
-#define GL_BACK_RIGHT 0x0403
-#define GL_FRONT 0x0404
-#define GL_BACK 0x0405
-#define GL_LEFT 0x0406
-#define GL_RIGHT 0x0407
-#define GL_FRONT_AND_BACK 0x0408
-#define GL_NO_ERROR 0
-#define GL_INVALID_ENUM 0x0500
-#define GL_INVALID_VALUE 0x0501
-#define GL_INVALID_OPERATION 0x0502
-#define GL_OUT_OF_MEMORY 0x0505
-#define GL_CW 0x0900
-#define GL_CCW 0x0901
-#define GL_POINT_SIZE 0x0B11
-#define GL_POINT_SIZE_RANGE 0x0B12
-#define GL_POINT_SIZE_GRANULARITY 0x0B13
-#define GL_LINE_SMOOTH 0x0B20
-#define GL_LINE_WIDTH 0x0B21
-#define GL_LINE_WIDTH_RANGE 0x0B22
-#define GL_LINE_WIDTH_GRANULARITY 0x0B23
-#define GL_POLYGON_MODE 0x0B40
-#define GL_POLYGON_SMOOTH 0x0B41
-#define GL_CULL_FACE 0x0B44
-#define GL_CULL_FACE_MODE 0x0B45
-#define GL_FRONT_FACE 0x0B46
-#define GL_DEPTH_RANGE 0x0B70
-#define GL_DEPTH_TEST 0x0B71
-#define GL_DEPTH_WRITEMASK 0x0B72
-#define GL_DEPTH_CLEAR_VALUE 0x0B73
-#define GL_DEPTH_FUNC 0x0B74
-#define GL_STENCIL_TEST 0x0B90
-#define GL_STENCIL_CLEAR_VALUE 0x0B91
-#define GL_STENCIL_FUNC 0x0B92
-#define GL_STENCIL_VALUE_MASK 0x0B93
-#define GL_STENCIL_FAIL 0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
-#define GL_STENCIL_REF 0x0B97
-#define GL_STENCIL_WRITEMASK 0x0B98
-#define GL_VIEWPORT 0x0BA2
-#define GL_DITHER 0x0BD0
-#define GL_BLEND_DST 0x0BE0
-#define GL_BLEND_SRC 0x0BE1
-#define GL_BLEND 0x0BE2
-#define GL_LOGIC_OP_MODE 0x0BF0
-#define GL_COLOR_LOGIC_OP 0x0BF2
-#define GL_DRAW_BUFFER 0x0C01
-#define GL_READ_BUFFER 0x0C02
-#define GL_SCISSOR_BOX 0x0C10
-#define GL_SCISSOR_TEST 0x0C11
-#define GL_COLOR_CLEAR_VALUE 0x0C22
-#define GL_COLOR_WRITEMASK 0x0C23
-#define GL_DOUBLEBUFFER 0x0C32
-#define GL_STEREO 0x0C33
-#define GL_LINE_SMOOTH_HINT 0x0C52
-#define GL_POLYGON_SMOOTH_HINT 0x0C53
-#define GL_UNPACK_SWAP_BYTES 0x0CF0
-#define GL_UNPACK_LSB_FIRST 0x0CF1
-#define GL_UNPACK_ROW_LENGTH 0x0CF2
-#define GL_UNPACK_SKIP_ROWS 0x0CF3
-#define GL_UNPACK_SKIP_PIXELS 0x0CF4
-#define GL_UNPACK_ALIGNMENT 0x0CF5
-#define GL_PACK_SWAP_BYTES 0x0D00
-#define GL_PACK_LSB_FIRST 0x0D01
-#define GL_PACK_ROW_LENGTH 0x0D02
-#define GL_PACK_SKIP_ROWS 0x0D03
-#define GL_PACK_SKIP_PIXELS 0x0D04
-#define GL_PACK_ALIGNMENT 0x0D05
-#define GL_MAX_TEXTURE_SIZE 0x0D33
-#define GL_MAX_VIEWPORT_DIMS 0x0D3A
-#define GL_SUBPIXEL_BITS 0x0D50
-#define GL_TEXTURE_1D 0x0DE0
-#define GL_TEXTURE_2D 0x0DE1
-#define GL_POLYGON_OFFSET_UNITS 0x2A00
-#define GL_POLYGON_OFFSET_POINT 0x2A01
-#define GL_POLYGON_OFFSET_LINE 0x2A02
-#define GL_POLYGON_OFFSET_FILL 0x8037
-#define GL_POLYGON_OFFSET_FACTOR 0x8038
-#define GL_TEXTURE_BINDING_1D 0x8068
-#define GL_TEXTURE_BINDING_2D 0x8069
-#define GL_TEXTURE_WIDTH 0x1000
-#define GL_TEXTURE_HEIGHT 0x1001
-#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
-#define GL_TEXTURE_BORDER_COLOR 0x1004
-#define GL_TEXTURE_RED_SIZE 0x805C
-#define GL_TEXTURE_GREEN_SIZE 0x805D
-#define GL_TEXTURE_BLUE_SIZE 0x805E
-#define GL_TEXTURE_ALPHA_SIZE 0x805F
-#define GL_DONT_CARE 0x1100
-#define GL_FASTEST 0x1101
-#define GL_NICEST 0x1102
-#define GL_BYTE 0x1400
-#define GL_UNSIGNED_BYTE 0x1401
-#define GL_SHORT 0x1402
-#define GL_UNSIGNED_SHORT 0x1403
-#define GL_INT 0x1404
-#define GL_UNSIGNED_INT 0x1405
-#define GL_FLOAT 0x1406
-#define GL_DOUBLE 0x140A
-#define GL_CLEAR 0x1500
-#define GL_AND 0x1501
-#define GL_AND_REVERSE 0x1502
-#define GL_COPY 0x1503
-#define GL_AND_INVERTED 0x1504
-#define GL_NOOP 0x1505
-#define GL_XOR 0x1506
-#define GL_OR 0x1507
-#define GL_NOR 0x1508
-#define GL_EQUIV 0x1509
-#define GL_INVERT 0x150A
-#define GL_OR_REVERSE 0x150B
-#define GL_COPY_INVERTED 0x150C
-#define GL_OR_INVERTED 0x150D
-#define GL_NAND 0x150E
-#define GL_SET 0x150F
-#define GL_TEXTURE 0x1702
-#define GL_COLOR 0x1800
-#define GL_DEPTH 0x1801
-#define GL_STENCIL 0x1802
-#define GL_STENCIL_INDEX 0x1901
-#define GL_DEPTH_COMPONENT 0x1902
-#define GL_RED 0x1903
-#define GL_GREEN 0x1904
-#define GL_BLUE 0x1905
-#define GL_ALPHA 0x1906
-#define GL_RGB 0x1907
-#define GL_RGBA 0x1908
-#define GL_POINT 0x1B00
-#define GL_LINE 0x1B01
-#define GL_FILL 0x1B02
-#define GL_KEEP 0x1E00
-#define GL_REPLACE 0x1E01
-#define GL_INCR 0x1E02
-#define GL_DECR 0x1E03
-#define GL_VENDOR 0x1F00
-#define GL_RENDERER 0x1F01
-#define GL_VERSION 0x1F02
-#define GL_EXTENSIONS 0x1F03
-#define GL_NEAREST 0x2600
-#define GL_LINEAR 0x2601
-#define GL_NEAREST_MIPMAP_NEAREST 0x2700
-#define GL_LINEAR_MIPMAP_NEAREST 0x2701
-#define GL_NEAREST_MIPMAP_LINEAR 0x2702
-#define GL_LINEAR_MIPMAP_LINEAR 0x2703
-#define GL_TEXTURE_MAG_FILTER 0x2800
-#define GL_TEXTURE_MIN_FILTER 0x2801
-#define GL_TEXTURE_WRAP_S 0x2802
-#define GL_TEXTURE_WRAP_T 0x2803
-#define GL_PROXY_TEXTURE_1D 0x8063
-#define GL_PROXY_TEXTURE_2D 0x8064
-#define GL_REPEAT 0x2901
-#define GL_R3_G3_B2 0x2A10
-#define GL_RGB4 0x804F
-#define GL_RGB5 0x8050
-#define GL_RGB8 0x8051
-#define GL_RGB10 0x8052
-#define GL_RGB12 0x8053
-#define GL_RGB16 0x8054
-#define GL_RGBA2 0x8055
-#define GL_RGBA4 0x8056
-#define GL_RGB5_A1 0x8057
-#define GL_RGBA8 0x8058
-#define GL_RGB10_A2 0x8059
-#define GL_RGBA12 0x805A
-#define GL_RGBA16 0x805B
-#define GL_UNSIGNED_BYTE_3_3_2 0x8032
-#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
-#define GL_UNSIGNED_INT_8_8_8_8 0x8035
-#define GL_UNSIGNED_INT_10_10_10_2 0x8036
-#define GL_TEXTURE_BINDING_3D 0x806A
-#define GL_PACK_SKIP_IMAGES 0x806B
-#define GL_PACK_IMAGE_HEIGHT 0x806C
-#define GL_UNPACK_SKIP_IMAGES 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT 0x806E
-#define GL_TEXTURE_3D 0x806F
-#define GL_PROXY_TEXTURE_3D 0x8070
-#define GL_TEXTURE_DEPTH 0x8071
-#define GL_TEXTURE_WRAP_R 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE 0x8073
-#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
-#define GL_UNSIGNED_SHORT_5_6_5 0x8363
-#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
-#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
-#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
-#define GL_BGR 0x80E0
-#define GL_BGRA 0x80E1
-#define GL_MAX_ELEMENTS_VERTICES 0x80E8
-#define GL_MAX_ELEMENTS_INDICES 0x80E9
-#define GL_CLAMP_TO_EDGE 0x812F
-#define GL_TEXTURE_MIN_LOD 0x813A
-#define GL_TEXTURE_MAX_LOD 0x813B
-#define GL_TEXTURE_BASE_LEVEL 0x813C
-#define GL_TEXTURE_MAX_LEVEL 0x813D
-#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
-#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
-#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
-#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
-#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
-#define GL_TEXTURE0 0x84C0
-#define GL_TEXTURE1 0x84C1
-#define GL_TEXTURE2 0x84C2
-#define GL_TEXTURE3 0x84C3
-#define GL_TEXTURE4 0x84C4
-#define GL_TEXTURE5 0x84C5
-#define GL_TEXTURE6 0x84C6
-#define GL_TEXTURE7 0x84C7
-#define GL_TEXTURE8 0x84C8
-#define GL_TEXTURE9 0x84C9
-#define GL_TEXTURE10 0x84CA
-#define GL_TEXTURE11 0x84CB
-#define GL_TEXTURE12 0x84CC
-#define GL_TEXTURE13 0x84CD
-#define GL_TEXTURE14 0x84CE
-#define GL_TEXTURE15 0x84CF
-#define GL_TEXTURE16 0x84D0
-#define GL_TEXTURE17 0x84D1
-#define GL_TEXTURE18 0x84D2
-#define GL_TEXTURE19 0x84D3
-#define GL_TEXTURE20 0x84D4
-#define GL_TEXTURE21 0x84D5
-#define GL_TEXTURE22 0x84D6
-#define GL_TEXTURE23 0x84D7
-#define GL_TEXTURE24 0x84D8
-#define GL_TEXTURE25 0x84D9
-#define GL_TEXTURE26 0x84DA
-#define GL_TEXTURE27 0x84DB
-#define GL_TEXTURE28 0x84DC
-#define GL_TEXTURE29 0x84DD
-#define GL_TEXTURE30 0x84DE
-#define GL_TEXTURE31 0x84DF
-#define GL_ACTIVE_TEXTURE 0x84E0
-#define GL_MULTISAMPLE 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
-#define GL_SAMPLE_COVERAGE 0x80A0
-#define GL_SAMPLE_BUFFERS 0x80A8
-#define GL_SAMPLES 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
-#define GL_TEXTURE_CUBE_MAP 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
-#define GL_COMPRESSED_RGB 0x84ED
-#define GL_COMPRESSED_RGBA 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
-#define GL_TEXTURE_COMPRESSED 0x86A1
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
-#define GL_CLAMP_TO_BORDER 0x812D
-#define GL_BLEND_DST_RGB 0x80C8
-#define GL_BLEND_SRC_RGB 0x80C9
-#define GL_BLEND_DST_ALPHA 0x80CA
-#define GL_BLEND_SRC_ALPHA 0x80CB
-#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
-#define GL_DEPTH_COMPONENT16 0x81A5
-#define GL_DEPTH_COMPONENT24 0x81A6
-#define GL_DEPTH_COMPONENT32 0x81A7
-#define GL_MIRRORED_REPEAT 0x8370
-#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
-#define GL_TEXTURE_LOD_BIAS 0x8501
-#define GL_INCR_WRAP 0x8507
-#define GL_DECR_WRAP 0x8508
-#define GL_TEXTURE_DEPTH_SIZE 0x884A
-#define GL_TEXTURE_COMPARE_MODE 0x884C
-#define GL_TEXTURE_COMPARE_FUNC 0x884D
-#define GL_FUNC_ADD 0x8006
-#define GL_FUNC_SUBTRACT 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT 0x800B
-#define GL_MIN 0x8007
-#define GL_MAX 0x8008
-#define GL_CONSTANT_COLOR 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
-#define GL_CONSTANT_ALPHA 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
-#define GL_BUFFER_SIZE 0x8764
-#define GL_BUFFER_USAGE 0x8765
-#define GL_QUERY_COUNTER_BITS 0x8864
-#define GL_CURRENT_QUERY 0x8865
-#define GL_QUERY_RESULT 0x8866
-#define GL_QUERY_RESULT_AVAILABLE 0x8867
-#define GL_ARRAY_BUFFER 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER 0x8893
-#define GL_ARRAY_BUFFER_BINDING 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-#define GL_READ_ONLY 0x88B8
-#define GL_WRITE_ONLY 0x88B9
-#define GL_READ_WRITE 0x88BA
-#define GL_BUFFER_ACCESS 0x88BB
-#define GL_BUFFER_MAPPED 0x88BC
-#define GL_BUFFER_MAP_POINTER 0x88BD
-#define GL_STREAM_DRAW 0x88E0
-#define GL_STREAM_READ 0x88E1
-#define GL_STREAM_COPY 0x88E2
-#define GL_STATIC_DRAW 0x88E4
-#define GL_STATIC_READ 0x88E5
-#define GL_STATIC_COPY 0x88E6
-#define GL_DYNAMIC_DRAW 0x88E8
-#define GL_DYNAMIC_READ 0x88E9
-#define GL_DYNAMIC_COPY 0x88EA
-#define GL_SAMPLES_PASSED 0x8914
-#define GL_SRC1_ALPHA 0x8589
-#define GL_BLEND_EQUATION_RGB 0x8009
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB 0x8626
-#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
-#define GL_STENCIL_BACK_FUNC 0x8800
-#define GL_STENCIL_BACK_FAIL 0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
-#define GL_MAX_DRAW_BUFFERS 0x8824
-#define GL_DRAW_BUFFER0 0x8825
-#define GL_DRAW_BUFFER1 0x8826
-#define GL_DRAW_BUFFER2 0x8827
-#define GL_DRAW_BUFFER3 0x8828
-#define GL_DRAW_BUFFER4 0x8829
-#define GL_DRAW_BUFFER5 0x882A
-#define GL_DRAW_BUFFER6 0x882B
-#define GL_DRAW_BUFFER7 0x882C
-#define GL_DRAW_BUFFER8 0x882D
-#define GL_DRAW_BUFFER9 0x882E
-#define GL_DRAW_BUFFER10 0x882F
-#define GL_DRAW_BUFFER11 0x8830
-#define GL_DRAW_BUFFER12 0x8831
-#define GL_DRAW_BUFFER13 0x8832
-#define GL_DRAW_BUFFER14 0x8833
-#define GL_DRAW_BUFFER15 0x8834
-#define GL_BLEND_EQUATION_ALPHA 0x883D
-#define GL_MAX_VERTEX_ATTRIBS 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
-#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
-#define GL_FRAGMENT_SHADER 0x8B30
-#define GL_VERTEX_SHADER 0x8B31
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
-#define GL_MAX_VARYING_FLOATS 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_SHADER_TYPE 0x8B4F
-#define GL_FLOAT_VEC2 0x8B50
-#define GL_FLOAT_VEC3 0x8B51
-#define GL_FLOAT_VEC4 0x8B52
-#define GL_INT_VEC2 0x8B53
-#define GL_INT_VEC3 0x8B54
-#define GL_INT_VEC4 0x8B55
-#define GL_BOOL 0x8B56
-#define GL_BOOL_VEC2 0x8B57
-#define GL_BOOL_VEC3 0x8B58
-#define GL_BOOL_VEC4 0x8B59
-#define GL_FLOAT_MAT2 0x8B5A
-#define GL_FLOAT_MAT3 0x8B5B
-#define GL_FLOAT_MAT4 0x8B5C
-#define GL_SAMPLER_1D 0x8B5D
-#define GL_SAMPLER_2D 0x8B5E
-#define GL_SAMPLER_3D 0x8B5F
-#define GL_SAMPLER_CUBE 0x8B60
-#define GL_SAMPLER_1D_SHADOW 0x8B61
-#define GL_SAMPLER_2D_SHADOW 0x8B62
-#define GL_DELETE_STATUS 0x8B80
-#define GL_COMPILE_STATUS 0x8B81
-#define GL_LINK_STATUS 0x8B82
-#define GL_VALIDATE_STATUS 0x8B83
-#define GL_INFO_LOG_LENGTH 0x8B84
-#define GL_ATTACHED_SHADERS 0x8B85
-#define GL_ACTIVE_UNIFORMS 0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
-#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.0-beta"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
#define GL_ACTIVE_ATTRIBUTES 0x8B89
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
-#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
-#define GL_CURRENT_PROGRAM 0x8B8D
-#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
-#define GL_LOWER_LEFT 0x8CA1
-#define GL_UPPER_LEFT 0x8CA2
-#define GL_STENCIL_BACK_REF 0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
-#define GL_PIXEL_PACK_BUFFER 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
-#define GL_FLOAT_MAT2x3 0x8B65
-#define GL_FLOAT_MAT2x4 0x8B66
-#define GL_FLOAT_MAT3x2 0x8B67
-#define GL_FLOAT_MAT3x4 0x8B68
-#define GL_FLOAT_MAT4x2 0x8B69
-#define GL_FLOAT_MAT4x3 0x8B6A
-#define GL_SRGB 0x8C40
-#define GL_SRGB8 0x8C41
-#define GL_SRGB_ALPHA 0x8C42
-#define GL_SRGB8_ALPHA8 0x8C43
-#define GL_COMPRESSED_SRGB 0x8C48
-#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
-#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_ACTIVE_PROGRAM 0x8259
+#define GL_ACTIVE_RESOURCES 0x92F5
+#define GL_ACTIVE_SUBROUTINES 0x8DE5
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_ACTIVE_VARIABLES 0x9305
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
+#define GL_ALL_SHADER_BITS 0xFFFFFFFF
+#define GL_ALPHA 0x1906
+#define GL_ALPHA16F_ARB 0x881C
+#define GL_ALPHA32F_ARB 0x8816
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_ALWAYS 0x0207
+#define GL_AND 0x1501
+#define GL_AND_INVERTED 0x1504
+#define GL_AND_REVERSE 0x1502
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ARRAY_BUFFER_ARB 0x8892
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+#define GL_ARRAY_SIZE 0x92FB
+#define GL_ARRAY_STRIDE 0x92FE
+#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_AUTO_GENERATE_MIPMAP 0x8295
+#define GL_BACK 0x0405
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_RIGHT 0x0403
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_COLOR 0x8005
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_EQUATION 0x8009
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLOCK_INDEX 0x92FD
+#define GL_BLUE 0x1905
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_BOOL 0x8B56
+#define GL_BOOL_ARB 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC2_ARB 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC3_ARB 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_BOOL_VEC4_ARB 0x8B59
+#define GL_BUFFER 0x82E0
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_ACCESS_ARB 0x88BB
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_BINDING 0x9302
+#define GL_BUFFER_DATA_SIZE 0x9303
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAPPED_ARB 0x88BC
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_SIZE_ARB 0x8764
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+#define GL_BUFFER_USAGE 0x8765
+#define GL_BUFFER_USAGE_ARB 0x8765
+#define GL_BUFFER_VARIABLE 0x92E5
+#define GL_BYTE 0x1400
+#define GL_CAVEAT_SUPPORT 0x82B8
+#define GL_CCW 0x0901
+#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_CLAMP_READ_COLOR_ARB 0x891C
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
+#define GL_CLEAR 0x1500
+#define GL_CLEAR_BUFFER 0x82B4
+#define GL_CLEAR_TEXTURE 0x9365
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
+#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
+#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
+#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
#define GL_CLIP_DISTANCE0 0x3000
#define GL_CLIP_DISTANCE1 0x3001
#define GL_CLIP_DISTANCE2 0x3002
@@ -624,162 +304,29 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_CLIP_DISTANCE5 0x3005
#define GL_CLIP_DISTANCE6 0x3006
#define GL_CLIP_DISTANCE7 0x3007
-#define GL_MAX_CLIP_DISTANCES 0x0D32
-#define GL_MAJOR_VERSION 0x821B
-#define GL_MINOR_VERSION 0x821C
-#define GL_NUM_EXTENSIONS 0x821D
-#define GL_CONTEXT_FLAGS 0x821E
-#define GL_COMPRESSED_RED 0x8225
-#define GL_COMPRESSED_RG 0x8226
-#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
-#define GL_RGBA32F 0x8814
-#define GL_RGB32F 0x8815
-#define GL_RGBA16F 0x881A
-#define GL_RGB16F 0x881B
-#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
-#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
-#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
-#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
-#define GL_CLAMP_READ_COLOR 0x891C
-#define GL_FIXED_ONLY 0x891D
-#define GL_MAX_VARYING_COMPONENTS 0x8B4B
-#define GL_TEXTURE_1D_ARRAY 0x8C18
-#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
-#define GL_TEXTURE_2D_ARRAY 0x8C1A
-#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
-#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
-#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
-#define GL_R11F_G11F_B10F 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
-#define GL_RGB9_E5 0x8C3D
-#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
-#define GL_TEXTURE_SHARED_SIZE 0x8C3F
-#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
-#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
-#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
-#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
-#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
-#define GL_PRIMITIVES_GENERATED 0x8C87
-#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
-#define GL_RASTERIZER_DISCARD 0x8C89
-#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
-#define GL_INTERLEAVED_ATTRIBS 0x8C8C
-#define GL_SEPARATE_ATTRIBS 0x8C8D
-#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
-#define GL_RGBA32UI 0x8D70
-#define GL_RGB32UI 0x8D71
-#define GL_RGBA16UI 0x8D76
-#define GL_RGB16UI 0x8D77
-#define GL_RGBA8UI 0x8D7C
-#define GL_RGB8UI 0x8D7D
-#define GL_RGBA32I 0x8D82
-#define GL_RGB32I 0x8D83
-#define GL_RGBA16I 0x8D88
-#define GL_RGB16I 0x8D89
-#define GL_RGBA8I 0x8D8E
-#define GL_RGB8I 0x8D8F
-#define GL_RED_INTEGER 0x8D94
-#define GL_GREEN_INTEGER 0x8D95
-#define GL_BLUE_INTEGER 0x8D96
-#define GL_RGB_INTEGER 0x8D98
-#define GL_RGBA_INTEGER 0x8D99
-#define GL_BGR_INTEGER 0x8D9A
-#define GL_BGRA_INTEGER 0x8D9B
-#define GL_SAMPLER_1D_ARRAY 0x8DC0
-#define GL_SAMPLER_2D_ARRAY 0x8DC1
-#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
-#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
-#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
-#define GL_UNSIGNED_INT_VEC2 0x8DC6
-#define GL_UNSIGNED_INT_VEC3 0x8DC7
-#define GL_UNSIGNED_INT_VEC4 0x8DC8
-#define GL_INT_SAMPLER_1D 0x8DC9
-#define GL_INT_SAMPLER_2D 0x8DCA
-#define GL_INT_SAMPLER_3D 0x8DCB
-#define GL_INT_SAMPLER_CUBE 0x8DCC
-#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
-#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
-#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
-#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
-#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
-#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
-#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
-#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
-#define GL_QUERY_WAIT 0x8E13
-#define GL_QUERY_NO_WAIT 0x8E14
-#define GL_QUERY_BY_REGION_WAIT 0x8E15
-#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
-#define GL_BUFFER_ACCESS_FLAGS 0x911F
-#define GL_BUFFER_MAP_LENGTH 0x9120
-#define GL_BUFFER_MAP_OFFSET 0x9121
-#define GL_DEPTH_COMPONENT32F 0x8CAC
-#define GL_DEPTH32F_STENCIL8 0x8CAD
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
-#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
-#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
-#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
-#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
-#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
-#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
-#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
-#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
-#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
-#define GL_FRAMEBUFFER_DEFAULT 0x8218
-#define GL_FRAMEBUFFER_UNDEFINED 0x8219
-#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
-#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
-#define GL_DEPTH_STENCIL 0x84F9
-#define GL_UNSIGNED_INT_24_8 0x84FA
-#define GL_DEPTH24_STENCIL8 0x88F0
-#define GL_TEXTURE_STENCIL_SIZE 0x88F1
-#define GL_TEXTURE_RED_TYPE 0x8C10
-#define GL_TEXTURE_GREEN_TYPE 0x8C11
-#define GL_TEXTURE_BLUE_TYPE 0x8C12
-#define GL_TEXTURE_ALPHA_TYPE 0x8C13
-#define GL_TEXTURE_DEPTH_TYPE 0x8C16
-#define GL_UNSIGNED_NORMALIZED 0x8C17
-#define GL_FRAMEBUFFER_BINDING 0x8CA6
-#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
-#define GL_RENDERBUFFER_BINDING 0x8CA7
-#define GL_READ_FRAMEBUFFER 0x8CA8
-#define GL_DRAW_FRAMEBUFFER 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
-#define GL_RENDERBUFFER_SAMPLES 0x8CAB
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
-#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_COLOR 0x1800
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
#define GL_COLOR_ATTACHMENT1 0x8CE1
-#define GL_COLOR_ATTACHMENT2 0x8CE2
-#define GL_COLOR_ATTACHMENT3 0x8CE3
-#define GL_COLOR_ATTACHMENT4 0x8CE4
-#define GL_COLOR_ATTACHMENT5 0x8CE5
-#define GL_COLOR_ATTACHMENT6 0x8CE6
-#define GL_COLOR_ATTACHMENT7 0x8CE7
-#define GL_COLOR_ATTACHMENT8 0x8CE8
-#define GL_COLOR_ATTACHMENT9 0x8CE9
#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
#define GL_COLOR_ATTACHMENT16 0x8CF0
#define GL_COLOR_ATTACHMENT17 0x8CF1
#define GL_COLOR_ATTACHMENT18 0x8CF2
#define GL_COLOR_ATTACHMENT19 0x8CF3
+#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+#define GL_COLOR_ATTACHMENT2 0x8CE2
#define GL_COLOR_ATTACHMENT20 0x8CF4
#define GL_COLOR_ATTACHMENT21 0x8CF5
#define GL_COLOR_ATTACHMENT22 0x8CF6
@@ -790,1536 +337,548 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_COLOR_ATTACHMENT27 0x8CFB
#define GL_COLOR_ATTACHMENT28 0x8CFC
#define GL_COLOR_ATTACHMENT29 0x8CFD
+#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
#define GL_COLOR_ATTACHMENT30 0x8CFE
#define GL_COLOR_ATTACHMENT31 0x8CFF
-#define GL_DEPTH_ATTACHMENT 0x8D00
-#define GL_STENCIL_ATTACHMENT 0x8D20
-#define GL_FRAMEBUFFER 0x8D40
-#define GL_RENDERBUFFER 0x8D41
-#define GL_RENDERBUFFER_WIDTH 0x8D42
-#define GL_RENDERBUFFER_HEIGHT 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
-#define GL_STENCIL_INDEX1 0x8D46
-#define GL_STENCIL_INDEX4 0x8D47
-#define GL_STENCIL_INDEX8 0x8D48
-#define GL_STENCIL_INDEX16 0x8D49
-#define GL_RENDERBUFFER_RED_SIZE 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
-#define GL_MAX_SAMPLES 0x8D57
-#define GL_INDEX 0x8222
-#define GL_FRAMEBUFFER_SRGB 0x8DB9
-#define GL_HALF_FLOAT 0x140B
-#define GL_MAP_READ_BIT 0x0001
-#define GL_MAP_WRITE_BIT 0x0002
-#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
-#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
-#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
-#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
-#define GL_COMPRESSED_RED_RGTC1 0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
-#define GL_COMPRESSED_RG_RGTC2 0x8DBD
-#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
-#define GL_RG 0x8227
-#define GL_RG_INTEGER 0x8228
-#define GL_R8 0x8229
-#define GL_R16 0x822A
-#define GL_RG8 0x822B
-#define GL_RG16 0x822C
-#define GL_R16F 0x822D
-#define GL_R32F 0x822E
-#define GL_RG16F 0x822F
-#define GL_RG32F 0x8230
-#define GL_R8I 0x8231
-#define GL_R8UI 0x8232
-#define GL_R16I 0x8233
-#define GL_R16UI 0x8234
-#define GL_R32I 0x8235
-#define GL_R32UI 0x8236
-#define GL_RG8I 0x8237
-#define GL_RG8UI 0x8238
-#define GL_RG16I 0x8239
-#define GL_RG16UI 0x823A
-#define GL_RG32I 0x823B
-#define GL_RG32UI 0x823C
-#define GL_VERTEX_ARRAY_BINDING 0x85B5
-#define GL_SAMPLER_2D_RECT 0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
-#define GL_SAMPLER_BUFFER 0x8DC2
-#define GL_INT_SAMPLER_2D_RECT 0x8DCD
-#define GL_INT_SAMPLER_BUFFER 0x8DD0
-#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
-#define GL_TEXTURE_BUFFER 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
-#define GL_TEXTURE_RECTANGLE 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
-#define GL_R8_SNORM 0x8F94
-#define GL_RG8_SNORM 0x8F95
-#define GL_RGB8_SNORM 0x8F96
-#define GL_RGBA8_SNORM 0x8F97
-#define GL_R16_SNORM 0x8F98
-#define GL_RG16_SNORM 0x8F99
-#define GL_RGB16_SNORM 0x8F9A
-#define GL_RGBA16_SNORM 0x8F9B
-#define GL_SIGNED_NORMALIZED 0x8F9C
-#define GL_PRIMITIVE_RESTART 0x8F9D
-#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
-#define GL_COPY_READ_BUFFER 0x8F36
-#define GL_COPY_WRITE_BUFFER 0x8F37
-#define GL_UNIFORM_BUFFER 0x8A11
-#define GL_UNIFORM_BUFFER_BINDING 0x8A28
-#define GL_UNIFORM_BUFFER_START 0x8A29
-#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
-#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
-#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
-#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
-#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
-#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
-#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
-#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
-#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
-#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
-#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
-#define GL_UNIFORM_TYPE 0x8A37
-#define GL_UNIFORM_SIZE 0x8A38
-#define GL_UNIFORM_NAME_LENGTH 0x8A39
-#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
-#define GL_UNIFORM_OFFSET 0x8A3B
-#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
-#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
-#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
-#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
-#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
-#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
-#define GL_INVALID_INDEX 0xFFFFFFFF
-#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
-#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
-#define GL_LINES_ADJACENCY 0x000A
-#define GL_LINE_STRIP_ADJACENCY 0x000B
-#define GL_TRIANGLES_ADJACENCY 0x000C
-#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
-#define GL_PROGRAM_POINT_SIZE 0x8642
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
-#define GL_GEOMETRY_SHADER 0x8DD9
-#define GL_GEOMETRY_VERTICES_OUT 0x8916
-#define GL_GEOMETRY_INPUT_TYPE 0x8917
-#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
-#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
-#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
-#define GL_CONTEXT_PROFILE_MASK 0x9126
-#define GL_DEPTH_CLAMP 0x864F
-#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
-#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION 0x8E4E
-#define GL_PROVOKING_VERTEX 0x8E4F
-#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
-#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
-#define GL_OBJECT_TYPE 0x9112
-#define GL_SYNC_CONDITION 0x9113
-#define GL_SYNC_STATUS 0x9114
-#define GL_SYNC_FLAGS 0x9115
-#define GL_SYNC_FENCE 0x9116
-#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
-#define GL_UNSIGNALED 0x9118
-#define GL_SIGNALED 0x9119
-#define GL_ALREADY_SIGNALED 0x911A
-#define GL_TIMEOUT_EXPIRED 0x911B
-#define GL_CONDITION_SATISFIED 0x911C
-#define GL_WAIT_FAILED 0x911D
-#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
-#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
-#define GL_SAMPLE_POSITION 0x8E50
-#define GL_SAMPLE_MASK 0x8E51
-#define GL_SAMPLE_MASK_VALUE 0x8E52
-#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
-#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
-#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
-#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
-#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
-#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
-#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
-#define GL_TEXTURE_SAMPLES 0x9106
-#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
-#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
-#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
-#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
-#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
-#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
-#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
-#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
-#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
-#define GL_MAX_INTEGER_SAMPLES 0x9110
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
-#define GL_SRC1_COLOR 0x88F9
-#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
-#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
-#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
-#define GL_ANY_SAMPLES_PASSED 0x8C2F
-#define GL_SAMPLER_BINDING 0x8919
-#define GL_RGB10_A2UI 0x906F
-#define GL_TEXTURE_SWIZZLE_R 0x8E42
-#define GL_TEXTURE_SWIZZLE_G 0x8E43
-#define GL_TEXTURE_SWIZZLE_B 0x8E44
-#define GL_TEXTURE_SWIZZLE_A 0x8E45
-#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
-#define GL_TIME_ELAPSED 0x88BF
-#define GL_TIMESTAMP 0x8E28
-#define GL_INT_2_10_10_10_REV 0x8D9F
-#ifndef GL_VERSION_1_0
-#define GL_VERSION_1_0 1
-GLAPI int GLAD_GL_VERSION_1_0;
-typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode);
-GLAPI PFNGLCULLFACEPROC glad_glCullFace;
-#define glCullFace glad_glCullFace
-typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode);
-GLAPI PFNGLFRONTFACEPROC glad_glFrontFace;
-#define glFrontFace glad_glFrontFace
-typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode);
-GLAPI PFNGLHINTPROC glad_glHint;
-#define glHint glad_glHint
-typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width);
-GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth;
-#define glLineWidth glad_glLineWidth
-typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size);
-GLAPI PFNGLPOINTSIZEPROC glad_glPointSize;
-#define glPointSize glad_glPointSize
-typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
-GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode;
-#define glPolygonMode glad_glPolygonMode
-typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI PFNGLSCISSORPROC glad_glScissor;
-#define glScissor glad_glScissor
-typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
-GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
-#define glTexParameterf glad_glTexParameterf
-typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat* params);
-GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
-#define glTexParameterfv glad_glTexParameterfv
-typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
-GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
-#define glTexParameteri glad_glTexParameteri
-typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint* params);
-GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
-#define glTexParameteriv glad_glTexParameteriv
-typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
-#define glTexImage1D glad_glTexImage1D
-typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
-#define glTexImage2D glad_glTexImage2D
-typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf);
-GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
-#define glDrawBuffer glad_glDrawBuffer
-typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask);
-GLAPI PFNGLCLEARPROC glad_glClear;
-#define glClear glad_glClear
-typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GLAPI PFNGLCLEARCOLORPROC glad_glClearColor;
-#define glClearColor glad_glClearColor
-typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s);
-GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil;
-#define glClearStencil glad_glClearStencil
-typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth);
-GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth;
-#define glClearDepth glad_glClearDepth
-typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask);
-GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask;
-#define glStencilMask glad_glStencilMask
-typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GLAPI PFNGLCOLORMASKPROC glad_glColorMask;
-#define glColorMask glad_glColorMask
-typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag);
-GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask;
-#define glDepthMask glad_glDepthMask
-typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap);
-GLAPI PFNGLDISABLEPROC glad_glDisable;
-#define glDisable glad_glDisable
-typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap);
-GLAPI PFNGLENABLEPROC glad_glEnable;
-#define glEnable glad_glEnable
-typedef void (APIENTRYP PFNGLFINISHPROC)();
-GLAPI PFNGLFINISHPROC glad_glFinish;
-#define glFinish glad_glFinish
-typedef void (APIENTRYP PFNGLFLUSHPROC)();
-GLAPI PFNGLFLUSHPROC glad_glFlush;
-#define glFlush glad_glFlush
-typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
-GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc;
-#define glBlendFunc glad_glBlendFunc
-typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode);
-GLAPI PFNGLLOGICOPPROC glad_glLogicOp;
-#define glLogicOp glad_glLogicOp
-typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
-GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc;
-#define glStencilFunc glad_glStencilFunc
-typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
-GLAPI PFNGLSTENCILOPPROC glad_glStencilOp;
-#define glStencilOp glad_glStencilOp
-typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func);
-GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc;
-#define glDepthFunc glad_glDepthFunc
-typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
-GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref;
-#define glPixelStoref glad_glPixelStoref
-typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
-GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei;
-#define glPixelStorei glad_glPixelStorei
-typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src);
-GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer;
-#define glReadBuffer glad_glReadBuffer
-typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels);
-GLAPI PFNGLREADPIXELSPROC glad_glReadPixels;
-#define glReadPixels glad_glReadPixels
-typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean* data);
-GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
-#define glGetBooleanv glad_glGetBooleanv
-typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble* data);
-GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev;
-#define glGetDoublev glad_glGetDoublev
-typedef GLenum (APIENTRYP PFNGLGETERRORPROC)();
-GLAPI PFNGLGETERRORPROC glad_glGetError;
-#define glGetError glad_glGetError
-typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat* data);
-GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv;
-#define glGetFloatv glad_glGetFloatv
-typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint* data);
-GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv;
-#define glGetIntegerv glad_glGetIntegerv
-typedef const GLubyte* (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name);
-GLAPI PFNGLGETSTRINGPROC glad_glGetString;
-#define glGetString glad_glGetString
-typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void* pixels);
-GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
-#define glGetTexImage glad_glGetTexImage
-typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
-#define glGetTexParameterfv glad_glGetTexParameterfv
-typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
-#define glGetTexParameteriv glad_glGetTexParameteriv
-typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
-#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv
-typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint* params);
-GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
-#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv
-typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap);
-GLAPI PFNGLISENABLEDPROC glad_glIsEnabled;
-#define glIsEnabled glad_glIsEnabled
-typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far);
-GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
-#define glDepthRange glad_glDepthRange
-typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI PFNGLVIEWPORTPROC glad_glViewport;
-#define glViewport glad_glViewport
-#endif
-#ifndef GL_VERSION_1_1
-#define GL_VERSION_1_1 1
-GLAPI int GLAD_GL_VERSION_1_1;
-typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
-GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays;
-#define glDrawArrays glad_glDrawArrays
-typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices);
-GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements;
-#define glDrawElements glad_glDrawElements
-typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
-GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
-#define glPolygonOffset glad_glPolygonOffset
-typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
-#define glCopyTexImage1D glad_glCopyTexImage1D
-typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
-#define glCopyTexImage2D glad_glCopyTexImage2D
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
-#define glCopyTexSubImage1D glad_glCopyTexSubImage1D
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
-#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
-#define glTexSubImage1D glad_glTexSubImage1D
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
-#define glTexSubImage2D glad_glTexSubImage2D
-typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
-GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture;
-#define glBindTexture glad_glBindTexture
-typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint* textures);
-GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
-#define glDeleteTextures glad_glDeleteTextures
-typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint* textures);
-GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures;
-#define glGenTextures glad_glGenTextures
-typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture);
-GLAPI PFNGLISTEXTUREPROC glad_glIsTexture;
-#define glIsTexture glad_glIsTexture
-#endif
-#ifndef GL_VERSION_1_2
-#define GL_VERSION_1_2 1
-GLAPI int GLAD_GL_VERSION_1_2;
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void* indices);
-GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
-#define glDrawRangeElements glad_glDrawRangeElements
-typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
-#define glTexImage3D glad_glTexImage3D
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels);
-GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
-#define glTexSubImage3D glad_glTexSubImage3D
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
-#define glCopyTexSubImage3D glad_glCopyTexSubImage3D
-#endif
-#ifndef GL_VERSION_1_3
-#define GL_VERSION_1_3 1
-GLAPI int GLAD_GL_VERSION_1_3;
-typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture);
-GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
-#define glActiveTexture glad_glActiveTexture
-typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
-GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
-#define glSampleCoverage glad_glSampleCoverage
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
-#define glCompressedTexImage3D glad_glCompressedTexImage3D
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
-#define glCompressedTexImage2D glad_glCompressedTexImage2D
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
-#define glCompressedTexImage1D glad_glCompressedTexImage1D
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
-#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
-#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
-#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D
-typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void* img);
-GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
-#define glGetCompressedTexImage glad_glGetCompressedTexImage
-#endif
-#ifndef GL_VERSION_1_4
-#define GL_VERSION_1_4 1
-GLAPI int GLAD_GL_VERSION_1_4;
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
-#define glBlendFuncSeparate glad_glBlendFuncSeparate
-typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
-GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
-#define glMultiDrawArrays glad_glMultiDrawArrays
-typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei* count, GLenum type, const void** indices, GLsizei drawcount);
-GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
-#define glMultiDrawElements glad_glMultiDrawElements
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
-GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
-#define glPointParameterf glad_glPointParameterf
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat* params);
-GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
-#define glPointParameterfv glad_glPointParameterfv
-typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
-GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
-#define glPointParameteri glad_glPointParameteri
-typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint* params);
-GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
-#define glPointParameteriv glad_glPointParameteriv
-typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor;
-#define glBlendColor glad_glBlendColor
-typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode);
-GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
-#define glBlendEquation glad_glBlendEquation
-#endif
-#ifndef GL_VERSION_1_5
-#define GL_VERSION_1_5 1
-GLAPI int GLAD_GL_VERSION_1_5;
-typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint* ids);
-GLAPI PFNGLGENQUERIESPROC glad_glGenQueries;
-#define glGenQueries glad_glGenQueries
-typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint* ids);
-GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
-#define glDeleteQueries glad_glDeleteQueries
-typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id);
-GLAPI PFNGLISQUERYPROC glad_glIsQuery;
-#define glIsQuery glad_glIsQuery
-typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
-GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery;
-#define glBeginQuery glad_glBeginQuery
-typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target);
-GLAPI PFNGLENDQUERYPROC glad_glEndQuery;
-#define glEndQuery glad_glEndQuery
-typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv;
-#define glGetQueryiv glad_glGetQueryiv
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint* params);
-GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
-#define glGetQueryObjectiv glad_glGetQueryObjectiv
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint* params);
-GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
-#define glGetQueryObjectuiv glad_glGetQueryObjectuiv
-typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
-GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer;
-#define glBindBuffer glad_glBindBuffer
-typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint* buffers);
-GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
-#define glDeleteBuffers glad_glDeleteBuffers
-typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint* buffers);
-GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers;
-#define glGenBuffers glad_glGenBuffers
-typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer);
-GLAPI PFNGLISBUFFERPROC glad_glIsBuffer;
-#define glIsBuffer glad_glIsBuffer
-typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void* data, GLenum usage);
-GLAPI PFNGLBUFFERDATAPROC glad_glBufferData;
-#define glBufferData glad_glBufferData
-typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
-GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
-#define glBufferSubData glad_glBufferSubData
-typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void* data);
-GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
-#define glGetBufferSubData glad_glGetBufferSubData
-typedef void* (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
-GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer;
-#define glMapBuffer glad_glMapBuffer
-typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target);
-GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
-#define glUnmapBuffer glad_glUnmapBuffer
-typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
-#define glGetBufferParameteriv glad_glGetBufferParameteriv
-typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void** params);
-GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
-#define glGetBufferPointerv glad_glGetBufferPointerv
-#endif
-#ifndef GL_VERSION_2_0
-#define GL_VERSION_2_0 1
-GLAPI int GLAD_GL_VERSION_2_0;
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
-GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
-#define glBlendEquationSeparate glad_glBlendEquationSeparate
-typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum* bufs);
-GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
-#define glDrawBuffers glad_glDrawBuffers
-typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
-#define glStencilOpSeparate glad_glStencilOpSeparate
-typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
-GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
-#define glStencilFuncSeparate glad_glStencilFuncSeparate
-typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
-GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
-#define glStencilMaskSeparate glad_glStencilMaskSeparate
-typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
-GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader;
-#define glAttachShader glad_glAttachShader
-typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar* name);
-GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
-#define glBindAttribLocation glad_glBindAttribLocation
-typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader);
-GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader;
-#define glCompileShader glad_glCompileShader
-typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)();
-GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
-#define glCreateProgram glad_glCreateProgram
-typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type);
-GLAPI PFNGLCREATESHADERPROC glad_glCreateShader;
-#define glCreateShader glad_glCreateShader
-typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program);
-GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
-#define glDeleteProgram glad_glDeleteProgram
-typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader);
-GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader;
-#define glDeleteShader glad_glDeleteShader
-typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
-GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader;
-#define glDetachShader glad_glDetachShader
-typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
-GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
-#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
-typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
-GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
-#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
-typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
-#define glGetActiveAttrib glad_glGetActiveAttrib
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
-#define glGetActiveUniform glad_glGetActiveUniform
-typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
-GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
-#define glGetAttachedShaders glad_glGetAttachedShaders
-typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar* name);
-GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
-#define glGetAttribLocation glad_glGetAttribLocation
-typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint* params);
-GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
-#define glGetProgramiv glad_glGetProgramiv
-typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
-GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
-#define glGetProgramInfoLog glad_glGetProgramInfoLog
-typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint* params);
-GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv;
-#define glGetShaderiv glad_glGetShaderiv
-typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
-GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
-#define glGetShaderInfoLog glad_glGetShaderInfoLog
-typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
-GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
-#define glGetShaderSource glad_glGetShaderSource
-typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar* name);
-GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
-#define glGetUniformLocation glad_glGetUniformLocation
-typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat* params);
-GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
-#define glGetUniformfv glad_glGetUniformfv
-typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint* params);
-GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
-#define glGetUniformiv glad_glGetUniformiv
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble* params);
-GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
-#define glGetVertexAttribdv glad_glGetVertexAttribdv
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
-#define glGetVertexAttribfv glad_glGetVertexAttribfv
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint* params);
-GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
-#define glGetVertexAttribiv glad_glGetVertexAttribiv
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void** pointer);
-GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
-#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
-typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program);
-GLAPI PFNGLISPROGRAMPROC glad_glIsProgram;
-#define glIsProgram glad_glIsProgram
-typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader);
-GLAPI PFNGLISSHADERPROC glad_glIsShader;
-#define glIsShader glad_glIsShader
-typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program);
-GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram;
-#define glLinkProgram glad_glLinkProgram
-typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource;
-#define glShaderSource glad_glShaderSource
-typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program);
-GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram;
-#define glUseProgram glad_glUseProgram
-typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
-GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f;
-#define glUniform1f glad_glUniform1f
-typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
-GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f;
-#define glUniform2f glad_glUniform2f
-typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f;
-#define glUniform3f glad_glUniform3f
-typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f;
-#define glUniform4f glad_glUniform4f
-typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
-GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i;
-#define glUniform1i glad_glUniform1i
-typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
-GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i;
-#define glUniform2i glad_glUniform2i
-typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
-GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i;
-#define glUniform3i glad_glUniform3i
-typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i;
-#define glUniform4i glad_glUniform4i
-typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat* value);
-GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv;
-#define glUniform1fv glad_glUniform1fv
-typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat* value);
-GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv;
-#define glUniform2fv glad_glUniform2fv
-typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat* value);
-GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv;
-#define glUniform3fv glad_glUniform3fv
-typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat* value);
-GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv;
-#define glUniform4fv glad_glUniform4fv
-typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint* value);
-GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv;
-#define glUniform1iv glad_glUniform1iv
-typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint* value);
-GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv;
-#define glUniform2iv glad_glUniform2iv
-typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint* value);
-GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv;
-#define glUniform3iv glad_glUniform3iv
-typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint* value);
-GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv;
-#define glUniform4iv glad_glUniform4iv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
-#define glUniformMatrix2fv glad_glUniformMatrix2fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
-#define glUniformMatrix3fv glad_glUniformMatrix3fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
-#define glUniformMatrix4fv glad_glUniformMatrix4fv
-typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program);
-GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
-#define glValidateProgram glad_glValidateProgram
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
-GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
-#define glVertexAttrib1d glad_glVertexAttrib1d
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
-#define glVertexAttrib1dv glad_glVertexAttrib1dv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
-GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
-#define glVertexAttrib1f glad_glVertexAttrib1f
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
-#define glVertexAttrib1fv glad_glVertexAttrib1fv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
-GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
-#define glVertexAttrib1s glad_glVertexAttrib1s
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
-#define glVertexAttrib1sv glad_glVertexAttrib1sv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
-GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
-#define glVertexAttrib2d glad_glVertexAttrib2d
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
-#define glVertexAttrib2dv glad_glVertexAttrib2dv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
-GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
-#define glVertexAttrib2f glad_glVertexAttrib2f
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
-#define glVertexAttrib2fv glad_glVertexAttrib2fv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
-GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
-#define glVertexAttrib2s glad_glVertexAttrib2s
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
-#define glVertexAttrib2sv glad_glVertexAttrib2sv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
-GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
-#define glVertexAttrib3d glad_glVertexAttrib3d
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
-#define glVertexAttrib3dv glad_glVertexAttrib3dv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
-GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
-#define glVertexAttrib3f glad_glVertexAttrib3f
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
-#define glVertexAttrib3fv glad_glVertexAttrib3fv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
-GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
-#define glVertexAttrib3s glad_glVertexAttrib3s
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
-#define glVertexAttrib3sv glad_glVertexAttrib3sv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte* v);
-GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
-#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
-#define glVertexAttrib4Niv glad_glVertexAttrib4Niv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
-#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
-#define glVertexAttrib4Nub glad_glVertexAttrib4Nub
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte* v);
-GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
-#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
-#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort* v);
-GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
-#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte* v);
-GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
-#define glVertexAttrib4bv glad_glVertexAttrib4bv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
-#define glVertexAttrib4d glad_glVertexAttrib4d
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
-#define glVertexAttrib4dv glad_glVertexAttrib4dv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
-#define glVertexAttrib4f glad_glVertexAttrib4f
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
-#define glVertexAttrib4fv glad_glVertexAttrib4fv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
-#define glVertexAttrib4iv glad_glVertexAttrib4iv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
-#define glVertexAttrib4s glad_glVertexAttrib4s
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
-#define glVertexAttrib4sv glad_glVertexAttrib4sv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte* v);
-GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
-#define glVertexAttrib4ubv glad_glVertexAttrib4ubv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
-#define glVertexAttrib4uiv glad_glVertexAttrib4uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort* v);
-GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
-#define glVertexAttrib4usv glad_glVertexAttrib4usv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
-GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
-#define glVertexAttribPointer glad_glVertexAttribPointer
-#endif
-#ifndef GL_VERSION_2_1
-#define GL_VERSION_2_1 1
-GLAPI int GLAD_GL_VERSION_2_1;
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
-#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
-#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
-#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
-#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
-#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
-#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv
-#endif
-#ifndef GL_VERSION_3_0
-#define GL_VERSION_3_0 1
-GLAPI int GLAD_GL_VERSION_3_0;
-typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski;
-#define glColorMaski glad_glColorMaski
-typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean* data);
-GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
-#define glGetBooleani_v glad_glGetBooleani_v
-typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint* data);
-GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
-#define glGetIntegeri_v glad_glGetIntegeri_v
-typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index);
-GLAPI PFNGLENABLEIPROC glad_glEnablei;
-#define glEnablei glad_glEnablei
-typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index);
-GLAPI PFNGLDISABLEIPROC glad_glDisablei;
-#define glDisablei glad_glDisablei
-typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
-GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi;
-#define glIsEnabledi glad_glIsEnabledi
-typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
-GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
-#define glBeginTransformFeedback glad_glBeginTransformFeedback
-typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)();
-GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
-#define glEndTransformFeedback glad_glEndTransformFeedback
-typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
-#define glBindBufferRange glad_glBindBufferRange
-typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
-GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
-#define glBindBufferBase glad_glBindBufferBase
-typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar** varyings, GLenum bufferMode);
-GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
-#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings
-typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
-GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
-#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying
-typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
-GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor;
-#define glClampColor glad_glClampColor
-typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
-GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
-#define glBeginConditionalRender glad_glBeginConditionalRender
-typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)();
-GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
-#define glEndConditionalRender glad_glEndConditionalRender
-typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer);
-GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
-#define glVertexAttribIPointer glad_glVertexAttribIPointer
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint* params);
-GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
-#define glGetVertexAttribIiv glad_glGetVertexAttribIiv
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint* params);
-GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
-#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
-GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
-#define glVertexAttribI1i glad_glVertexAttribI1i
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
-GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
-#define glVertexAttribI2i glad_glVertexAttribI2i
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
-GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
-#define glVertexAttribI3i glad_glVertexAttribI3i
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
-GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
-#define glVertexAttribI4i glad_glVertexAttribI4i
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
-GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
-#define glVertexAttribI1ui glad_glVertexAttribI1ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
-GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
-#define glVertexAttribI2ui glad_glVertexAttribI2ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
-GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
-#define glVertexAttribI3ui glad_glVertexAttribI3ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
-#define glVertexAttribI4ui glad_glVertexAttribI4ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
-#define glVertexAttribI1iv glad_glVertexAttribI1iv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
-#define glVertexAttribI2iv glad_glVertexAttribI2iv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
-#define glVertexAttribI3iv glad_glVertexAttribI3iv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
-#define glVertexAttribI4iv glad_glVertexAttribI4iv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
-#define glVertexAttribI1uiv glad_glVertexAttribI1uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
-#define glVertexAttribI2uiv glad_glVertexAttribI2uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
-#define glVertexAttribI3uiv glad_glVertexAttribI3uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
-#define glVertexAttribI4uiv glad_glVertexAttribI4uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte* v);
-GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
-#define glVertexAttribI4bv glad_glVertexAttribI4bv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
-#define glVertexAttribI4sv glad_glVertexAttribI4sv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte* v);
-GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
-#define glVertexAttribI4ubv glad_glVertexAttribI4ubv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort* v);
-GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
-#define glVertexAttribI4usv glad_glVertexAttribI4usv
-typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint* params);
-GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
-#define glGetUniformuiv glad_glGetUniformuiv
-typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar* name);
-GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
-#define glBindFragDataLocation glad_glBindFragDataLocation
-typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar* name);
-GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
-#define glGetFragDataLocation glad_glGetFragDataLocation
-typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
-GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui;
-#define glUniform1ui glad_glUniform1ui
-typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
-GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui;
-#define glUniform2ui glad_glUniform2ui
-typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
-GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui;
-#define glUniform3ui glad_glUniform3ui
-typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui;
-#define glUniform4ui glad_glUniform4ui
-typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint* value);
-GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
-#define glUniform1uiv glad_glUniform1uiv
-typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint* value);
-GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
-#define glUniform2uiv glad_glUniform2uiv
-typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint* value);
-GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
-#define glUniform3uiv glad_glUniform3uiv
-typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint* value);
-GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
-#define glUniform4uiv glad_glUniform4uiv
-typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint* params);
-GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
-#define glTexParameterIiv glad_glTexParameterIiv
-typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint* params);
-GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
-#define glTexParameterIuiv glad_glTexParameterIuiv
-typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
-#define glGetTexParameterIiv glad_glGetTexParameterIiv
-typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint* params);
-GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
-#define glGetTexParameterIuiv glad_glGetTexParameterIuiv
-typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint* value);
-GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
-#define glClearBufferiv glad_glClearBufferiv
-typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint* value);
-GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
-#define glClearBufferuiv glad_glClearBufferuiv
-typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat* value);
-GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
-#define glClearBufferfv glad_glClearBufferfv
-typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
-GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
-#define glClearBufferfi glad_glClearBufferfi
-typedef const GLubyte* (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
-GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi;
-#define glGetStringi glad_glGetStringi
-typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
-GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
-#define glIsRenderbuffer glad_glIsRenderbuffer
-typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
-GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
-#define glBindRenderbuffer glad_glBindRenderbuffer
-typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint* renderbuffers);
-GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
-#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
-typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint* renderbuffers);
-GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
-#define glGenRenderbuffers glad_glGenRenderbuffers
-typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
-#define glRenderbufferStorage glad_glRenderbufferStorage
-typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
-#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
-typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
-GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
-#define glIsFramebuffer glad_glIsFramebuffer
-typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
-GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
-#define glBindFramebuffer glad_glBindFramebuffer
-typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint* framebuffers);
-GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
-#define glDeleteFramebuffers glad_glDeleteFramebuffers
-typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint* framebuffers);
-GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
-#define glGenFramebuffers glad_glGenFramebuffers
-typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
-GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
-#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
-#define glFramebufferTexture1D glad_glFramebufferTexture1D
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
-#define glFramebufferTexture2D glad_glFramebufferTexture2D
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
-#define glFramebufferTexture3D glad_glFramebufferTexture3D
-typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
-#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
-typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
-#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
-typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target);
-GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
-#define glGenerateMipmap glad_glGenerateMipmap
-typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
-#define glBlitFramebuffer glad_glBlitFramebuffer
-typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
-#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
-#define glFramebufferTextureLayer glad_glFramebufferTextureLayer
-typedef void* (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
-GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
-#define glMapBufferRange glad_glMapBufferRange
-typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
-GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
-#define glFlushMappedBufferRange glad_glFlushMappedBufferRange
-typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array);
-GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
-#define glBindVertexArray glad_glBindVertexArray
-typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint* arrays);
-GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
-#define glDeleteVertexArrays glad_glDeleteVertexArrays
-typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint* arrays);
-GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
-#define glGenVertexArrays glad_glGenVertexArrays
-typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array);
-GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
-#define glIsVertexArray glad_glIsVertexArray
-#endif
-#ifndef GL_VERSION_3_1
-#define GL_VERSION_3_1 1
-GLAPI int GLAD_GL_VERSION_3_1;
-typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
-GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
-#define glDrawArraysInstanced glad_glDrawArraysInstanced
-typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei instancecount);
-GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
-#define glDrawElementsInstanced glad_glDrawElementsInstanced
-typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
-GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer;
-#define glTexBuffer glad_glTexBuffer
-typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
-GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
-#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex
-typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
-#define glCopyBufferSubData glad_glCopyBufferSubData
-typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices);
-GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
-#define glGetUniformIndices glad_glGetUniformIndices
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
-GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
-#define glGetActiveUniformsiv glad_glGetActiveUniformsiv
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
-GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
-#define glGetActiveUniformName glad_glGetActiveUniformName
-typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar* uniformBlockName);
-GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
-#define glGetUniformBlockIndex glad_glGetUniformBlockIndex
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
-GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
-#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
-GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
-#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName
-typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
-GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
-#define glUniformBlockBinding glad_glUniformBlockBinding
-#endif
-#ifndef GL_VERSION_3_2
-#define GL_VERSION_3_2 1
-GLAPI int GLAD_GL_VERSION_3_2;
-typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLint basevertex);
-GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
-#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void* indices, GLint basevertex);
-GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
-#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex
-typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei instancecount, GLint basevertex);
-GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
-#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex
-typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei* count, GLenum type, const void** indices, GLsizei drawcount, const GLint* basevertex);
-GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
-#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex
-typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
-GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
-#define glProvokingVertex glad_glProvokingVertex
-typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
-GLAPI PFNGLFENCESYNCPROC glad_glFenceSync;
-#define glFenceSync glad_glFenceSync
-typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync);
-GLAPI PFNGLISSYNCPROC glad_glIsSync;
-#define glIsSync glad_glIsSync
-typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync);
-GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync;
-#define glDeleteSync glad_glDeleteSync
-typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
-GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
-#define glClientWaitSync glad_glClientWaitSync
-typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
-GLAPI PFNGLWAITSYNCPROC glad_glWaitSync;
-#define glWaitSync glad_glWaitSync
-typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64* data);
-GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
-#define glGetInteger64v glad_glGetInteger64v
-typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
-GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv;
-#define glGetSynciv glad_glGetSynciv
-typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64* data);
-GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
-#define glGetInteger64i_v glad_glGetInteger64i_v
-typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64* params);
-GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
-#define glGetBufferParameteri64v glad_glGetBufferParameteri64v
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
-GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
-#define glFramebufferTexture glad_glFramebufferTexture
-typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
-GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
-#define glTexImage2DMultisample glad_glTexImage2DMultisample
-typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
-#define glTexImage3DMultisample glad_glTexImage3DMultisample
-typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat* val);
-GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
-#define glGetMultisamplefv glad_glGetMultisamplefv
-typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
-GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
-#define glSampleMaski glad_glSampleMaski
-#endif
-#ifndef GL_VERSION_3_3
-#define GL_VERSION_3_3 1
-GLAPI int GLAD_GL_VERSION_3_3;
-typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
-GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
-#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed
-typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar* name);
-GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
-#define glGetFragDataIndex glad_glGetFragDataIndex
-typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint* samplers);
-GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers;
-#define glGenSamplers glad_glGenSamplers
-typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint* samplers);
-GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
-#define glDeleteSamplers glad_glDeleteSamplers
-typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler);
-GLAPI PFNGLISSAMPLERPROC glad_glIsSampler;
-#define glIsSampler glad_glIsSampler
-typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
-GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler;
-#define glBindSampler glad_glBindSampler
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
-GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
-#define glSamplerParameteri glad_glSamplerParameteri
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint* param);
-GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
-#define glSamplerParameteriv glad_glSamplerParameteriv
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
-GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
-#define glSamplerParameterf glad_glSamplerParameterf
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat* param);
-GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
-#define glSamplerParameterfv glad_glSamplerParameterfv
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint* param);
-GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
-#define glSamplerParameterIiv glad_glSamplerParameterIiv
-typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint* param);
-GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
-#define glSamplerParameterIuiv glad_glSamplerParameterIuiv
-typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint* params);
-GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
-#define glGetSamplerParameteriv glad_glGetSamplerParameteriv
-typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint* params);
-GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
-#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv
-typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
-#define glGetSamplerParameterfv glad_glGetSamplerParameterfv
-typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint* params);
-GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
-#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv
-typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
-GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
-#define glQueryCounter glad_glQueryCounter
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64* params);
-GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
-#define glGetQueryObjecti64v glad_glGetQueryObjecti64v
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64* params);
-GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
-#define glGetQueryObjectui64v glad_glGetQueryObjectui64v
-typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
-GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
-#define glVertexAttribDivisor glad_glVertexAttribDivisor
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
-GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
-#define glVertexAttribP1ui glad_glVertexAttribP1ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
-#define glVertexAttribP1uiv glad_glVertexAttribP1uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
-GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
-#define glVertexAttribP2ui glad_glVertexAttribP2ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
-#define glVertexAttribP2uiv glad_glVertexAttribP2uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
-GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
-#define glVertexAttribP3ui glad_glVertexAttribP3ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
-#define glVertexAttribP3uiv glad_glVertexAttribP3uiv
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
-GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
-#define glVertexAttribP4ui glad_glVertexAttribP4ui
-typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
-#define glVertexAttribP4uiv glad_glVertexAttribP4uiv
-typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value);
-GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
-#define glVertexP2ui glad_glVertexP2ui
-typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint* value);
-GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
-#define glVertexP2uiv glad_glVertexP2uiv
-typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value);
-GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
-#define glVertexP3ui glad_glVertexP3ui
-typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint* value);
-GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
-#define glVertexP3uiv glad_glVertexP3uiv
-typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value);
-GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
-#define glVertexP4ui glad_glVertexP4ui
-typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint* value);
-GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
-#define glVertexP4uiv glad_glVertexP4uiv
-typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords);
-GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
-#define glTexCoordP1ui glad_glTexCoordP1ui
-typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint* coords);
-GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
-#define glTexCoordP1uiv glad_glTexCoordP1uiv
-typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords);
-GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
-#define glTexCoordP2ui glad_glTexCoordP2ui
-typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint* coords);
-GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
-#define glTexCoordP2uiv glad_glTexCoordP2uiv
-typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords);
-GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
-#define glTexCoordP3ui glad_glTexCoordP3ui
-typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint* coords);
-GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
-#define glTexCoordP3uiv glad_glTexCoordP3uiv
-typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords);
-GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
-#define glTexCoordP4ui glad_glTexCoordP4ui
-typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint* coords);
-GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
-#define glTexCoordP4uiv glad_glTexCoordP4uiv
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords);
-GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
-#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint* coords);
-GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
-#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords);
-GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
-#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint* coords);
-GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
-#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords);
-GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
-#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint* coords);
-GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
-#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords);
-GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
-#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui
-typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint* coords);
-GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
-#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv
-typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords);
-GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui;
-#define glNormalP3ui glad_glNormalP3ui
-typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint* coords);
-GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
-#define glNormalP3uiv glad_glNormalP3uiv
-typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color);
-GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui;
-#define glColorP3ui glad_glColorP3ui
-typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint* color);
-GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
-#define glColorP3uiv glad_glColorP3uiv
-typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color);
-GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui;
-#define glColorP4ui glad_glColorP4ui
-typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint* color);
-GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
-#define glColorP4uiv glad_glColorP4uiv
-typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color);
-GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
-#define glSecondaryColorP3ui glad_glSecondaryColorP3ui
-typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint* color);
-GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
-#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv
-#endif
-#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
-#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
-#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
-#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
-#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
-#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
-#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
-#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
-#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
-#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
-#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
-#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
-#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
-#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
-#define GL_QUERY_BUFFER_AMD 0x9192
-#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
-#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
-#define GL_FIXED 0x140C
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-#define GL_LOW_FLOAT 0x8DF0
-#define GL_MEDIUM_FLOAT 0x8DF1
-#define GL_HIGH_FLOAT 0x8DF2
-#define GL_LOW_INT 0x8DF3
-#define GL_MEDIUM_INT 0x8DF4
-#define GL_HIGH_INT 0x8DF5
-#define GL_SHADER_COMPILER 0x8DFA
-#define GL_SHADER_BINARY_FORMATS 0x8DF8
-#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
-#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
-#define GL_MAX_VARYING_VECTORS 0x8DFC
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
-#define GL_RGB565 0x8D62
-#define GL_COMPRESSED_RGB8_ETC2 0x9274
-#define GL_COMPRESSED_SRGB8_ETC2 0x9275
-#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
-#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
-#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
-#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_COMPONENTS 0x8283
+#define GL_COLOR_ENCODING 0x8296
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_COLOR_RENDERABLE 0x8286
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_COMMAND_BARRIER_BIT 0x00000040
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
#define GL_COMPRESSED_R11_EAC 0x9270
-#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_RG 0x8226
#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
-#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
-#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
-#define GL_MAX_ELEMENT_INDEX 0x8D6B
-#define GL_MAP_PERSISTENT_BIT 0x0040
-#define GL_MAP_COHERENT_BIT 0x0080
-#define GL_DYNAMIC_STORAGE_BIT 0x0100
-#define GL_CLIENT_STORAGE_BIT 0x0200
-#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
-#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
-#define GL_BUFFER_STORAGE_FLAGS 0x8220
-#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
-#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
-#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
-#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
-#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
-#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
-#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
-#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
-#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
-#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
-#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
-#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
-#define GL_DEBUG_SOURCE_API_ARB 0x8246
-#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
-#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
-#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
-#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
-#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
-#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
-#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
-#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
-#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
-#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
-#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
-#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
-#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
-#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
-#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
-#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
-#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
-#define GL_DEPTH_COMPONENT16_ARB 0x81A5
-#define GL_DEPTH_COMPONENT24_ARB 0x81A6
-#define GL_DEPTH_COMPONENT32_ARB 0x81A7
-#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
-#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
-#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
-#define GL_DRAW_BUFFER0_ARB 0x8825
-#define GL_DRAW_BUFFER1_ARB 0x8826
-#define GL_DRAW_BUFFER2_ARB 0x8827
-#define GL_DRAW_BUFFER3_ARB 0x8828
-#define GL_DRAW_BUFFER4_ARB 0x8829
-#define GL_DRAW_BUFFER5_ARB 0x882A
-#define GL_DRAW_BUFFER6_ARB 0x882B
-#define GL_DRAW_BUFFER7_ARB 0x882C
-#define GL_DRAW_BUFFER8_ARB 0x882D
-#define GL_DRAW_BUFFER9_ARB 0x882E
-#define GL_DRAW_BUFFER10_ARB 0x882F
-#define GL_DRAW_BUFFER11_ARB 0x8830
-#define GL_DRAW_BUFFER12_ARB 0x8831
-#define GL_DRAW_BUFFER13_ARB 0x8832
-#define GL_DRAW_BUFFER14_ARB 0x8833
-#define GL_DRAW_BUFFER15_ARB 0x8834
-#define GL_MAX_UNIFORM_LOCATIONS 0x826E
-#define GL_FRAGMENT_PROGRAM_ARB 0x8804
-#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
-#define GL_PROGRAM_LENGTH_ARB 0x8627
-#define GL_PROGRAM_FORMAT_ARB 0x8876
-#define GL_PROGRAM_BINDING_ARB 0x8677
-#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
-#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
-#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
-#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
-#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
-#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
-#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
-#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
-#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
-#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
-#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
-#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
-#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
-#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
-#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
-#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
-#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
-#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
-#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
-#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
-#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
-#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
-#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
-#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
-#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
-#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
-#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
-#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
-#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
-#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
-#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
-#define GL_PROGRAM_STRING_ARB 0x8628
-#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+#define GL_COMPUTE_SHADER 0x91B9
+#define GL_COMPUTE_SHADER_BIT 0x00000020
+#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
+#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
+#define GL_COMPUTE_SUBROUTINE 0x92ED
+#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+#define GL_COMPUTE_TEXTURE 0x82A0
+#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_COPY 0x1503
+#define GL_COPY_INVERTED 0x150C
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_READ_BUFFER_BINDING 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
#define GL_CURRENT_MATRIX_ARB 0x8641
-#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
-#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
-#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
-#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
-#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_CURRENT_QUERY 0x8865
+#define GL_CURRENT_QUERY_ARB 0x8865
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_CW 0x0900
+#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+#define GL_DEBUG_LOGGED_MESSAGES 0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_OUTPUT 0x92E0
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_SEVERITY_HIGH 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_LOW 0x9148
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+#define GL_DEBUG_SOURCE_API 0x8246
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_APPLICATION 0x824A
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER 0x824B
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_ERROR 0x824C
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_MARKER 0x8268
+#define GL_DEBUG_TYPE_OTHER 0x8251
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_POP_GROUP 0x826A
+#define GL_DEBUG_TYPE_PORTABILITY 0x824F
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_DECR 0x1E03
+#define GL_DECR_WRAP 0x8508
+#define GL_DELETE_STATUS 0x8B80
+#define GL_DEPTH 0x1801
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_DEPTH_COMPONENTS 0x8284
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_RENDERABLE 0x8287
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+#define GL_DITHER 0x0BD0
+#define GL_DONT_CARE 0x1100
+#define GL_DOUBLE 0x140A
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_DOUBLE_MAT2 0x8F46
+#define GL_DOUBLE_MAT2x3 0x8F49
+#define GL_DOUBLE_MAT2x4 0x8F4A
+#define GL_DOUBLE_MAT3 0x8F47
+#define GL_DOUBLE_MAT3x2 0x8F4B
+#define GL_DOUBLE_MAT3x4 0x8F4C
+#define GL_DOUBLE_MAT4 0x8F48
+#define GL_DOUBLE_MAT4x2 0x8F4D
+#define GL_DOUBLE_MAT4x3 0x8F4E
+#define GL_DOUBLE_VEC2 0x8FFC
+#define GL_DOUBLE_VEC3 0x8FFD
+#define GL_DOUBLE_VEC4 0x8FFE
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER0_ARB 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER10_ARB 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER11_ARB 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER12_ARB 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER13_ARB 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER14_ARB 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_DRAW_BUFFER15_ARB 0x8834
+#define GL_DRAW_BUFFER1_ARB 0x8826
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER2_ARB 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER3_ARB 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER4_ARB 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER5_ARB 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER6_ARB 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER7_ARB 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER8_ARB 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_DRAW_BUFFER9_ARB 0x882E
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
+#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
+#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+#define GL_DST_ALPHA 0x0304
+#define GL_DST_COLOR 0x0306
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_DYNAMIC_COPY_ARB 0x88EA
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_DRAW_ARB 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_DYNAMIC_READ_ARB 0x88E9
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+#define GL_EQUAL 0x0202
+#define GL_EQUIV 0x1509
+#define GL_EXTENSIONS 0x1F03
+#define GL_FALSE 0
+#define GL_FASTEST 0x1101
+#define GL_FILL 0x1B02
+#define GL_FILTER 0x829A
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_FIXED 0x140C
+#define GL_FIXED_OES 0x140C
+#define GL_FIXED_ONLY 0x891D
+#define GL_FIXED_ONLY_ARB 0x891D
+#define GL_FLOAT 0x1406
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT2_ARB 0x8B5A
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT3_ARB 0x8B5B
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_FLOAT_MAT4_ARB 0x8B5C
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC2_ARB 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC3_ARB 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_FLOAT_VEC4_ARB 0x8B52
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FRACTIONAL_EVEN 0x8E7C
+#define GL_FRACTIONAL_ODD 0x8E7B
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#define GL_FRAGMENT_SHADER_BIT 0x00000002
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
+#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
+#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
+#define GL_FRAGMENT_SUBROUTINE 0x92EC
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+#define GL_FRAGMENT_TEXTURE 0x829F
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
+#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_FRAMEBUFFER_BLEND 0x828B
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+#define GL_FRAMEBUFFER_EXT 0x8D40
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
+#define GL_FRAMEBUFFER_RENDERABLE 0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
+#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
+#define GL_FRONT 0x0404
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_FRONT_FACE 0x0B46
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_FULL_SUPPORT 0x82B7
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_SHADER_ARB 0x8DD9
+#define GL_GEOMETRY_SHADER_BIT 0x00000004
+#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
+#define GL_GEOMETRY_SUBROUTINE 0x92EB
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+#define GL_GEOMETRY_TEXTURE 0x829E
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+#define GL_GEQUAL 0x0206
+#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+#define GL_GREATER 0x0204
+#define GL_GREEN 0x1904
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_HALF_FLOAT 0x140B
+#define GL_HALF_FLOAT_ARB 0x140B
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_HIGH_INT 0x8DF5
+#define GL_IMAGE_1D 0x904C
+#define GL_IMAGE_1D_ARRAY 0x9052
+#define GL_IMAGE_2D 0x904D
+#define GL_IMAGE_2D_ARRAY 0x9053
+#define GL_IMAGE_2D_MULTISAMPLE 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+#define GL_IMAGE_2D_RECT 0x904F
+#define GL_IMAGE_3D 0x904E
+#define GL_IMAGE_BINDING_ACCESS 0x8F3E
+#define GL_IMAGE_BINDING_FORMAT 0x906E
+#define GL_IMAGE_BINDING_LAYER 0x8F3D
+#define GL_IMAGE_BINDING_LAYERED 0x8F3C
+#define GL_IMAGE_BINDING_LEVEL 0x8F3B
+#define GL_IMAGE_BINDING_NAME 0x8F3A
+#define GL_IMAGE_BUFFER 0x9051
+#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
+#define GL_IMAGE_CLASS_11_11_10 0x82C2
+#define GL_IMAGE_CLASS_1_X_16 0x82BE
+#define GL_IMAGE_CLASS_1_X_32 0x82BB
+#define GL_IMAGE_CLASS_1_X_8 0x82C1
+#define GL_IMAGE_CLASS_2_X_16 0x82BD
+#define GL_IMAGE_CLASS_2_X_32 0x82BA
+#define GL_IMAGE_CLASS_2_X_8 0x82C0
+#define GL_IMAGE_CLASS_4_X_16 0x82BC
+#define GL_IMAGE_CLASS_4_X_32 0x82B9
+#define GL_IMAGE_CLASS_4_X_8 0x82BF
+#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+#define GL_IMAGE_CUBE 0x9050
+#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+#define GL_IMAGE_PIXEL_FORMAT 0x82A9
+#define GL_IMAGE_PIXEL_TYPE 0x82AA
+#define GL_IMAGE_TEXEL_SIZE 0x82A7
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_INCR 0x1E02
+#define GL_INCR_WRAP 0x8507
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_INT 0x1404
+#define GL_INT64_ARB 0x140E
+#define GL_INT64_VEC2_ARB 0x8FE9
+#define GL_INT64_VEC3_ARB 0x8FEA
+#define GL_INT64_VEC4_ARB 0x8FEB
+#define GL_INTENSITY16F_ARB 0x881D
+#define GL_INTENSITY32F_ARB 0x8817
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+#define GL_INTERNALFORMAT_PREFERRED 0x8270
+#define GL_INTERNALFORMAT_RED_SIZE 0x8271
+#define GL_INTERNALFORMAT_RED_TYPE 0x8278
+#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+#define GL_INTERNALFORMAT_SUPPORTED 0x826F
+#define GL_INT_2_10_10_10_REV 0x8D9F
+#define GL_INT_IMAGE_1D 0x9057
+#define GL_INT_IMAGE_1D_ARRAY 0x905D
+#define GL_INT_IMAGE_2D 0x9058
+#define GL_INT_IMAGE_2D_ARRAY 0x905E
+#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+#define GL_INT_IMAGE_2D_RECT 0x905A
+#define GL_INT_IMAGE_3D 0x9059
+#define GL_INT_IMAGE_BUFFER 0x905C
+#define GL_INT_IMAGE_CUBE 0x905B
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC2_ARB 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC3_ARB 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_INT_VEC4_ARB 0x8B55
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
+#define GL_INVALID_INDEX 0xFFFFFFFF
+#define GL_INVALID_OPERATION 0x0502
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVERT 0x150A
+#define GL_ISOLINES 0x8E7A
+#define GL_IS_PER_PATCH 0x92E7
+#define GL_IS_ROW_MAJOR 0x9300
+#define GL_KEEP 0x1E00
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_LAYER_PROVOKING_VERTEX 0x825E
+#define GL_LEFT 0x0406
+#define GL_LEQUAL 0x0203
+#define GL_LESS 0x0201
+#define GL_LINE 0x1B01
+#define GL_LINEAR 0x2601
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINES 0x0001
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINES_ADJACENCY_ARB 0x000A
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LINK_STATUS 0x8B82
+#define GL_LOCATION 0x930E
+#define GL_LOCATION_COMPONENT 0x934A
+#define GL_LOCATION_INDEX 0x930F
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_LOW_INT 0x8DF3
+#define GL_LUMINANCE16F_ARB 0x881E
+#define GL_LUMINANCE32F_ARB 0x8818
+#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
+#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MANUAL_GENERATE_MIPMAP 0x8294
+#define GL_MAP_COHERENT_BIT 0x0080
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_PERSISTENT_BIT 0x0040
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_MAP_WRITE_BIT 0x0002
#define GL_MATRIX0_ARB 0x88C0
-#define GL_MATRIX1_ARB 0x88C1
-#define GL_MATRIX2_ARB 0x88C2
-#define GL_MATRIX3_ARB 0x88C3
-#define GL_MATRIX4_ARB 0x88C4
-#define GL_MATRIX5_ARB 0x88C5
-#define GL_MATRIX6_ARB 0x88C6
-#define GL_MATRIX7_ARB 0x88C7
-#define GL_MATRIX8_ARB 0x88C8
-#define GL_MATRIX9_ARB 0x88C9
#define GL_MATRIX10_ARB 0x88CA
#define GL_MATRIX11_ARB 0x88CB
#define GL_MATRIX12_ARB 0x88CC
@@ -2330,6 +889,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
#define GL_MATRIX17_ARB 0x88D1
#define GL_MATRIX18_ARB 0x88D2
#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX1_ARB 0x88C1
#define GL_MATRIX20_ARB 0x88D4
#define GL_MATRIX21_ARB 0x88D5
#define GL_MATRIX22_ARB 0x88D6
@@ -2340,1460 +900,7436 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
#define GL_MATRIX27_ARB 0x88DB
#define GL_MATRIX28_ARB 0x88DC
#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX2_ARB 0x88C2
#define GL_MATRIX30_ARB 0x88DE
#define GL_MATRIX31_ARB 0x88DF
-#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX_STRIDE 0x92FF
+#define GL_MAX 0x8008
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+#define GL_MAX_COMBINED_DIMENSIONS 0x8282
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
+#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+#define GL_MAX_DEPTH 0x8280
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+#define GL_MAX_HEIGHT 0x827F
+#define GL_MAX_IMAGE_SAMPLES 0x906D
+#define GL_MAX_IMAGE_UNITS 0x8F38
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_MAX_LABEL_LENGTH 0x82E8
+#define GL_MAX_LAYERS 0x8281
+#define GL_MAX_NAME_LENGTH 0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+#define GL_MAX_PATCH_VERTICES 0x8E7D
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_MAX_SAMPLES_EXT 0x8D57
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_SUBROUTINES 0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
+#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_UNIFORM_LOCATIONS 0x826E
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_VERTEX_STREAMS 0x8E71
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+#define GL_MAX_VIEWPORTS 0x825B
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_WIDTH 0x827E
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_MIN 0x8007
+#define GL_MINOR_VERSION 0x821C
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
+#define GL_MIPMAP 0x8293
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_MIRRORED_REPEAT_ARB 0x8370
+#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
+#define GL_MULTISAMPLE 0x809D
#define GL_MULTISAMPLE_ARB 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
-#define GL_SAMPLE_COVERAGE_ARB 0x80A0
-#define GL_SAMPLE_BUFFERS_ARB 0x80A8
-#define GL_SAMPLES_ARB 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
#define GL_MULTISAMPLE_BIT_ARB 0x20000000
-#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
-#define GL_SAMPLE_LOCATION_ARB 0x8E50
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
-#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
-#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
-#define GL_COMPRESSED_ALPHA_ARB 0x84E9
-#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
-#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
-#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
-#define GL_COMPRESSED_RGB_ARB 0x84ED
-#define GL_COMPRESSED_RGBA_ARB 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
-#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
+#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
+#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
+#define GL_NAME_LENGTH 0x92F9
+#define GL_NAND 0x150E
+#define GL_NEAREST 0x2600
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEVER 0x0200
+#define GL_NICEST 0x1102
+#define GL_NONE 0
+#define GL_NOOP 0x1505
+#define GL_NOR 0x1508
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_NOTEQUAL 0x0205
+#define GL_NO_ERROR 0
+#define GL_NUM_ACTIVE_VARIABLES 0x9304
+#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
-#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
-#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
-#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
-#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
-#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
-#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
-#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
-#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
-#define GL_RGBA32F_ARB 0x8814
-#define GL_RGB32F_ARB 0x8815
-#define GL_ALPHA32F_ARB 0x8816
-#define GL_INTENSITY32F_ARB 0x8817
-#define GL_LUMINANCE32F_ARB 0x8818
-#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
-#define GL_RGBA16F_ARB 0x881A
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_NUM_SAMPLE_COUNTS 0x9380
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
+#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
+#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
+#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
+#define GL_OBJECT_TYPE 0x9112
+#define GL_OBJECT_TYPE_ARB 0x8B4E
+#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
+#define GL_OFFSET 0x92FC
+#define GL_ONE 1
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_OR 0x1507
+#define GL_OR_INVERTED 0x150D
+#define GL_OR_REVERSE 0x150B
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PATCHES 0x000E
+#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+#define GL_PATCH_VERTICES 0x8E72
+#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_POINT 0x1B00
+#define GL_POINTS 0x0000
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_PRIMITIVES_SUBMITTED 0x82EF
+#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_PROGRAM 0x82E2
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_PROGRAM_INPUT 0x92E3
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_OBJECT_ARB 0x8B40
+#define GL_PROGRAM_OUTPUT 0x92E4
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_PROGRAM_PIPELINE 0x82E4
+#define GL_PROGRAM_PIPELINE_BINDING 0x825A
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_PROGRAM_SEPARABLE 0x8258
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_QUADS 0x0007
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_QUERY 0x82E3
+#define GL_QUERY_BUFFER 0x9192
+#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+#define GL_QUERY_BUFFER_BINDING 0x9193
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_QUERY_COUNTER_BITS_ARB 0x8864
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_ARB 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
+#define GL_QUERY_RESULT_NO_WAIT 0x9194
+#define GL_QUERY_TARGET 0x82EA
+#define GL_QUERY_WAIT 0x8E13
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_R16 0x822A
+#define GL_R16F 0x822D
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R16_SNORM 0x8F98
+#define GL_R32F 0x822E
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_R3_G3_B2 0x2A10
+#define GL_R8 0x8229
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_R8_SNORM 0x8F94
+#define GL_RASTERIZER_DISCARD 0x8C89
+#define GL_READ_BUFFER 0x0C02
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
+#define GL_READ_ONLY 0x88B8
+#define GL_READ_ONLY_ARB 0x88B8
+#define GL_READ_PIXELS 0x828C
+#define GL_READ_PIXELS_FORMAT 0x828D
+#define GL_READ_PIXELS_TYPE 0x828E
+#define GL_READ_WRITE 0x88BA
+#define GL_READ_WRITE_ARB 0x88BA
+#define GL_RED 0x1903
+#define GL_RED_INTEGER 0x8D94
+#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
+#define GL_RENDERBUFFER_EXT 0x8D41
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
+#define GL_RENDERER 0x1F01
+#define GL_REPEAT 0x2901
+#define GL_REPLACE 0x1E01
+#define GL_RG 0x8227
+#define GL_RG16 0x822C
+#define GL_RG16F 0x822F
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG16_SNORM 0x8F99
+#define GL_RG32F 0x8230
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_RG8 0x822B
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB 0x1907
+#define GL_RGB10 0x8052
+#define GL_RGB10_A2 0x8059
+#define GL_RGB10_A2UI 0x906F
+#define GL_RGB12 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGB16F 0x881B
#define GL_RGB16F_ARB 0x881B
-#define GL_ALPHA16F_ARB 0x881C
-#define GL_INTENSITY16F_ARB 0x881D
-#define GL_LUMINANCE16F_ARB 0x881E
-#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
+#define GL_RGB16I 0x8D89
+#define GL_RGB16UI 0x8D77
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGB32F 0x8815
+#define GL_RGB32F_ARB 0x8815
+#define GL_RGB32I 0x8D83
+#define GL_RGB32UI 0x8D71
+#define GL_RGB4 0x804F
+#define GL_RGB5 0x8050
+#define GL_RGB565 0x8D62
+#define GL_RGB5_A1 0x8057
+#define GL_RGB8 0x8051
+#define GL_RGB8I 0x8D8F
+#define GL_RGB8UI 0x8D7D
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGB9_E5 0x8C3D
+#define GL_RGBA 0x1908
+#define GL_RGBA12 0x805A
+#define GL_RGBA16 0x805B
+#define GL_RGBA16F 0x881A
+#define GL_RGBA16F_ARB 0x881A
+#define GL_RGBA16I 0x8D88
+#define GL_RGBA16UI 0x8D76
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_RGBA2 0x8055
+#define GL_RGBA32F 0x8814
+#define GL_RGBA32F_ARB 0x8814
+#define GL_RGBA32I 0x8D82
+#define GL_RGBA32UI 0x8D70
+#define GL_RGBA4 0x8056
+#define GL_RGBA8 0x8058
+#define GL_RGBA8I 0x8D8E
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_RGBA_FLOAT_MODE_ARB 0x8820
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RG_INTEGER 0x8228
+#define GL_RIGHT 0x0407
+#define GL_SAMPLER 0x82E6
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_1D_ARB 0x8B5D
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_2D_ARB 0x8B5E
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_ARB 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_3D_ARB 0x8B5F
+#define GL_SAMPLER_BINDING 0x8919
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLER_CUBE_ARB 0x8B60
+#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SAMPLES_PASSED_ARB 0x8914
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_LOCATION_ARB 0x8E50
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_SHADING 0x8C36
+#define GL_SAMPLE_SHADING_ARB 0x8C36
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+#define GL_SET 0x150F
+#define GL_SHADER 0x82E1
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
+#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+#define GL_SHADER_IMAGE_ATOMIC 0x82A6
+#define GL_SHADER_IMAGE_LOAD 0x82A4
+#define GL_SHADER_IMAGE_STORE 0x82A5
+#define GL_SHADER_INCLUDE_ARB 0x8DAE
+#define GL_SHADER_OBJECT_ARB 0x8B48
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
+#define GL_SHADER_STORAGE_BLOCK 0x92E6
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
+#define GL_SHORT 0x1402
+#define GL_SIGNALED 0x9119
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SPIR_V_BINARY 0x9552
+#define GL_SPIR_V_BINARY_ARB 0x9552
+#define GL_SPIR_V_EXTENSIONS 0x9553
+#define GL_SRC1_ALPHA 0x8589
+#define GL_SRC1_COLOR 0x88F9
+#define GL_SRC_ALPHA 0x0302
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_SRC_COLOR 0x0300
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_SRGB_ALPHA 0x8C42
+#define GL_SRGB_DECODE_ARB 0x8299
+#define GL_SRGB_READ 0x8297
+#define GL_SRGB_WRITE 0x8298
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_STATIC_COPY 0x88E6
+#define GL_STATIC_COPY_ARB 0x88E6
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_DRAW_ARB 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STATIC_READ_ARB 0x88E5
+#define GL_STENCIL 0x1802
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_COMPONENTS 0x8285
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_INDEX 0x1901
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_STENCIL_INDEX16_EXT 0x8D49
+#define GL_STENCIL_INDEX1_EXT 0x8D46
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX4_EXT 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_INDEX8_EXT 0x8D48
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_RENDERABLE 0x8288
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STEREO 0x0C33
+#define GL_STREAM_COPY 0x88E2
+#define GL_STREAM_COPY_ARB 0x88E2
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_DRAW_ARB 0x88E0
+#define GL_STREAM_READ 0x88E1
+#define GL_STREAM_READ_ARB 0x88E1
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_SYNC_STATUS 0x9114
+#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+#define GL_TESS_CONTROL_SHADER 0x8E88
+#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
+#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
+#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
+#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+#define GL_TESS_CONTROL_TEXTURE 0x829C
+#define GL_TESS_EVALUATION_SHADER 0x8E87
+#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
+#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+#define GL_TESS_EVALUATION_TEXTURE 0x829D
+#define GL_TESS_GEN_MODE 0x8E76
+#define GL_TESS_GEN_POINT_MODE 0x8E79
+#define GL_TESS_GEN_SPACING 0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
+#define GL_TEXTURE 0x1702
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_TEXTURE_3D 0x806F
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_BUFFER_OFFSET 0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+#define GL_TEXTURE_BUFFER_SIZE 0x919E
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_TEXTURE_GATHER 0x82A2
+#define GL_TEXTURE_GATHER_SHADOW 0x82A3
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_IMAGE_FORMAT 0x828F
+#define GL_TEXTURE_IMAGE_TYPE 0x8290
+#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_SHADOW 0x82A1
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_TEXTURE_SWIZZLE_A 0x8E45
+#define GL_TEXTURE_SWIZZLE_B 0x8E44
+#define GL_TEXTURE_SWIZZLE_G 0x8E43
+#define GL_TEXTURE_SWIZZLE_R 0x8E42
+#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
+#define GL_TEXTURE_TARGET 0x1006
+#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+#define GL_TEXTURE_VIEW 0x82B5
+#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
+#define GL_TIMESTAMP 0x8E28
+#define GL_TIME_ELAPSED 0x88BF
+#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+#define GL_TRANSFORM_FEEDBACK 0x8E22
+#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
+#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
+#define GL_TRUE 1
+#define GL_TYPE 0x92FA
+#define GL_UNDEFINED_VERTEX 0x8260
+#define GL_UNIFORM 0x92E1
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+#define GL_UNIFORM_BARRIER_BIT 0x00000004
+#define GL_UNIFORM_BLOCK 0x92E2
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNSIGNALED 0x9118
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_INT 0x1405
+#define GL_UNSIGNED_INT64_ARB 0x140F
+#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
+#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_VENDOR 0x1F00
+#define GL_VERSION 0x1F02
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
#define GL_VERTEX_ATTRIB_BINDING 0x82D4
#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+#define GL_VERTEX_BINDING_BUFFER 0x8F4F
#define GL_VERTEX_BINDING_DIVISOR 0x82D6
#define GL_VERTEX_BINDING_OFFSET 0x82D7
#define GL_VERTEX_BINDING_STRIDE 0x82D8
-#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
-#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
-#define GL_BUFFER_SIZE_ARB 0x8764
-#define GL_BUFFER_USAGE_ARB 0x8765
-#define GL_ARRAY_BUFFER_ARB 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
-#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
-#define GL_READ_ONLY_ARB 0x88B8
-#define GL_WRITE_ONLY_ARB 0x88B9
-#define GL_READ_WRITE_ARB 0x88BA
-#define GL_BUFFER_ACCESS_ARB 0x88BB
-#define GL_BUFFER_MAPPED_ARB 0x88BC
-#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
-#define GL_STREAM_DRAW_ARB 0x88E0
-#define GL_STREAM_READ_ARB 0x88E1
-#define GL_STREAM_COPY_ARB 0x88E2
-#define GL_STATIC_DRAW_ARB 0x88E4
-#define GL_STATIC_READ_ARB 0x88E5
-#define GL_STATIC_COPY_ARB 0x88E6
-#define GL_DYNAMIC_DRAW_ARB 0x88E8
-#define GL_DYNAMIC_READ_ARB 0x88E9
-#define GL_DYNAMIC_COPY_ARB 0x88EA
-#define GL_COLOR_SUM_ARB 0x8458
#define GL_VERTEX_PROGRAM_ARB 0x8620
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
-#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
-#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
-#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
-#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
-#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_VERTEX_SHADER 0x8B31
#define GL_VERTEX_SHADER_ARB 0x8B31
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
-#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
-#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
-#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
-#define GL_FLOAT_VEC2_ARB 0x8B50
-#define GL_FLOAT_VEC3_ARB 0x8B51
-#define GL_FLOAT_VEC4_ARB 0x8B52
-#define GL_FLOAT_MAT2_ARB 0x8B5A
-#define GL_FLOAT_MAT3_ARB 0x8B5B
-#define GL_FLOAT_MAT4_ARB 0x8B5C
-#define GL_ELEMENT_ARRAY_ATI 0x8768
-#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
-#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
-#define GL_FRAGMENT_SHADER_ATI 0x8920
-#define GL_REG_0_ATI 0x8921
-#define GL_REG_1_ATI 0x8922
-#define GL_REG_2_ATI 0x8923
-#define GL_REG_3_ATI 0x8924
-#define GL_REG_4_ATI 0x8925
-#define GL_REG_5_ATI 0x8926
-#define GL_REG_6_ATI 0x8927
-#define GL_REG_7_ATI 0x8928
-#define GL_REG_8_ATI 0x8929
-#define GL_REG_9_ATI 0x892A
-#define GL_REG_10_ATI 0x892B
-#define GL_REG_11_ATI 0x892C
-#define GL_REG_12_ATI 0x892D
-#define GL_REG_13_ATI 0x892E
-#define GL_REG_14_ATI 0x892F
-#define GL_REG_15_ATI 0x8930
-#define GL_REG_16_ATI 0x8931
-#define GL_REG_17_ATI 0x8932
-#define GL_REG_18_ATI 0x8933
-#define GL_REG_19_ATI 0x8934
-#define GL_REG_20_ATI 0x8935
-#define GL_REG_21_ATI 0x8936
-#define GL_REG_22_ATI 0x8937
-#define GL_REG_23_ATI 0x8938
-#define GL_REG_24_ATI 0x8939
-#define GL_REG_25_ATI 0x893A
-#define GL_REG_26_ATI 0x893B
-#define GL_REG_27_ATI 0x893C
-#define GL_REG_28_ATI 0x893D
-#define GL_REG_29_ATI 0x893E
-#define GL_REG_30_ATI 0x893F
-#define GL_REG_31_ATI 0x8940
-#define GL_CON_0_ATI 0x8941
-#define GL_CON_1_ATI 0x8942
-#define GL_CON_2_ATI 0x8943
-#define GL_CON_3_ATI 0x8944
-#define GL_CON_4_ATI 0x8945
-#define GL_CON_5_ATI 0x8946
-#define GL_CON_6_ATI 0x8947
-#define GL_CON_7_ATI 0x8948
-#define GL_CON_8_ATI 0x8949
-#define GL_CON_9_ATI 0x894A
-#define GL_CON_10_ATI 0x894B
-#define GL_CON_11_ATI 0x894C
-#define GL_CON_12_ATI 0x894D
-#define GL_CON_13_ATI 0x894E
-#define GL_CON_14_ATI 0x894F
-#define GL_CON_15_ATI 0x8950
-#define GL_CON_16_ATI 0x8951
-#define GL_CON_17_ATI 0x8952
-#define GL_CON_18_ATI 0x8953
-#define GL_CON_19_ATI 0x8954
-#define GL_CON_20_ATI 0x8955
-#define GL_CON_21_ATI 0x8956
-#define GL_CON_22_ATI 0x8957
-#define GL_CON_23_ATI 0x8958
-#define GL_CON_24_ATI 0x8959
-#define GL_CON_25_ATI 0x895A
-#define GL_CON_26_ATI 0x895B
-#define GL_CON_27_ATI 0x895C
-#define GL_CON_28_ATI 0x895D
-#define GL_CON_29_ATI 0x895E
-#define GL_CON_30_ATI 0x895F
-#define GL_CON_31_ATI 0x8960
-#define GL_MOV_ATI 0x8961
-#define GL_ADD_ATI 0x8963
-#define GL_MUL_ATI 0x8964
-#define GL_SUB_ATI 0x8965
-#define GL_DOT3_ATI 0x8966
-#define GL_DOT4_ATI 0x8967
-#define GL_MAD_ATI 0x8968
-#define GL_LERP_ATI 0x8969
-#define GL_CND_ATI 0x896A
-#define GL_CND0_ATI 0x896B
-#define GL_DOT2_ADD_ATI 0x896C
-#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
-#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
-#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
-#define GL_NUM_PASSES_ATI 0x8970
-#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
-#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
-#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
-#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
-#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
-#define GL_SWIZZLE_STR_ATI 0x8976
-#define GL_SWIZZLE_STQ_ATI 0x8977
-#define GL_SWIZZLE_STR_DR_ATI 0x8978
-#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
-#define GL_SWIZZLE_STRQ_ATI 0x897A
-#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
-#define GL_RED_BIT_ATI 0x00000001
-#define GL_GREEN_BIT_ATI 0x00000002
-#define GL_BLUE_BIT_ATI 0x00000004
-#define GL_2X_BIT_ATI 0x00000001
-#define GL_4X_BIT_ATI 0x00000002
-#define GL_8X_BIT_ATI 0x00000004
-#define GL_HALF_BIT_ATI 0x00000008
-#define GL_QUARTER_BIT_ATI 0x00000010
-#define GL_EIGHTH_BIT_ATI 0x00000020
-#define GL_SATURATE_BIT_ATI 0x00000040
-#define GL_COMP_BIT_ATI 0x00000002
-#define GL_NEGATE_BIT_ATI 0x00000004
-#define GL_BIAS_BIT_ATI 0x00000008
-#define GL_STATIC_ATI 0x8760
-#define GL_DYNAMIC_ATI 0x8761
-#define GL_PRESERVE_ATI 0x8762
-#define GL_DISCARD_ATI 0x8763
-#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
-#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
-#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
-#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
-#define GL_CONSTANT_COLOR_EXT 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
-#define GL_CONSTANT_ALPHA_EXT 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
-#define GL_BLEND_COLOR_EXT 0x8005
-#define GL_BLEND_EQUATION_RGB_EXT 0x8009
-#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
-#define GL_BLEND_DST_RGB_EXT 0x80C8
-#define GL_BLEND_SRC_RGB_EXT 0x80C9
-#define GL_BLEND_DST_ALPHA_EXT 0x80CA
-#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
-#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
-#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
-#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
-#define GL_MAX_SAMPLES_EXT 0x8D57
-#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
-#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
-#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
-#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
-#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
-#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
-#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
-#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
-#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
-#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
-#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
-#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
-#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
-#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
-#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
-#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
-#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
-#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
-#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
-#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
-#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
-#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
-#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
-#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
-#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
-#define GL_FRAMEBUFFER_EXT 0x8D40
-#define GL_RENDERBUFFER_EXT 0x8D41
-#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
-#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
-#define GL_STENCIL_INDEX1_EXT 0x8D46
-#define GL_STENCIL_INDEX4_EXT 0x8D47
-#define GL_STENCIL_INDEX8_EXT 0x8D48
-#define GL_STENCIL_INDEX16_EXT 0x8D49
-#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
-#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
-#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
-#define GL_IUI_V2F_EXT 0x81AD
-#define GL_IUI_V3F_EXT 0x81AE
-#define GL_IUI_N3F_V2F_EXT 0x81AF
-#define GL_IUI_N3F_V3F_EXT 0x81B0
-#define GL_T2F_IUI_V2F_EXT 0x81B1
-#define GL_T2F_IUI_V3F_EXT 0x81B2
-#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
-#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
-#define GL_ALPHA4_EXT 0x803B
-#define GL_ALPHA8_EXT 0x803C
-#define GL_ALPHA12_EXT 0x803D
-#define GL_ALPHA16_EXT 0x803E
-#define GL_LUMINANCE4_EXT 0x803F
-#define GL_LUMINANCE8_EXT 0x8040
-#define GL_LUMINANCE12_EXT 0x8041
-#define GL_LUMINANCE16_EXT 0x8042
-#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
-#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
-#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
-#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
-#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
-#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
-#define GL_INTENSITY_EXT 0x8049
-#define GL_INTENSITY4_EXT 0x804A
-#define GL_INTENSITY8_EXT 0x804B
-#define GL_INTENSITY12_EXT 0x804C
-#define GL_INTENSITY16_EXT 0x804D
-#define GL_RGB2_EXT 0x804E
-#define GL_RGB4_EXT 0x804F
-#define GL_RGB5_EXT 0x8050
-#define GL_RGB8_EXT 0x8051
-#define GL_RGB10_EXT 0x8052
-#define GL_RGB12_EXT 0x8053
-#define GL_RGB16_EXT 0x8054
-#define GL_RGBA2_EXT 0x8055
-#define GL_RGBA4_EXT 0x8056
-#define GL_RGB5_A1_EXT 0x8057
-#define GL_RGBA8_EXT 0x8058
-#define GL_RGB10_A2_EXT 0x8059
-#define GL_RGBA12_EXT 0x805A
-#define GL_RGBA16_EXT 0x805B
-#define GL_TEXTURE_RED_SIZE_EXT 0x805C
-#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
-#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
-#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
-#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
-#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
-#define GL_REPLACE_EXT 0x8062
-#define GL_PROXY_TEXTURE_1D_EXT 0x8063
-#define GL_PROXY_TEXTURE_2D_EXT 0x8064
-#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
-#define GL_SRGB_EXT 0x8C40
-#define GL_SRGB8_EXT 0x8C41
-#define GL_SRGB_ALPHA_EXT 0x8C42
-#define GL_SRGB8_ALPHA8_EXT 0x8C43
-#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
-#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
-#define GL_SLUMINANCE_EXT 0x8C46
-#define GL_SLUMINANCE8_EXT 0x8C47
-#define GL_COMPRESSED_SRGB_EXT 0x8C48
-#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
-#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
-#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
-#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
-#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
-#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
-#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
-#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
-#define GL_VERTEX_ARRAY_EXT 0x8074
-#define GL_NORMAL_ARRAY_EXT 0x8075
-#define GL_COLOR_ARRAY_EXT 0x8076
-#define GL_INDEX_ARRAY_EXT 0x8077
-#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
-#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
-#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
-#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
-#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
-#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
-#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
-#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
-#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
-#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
-#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
-#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
-#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
-#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
-#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
-#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
-#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
-#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
-#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
-#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
-#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
-#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
-#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
-#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
-#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
-#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
-#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
-#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
-#define GL_VERTEX_SHADER_EXT 0x8780
-#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
-#define GL_OP_INDEX_EXT 0x8782
-#define GL_OP_NEGATE_EXT 0x8783
-#define GL_OP_DOT3_EXT 0x8784
-#define GL_OP_DOT4_EXT 0x8785
-#define GL_OP_MUL_EXT 0x8786
-#define GL_OP_ADD_EXT 0x8787
-#define GL_OP_MADD_EXT 0x8788
-#define GL_OP_FRAC_EXT 0x8789
-#define GL_OP_MAX_EXT 0x878A
-#define GL_OP_MIN_EXT 0x878B
-#define GL_OP_SET_GE_EXT 0x878C
-#define GL_OP_SET_LT_EXT 0x878D
-#define GL_OP_CLAMP_EXT 0x878E
-#define GL_OP_FLOOR_EXT 0x878F
-#define GL_OP_ROUND_EXT 0x8790
-#define GL_OP_EXP_BASE_2_EXT 0x8791
-#define GL_OP_LOG_BASE_2_EXT 0x8792
-#define GL_OP_POWER_EXT 0x8793
-#define GL_OP_RECIP_EXT 0x8794
-#define GL_OP_RECIP_SQRT_EXT 0x8795
-#define GL_OP_SUB_EXT 0x8796
-#define GL_OP_CROSS_PRODUCT_EXT 0x8797
-#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
-#define GL_OP_MOV_EXT 0x8799
-#define GL_OUTPUT_VERTEX_EXT 0x879A
-#define GL_OUTPUT_COLOR0_EXT 0x879B
-#define GL_OUTPUT_COLOR1_EXT 0x879C
-#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
-#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
-#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
-#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
-#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
-#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
-#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
-#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
-#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
-#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
-#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
-#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
-#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
-#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
-#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
-#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
-#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
-#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
-#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
-#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
-#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
-#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
-#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
-#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
-#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
-#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
-#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
-#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
-#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
-#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
-#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
-#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
-#define GL_OUTPUT_FOG_EXT 0x87BD
-#define GL_SCALAR_EXT 0x87BE
-#define GL_VECTOR_EXT 0x87BF
-#define GL_MATRIX_EXT 0x87C0
-#define GL_VARIANT_EXT 0x87C1
-#define GL_INVARIANT_EXT 0x87C2
-#define GL_LOCAL_CONSTANT_EXT 0x87C3
-#define GL_LOCAL_EXT 0x87C4
-#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
-#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
-#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
-#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
-#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
-#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
-#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
-#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
-#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
-#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
-#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
-#define GL_X_EXT 0x87D5
-#define GL_Y_EXT 0x87D6
-#define GL_Z_EXT 0x87D7
-#define GL_W_EXT 0x87D8
-#define GL_NEGATIVE_X_EXT 0x87D9
-#define GL_NEGATIVE_Y_EXT 0x87DA
-#define GL_NEGATIVE_Z_EXT 0x87DB
-#define GL_NEGATIVE_W_EXT 0x87DC
-#define GL_ZERO_EXT 0x87DD
-#define GL_ONE_EXT 0x87DE
-#define GL_NEGATIVE_ONE_EXT 0x87DF
-#define GL_NORMALIZED_RANGE_EXT 0x87E0
-#define GL_FULL_RANGE_EXT 0x87E1
-#define GL_CURRENT_VERTEX_EXT 0x87E2
-#define GL_MVP_MATRIX_EXT 0x87E3
-#define GL_VARIANT_VALUE_EXT 0x87E4
-#define GL_VARIANT_DATATYPE_EXT 0x87E5
-#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
-#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
-#define GL_VARIANT_ARRAY_EXT 0x87E8
-#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
-#define GL_INVARIANT_VALUE_EXT 0x87EA
-#define GL_INVARIANT_DATATYPE_EXT 0x87EB
-#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
-#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
-#ifndef GL_AMD_debug_output
-#define GL_AMD_debug_output 1
-GLAPI int GLAD_GL_AMD_debug_output;
-typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-GLAPI PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD;
-#define glDebugMessageEnableAMD glad_glDebugMessageEnableAMD
-typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf);
-GLAPI PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD;
-#define glDebugMessageInsertAMD glad_glDebugMessageInsertAMD
-typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, void* userParam);
-GLAPI PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD;
-#define glDebugMessageCallbackAMD glad_glDebugMessageCallbackAMD
-typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message);
-GLAPI PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD;
-#define glGetDebugMessageLogAMD glad_glGetDebugMessageLogAMD
+#define GL_VERTEX_SHADER_BIT 0x00000001
+#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
+#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
+#define GL_VERTEX_SUBROUTINE 0x92E8
+#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+#define GL_VERTEX_TEXTURE 0x829B
+#define GL_VERTICES_SUBMITTED 0x82EE
+#define GL_VERTICES_SUBMITTED_ARB 0x82EE
+#define GL_VIEWPORT 0x0BA2
+#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+#define GL_VIEW_CLASS_128_BITS 0x82C4
+#define GL_VIEW_CLASS_16_BITS 0x82CA
+#define GL_VIEW_CLASS_24_BITS 0x82C9
+#define GL_VIEW_CLASS_32_BITS 0x82C8
+#define GL_VIEW_CLASS_48_BITS 0x82C7
+#define GL_VIEW_CLASS_64_BITS 0x82C6
+#define GL_VIEW_CLASS_8_BITS 0x82CB
+#define GL_VIEW_CLASS_96_BITS 0x82C5
+#define GL_VIEW_CLASS_ASTC_10x10_RGBA 0x9393
+#define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390
+#define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391
+#define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392
+#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394
+#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395
+#define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388
+#define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389
+#define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A
+#define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B
+#define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C
+#define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D
+#define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E
+#define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F
+#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+#define GL_VIEW_CLASS_EAC_R11 0x9383
+#define GL_VIEW_CLASS_EAC_RG11 0x9384
+#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387
+#define GL_VIEW_CLASS_ETC2_RGB 0x9385
+#define GL_VIEW_CLASS_ETC2_RGBA 0x9386
+#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+#define GL_WAIT_FAILED 0x911D
+#define GL_WEIGHTED_AVERAGE_ARB 0x9367
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+#define GL_WRITE_ONLY 0x88B9
+#define GL_WRITE_ONLY_ARB 0x88B9
+#define GL_XOR 0x1506
+#define GL_ZERO 0
+
+
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are 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 Materials.
+**
+** THE MATERIALS ARE 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
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_GLAD_API_PTR
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_GLAD_API_PTR funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+# define KHRONOS_STATIC 1
#endif
-#ifndef GL_AMD_query_buffer_object
-#define GL_AMD_query_buffer_object 1
-GLAPI int GLAD_GL_AMD_query_buffer_object;
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+ /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+# define KHRONOS_APICALL
+#elif defined(_WIN32)
+# define KHRONOS_APICALL __declspec(dllimport)
+#elif defined (__SYMBIAN32__)
+# define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+# define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+# define KHRONOS_APICALL
#endif
-#ifndef GL_ARB_ES2_compatibility
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_GLAD_API_PTR
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+ /* Win32 but not WinCE */
+# define KHRONOS_GLAD_API_PTR __stdcall
+#else
+# define KHRONOS_GLAD_API_PTR
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined (__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__VMS ) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef _WIN64
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
+
+typedef unsigned int GLenum;
+
+typedef unsigned char GLboolean;
+
+typedef unsigned int GLbitfield;
+
+typedef void GLvoid;
+
+typedef khronos_int8_t GLbyte;
+
+typedef khronos_uint8_t GLubyte;
+
+typedef khronos_int16_t GLshort;
+
+typedef khronos_uint16_t GLushort;
+
+typedef int GLint;
+
+typedef unsigned int GLuint;
+
+typedef khronos_int32_t GLclampx;
+
+typedef int GLsizei;
+
+typedef khronos_float_t GLfloat;
+
+typedef khronos_float_t GLclampf;
+
+typedef double GLdouble;
+
+typedef double GLclampd;
+
+typedef void *GLeglClientBufferEXT;
+
+typedef void *GLeglImageOES;
+
+typedef char GLchar;
+
+typedef char GLcharARB;
+
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+
+typedef khronos_uint16_t GLhalf;
+
+typedef khronos_uint16_t GLhalfARB;
+
+typedef khronos_int32_t GLfixed;
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptr;
+#else
+typedef khronos_intptr_t GLintptr;
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptrARB;
+#else
+typedef khronos_intptr_t GLintptrARB;
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptr;
+#else
+typedef khronos_ssize_t GLsizeiptr;
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptrARB;
+#else
+typedef khronos_ssize_t GLsizeiptrARB;
+#endif
+
+typedef khronos_int64_t GLint64;
+
+typedef khronos_int64_t GLint64EXT;
+
+typedef khronos_uint64_t GLuint64;
+
+typedef khronos_uint64_t GLuint64EXT;
+
+typedef struct __GLsync *GLsync;
+
+struct _cl_context;
+
+struct _cl_event;
+
+typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+
+typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+
+typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+
+typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
+
+typedef unsigned short GLhalfNV;
+
+typedef GLintptr GLvdpauSurfaceNV;
+
+typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void);
+
+
+
+#define GL_VERSION_1_0 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_0;
+#define GL_VERSION_1_1 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_1;
+#define GL_VERSION_1_2 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_2;
+#define GL_VERSION_1_3 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_3;
+#define GL_VERSION_1_4 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_4;
+#define GL_VERSION_1_5 1
+GLAD_API_CALL int GLAD_GL_VERSION_1_5;
+#define GL_VERSION_2_0 1
+GLAD_API_CALL int GLAD_GL_VERSION_2_0;
+#define GL_VERSION_2_1 1
+GLAD_API_CALL int GLAD_GL_VERSION_2_1;
+#define GL_VERSION_3_0 1
+GLAD_API_CALL int GLAD_GL_VERSION_3_0;
+#define GL_VERSION_3_1 1
+GLAD_API_CALL int GLAD_GL_VERSION_3_1;
+#define GL_VERSION_3_2 1
+GLAD_API_CALL int GLAD_GL_VERSION_3_2;
+#define GL_VERSION_3_3 1
+GLAD_API_CALL int GLAD_GL_VERSION_3_3;
+#define GL_VERSION_4_0 1
+GLAD_API_CALL int GLAD_GL_VERSION_4_0;
+#define GL_VERSION_4_1 1
+GLAD_API_CALL int GLAD_GL_VERSION_4_1;
+#define GL_VERSION_4_2 1
+GLAD_API_CALL int GLAD_GL_VERSION_4_2;
+#define GL_VERSION_4_3 1
+GLAD_API_CALL int GLAD_GL_VERSION_4_3;
#define GL_ARB_ES2_compatibility 1
-GLAPI int GLAD_GL_ARB_ES2_compatibility;
-typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)();
-GLAPI PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
-#define glReleaseShaderCompiler glad_glReleaseShaderCompiler
-typedef void (APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length);
-GLAPI PFNGLSHADERBINARYPROC glad_glShaderBinary;
-#define glShaderBinary glad_glShaderBinary
-typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-GLAPI PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
-#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
-typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
-GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
-#define glDepthRangef glad_glDepthRangef
-typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d);
-GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
-#define glClearDepthf glad_glClearDepthf
-#endif
-#ifndef GL_ARB_ES3_compatibility
+GLAD_API_CALL int GLAD_GL_ARB_ES2_compatibility;
+#define GL_ARB_ES3_1_compatibility 1
+GLAD_API_CALL int GLAD_GL_ARB_ES3_1_compatibility;
+#define GL_ARB_ES3_2_compatibility 1
+GLAD_API_CALL int GLAD_GL_ARB_ES3_2_compatibility;
#define GL_ARB_ES3_compatibility 1
-GLAPI int GLAD_GL_ARB_ES3_compatibility;
-#endif
-#ifndef GL_ARB_buffer_storage
+GLAD_API_CALL int GLAD_GL_ARB_ES3_compatibility;
+#define GL_ARB_blend_func_extended 1
+GLAD_API_CALL int GLAD_GL_ARB_blend_func_extended;
#define GL_ARB_buffer_storage 1
-GLAPI int GLAD_GL_ARB_buffer_storage;
-typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void* data, GLbitfield flags);
-GLAPI PFNGLBUFFERSTORAGEPROC glad_glBufferStorage;
-#define glBufferStorage glad_glBufferStorage
-#endif
-#ifndef GL_ARB_compatibility
+GLAD_API_CALL int GLAD_GL_ARB_buffer_storage;
+#define GL_ARB_clear_buffer_object 1
+GLAD_API_CALL int GLAD_GL_ARB_clear_buffer_object;
+#define GL_ARB_clear_texture 1
+GLAD_API_CALL int GLAD_GL_ARB_clear_texture;
+#define GL_ARB_color_buffer_float 1
+GLAD_API_CALL int GLAD_GL_ARB_color_buffer_float;
#define GL_ARB_compatibility 1
-GLAPI int GLAD_GL_ARB_compatibility;
-#endif
-#ifndef GL_ARB_compressed_texture_pixel_storage
+GLAD_API_CALL int GLAD_GL_ARB_compatibility;
#define GL_ARB_compressed_texture_pixel_storage 1
-GLAPI int GLAD_GL_ARB_compressed_texture_pixel_storage;
-#endif
-#ifndef GL_ARB_debug_output
+GLAD_API_CALL int GLAD_GL_ARB_compressed_texture_pixel_storage;
+#define GL_ARB_compute_shader 1
+GLAD_API_CALL int GLAD_GL_ARB_compute_shader;
+#define GL_ARB_compute_variable_group_size 1
+GLAD_API_CALL int GLAD_GL_ARB_compute_variable_group_size;
+#define GL_ARB_copy_buffer 1
+GLAD_API_CALL int GLAD_GL_ARB_copy_buffer;
+#define GL_ARB_copy_image 1
+GLAD_API_CALL int GLAD_GL_ARB_copy_image;
#define GL_ARB_debug_output 1
-GLAPI int GLAD_GL_ARB_debug_output;
-typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-GLAPI PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
-#define glDebugMessageControlARB glad_glDebugMessageControlARB
-typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
-GLAPI PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
-#define glDebugMessageInsertARB glad_glDebugMessageInsertARB
-typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const void* userParam);
-GLAPI PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
-#define glDebugMessageCallbackARB glad_glDebugMessageCallbackARB
-typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
-GLAPI PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
-#define glGetDebugMessageLogARB glad_glGetDebugMessageLogARB
-#endif
-#ifndef GL_ARB_depth_buffer_float
+GLAD_API_CALL int GLAD_GL_ARB_debug_output;
#define GL_ARB_depth_buffer_float 1
-GLAPI int GLAD_GL_ARB_depth_buffer_float;
-#endif
-#ifndef GL_ARB_depth_clamp
+GLAD_API_CALL int GLAD_GL_ARB_depth_buffer_float;
#define GL_ARB_depth_clamp 1
-GLAPI int GLAD_GL_ARB_depth_clamp;
-#endif
-#ifndef GL_ARB_depth_texture
+GLAD_API_CALL int GLAD_GL_ARB_depth_clamp;
#define GL_ARB_depth_texture 1
-GLAPI int GLAD_GL_ARB_depth_texture;
-#endif
-#ifndef GL_ARB_draw_buffers
+GLAD_API_CALL int GLAD_GL_ARB_depth_texture;
+#define GL_ARB_direct_state_access 1
+GLAD_API_CALL int GLAD_GL_ARB_direct_state_access;
#define GL_ARB_draw_buffers 1
-GLAPI int GLAD_GL_ARB_draw_buffers;
-typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum* bufs);
-GLAPI PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB;
-#define glDrawBuffersARB glad_glDrawBuffersARB
-#endif
-#ifndef GL_ARB_draw_buffers_blend
+GLAD_API_CALL int GLAD_GL_ARB_draw_buffers;
#define GL_ARB_draw_buffers_blend 1
-GLAPI int GLAD_GL_ARB_draw_buffers_blend;
-typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
-GLAPI PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB;
-#define glBlendEquationiARB glad_glBlendEquationiARB
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-GLAPI PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB;
-#define glBlendEquationSeparateiARB glad_glBlendEquationSeparateiARB
-typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
-GLAPI PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB;
-#define glBlendFunciARB glad_glBlendFunciARB
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-GLAPI PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB;
-#define glBlendFuncSeparateiARB glad_glBlendFuncSeparateiARB
-#endif
-#ifndef GL_ARB_explicit_attrib_location
+GLAD_API_CALL int GLAD_GL_ARB_draw_buffers_blend;
+#define GL_ARB_draw_elements_base_vertex 1
+GLAD_API_CALL int GLAD_GL_ARB_draw_elements_base_vertex;
+#define GL_ARB_draw_indirect 1
+GLAD_API_CALL int GLAD_GL_ARB_draw_indirect;
+#define GL_ARB_draw_instanced 1
+GLAD_API_CALL int GLAD_GL_ARB_draw_instanced;
+#define GL_ARB_enhanced_layouts 1
+GLAD_API_CALL int GLAD_GL_ARB_enhanced_layouts;
#define GL_ARB_explicit_attrib_location 1
-GLAPI int GLAD_GL_ARB_explicit_attrib_location;
-#endif
-#ifndef GL_ARB_explicit_uniform_location
+GLAD_API_CALL int GLAD_GL_ARB_explicit_attrib_location;
#define GL_ARB_explicit_uniform_location 1
-GLAPI int GLAD_GL_ARB_explicit_uniform_location;
-#endif
-#ifndef GL_ARB_fragment_program
+GLAD_API_CALL int GLAD_GL_ARB_explicit_uniform_location;
+#define GL_ARB_fragment_coord_conventions 1
+GLAD_API_CALL int GLAD_GL_ARB_fragment_coord_conventions;
+#define GL_ARB_fragment_layer_viewport 1
+GLAD_API_CALL int GLAD_GL_ARB_fragment_layer_viewport;
#define GL_ARB_fragment_program 1
-GLAPI int GLAD_GL_ARB_fragment_program;
-typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void* string);
-GLAPI PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB;
-#define glProgramStringARB glad_glProgramStringARB
-typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
-GLAPI PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB;
-#define glBindProgramARB glad_glBindProgramARB
-typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint* programs);
-GLAPI PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB;
-#define glDeleteProgramsARB glad_glDeleteProgramsARB
-typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint* programs);
-GLAPI PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB;
-#define glGenProgramsARB glad_glGenProgramsARB
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB;
-#define glProgramEnvParameter4dARB glad_glProgramEnvParameter4dARB
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble* params);
-GLAPI PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB;
-#define glProgramEnvParameter4dvARB glad_glProgramEnvParameter4dvARB
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB;
-#define glProgramEnvParameter4fARB glad_glProgramEnvParameter4fARB
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat* params);
-GLAPI PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB;
-#define glProgramEnvParameter4fvARB glad_glProgramEnvParameter4fvARB
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB;
-#define glProgramLocalParameter4dARB glad_glProgramLocalParameter4dARB
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble* params);
-GLAPI PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB;
-#define glProgramLocalParameter4dvARB glad_glProgramLocalParameter4dvARB
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB;
-#define glProgramLocalParameter4fARB glad_glProgramLocalParameter4fARB
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat* params);
-GLAPI PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB;
-#define glProgramLocalParameter4fvARB glad_glProgramLocalParameter4fvARB
-typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble* params);
-GLAPI PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB;
-#define glGetProgramEnvParameterdvARB glad_glGetProgramEnvParameterdvARB
-typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat* params);
-GLAPI PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB;
-#define glGetProgramEnvParameterfvARB glad_glGetProgramEnvParameterfvARB
-typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble* params);
-GLAPI PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB;
-#define glGetProgramLocalParameterdvARB glad_glGetProgramLocalParameterdvARB
-typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat* params);
-GLAPI PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB;
-#define glGetProgramLocalParameterfvARB glad_glGetProgramLocalParameterfvARB
-typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB;
-#define glGetProgramivARB glad_glGetProgramivARB
-typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void* string);
-GLAPI PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB;
-#define glGetProgramStringARB glad_glGetProgramStringARB
-typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC)(GLuint program);
-GLAPI PFNGLISPROGRAMARBPROC glad_glIsProgramARB;
-#define glIsProgramARB glad_glIsProgramARB
-#endif
-#ifndef GL_ARB_fragment_shader
+GLAD_API_CALL int GLAD_GL_ARB_fragment_program;
+#define GL_ARB_fragment_program_shadow 1
+GLAD_API_CALL int GLAD_GL_ARB_fragment_program_shadow;
#define GL_ARB_fragment_shader 1
-GLAPI int GLAD_GL_ARB_fragment_shader;
-#endif
-#ifndef GL_ARB_framebuffer_object
+GLAD_API_CALL int GLAD_GL_ARB_fragment_shader;
+#define GL_ARB_fragment_shader_interlock 1
+GLAD_API_CALL int GLAD_GL_ARB_fragment_shader_interlock;
+#define GL_ARB_framebuffer_no_attachments 1
+GLAD_API_CALL int GLAD_GL_ARB_framebuffer_no_attachments;
#define GL_ARB_framebuffer_object 1
-GLAPI int GLAD_GL_ARB_framebuffer_object;
-#endif
-#ifndef GL_ARB_framebuffer_sRGB
+GLAD_API_CALL int GLAD_GL_ARB_framebuffer_object;
#define GL_ARB_framebuffer_sRGB 1
-GLAPI int GLAD_GL_ARB_framebuffer_sRGB;
-#endif
-#ifndef GL_ARB_multisample
+GLAD_API_CALL int GLAD_GL_ARB_framebuffer_sRGB;
+#define GL_ARB_geometry_shader4 1
+GLAD_API_CALL int GLAD_GL_ARB_geometry_shader4;
+#define GL_ARB_get_program_binary 1
+GLAD_API_CALL int GLAD_GL_ARB_get_program_binary;
+#define GL_ARB_get_texture_sub_image 1
+GLAD_API_CALL int GLAD_GL_ARB_get_texture_sub_image;
+#define GL_ARB_gl_spirv 1
+GLAD_API_CALL int GLAD_GL_ARB_gl_spirv;
+#define GL_ARB_gpu_shader5 1
+GLAD_API_CALL int GLAD_GL_ARB_gpu_shader5;
+#define GL_ARB_gpu_shader_fp64 1
+GLAD_API_CALL int GLAD_GL_ARB_gpu_shader_fp64;
+#define GL_ARB_gpu_shader_int64 1
+GLAD_API_CALL int GLAD_GL_ARB_gpu_shader_int64;
+#define GL_ARB_half_float_pixel 1
+GLAD_API_CALL int GLAD_GL_ARB_half_float_pixel;
+#define GL_ARB_half_float_vertex 1
+GLAD_API_CALL int GLAD_GL_ARB_half_float_vertex;
+#define GL_ARB_instanced_arrays 1
+GLAD_API_CALL int GLAD_GL_ARB_instanced_arrays;
+#define GL_ARB_internalformat_query 1
+GLAD_API_CALL int GLAD_GL_ARB_internalformat_query;
+#define GL_ARB_internalformat_query2 1
+GLAD_API_CALL int GLAD_GL_ARB_internalformat_query2;
+#define GL_ARB_map_buffer_range 1
+GLAD_API_CALL int GLAD_GL_ARB_map_buffer_range;
+#define GL_ARB_multi_bind 1
+GLAD_API_CALL int GLAD_GL_ARB_multi_bind;
+#define GL_ARB_multi_draw_indirect 1
+GLAD_API_CALL int GLAD_GL_ARB_multi_draw_indirect;
#define GL_ARB_multisample 1
-GLAPI int GLAD_GL_ARB_multisample;
-typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
-GLAPI PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
-#define glSampleCoverageARB glad_glSampleCoverageARB
-#endif
-#ifndef GL_ARB_sample_locations
+GLAD_API_CALL int GLAD_GL_ARB_multisample;
+#define GL_ARB_multitexture 1
+GLAD_API_CALL int GLAD_GL_ARB_multitexture;
+#define GL_ARB_occlusion_query 1
+GLAD_API_CALL int GLAD_GL_ARB_occlusion_query;
+#define GL_ARB_occlusion_query2 1
+GLAD_API_CALL int GLAD_GL_ARB_occlusion_query2;
+#define GL_ARB_pipeline_statistics_query 1
+GLAD_API_CALL int GLAD_GL_ARB_pipeline_statistics_query;
+#define GL_ARB_query_buffer_object 1
+GLAD_API_CALL int GLAD_GL_ARB_query_buffer_object;
#define GL_ARB_sample_locations 1
-GLAPI int GLAD_GL_ARB_sample_locations;
-typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat* v);
-GLAPI PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB;
-#define glFramebufferSampleLocationsfvARB glad_glFramebufferSampleLocationsfvARB
-typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
-GLAPI PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB;
-#define glNamedFramebufferSampleLocationsfvARB glad_glNamedFramebufferSampleLocationsfvARB
-typedef void (APIENTRYP PFNGLEVALUATEDEPTHVALUESARBPROC)();
-GLAPI PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB;
-#define glEvaluateDepthValuesARB glad_glEvaluateDepthValuesARB
-#endif
-#ifndef GL_ARB_texture_compression
+GLAD_API_CALL int GLAD_GL_ARB_sample_locations;
+#define GL_ARB_sample_shading 1
+GLAD_API_CALL int GLAD_GL_ARB_sample_shading;
+#define GL_ARB_seamless_cube_map 1
+GLAD_API_CALL int GLAD_GL_ARB_seamless_cube_map;
+#define GL_ARB_seamless_cubemap_per_texture 1
+GLAD_API_CALL int GLAD_GL_ARB_seamless_cubemap_per_texture;
+#define GL_ARB_shader_atomic_counter_ops 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_atomic_counter_ops;
+#define GL_ARB_shader_atomic_counters 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_atomic_counters;
+#define GL_ARB_shader_bit_encoding 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_bit_encoding;
+#define GL_ARB_shader_clock 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_clock;
+#define GL_ARB_shader_image_load_store 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_image_load_store;
+#define GL_ARB_shader_image_size 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_image_size;
+#define GL_ARB_shader_objects 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_objects;
+#define GL_ARB_shader_storage_buffer_object 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_storage_buffer_object;
+#define GL_ARB_shader_texture_lod 1
+GLAD_API_CALL int GLAD_GL_ARB_shader_texture_lod;
+#define GL_ARB_shading_language_100 1
+GLAD_API_CALL int GLAD_GL_ARB_shading_language_100;
+#define GL_ARB_shading_language_420pack 1
+GLAD_API_CALL int GLAD_GL_ARB_shading_language_420pack;
+#define GL_ARB_shading_language_include 1
+GLAD_API_CALL int GLAD_GL_ARB_shading_language_include;
+#define GL_ARB_shading_language_packing 1
+GLAD_API_CALL int GLAD_GL_ARB_shading_language_packing;
+#define GL_ARB_spirv_extensions 1
+GLAD_API_CALL int GLAD_GL_ARB_spirv_extensions;
+#define GL_ARB_tessellation_shader 1
+GLAD_API_CALL int GLAD_GL_ARB_tessellation_shader;
+#define GL_ARB_texture_border_clamp 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_border_clamp;
+#define GL_ARB_texture_buffer_object_rgb32 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_buffer_object_rgb32;
#define GL_ARB_texture_compression 1
-GLAPI int GLAD_GL_ARB_texture_compression;
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB;
-#define glCompressedTexImage3DARB glad_glCompressedTexImage3DARB
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB;
-#define glCompressedTexImage2DARB glad_glCompressedTexImage2DARB
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB;
-#define glCompressedTexImage1DARB glad_glCompressedTexImage1DARB
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB;
-#define glCompressedTexSubImage3DARB glad_glCompressedTexSubImage3DARB
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB;
-#define glCompressedTexSubImage2DARB glad_glCompressedTexSubImage2DARB
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data);
-GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB;
-#define glCompressedTexSubImage1DARB glad_glCompressedTexSubImage1DARB
-typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level, void* img);
-GLAPI PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB;
-#define glGetCompressedTexImageARB glad_glGetCompressedTexImageARB
-#endif
-#ifndef GL_ARB_texture_float
-#define GL_ARB_texture_float 1
-GLAPI int GLAD_GL_ARB_texture_float;
-#endif
-#ifndef GL_ARB_texture_multisample
-#define GL_ARB_texture_multisample 1
-GLAPI int GLAD_GL_ARB_texture_multisample;
-#endif
-#ifndef GL_ARB_texture_non_power_of_two
-#define GL_ARB_texture_non_power_of_two 1
-GLAPI int GLAD_GL_ARB_texture_non_power_of_two;
-#endif
-#ifndef GL_ARB_texture_rg
-#define GL_ARB_texture_rg 1
-GLAPI int GLAD_GL_ARB_texture_rg;
-#endif
-#ifndef GL_ARB_texture_swizzle
-#define GL_ARB_texture_swizzle 1
-GLAPI int GLAD_GL_ARB_texture_swizzle;
-#endif
-#ifndef GL_ARB_uniform_buffer_object
-#define GL_ARB_uniform_buffer_object 1
-GLAPI int GLAD_GL_ARB_uniform_buffer_object;
-#endif
-#ifndef GL_ARB_vertex_array_object
-#define GL_ARB_vertex_array_object 1
-GLAPI int GLAD_GL_ARB_vertex_array_object;
-#endif
-#ifndef GL_ARB_vertex_attrib_binding
-#define GL_ARB_vertex_attrib_binding 1
-GLAPI int GLAD_GL_ARB_vertex_attrib_binding;
-typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
-GLAPI PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer;
-#define glBindVertexBuffer glad_glBindVertexBuffer
-typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
-GLAPI PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat;
-#define glVertexAttribFormat glad_glVertexAttribFormat
-typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-GLAPI PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat;
-#define glVertexAttribIFormat glad_glVertexAttribIFormat
-typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-GLAPI PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat;
-#define glVertexAttribLFormat glad_glVertexAttribLFormat
-typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
-GLAPI PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding;
-#define glVertexAttribBinding glad_glVertexAttribBinding
-typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
-GLAPI PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor;
-#define glVertexBindingDivisor glad_glVertexBindingDivisor
-#endif
-#ifndef GL_ARB_vertex_buffer_object
-#define GL_ARB_vertex_buffer_object 1
-GLAPI int GLAD_GL_ARB_vertex_buffer_object;
-typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
-GLAPI PFNGLBINDBUFFERARBPROC glad_glBindBufferARB;
-#define glBindBufferARB glad_glBindBufferARB
-typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint* buffers);
-GLAPI PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB;
-#define glDeleteBuffersARB glad_glDeleteBuffersARB
-typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint* buffers);
-GLAPI PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB;
-#define glGenBuffersARB glad_glGenBuffersARB
-typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC)(GLuint buffer);
-GLAPI PFNGLISBUFFERARBPROC glad_glIsBufferARB;
-#define glIsBufferARB glad_glIsBufferARB
-typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const void* data, GLenum usage);
-GLAPI PFNGLBUFFERDATAARBPROC glad_glBufferDataARB;
-#define glBufferDataARB glad_glBufferDataARB
-typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void* data);
-GLAPI PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB;
-#define glBufferSubDataARB glad_glBufferSubDataARB
-typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void* data);
-GLAPI PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB;
-#define glGetBufferSubDataARB glad_glGetBufferSubDataARB
-typedef void* (APIENTRYP PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
-GLAPI PFNGLMAPBUFFERARBPROC glad_glMapBufferARB;
-#define glMapBufferARB glad_glMapBufferARB
-typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC)(GLenum target);
-GLAPI PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB;
-#define glUnmapBufferARB glad_glUnmapBufferARB
-typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB;
-#define glGetBufferParameterivARB glad_glGetBufferParameterivARB
-typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, void** params);
-GLAPI PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB;
-#define glGetBufferPointervARB glad_glGetBufferPointervARB
-#endif
-#ifndef GL_ARB_vertex_program
-#define GL_ARB_vertex_program 1
-GLAPI int GLAD_GL_ARB_vertex_program;
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
-GLAPI PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB;
-#define glVertexAttrib1dARB glad_glVertexAttrib1dARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB;
-#define glVertexAttrib1dvARB glad_glVertexAttrib1dvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
-GLAPI PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB;
-#define glVertexAttrib1fARB glad_glVertexAttrib1fARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB;
-#define glVertexAttrib1fvARB glad_glVertexAttrib1fvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
-GLAPI PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB;
-#define glVertexAttrib1sARB glad_glVertexAttrib1sARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB;
-#define glVertexAttrib1svARB glad_glVertexAttrib1svARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
-GLAPI PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB;
-#define glVertexAttrib2dARB glad_glVertexAttrib2dARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB;
-#define glVertexAttrib2dvARB glad_glVertexAttrib2dvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
-GLAPI PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB;
-#define glVertexAttrib2fARB glad_glVertexAttrib2fARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB;
-#define glVertexAttrib2fvARB glad_glVertexAttrib2fvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
-GLAPI PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB;
-#define glVertexAttrib2sARB glad_glVertexAttrib2sARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB;
-#define glVertexAttrib2svARB glad_glVertexAttrib2svARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
-GLAPI PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB;
-#define glVertexAttrib3dARB glad_glVertexAttrib3dARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB;
-#define glVertexAttrib3dvARB glad_glVertexAttrib3dvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
-GLAPI PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB;
-#define glVertexAttrib3fARB glad_glVertexAttrib3fARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB;
-#define glVertexAttrib3fvARB glad_glVertexAttrib3fvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
-GLAPI PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB;
-#define glVertexAttrib3sARB glad_glVertexAttrib3sARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB;
-#define glVertexAttrib3svARB glad_glVertexAttrib3svARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte* v);
-GLAPI PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB;
-#define glVertexAttrib4NbvARB glad_glVertexAttrib4NbvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB;
-#define glVertexAttrib4NivARB glad_glVertexAttrib4NivARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB;
-#define glVertexAttrib4NsvARB glad_glVertexAttrib4NsvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-GLAPI PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB;
-#define glVertexAttrib4NubARB glad_glVertexAttrib4NubARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte* v);
-GLAPI PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB;
-#define glVertexAttrib4NubvARB glad_glVertexAttrib4NubvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB;
-#define glVertexAttrib4NuivARB glad_glVertexAttrib4NuivARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort* v);
-GLAPI PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB;
-#define glVertexAttrib4NusvARB glad_glVertexAttrib4NusvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte* v);
-GLAPI PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB;
-#define glVertexAttrib4bvARB glad_glVertexAttrib4bvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB;
-#define glVertexAttrib4dARB glad_glVertexAttrib4dARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble* v);
-GLAPI PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB;
-#define glVertexAttrib4dvARB glad_glVertexAttrib4dvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB;
-#define glVertexAttrib4fARB glad_glVertexAttrib4fARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat* v);
-GLAPI PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB;
-#define glVertexAttrib4fvARB glad_glVertexAttrib4fvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint* v);
-GLAPI PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB;
-#define glVertexAttrib4ivARB glad_glVertexAttrib4ivARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-GLAPI PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB;
-#define glVertexAttrib4sARB glad_glVertexAttrib4sARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort* v);
-GLAPI PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB;
-#define glVertexAttrib4svARB glad_glVertexAttrib4svARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte* v);
-GLAPI PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB;
-#define glVertexAttrib4ubvARB glad_glVertexAttrib4ubvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint* v);
-GLAPI PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB;
-#define glVertexAttrib4uivARB glad_glVertexAttrib4uivARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort* v);
-GLAPI PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB;
-#define glVertexAttrib4usvARB glad_glVertexAttrib4usvARB
-typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
-GLAPI PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB;
-#define glVertexAttribPointerARB glad_glVertexAttribPointerARB
-typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
-GLAPI PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB;
-#define glEnableVertexAttribArrayARB glad_glEnableVertexAttribArrayARB
-typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
-GLAPI PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB;
-#define glDisableVertexAttribArrayARB glad_glDisableVertexAttribArrayARB
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble* params);
-GLAPI PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB;
-#define glGetVertexAttribdvARB glad_glGetVertexAttribdvARB
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB;
-#define glGetVertexAttribfvARB glad_glGetVertexAttribfvARB
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint* params);
-GLAPI PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB;
-#define glGetVertexAttribivARB glad_glGetVertexAttribivARB
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, void** pointer);
-GLAPI PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB;
-#define glGetVertexAttribPointervARB glad_glGetVertexAttribPointervARB
-#endif
-#ifndef GL_ARB_vertex_shader
-#define GL_ARB_vertex_shader 1
-GLAPI int GLAD_GL_ARB_vertex_shader;
-typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB* name);
-GLAPI PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB;
-#define glBindAttribLocationARB glad_glBindAttribLocationARB
-typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLcharARB* name);
-GLAPI PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB;
-#define glGetActiveAttribARB glad_glGetActiveAttribARB
-typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB* name);
-GLAPI PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB;
-#define glGetAttribLocationARB glad_glGetAttribLocationARB
-#endif
-#ifndef GL_ATI_element_array
-#define GL_ATI_element_array 1
-GLAPI int GLAD_GL_ATI_element_array;
-typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void* pointer);
-GLAPI PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI;
-#define glElementPointerATI glad_glElementPointerATI
-typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count);
-GLAPI PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI;
-#define glDrawElementArrayATI glad_glDrawElementArrayATI
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count);
-GLAPI PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI;
-#define glDrawRangeElementArrayATI glad_glDrawRangeElementArrayATI
-#endif
-#ifndef GL_ATI_fragment_shader
-#define GL_ATI_fragment_shader 1
-GLAPI int GLAD_GL_ATI_fragment_shader;
-typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
-GLAPI PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI;
-#define glGenFragmentShadersATI glad_glGenFragmentShadersATI
-typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
-GLAPI PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI;
-#define glBindFragmentShaderATI glad_glBindFragmentShaderATI
-typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
-GLAPI PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI;
-#define glDeleteFragmentShaderATI glad_glDeleteFragmentShaderATI
-typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC)();
-GLAPI PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI;
-#define glBeginFragmentShaderATI glad_glBeginFragmentShaderATI
-typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC)();
-GLAPI PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI;
-#define glEndFragmentShaderATI glad_glEndFragmentShaderATI
-typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
-GLAPI PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI;
-#define glPassTexCoordATI glad_glPassTexCoordATI
-typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
-GLAPI PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI;
-#define glSampleMapATI glad_glSampleMapATI
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-GLAPI PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI;
-#define glColorFragmentOp1ATI glad_glColorFragmentOp1ATI
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-GLAPI PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI;
-#define glColorFragmentOp2ATI glad_glColorFragmentOp2ATI
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-GLAPI PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI;
-#define glColorFragmentOp3ATI glad_glColorFragmentOp3ATI
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-GLAPI PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI;
-#define glAlphaFragmentOp1ATI glad_glAlphaFragmentOp1ATI
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-GLAPI PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI;
-#define glAlphaFragmentOp2ATI glad_glAlphaFragmentOp2ATI
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-GLAPI PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI;
-#define glAlphaFragmentOp3ATI glad_glAlphaFragmentOp3ATI
-typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat* value);
-GLAPI PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI;
-#define glSetFragmentShaderConstantATI glad_glSetFragmentShaderConstantATI
-#endif
-#ifndef GL_ATI_vertex_array_object
-#define GL_ATI_vertex_array_object 1
-GLAPI int GLAD_GL_ATI_vertex_array_object;
-typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void* pointer, GLenum usage);
-GLAPI PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI;
-#define glNewObjectBufferATI glad_glNewObjectBufferATI
-typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer);
-GLAPI PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI;
-#define glIsObjectBufferATI glad_glIsObjectBufferATI
-typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve);
-GLAPI PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI;
-#define glUpdateObjectBufferATI glad_glUpdateObjectBufferATI
-typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI;
-#define glGetObjectBufferfvATI glad_glGetObjectBufferfvATI
-typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint* params);
-GLAPI PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI;
-#define glGetObjectBufferivATI glad_glGetObjectBufferivATI
-typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer);
-GLAPI PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI;
-#define glFreeObjectBufferATI glad_glFreeObjectBufferATI
-typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-GLAPI PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI;
-#define glArrayObjectATI glad_glArrayObjectATI
-typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI;
-#define glGetArrayObjectfvATI glad_glGetArrayObjectfvATI
-typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint* params);
-GLAPI PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI;
-#define glGetArrayObjectivATI glad_glGetArrayObjectivATI
-typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-GLAPI PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI;
-#define glVariantArrayObjectATI glad_glVariantArrayObjectATI
-typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat* params);
-GLAPI PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI;
-#define glGetVariantArrayObjectfvATI glad_glGetVariantArrayObjectfvATI
-typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint* params);
-GLAPI PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI;
-#define glGetVariantArrayObjectivATI glad_glGetVariantArrayObjectivATI
-#endif
-#ifndef GL_EXT_blend_color
-#define GL_EXT_blend_color 1
-GLAPI int GLAD_GL_EXT_blend_color;
-typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GLAPI PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT;
-#define glBlendColorEXT glad_glBlendColorEXT
-#endif
-#ifndef GL_EXT_blend_equation_separate
-#define GL_EXT_blend_equation_separate 1
-GLAPI int GLAD_GL_EXT_blend_equation_separate;
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
-GLAPI PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT;
-#define glBlendEquationSeparateEXT glad_glBlendEquationSeparateEXT
-#endif
-#ifndef GL_EXT_blend_func_separate
-#define GL_EXT_blend_func_separate 1
-GLAPI int GLAD_GL_EXT_blend_func_separate;
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-GLAPI PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
-#define glBlendFuncSeparateEXT glad_glBlendFuncSeparateEXT
-#endif
-#ifndef GL_EXT_debug_marker
-#define GL_EXT_debug_marker 1
-GLAPI int GLAD_GL_EXT_debug_marker;
-typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker);
-GLAPI PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT;
-#define glInsertEventMarkerEXT glad_glInsertEventMarkerEXT
-typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker);
-GLAPI PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT;
-#define glPushGroupMarkerEXT glad_glPushGroupMarkerEXT
-typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC)(void);
-GLAPI PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT;
-#define glPopGroupMarkerEXT glad_glPopGroupMarkerEXT
-#endif
-#ifndef GL_EXT_framebuffer_blit
-#define GL_EXT_framebuffer_blit 1
-GLAPI int GLAD_GL_EXT_framebuffer_blit;
-typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-GLAPI PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT;
-#define glBlitFramebufferEXT glad_glBlitFramebufferEXT
-#endif
-#ifndef GL_EXT_framebuffer_multisample
-#define GL_EXT_framebuffer_multisample 1
-GLAPI int GLAD_GL_EXT_framebuffer_multisample;
-typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT;
-#define glRenderbufferStorageMultisampleEXT glad_glRenderbufferStorageMultisampleEXT
-#endif
-#ifndef GL_EXT_framebuffer_multisample_blit_scaled
-#define GL_EXT_framebuffer_multisample_blit_scaled 1
-GLAPI int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
-#endif
-#ifndef GL_EXT_framebuffer_object
-#define GL_EXT_framebuffer_object 1
-GLAPI int GLAD_GL_EXT_framebuffer_object;
-typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
-GLAPI PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
-#define glIsRenderbufferEXT glad_glIsRenderbufferEXT
-typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
-GLAPI PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
-#define glBindRenderbufferEXT glad_glBindRenderbufferEXT
-typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint* renderbuffers);
-GLAPI PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
-#define glDeleteRenderbuffersEXT glad_glDeleteRenderbuffersEXT
-typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint* renderbuffers);
-GLAPI PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
-#define glGenRenderbuffersEXT glad_glGenRenderbuffersEXT
-typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GLAPI PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
-#define glRenderbufferStorageEXT glad_glRenderbufferStorageEXT
-typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint* params);
-GLAPI PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
-#define glGetRenderbufferParameterivEXT glad_glGetRenderbufferParameterivEXT
-typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
-GLAPI PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
-#define glIsFramebufferEXT glad_glIsFramebufferEXT
-typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
-GLAPI PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
-#define glBindFramebufferEXT glad_glBindFramebufferEXT
-typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint* framebuffers);
-GLAPI PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
-#define glDeleteFramebuffersEXT glad_glDeleteFramebuffersEXT
-typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint* framebuffers);
-GLAPI PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
-#define glGenFramebuffersEXT glad_glGenFramebuffersEXT
-typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
-GLAPI PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
-#define glCheckFramebufferStatusEXT glad_glCheckFramebufferStatusEXT
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GLAPI PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
-#define glFramebufferTexture1DEXT glad_glFramebufferTexture1DEXT
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GLAPI PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
-#define glFramebufferTexture2DEXT glad_glFramebufferTexture2DEXT
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-GLAPI PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
-#define glFramebufferTexture3DEXT glad_glFramebufferTexture3DEXT
-typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GLAPI PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
-#define glFramebufferRenderbufferEXT glad_glFramebufferRenderbufferEXT
-typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
-#define glGetFramebufferAttachmentParameterivEXT glad_glGetFramebufferAttachmentParameterivEXT
-typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
-GLAPI PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
-#define glGenerateMipmapEXT glad_glGenerateMipmapEXT
-#endif
-#ifndef GL_EXT_framebuffer_sRGB
-#define GL_EXT_framebuffer_sRGB 1
-GLAPI int GLAD_GL_EXT_framebuffer_sRGB;
-#endif
-#ifndef GL_EXT_index_array_formats
-#define GL_EXT_index_array_formats 1
-GLAPI int GLAD_GL_EXT_index_array_formats;
-#endif
-#ifndef GL_EXT_texture
-#define GL_EXT_texture 1
-GLAPI int GLAD_GL_EXT_texture;
-#endif
-#ifndef GL_EXT_texture_compression_s3tc
+GLAD_API_CALL int GLAD_GL_ARB_texture_compression;
#define GL_EXT_texture_compression_s3tc 1
-GLAPI int GLAD_GL_EXT_texture_compression_s3tc;
-#endif
-#ifndef GL_EXT_texture_sRGB
-#define GL_EXT_texture_sRGB 1
-GLAPI int GLAD_GL_EXT_texture_sRGB;
-#endif
-#ifndef GL_EXT_texture_swizzle
-#define GL_EXT_texture_swizzle 1
-GLAPI int GLAD_GL_EXT_texture_swizzle;
-#endif
-#ifndef GL_EXT_vertex_array
-#define GL_EXT_vertex_array 1
-GLAPI int GLAD_GL_EXT_vertex_array;
-typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC)(GLint i);
-GLAPI PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT;
-#define glArrayElementEXT glad_glArrayElementEXT
-typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer);
-GLAPI PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT;
-#define glColorPointerEXT glad_glColorPointerEXT
-typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count);
-GLAPI PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT;
-#define glDrawArraysEXT glad_glDrawArraysEXT
-typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean* pointer);
-GLAPI PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT;
-#define glEdgeFlagPointerEXT glad_glEdgeFlagPointerEXT
-typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC)(GLenum pname, void** params);
-GLAPI PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT;
-#define glGetPointervEXT glad_glGetPointervEXT
-typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void* pointer);
-GLAPI PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT;
-#define glIndexPointerEXT glad_glIndexPointerEXT
-typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void* pointer);
-GLAPI PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT;
-#define glNormalPointerEXT glad_glNormalPointerEXT
-typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer);
-GLAPI PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT;
-#define glTexCoordPointerEXT glad_glTexCoordPointerEXT
-typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer);
-GLAPI PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT;
-#define glVertexPointerEXT glad_glVertexPointerEXT
-#endif
-#ifndef GL_EXT_vertex_shader
-#define GL_EXT_vertex_shader 1
-GLAPI int GLAD_GL_EXT_vertex_shader;
-typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC)();
-GLAPI PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT;
-#define glBeginVertexShaderEXT glad_glBeginVertexShaderEXT
-typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC)();
-GLAPI PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT;
-#define glEndVertexShaderEXT glad_glEndVertexShaderEXT
-typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id);
-GLAPI PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT;
-#define glBindVertexShaderEXT glad_glBindVertexShaderEXT
-typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range);
-GLAPI PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT;
-#define glGenVertexShadersEXT glad_glGenVertexShadersEXT
-typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id);
-GLAPI PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT;
-#define glDeleteVertexShaderEXT glad_glDeleteVertexShaderEXT
-typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1);
-GLAPI PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT;
-#define glShaderOp1EXT glad_glShaderOp1EXT
-typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
-GLAPI PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT;
-#define glShaderOp2EXT glad_glShaderOp2EXT
-typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
-GLAPI PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT;
-#define glShaderOp3EXT glad_glShaderOp3EXT
-typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-GLAPI PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT;
-#define glSwizzleEXT glad_glSwizzleEXT
-typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-GLAPI PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT;
-#define glWriteMaskEXT glad_glWriteMaskEXT
-typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
-GLAPI PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT;
-#define glInsertComponentEXT glad_glInsertComponentEXT
-typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
-GLAPI PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT;
-#define glExtractComponentEXT glad_glExtractComponentEXT
-typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
-GLAPI PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT;
-#define glGenSymbolsEXT glad_glGenSymbolsEXT
-typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const void* addr);
-GLAPI PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT;
-#define glSetInvariantEXT glad_glSetInvariantEXT
-typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const void* addr);
-GLAPI PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT;
-#define glSetLocalConstantEXT glad_glSetLocalConstantEXT
-typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte* addr);
-GLAPI PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT;
-#define glVariantbvEXT glad_glVariantbvEXT
-typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort* addr);
-GLAPI PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT;
-#define glVariantsvEXT glad_glVariantsvEXT
-typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint* addr);
-GLAPI PFNGLVARIANTIVEXTPROC glad_glVariantivEXT;
-#define glVariantivEXT glad_glVariantivEXT
-typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat* addr);
-GLAPI PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT;
-#define glVariantfvEXT glad_glVariantfvEXT
-typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble* addr);
-GLAPI PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT;
-#define glVariantdvEXT glad_glVariantdvEXT
-typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte* addr);
-GLAPI PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT;
-#define glVariantubvEXT glad_glVariantubvEXT
-typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort* addr);
-GLAPI PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT;
-#define glVariantusvEXT glad_glVariantusvEXT
-typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint* addr);
-GLAPI PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT;
-#define glVariantuivEXT glad_glVariantuivEXT
-typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, const void* addr);
-GLAPI PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT;
-#define glVariantPointerEXT glad_glVariantPointerEXT
-typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
-GLAPI PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT;
-#define glEnableVariantClientStateEXT glad_glEnableVariantClientStateEXT
-typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
-GLAPI PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT;
-#define glDisableVariantClientStateEXT glad_glDisableVariantClientStateEXT
-typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value);
-GLAPI PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT;
-#define glBindLightParameterEXT glad_glBindLightParameterEXT
-typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value);
-GLAPI PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT;
-#define glBindMaterialParameterEXT glad_glBindMaterialParameterEXT
-typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value);
-GLAPI PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT;
-#define glBindTexGenParameterEXT glad_glBindTexGenParameterEXT
-typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value);
-GLAPI PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT;
-#define glBindTextureUnitParameterEXT glad_glBindTextureUnitParameterEXT
-typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC)(GLenum value);
-GLAPI PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT;
-#define glBindParameterEXT glad_glBindParameterEXT
-typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap);
-GLAPI PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT;
-#define glIsVariantEnabledEXT glad_glIsVariantEnabledEXT
-typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data);
-GLAPI PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT;
-#define glGetVariantBooleanvEXT glad_glGetVariantBooleanvEXT
-typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data);
-GLAPI PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT;
-#define glGetVariantIntegervEXT glad_glGetVariantIntegervEXT
-typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data);
-GLAPI PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT;
-#define glGetVariantFloatvEXT glad_glGetVariantFloatvEXT
-typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, void** data);
-GLAPI PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT;
-#define glGetVariantPointervEXT glad_glGetVariantPointervEXT
-typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data);
-GLAPI PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT;
-#define glGetInvariantBooleanvEXT glad_glGetInvariantBooleanvEXT
-typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data);
-GLAPI PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT;
-#define glGetInvariantIntegervEXT glad_glGetInvariantIntegervEXT
-typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data);
-GLAPI PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT;
-#define glGetInvariantFloatvEXT glad_glGetInvariantFloatvEXT
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data);
-GLAPI PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT;
-#define glGetLocalConstantBooleanvEXT glad_glGetLocalConstantBooleanvEXT
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data);
-GLAPI PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT;
-#define glGetLocalConstantIntegervEXT glad_glGetLocalConstantIntegervEXT
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data);
-GLAPI PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT;
-#define glGetLocalConstantFloatvEXT glad_glGetLocalConstantFloatvEXT
+GLAD_API_CALL int GLAD_GL_EXT_texture_compression_s3tc;
+#define GL_ARB_texture_cube_map 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_cube_map;
+#define GL_ARB_texture_cube_map_array 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_cube_map_array;
+#define GL_ARB_texture_env_add 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_env_add;
+#define GL_ARB_texture_filter_anisotropic 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_filter_anisotropic;
+#define GL_ARB_texture_filter_minmax 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_filter_minmax;
+#define GL_ARB_texture_float 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_float;
+#define GL_ARB_texture_mirror_clamp_to_edge 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_mirror_clamp_to_edge;
+#define GL_ARB_texture_mirrored_repeat 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_mirrored_repeat;
+#define GL_ARB_texture_multisample 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_multisample;
+#define GL_ARB_texture_non_power_of_two 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_non_power_of_two;
+#define GL_ARB_texture_rg 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_rg;
+#define GL_ARB_texture_storage 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_storage;
+#define GL_ARB_texture_swizzle 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_swizzle;
+#define GL_ARB_texture_view 1
+GLAD_API_CALL int GLAD_GL_ARB_texture_view;
+#define GL_ARB_timer_query 1
+GLAD_API_CALL int GLAD_GL_ARB_timer_query;
+#define GL_ARB_transpose_matrix 1
+GLAD_API_CALL int GLAD_GL_ARB_transpose_matrix;
+#define GL_ARB_uniform_buffer_object 1
+GLAD_API_CALL int GLAD_GL_ARB_uniform_buffer_object;
+#define GL_ARB_vertex_array_bgra 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_array_bgra;
+#define GL_ARB_vertex_array_object 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_array_object;
+#define GL_ARB_vertex_attrib_binding 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_attrib_binding;
+#define GL_ARB_vertex_buffer_object 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_buffer_object;
+#define GL_ARB_vertex_program 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_program;
+#define GL_ARB_vertex_shader 1
+GLAD_API_CALL int GLAD_GL_ARB_vertex_shader;
+#define GL_EXT_fog_coord 1
+GLAD_API_CALL int GLAD_GL_EXT_fog_coord;
+#define GL_EXT_framebuffer_blit 1
+GLAD_API_CALL int GLAD_GL_EXT_framebuffer_blit;
+#define GL_EXT_framebuffer_multisample 1
+GLAD_API_CALL int GLAD_GL_EXT_framebuffer_multisample;
+#define GL_EXT_framebuffer_object 1
+GLAD_API_CALL int GLAD_GL_EXT_framebuffer_object;
+#define GL_EXT_framebuffer_sRGB 1
+GLAD_API_CALL int GLAD_GL_EXT_framebuffer_sRGB;
+#define GL_OES_compressed_paletted_texture 1
+GLAD_API_CALL int GLAD_GL_OES_compressed_paletted_texture;
+#define GL_OES_fixed_point 1
+GLAD_API_CALL int GLAD_GL_OES_fixed_point;
+
+
+typedef void (GLAD_API_PTR *PFNGLACCUMXOESPROC)(GLenum op, GLfixed value);
+typedef void (GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
+typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
+typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void (GLAD_API_PTR *PFNGLALPHAFUNCXOESPROC)(GLenum func, GLfixed ref);
+typedef void (GLAD_API_PTR *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
+typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
+typedef void (GLAD_API_PTR *PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id);
+typedef void (GLAD_API_PTR *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id);
+typedef void (GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
+typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB * name);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes);
+typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+typedef void (GLAD_API_PTR *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
+typedef void (GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
+typedef void (GLAD_API_PTR *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint * samplers);
+typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
+typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
+typedef void (GLAD_API_PTR *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
+typedef void (GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
+typedef void (GLAD_API_PTR *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (GLAD_API_PTR *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+typedef void (GLAD_API_PTR *PFNGLBITMAPXOESPROC)(GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte * bitmap);
+typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAD_API_PTR *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAD_API_PTR *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAD_API_PTR *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const void * data, GLenum usage);
+typedef void (GLAD_API_PTR *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void * data);
+typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
+typedef GLenum (GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target);
+typedef void (GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
+typedef void (GLAD_API_PTR *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
+typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
+typedef void (GLAD_API_PTR *PFNGLCLEARACCUMXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAD_API_PTR *PFNGLCLEARCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth);
+typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
+typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHXOESPROC)(GLfixed depth);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
+typedef void (GLAD_API_PTR *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
+typedef GLenum (GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (GLAD_API_PTR *PFNGLCLIPPLANEXOESPROC)(GLenum plane, const GLfixed * equation);
+typedef void (GLAD_API_PTR *PFNGLCOLOR3XOESPROC)(GLfixed red, GLfixed green, GLfixed blue);
+typedef void (GLAD_API_PTR *PFNGLCOLOR3XVOESPROC)(const GLfixed * components);
+typedef void (GLAD_API_PTR *PFNGLCOLOR4XOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAD_API_PTR *PFNGLCOLOR4XVOESPROC)(const GLfixed * components);
+typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
+typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GLAD_API_PTR *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
+typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
+typedef GLhandleARB (GLAD_API_PTR *PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines);
+typedef void (GLAD_API_PTR *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint * samplers);
+typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
+typedef GLhandleARB (GLAD_API_PTR *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
+typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const* strings);
+typedef void (GLAD_API_PTR *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void * userParam);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const void * userParam);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
+typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint * pipelines);
+typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint * programs);
+typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint * samplers);
+typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync);
+typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint * arrays);
+typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
+typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEXOESPROC)(GLfixed n, GLfixed f);
+typedef void (GLAD_API_PTR *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj);
+typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
+typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index);
+typedef void (GLAD_API_PTR *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+typedef void (GLAD_API_PTR *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+typedef void (GLAD_API_PTR *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf);
+typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id);
+typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei instancecount);
+typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream);
+typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
+typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index);
+typedef void (GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLENDQUERYARBPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index);
+typedef void (GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLEVALCOORD1XOESPROC)(GLfixed u);
+typedef void (GLAD_API_PTR *PFNGLEVALCOORD1XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLEVALCOORD2XOESPROC)(GLfixed u, GLfixed v);
+typedef void (GLAD_API_PTR *PFNGLEVALCOORD2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLEVALUATEDEPTHVALUESARBPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLFEEDBACKBUFFERXOESPROC)(GLsizei n, GLenum type, const GLfixed * buffer);
+typedef GLsync (GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
+typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
+typedef void (GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (GLAD_API_PTR *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLFOGCOORDDEXTPROC)(GLdouble coord);
+typedef void (GLAD_API_PTR *PFNGLFOGCOORDDVEXTPROC)(const GLdouble * coord);
+typedef void (GLAD_API_PTR *PFNGLFOGCOORDFEXTPROC)(GLfloat coord);
+typedef void (GLAD_API_PTR *PFNGLFOGCOORDFVEXTPROC)(const GLfloat * coord);
+typedef void (GLAD_API_PTR *PFNGLFOGXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLFOGXVOESPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLFRUSTUMXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines);
+typedef void (GLAD_API_PTR *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint * programs);
+typedef void (GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint * samplers);
+typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj);
+typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
+typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name);
+typedef void (GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean * data);
+typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void * data);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data);
+typedef void (GLAD_API_PTR *PFNGLGETCLIPPLANEXOESPROC)(GLenum plane, GLfixed * equation);
+typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void * img);
+typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level, void * img);
+typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+typedef void (GLAD_API_PTR *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble * data);
+typedef void (GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble * data);
+typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLGETFIXEDVOESPROC)(GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat * data);
+typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
+typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef GLhandleARB (GLAD_API_PTR *PFNGLGETHANDLEARBPROC)(GLenum pname);
+typedef void (GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 * data);
+typedef void (GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 * data);
+typedef void (GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint * data);
+typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
+typedef void (GLAD_API_PTR *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETMAPXVOESPROC)(GLenum target, GLenum query, GLfixed * v);
+typedef void (GLAD_API_PTR *PFNGLGETMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat * val);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void ** params);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint * param);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string);
+typedef void (GLAD_API_PTR *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar * name, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAD_API_PTR *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAD_API_PTR *PFNGLGETPIXELMAPXVPROC)(GLenum map, GLint size, GLfixed * values);
+typedef void (GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void ** params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint * params);
+typedef GLuint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint * values);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void * string);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * source);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
+typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
+typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
+typedef GLuint (GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values);
+typedef void (GLAD_API_PTR *PFNGLGETTEXENVXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERXVOESPROC)(GLenum target, GLint level, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 * param);
+typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint * param);
+typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint * param);
+typedef GLuint (GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar * uniformBlockName);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
+typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMI64VARBPROC)(GLuint program, GLint location, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLuint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint * param);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint64 * params);
+typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params);
+typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLINDEXXOESPROC)(GLfixed component);
+typedef void (GLAD_API_PTR *PFNGLINDEXXVOESPROC)(const GLfixed * component);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERARBPROC)(GLuint buffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
+typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name);
+typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
+typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMARBPROC)(GLuint program);
+typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id);
+typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYARBPROC)(GLuint id);
+typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler);
+typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
+typedef GLboolean (GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync);
+typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
+typedef GLboolean (GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
+typedef GLboolean (GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array);
+typedef void (GLAD_API_PTR *PFNGLLIGHTMODELXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLLIGHTMODELXVOESPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAD_API_PTR *PFNGLLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLLIGHTXVOESPROC)(GLenum light, GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
+typedef void (GLAD_API_PTR *PFNGLLINEWIDTHXOESPROC)(GLfixed width);
+typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (GLAD_API_PTR *PFNGLLOADMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble * m);
+typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat * m);
+typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode);
+typedef void (GLAD_API_PTR *PFNGLMAP1XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points);
+typedef void (GLAD_API_PTR *PFNGLMAP2XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points);
+typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
+typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
+typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (GLAD_API_PTR *PFNGLMAPGRID1XOESPROC)(GLint n, GLfixed u1, GLfixed u2);
+typedef void (GLAD_API_PTR *PFNGLMAPGRID2XOESPROC)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2);
+typedef void * (GLAD_API_PTR *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
+typedef void * (GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (GLAD_API_PTR *PFNGLMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLMATERIALXVOESPROC)(GLenum face, GLenum pname, const GLfixed * param);
+typedef void (GLAD_API_PTR *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
+typedef void (GLAD_API_PTR *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
+typedef void (GLAD_API_PTR *PFNGLMINSAMPLESHADINGPROC)(GLfloat value);
+typedef void (GLAD_API_PTR *PFNGLMINSAMPLESHADINGARBPROC)(GLfloat value);
+typedef void (GLAD_API_PTR *PFNGLMULTMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble * m);
+typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat * m);
+typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
+typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount);
+typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex);
+typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1XOESPROC)(GLenum texture, GLfixed s);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2XOESPROC)(GLenum texture, GLfixed s, GLfixed t);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string);
+typedef void (GLAD_API_PTR *PFNGLNORMAL3XOESPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void (GLAD_API_PTR *PFNGLNORMAL3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+typedef void (GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void * ptr, GLsizei length, const GLchar * label);
+typedef void (GLAD_API_PTR *PFNGLORTHOXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (GLAD_API_PTR *PFNGLPASSTHROUGHXOESPROC)(GLfixed token);
+typedef void (GLAD_API_PTR *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat * values);
+typedef void (GLAD_API_PTR *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value);
+typedef void (GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLPIXELMAPXPROC)(GLenum map, GLint size, const GLfixed * values);
+typedef void (GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLPIXELSTOREXPROC)(GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLPIXELTRANSFERXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLPIXELZOOMXOESPROC)(GLfixed xfactor, GLfixed yfactor);
+typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERXVOESPROC)(GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size);
+typedef void (GLAD_API_PTR *PFNGLPOINTSIZEXOESPROC)(GLfixed size);
+typedef void (GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
+typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETXOESPROC)(GLfixed factor, GLfixed units);
+typedef void (GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLPRIMITIVEBOUNDINGBOXARBPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLPRIORITIZETEXTURESXOESPROC)(GLsizei n, const GLuint * textures, const GLfixed * priorities);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void * string);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64ARBPROC)(GLuint program, GLint location, GLint64 x);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64ARBPROC)(GLuint program, GLint location, GLuint64 x);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+typedef void (GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS2XOESPROC)(GLfixed x, GLfixed y);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS3XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS4XOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+typedef void (GLAD_API_PTR *PFNGLRASTERPOS4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src);
+typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLRECTXOESPROC)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+typedef void (GLAD_API_PTR *PFNGLRECTXVOESPROC)(const GLfixed * v1, const GLfixed * v2);
+typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLROTATEXOESPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
+typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
+typedef void (GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint * param);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat * param);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAD_API_PTR *PFNGLSCALEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length);
+typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
+typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint * length);
+typedef void (GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+typedef void (GLAD_API_PTR *PFNGLSPECIALIZESHADERARBPROC)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
+typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD1XOESPROC)(GLfixed s);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD1XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD2XOESPROC)(GLfixed s, GLfixed t);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD3XOESPROC)(GLfixed s, GLfixed t, GLfixed r);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD4XOESPROC)(GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (GLAD_API_PTR *PFNGLTEXCOORD4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLTEXENVXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLTEXENVXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat * param);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint * param);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+typedef void (GLAD_API_PTR *PFNGLTRANSLATEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1I64ARBPROC)(GLint location, GLint64 x);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1UI64ARBPROC)(GLint location, GLuint64 x);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2I64ARBPROC)(GLint location, GLint64 x, GLint64 y);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint * indices);
+typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target);
+typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPBUFFERARBPROC)(GLenum target);
+typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
+typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program);
+typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void (GLAD_API_PTR *PFNGLVERTEX2XOESPROC)(GLfixed x);
+typedef void (GLAD_API_PTR *PFNGLVERTEX2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLVERTEX3XOESPROC)(GLfixed x, GLfixed y);
+typedef void (GLAD_API_PTR *PFNGLVERTEX3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLVERTEX4XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAD_API_PTR *PFNGLVERTEX4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
+typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+GLAD_API_CALL PFNGLACCUMXOESPROC glad_glAccumxOES;
+#define glAccumxOES glad_glAccumxOES
+GLAD_API_CALL PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram;
+#define glActiveShaderProgram glad_glActiveShaderProgram
+GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
+#define glActiveTexture glad_glActiveTexture
+GLAD_API_CALL PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB;
+#define glActiveTextureARB glad_glActiveTextureARB
+GLAD_API_CALL PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES;
+#define glAlphaFuncxOES glad_glAlphaFuncxOES
+GLAD_API_CALL PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB;
+#define glAttachObjectARB glad_glAttachObjectARB
+GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader;
+#define glAttachShader glad_glAttachShader
+GLAD_API_CALL PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
+#define glBeginConditionalRender glad_glBeginConditionalRender
+GLAD_API_CALL PFNGLBEGINQUERYPROC glad_glBeginQuery;
+#define glBeginQuery glad_glBeginQuery
+GLAD_API_CALL PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB;
+#define glBeginQueryARB glad_glBeginQueryARB
+GLAD_API_CALL PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed;
+#define glBeginQueryIndexed glad_glBeginQueryIndexed
+GLAD_API_CALL PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
+#define glBeginTransformFeedback glad_glBeginTransformFeedback
+GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
+#define glBindAttribLocation glad_glBindAttribLocation
+GLAD_API_CALL PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB;
+#define glBindAttribLocationARB glad_glBindAttribLocationARB
+GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer;
+#define glBindBuffer glad_glBindBuffer
+GLAD_API_CALL PFNGLBINDBUFFERARBPROC glad_glBindBufferARB;
+#define glBindBufferARB glad_glBindBufferARB
+GLAD_API_CALL PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
+#define glBindBufferBase glad_glBindBufferBase
+GLAD_API_CALL PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
+#define glBindBufferRange glad_glBindBufferRange
+GLAD_API_CALL PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase;
+#define glBindBuffersBase glad_glBindBuffersBase
+GLAD_API_CALL PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange;
+#define glBindBuffersRange glad_glBindBuffersRange
+GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
+#define glBindFragDataLocation glad_glBindFragDataLocation
+GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
+#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed
+GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
+#define glBindFramebuffer glad_glBindFramebuffer
+GLAD_API_CALL PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
+#define glBindFramebufferEXT glad_glBindFramebufferEXT
+GLAD_API_CALL PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture;
+#define glBindImageTexture glad_glBindImageTexture
+GLAD_API_CALL PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures;
+#define glBindImageTextures glad_glBindImageTextures
+GLAD_API_CALL PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB;
+#define glBindProgramARB glad_glBindProgramARB
+GLAD_API_CALL PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline;
+#define glBindProgramPipeline glad_glBindProgramPipeline
+GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
+#define glBindRenderbuffer glad_glBindRenderbuffer
+GLAD_API_CALL PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
+#define glBindRenderbufferEXT glad_glBindRenderbufferEXT
+GLAD_API_CALL PFNGLBINDSAMPLERPROC glad_glBindSampler;
+#define glBindSampler glad_glBindSampler
+GLAD_API_CALL PFNGLBINDSAMPLERSPROC glad_glBindSamplers;
+#define glBindSamplers glad_glBindSamplers
+GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture;
+#define glBindTexture glad_glBindTexture
+GLAD_API_CALL PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit;
+#define glBindTextureUnit glad_glBindTextureUnit
+GLAD_API_CALL PFNGLBINDTEXTURESPROC glad_glBindTextures;
+#define glBindTextures glad_glBindTextures
+GLAD_API_CALL PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback;
+#define glBindTransformFeedback glad_glBindTransformFeedback
+GLAD_API_CALL PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
+#define glBindVertexArray glad_glBindVertexArray
+GLAD_API_CALL PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer;
+#define glBindVertexBuffer glad_glBindVertexBuffer
+GLAD_API_CALL PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers;
+#define glBindVertexBuffers glad_glBindVertexBuffers
+GLAD_API_CALL PFNGLBITMAPXOESPROC glad_glBitmapxOES;
+#define glBitmapxOES glad_glBitmapxOES
+GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor;
+#define glBlendColor glad_glBlendColor
+GLAD_API_CALL PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES;
+#define glBlendColorxOES glad_glBlendColorxOES
+GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
+#define glBlendEquation glad_glBlendEquation
+GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
+#define glBlendEquationSeparate glad_glBlendEquationSeparate
+GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei;
+#define glBlendEquationSeparatei glad_glBlendEquationSeparatei
+GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB;
+#define glBlendEquationSeparateiARB glad_glBlendEquationSeparateiARB
+GLAD_API_CALL PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi;
+#define glBlendEquationi glad_glBlendEquationi
+GLAD_API_CALL PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB;
+#define glBlendEquationiARB glad_glBlendEquationiARB
+GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc;
+#define glBlendFunc glad_glBlendFunc
+GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
+#define glBlendFuncSeparate glad_glBlendFuncSeparate
+GLAD_API_CALL PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei;
+#define glBlendFuncSeparatei glad_glBlendFuncSeparatei
+GLAD_API_CALL PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB;
+#define glBlendFuncSeparateiARB glad_glBlendFuncSeparateiARB
+GLAD_API_CALL PFNGLBLENDFUNCIPROC glad_glBlendFunci;
+#define glBlendFunci glad_glBlendFunci
+GLAD_API_CALL PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB;
+#define glBlendFunciARB glad_glBlendFunciARB
+GLAD_API_CALL PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
+#define glBlitFramebuffer glad_glBlitFramebuffer
+GLAD_API_CALL PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT;
+#define glBlitFramebufferEXT glad_glBlitFramebufferEXT
+GLAD_API_CALL PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer;
+#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer
+GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData;
+#define glBufferData glad_glBufferData
+GLAD_API_CALL PFNGLBUFFERDATAARBPROC glad_glBufferDataARB;
+#define glBufferDataARB glad_glBufferDataARB
+GLAD_API_CALL PFNGLBUFFERSTORAGEPROC glad_glBufferStorage;
+#define glBufferStorage glad_glBufferStorage
+GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
+#define glBufferSubData glad_glBufferSubData
+GLAD_API_CALL PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB;
+#define glBufferSubDataARB glad_glBufferSubDataARB
+GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
+#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
+GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
+#define glCheckFramebufferStatusEXT glad_glCheckFramebufferStatusEXT
+GLAD_API_CALL PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus;
+#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus
+GLAD_API_CALL PFNGLCLAMPCOLORPROC glad_glClampColor;
+#define glClampColor glad_glClampColor
+GLAD_API_CALL PFNGLCLAMPCOLORARBPROC glad_glClampColorARB;
+#define glClampColorARB glad_glClampColorARB
+GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
+#define glClear glad_glClear
+GLAD_API_CALL PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES;
+#define glClearAccumxOES glad_glClearAccumxOES
+GLAD_API_CALL PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData;
+#define glClearBufferData glad_glClearBufferData
+GLAD_API_CALL PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData;
+#define glClearBufferSubData glad_glClearBufferSubData
+GLAD_API_CALL PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
+#define glClearBufferfi glad_glClearBufferfi
+GLAD_API_CALL PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
+#define glClearBufferfv glad_glClearBufferfv
+GLAD_API_CALL PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
+#define glClearBufferiv glad_glClearBufferiv
+GLAD_API_CALL PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
+#define glClearBufferuiv glad_glClearBufferuiv
+GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor;
+#define glClearColor glad_glClearColor
+GLAD_API_CALL PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES;
+#define glClearColorxOES glad_glClearColorxOES
+GLAD_API_CALL PFNGLCLEARDEPTHPROC glad_glClearDepth;
+#define glClearDepth glad_glClearDepth
+GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
+#define glClearDepthf glad_glClearDepthf
+GLAD_API_CALL PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES;
+#define glClearDepthxOES glad_glClearDepthxOES
+GLAD_API_CALL PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData;
+#define glClearNamedBufferData glad_glClearNamedBufferData
+GLAD_API_CALL PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData;
+#define glClearNamedBufferSubData glad_glClearNamedBufferSubData
+GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi;
+#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi
+GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv;
+#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv
+GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv;
+#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv
+GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv;
+#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv
+GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil;
+#define glClearStencil glad_glClearStencil
+GLAD_API_CALL PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage;
+#define glClearTexImage glad_glClearTexImage
+GLAD_API_CALL PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage;
+#define glClearTexSubImage glad_glClearTexSubImage
+GLAD_API_CALL PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB;
+#define glClientActiveTextureARB glad_glClientActiveTextureARB
+GLAD_API_CALL PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
+#define glClientWaitSync glad_glClientWaitSync
+GLAD_API_CALL PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES;
+#define glClipPlanexOES glad_glClipPlanexOES
+GLAD_API_CALL PFNGLCOLOR3XOESPROC glad_glColor3xOES;
+#define glColor3xOES glad_glColor3xOES
+GLAD_API_CALL PFNGLCOLOR3XVOESPROC glad_glColor3xvOES;
+#define glColor3xvOES glad_glColor3xvOES
+GLAD_API_CALL PFNGLCOLOR4XOESPROC glad_glColor4xOES;
+#define glColor4xOES glad_glColor4xOES
+GLAD_API_CALL PFNGLCOLOR4XVOESPROC glad_glColor4xvOES;
+#define glColor4xvOES glad_glColor4xvOES
+GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask;
+#define glColorMask glad_glColorMask
+GLAD_API_CALL PFNGLCOLORMASKIPROC glad_glColorMaski;
+#define glColorMaski glad_glColorMaski
+GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader;
+#define glCompileShader glad_glCompileShader
+GLAD_API_CALL PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB;
+#define glCompileShaderARB glad_glCompileShaderARB
+GLAD_API_CALL PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB;
+#define glCompileShaderIncludeARB glad_glCompileShaderIncludeARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
+#define glCompressedTexImage1D glad_glCompressedTexImage1D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB;
+#define glCompressedTexImage1DARB glad_glCompressedTexImage1DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
+#define glCompressedTexImage2D glad_glCompressedTexImage2D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB;
+#define glCompressedTexImage2DARB glad_glCompressedTexImage2DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
+#define glCompressedTexImage3D glad_glCompressedTexImage3D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB;
+#define glCompressedTexImage3DARB glad_glCompressedTexImage3DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
+#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB;
+#define glCompressedTexSubImage1DARB glad_glCompressedTexSubImage1DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
+#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB;
+#define glCompressedTexSubImage2DARB glad_glCompressedTexSubImage2DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
+#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB;
+#define glCompressedTexSubImage3DARB glad_glCompressedTexSubImage3DARB
+GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D;
+#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D;
+#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D;
+#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D
+GLAD_API_CALL PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES;
+#define glConvolutionParameterxOES glad_glConvolutionParameterxOES
+GLAD_API_CALL PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES;
+#define glConvolutionParameterxvOES glad_glConvolutionParameterxvOES
+GLAD_API_CALL PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
+#define glCopyBufferSubData glad_glCopyBufferSubData
+GLAD_API_CALL PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData;
+#define glCopyImageSubData glad_glCopyImageSubData
+GLAD_API_CALL PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData;
+#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData
+GLAD_API_CALL PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
+#define glCopyTexImage1D glad_glCopyTexImage1D
+GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
+#define glCopyTexImage2D glad_glCopyTexImage2D
+GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
+#define glCopyTexSubImage1D glad_glCopyTexSubImage1D
+GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
+#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
+GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
+#define glCopyTexSubImage3D glad_glCopyTexSubImage3D
+GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D;
+#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D
+GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D;
+#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D
+GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D;
+#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D
+GLAD_API_CALL PFNGLCREATEBUFFERSPROC glad_glCreateBuffers;
+#define glCreateBuffers glad_glCreateBuffers
+GLAD_API_CALL PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers;
+#define glCreateFramebuffers glad_glCreateFramebuffers
+GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
+#define glCreateProgram glad_glCreateProgram
+GLAD_API_CALL PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB;
+#define glCreateProgramObjectARB glad_glCreateProgramObjectARB
+GLAD_API_CALL PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines;
+#define glCreateProgramPipelines glad_glCreateProgramPipelines
+GLAD_API_CALL PFNGLCREATEQUERIESPROC glad_glCreateQueries;
+#define glCreateQueries glad_glCreateQueries
+GLAD_API_CALL PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers;
+#define glCreateRenderbuffers glad_glCreateRenderbuffers
+GLAD_API_CALL PFNGLCREATESAMPLERSPROC glad_glCreateSamplers;
+#define glCreateSamplers glad_glCreateSamplers
+GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader;
+#define glCreateShader glad_glCreateShader
+GLAD_API_CALL PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB;
+#define glCreateShaderObjectARB glad_glCreateShaderObjectARB
+GLAD_API_CALL PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv;
+#define glCreateShaderProgramv glad_glCreateShaderProgramv
+GLAD_API_CALL PFNGLCREATETEXTURESPROC glad_glCreateTextures;
+#define glCreateTextures glad_glCreateTextures
+GLAD_API_CALL PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks;
+#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks
+GLAD_API_CALL PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays;
+#define glCreateVertexArrays glad_glCreateVertexArrays
+GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace;
+#define glCullFace glad_glCullFace
+GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback;
+#define glDebugMessageCallback glad_glDebugMessageCallback
+GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
+#define glDebugMessageCallbackARB glad_glDebugMessageCallbackARB
+GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl;
+#define glDebugMessageControl glad_glDebugMessageControl
+GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
+#define glDebugMessageControlARB glad_glDebugMessageControlARB
+GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert;
+#define glDebugMessageInsert glad_glDebugMessageInsert
+GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
+#define glDebugMessageInsertARB glad_glDebugMessageInsertARB
+GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
+#define glDeleteBuffers glad_glDeleteBuffers
+GLAD_API_CALL PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB;
+#define glDeleteBuffersARB glad_glDeleteBuffersARB
+GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
+#define glDeleteFramebuffers glad_glDeleteFramebuffers
+GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
+#define glDeleteFramebuffersEXT glad_glDeleteFramebuffersEXT
+GLAD_API_CALL PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB;
+#define glDeleteNamedStringARB glad_glDeleteNamedStringARB
+GLAD_API_CALL PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB;
+#define glDeleteObjectARB glad_glDeleteObjectARB
+GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
+#define glDeleteProgram glad_glDeleteProgram
+GLAD_API_CALL PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines;
+#define glDeleteProgramPipelines glad_glDeleteProgramPipelines
+GLAD_API_CALL PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB;
+#define glDeleteProgramsARB glad_glDeleteProgramsARB
+GLAD_API_CALL PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
+#define glDeleteQueries glad_glDeleteQueries
+GLAD_API_CALL PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB;
+#define glDeleteQueriesARB glad_glDeleteQueriesARB
+GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
+#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
+GLAD_API_CALL PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
+#define glDeleteRenderbuffersEXT glad_glDeleteRenderbuffersEXT
+GLAD_API_CALL PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
+#define glDeleteSamplers glad_glDeleteSamplers
+GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader;
+#define glDeleteShader glad_glDeleteShader
+GLAD_API_CALL PFNGLDELETESYNCPROC glad_glDeleteSync;
+#define glDeleteSync glad_glDeleteSync
+GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
+#define glDeleteTextures glad_glDeleteTextures
+GLAD_API_CALL PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks;
+#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks
+GLAD_API_CALL PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
+#define glDeleteVertexArrays glad_glDeleteVertexArrays
+GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc;
+#define glDepthFunc glad_glDepthFunc
+GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask;
+#define glDepthMask glad_glDepthMask
+GLAD_API_CALL PFNGLDEPTHRANGEPROC glad_glDepthRange;
+#define glDepthRange glad_glDepthRange
+GLAD_API_CALL PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv;
+#define glDepthRangeArrayv glad_glDepthRangeArrayv
+GLAD_API_CALL PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed;
+#define glDepthRangeIndexed glad_glDepthRangeIndexed
+GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
+#define glDepthRangef glad_glDepthRangef
+GLAD_API_CALL PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES;
+#define glDepthRangexOES glad_glDepthRangexOES
+GLAD_API_CALL PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB;
+#define glDetachObjectARB glad_glDetachObjectARB
+GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader;
+#define glDetachShader glad_glDetachShader
+GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable;
+#define glDisable glad_glDisable
+GLAD_API_CALL PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib;
+#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib
+GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
+#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
+GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB;
+#define glDisableVertexAttribArrayARB glad_glDisableVertexAttribArrayARB
+GLAD_API_CALL PFNGLDISABLEIPROC glad_glDisablei;
+#define glDisablei glad_glDisablei
+GLAD_API_CALL PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute;
+#define glDispatchCompute glad_glDispatchCompute
+GLAD_API_CALL PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB;
+#define glDispatchComputeGroupSizeARB glad_glDispatchComputeGroupSizeARB
+GLAD_API_CALL PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect;
+#define glDispatchComputeIndirect glad_glDispatchComputeIndirect
+GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays;
+#define glDrawArrays glad_glDrawArrays
+GLAD_API_CALL PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect;
+#define glDrawArraysIndirect glad_glDrawArraysIndirect
+GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
+#define glDrawArraysInstanced glad_glDrawArraysInstanced
+GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB;
+#define glDrawArraysInstancedARB glad_glDrawArraysInstancedARB
+GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance;
+#define glDrawArraysInstancedBaseInstance glad_glDrawArraysInstancedBaseInstance
+GLAD_API_CALL PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
+#define glDrawBuffer glad_glDrawBuffer
+GLAD_API_CALL PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
+#define glDrawBuffers glad_glDrawBuffers
+GLAD_API_CALL PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB;
+#define glDrawBuffersARB glad_glDrawBuffersARB
+GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements;
+#define glDrawElements glad_glDrawElements
+GLAD_API_CALL PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
+#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex
+GLAD_API_CALL PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect;
+#define glDrawElementsIndirect glad_glDrawElementsIndirect
+GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
+#define glDrawElementsInstanced glad_glDrawElementsInstanced
+GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB;
+#define glDrawElementsInstancedARB glad_glDrawElementsInstancedARB
+GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance;
+#define glDrawElementsInstancedBaseInstance glad_glDrawElementsInstancedBaseInstance
+GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
+#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex
+GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance;
+#define glDrawElementsInstancedBaseVertexBaseInstance glad_glDrawElementsInstancedBaseVertexBaseInstance
+GLAD_API_CALL PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
+#define glDrawRangeElements glad_glDrawRangeElements
+GLAD_API_CALL PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
+#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex
+GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback;
+#define glDrawTransformFeedback glad_glDrawTransformFeedback
+GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced;
+#define glDrawTransformFeedbackInstanced glad_glDrawTransformFeedbackInstanced
+GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream;
+#define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream
+GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced;
+#define glDrawTransformFeedbackStreamInstanced glad_glDrawTransformFeedbackStreamInstanced
+GLAD_API_CALL PFNGLENABLEPROC glad_glEnable;
+#define glEnable glad_glEnable
+GLAD_API_CALL PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib;
+#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib
+GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
+#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
+GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB;
+#define glEnableVertexAttribArrayARB glad_glEnableVertexAttribArrayARB
+GLAD_API_CALL PFNGLENABLEIPROC glad_glEnablei;
+#define glEnablei glad_glEnablei
+GLAD_API_CALL PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
+#define glEndConditionalRender glad_glEndConditionalRender
+GLAD_API_CALL PFNGLENDQUERYPROC glad_glEndQuery;
+#define glEndQuery glad_glEndQuery
+GLAD_API_CALL PFNGLENDQUERYARBPROC glad_glEndQueryARB;
+#define glEndQueryARB glad_glEndQueryARB
+GLAD_API_CALL PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed;
+#define glEndQueryIndexed glad_glEndQueryIndexed
+GLAD_API_CALL PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
+#define glEndTransformFeedback glad_glEndTransformFeedback
+GLAD_API_CALL PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES;
+#define glEvalCoord1xOES glad_glEvalCoord1xOES
+GLAD_API_CALL PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES;
+#define glEvalCoord1xvOES glad_glEvalCoord1xvOES
+GLAD_API_CALL PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES;
+#define glEvalCoord2xOES glad_glEvalCoord2xOES
+GLAD_API_CALL PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES;
+#define glEvalCoord2xvOES glad_glEvalCoord2xvOES
+GLAD_API_CALL PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB;
+#define glEvaluateDepthValuesARB glad_glEvaluateDepthValuesARB
+GLAD_API_CALL PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES;
+#define glFeedbackBufferxOES glad_glFeedbackBufferxOES
+GLAD_API_CALL PFNGLFENCESYNCPROC glad_glFenceSync;
+#define glFenceSync glad_glFenceSync
+GLAD_API_CALL PFNGLFINISHPROC glad_glFinish;
+#define glFinish glad_glFinish
+GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush;
+#define glFlush glad_glFlush
+GLAD_API_CALL PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
+#define glFlushMappedBufferRange glad_glFlushMappedBufferRange
+GLAD_API_CALL PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange;
+#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange
+GLAD_API_CALL PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT;
+#define glFogCoordPointerEXT glad_glFogCoordPointerEXT
+GLAD_API_CALL PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT;
+#define glFogCoorddEXT glad_glFogCoorddEXT
+GLAD_API_CALL PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT;
+#define glFogCoorddvEXT glad_glFogCoorddvEXT
+GLAD_API_CALL PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT;
+#define glFogCoordfEXT glad_glFogCoordfEXT
+GLAD_API_CALL PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT;
+#define glFogCoordfvEXT glad_glFogCoordfvEXT
+GLAD_API_CALL PFNGLFOGXOESPROC glad_glFogxOES;
+#define glFogxOES glad_glFogxOES
+GLAD_API_CALL PFNGLFOGXVOESPROC glad_glFogxvOES;
+#define glFogxvOES glad_glFogxvOES
+GLAD_API_CALL PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri;
+#define glFramebufferParameteri glad_glFramebufferParameteri
+GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
+#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
+GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
+#define glFramebufferRenderbufferEXT glad_glFramebufferRenderbufferEXT
+GLAD_API_CALL PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB;
+#define glFramebufferSampleLocationsfvARB glad_glFramebufferSampleLocationsfvARB
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
+#define glFramebufferTexture glad_glFramebufferTexture
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
+#define glFramebufferTexture1D glad_glFramebufferTexture1D
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
+#define glFramebufferTexture1DEXT glad_glFramebufferTexture1DEXT
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
+#define glFramebufferTexture2D glad_glFramebufferTexture2D
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
+#define glFramebufferTexture2DEXT glad_glFramebufferTexture2DEXT
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
+#define glFramebufferTexture3D glad_glFramebufferTexture3D
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
+#define glFramebufferTexture3DEXT glad_glFramebufferTexture3DEXT
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB;
+#define glFramebufferTextureARB glad_glFramebufferTextureARB
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB;
+#define glFramebufferTextureFaceARB glad_glFramebufferTextureFaceARB
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
+#define glFramebufferTextureLayer glad_glFramebufferTextureLayer
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB;
+#define glFramebufferTextureLayerARB glad_glFramebufferTextureLayerARB
+GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace;
+#define glFrontFace glad_glFrontFace
+GLAD_API_CALL PFNGLFRUSTUMXOESPROC glad_glFrustumxOES;
+#define glFrustumxOES glad_glFrustumxOES
+GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers;
+#define glGenBuffers glad_glGenBuffers
+GLAD_API_CALL PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB;
+#define glGenBuffersARB glad_glGenBuffersARB
+GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
+#define glGenFramebuffers glad_glGenFramebuffers
+GLAD_API_CALL PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
+#define glGenFramebuffersEXT glad_glGenFramebuffersEXT
+GLAD_API_CALL PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines;
+#define glGenProgramPipelines glad_glGenProgramPipelines
+GLAD_API_CALL PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB;
+#define glGenProgramsARB glad_glGenProgramsARB
+GLAD_API_CALL PFNGLGENQUERIESPROC glad_glGenQueries;
+#define glGenQueries glad_glGenQueries
+GLAD_API_CALL PFNGLGENQUERIESARBPROC glad_glGenQueriesARB;
+#define glGenQueriesARB glad_glGenQueriesARB
+GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
+#define glGenRenderbuffers glad_glGenRenderbuffers
+GLAD_API_CALL PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
+#define glGenRenderbuffersEXT glad_glGenRenderbuffersEXT
+GLAD_API_CALL PFNGLGENSAMPLERSPROC glad_glGenSamplers;
+#define glGenSamplers glad_glGenSamplers
+GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures;
+#define glGenTextures glad_glGenTextures
+GLAD_API_CALL PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks;
+#define glGenTransformFeedbacks glad_glGenTransformFeedbacks
+GLAD_API_CALL PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
+#define glGenVertexArrays glad_glGenVertexArrays
+GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
+#define glGenerateMipmap glad_glGenerateMipmap
+GLAD_API_CALL PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
+#define glGenerateMipmapEXT glad_glGenerateMipmapEXT
+GLAD_API_CALL PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap;
+#define glGenerateTextureMipmap glad_glGenerateTextureMipmap
+GLAD_API_CALL PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv;
+#define glGetActiveAtomicCounterBufferiv glad_glGetActiveAtomicCounterBufferiv
+GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
+#define glGetActiveAttrib glad_glGetActiveAttrib
+GLAD_API_CALL PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB;
+#define glGetActiveAttribARB glad_glGetActiveAttribARB
+GLAD_API_CALL PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName;
+#define glGetActiveSubroutineName glad_glGetActiveSubroutineName
+GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName;
+#define glGetActiveSubroutineUniformName glad_glGetActiveSubroutineUniformName
+GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv;
+#define glGetActiveSubroutineUniformiv glad_glGetActiveSubroutineUniformiv
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
+#define glGetActiveUniform glad_glGetActiveUniform
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB;
+#define glGetActiveUniformARB glad_glGetActiveUniformARB
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
+#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
+#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
+#define glGetActiveUniformName glad_glGetActiveUniformName
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
+#define glGetActiveUniformsiv glad_glGetActiveUniformsiv
+GLAD_API_CALL PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB;
+#define glGetAttachedObjectsARB glad_glGetAttachedObjectsARB
+GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
+#define glGetAttachedShaders glad_glGetAttachedShaders
+GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
+#define glGetAttribLocation glad_glGetAttribLocation
+GLAD_API_CALL PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB;
+#define glGetAttribLocationARB glad_glGetAttribLocationARB
+GLAD_API_CALL PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
+#define glGetBooleani_v glad_glGetBooleani_v
+GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
+#define glGetBooleanv glad_glGetBooleanv
+GLAD_API_CALL PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
+#define glGetBufferParameteri64v glad_glGetBufferParameteri64v
+GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
+#define glGetBufferParameteriv glad_glGetBufferParameteriv
+GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB;
+#define glGetBufferParameterivARB glad_glGetBufferParameterivARB
+GLAD_API_CALL PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
+#define glGetBufferPointerv glad_glGetBufferPointerv
+GLAD_API_CALL PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB;
+#define glGetBufferPointervARB glad_glGetBufferPointervARB
+GLAD_API_CALL PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
+#define glGetBufferSubData glad_glGetBufferSubData
+GLAD_API_CALL PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB;
+#define glGetBufferSubDataARB glad_glGetBufferSubDataARB
+GLAD_API_CALL PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES;
+#define glGetClipPlanexOES glad_glGetClipPlanexOES
+GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
+#define glGetCompressedTexImage glad_glGetCompressedTexImage
+GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB;
+#define glGetCompressedTexImageARB glad_glGetCompressedTexImageARB
+GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage;
+#define glGetCompressedTextureImage glad_glGetCompressedTextureImage
+GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage;
+#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage
+GLAD_API_CALL PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES;
+#define glGetConvolutionParameterxvOES glad_glGetConvolutionParameterxvOES
+GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog;
+#define glGetDebugMessageLog glad_glGetDebugMessageLog
+GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
+#define glGetDebugMessageLogARB glad_glGetDebugMessageLogARB
+GLAD_API_CALL PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v;
+#define glGetDoublei_v glad_glGetDoublei_v
+GLAD_API_CALL PFNGLGETDOUBLEVPROC glad_glGetDoublev;
+#define glGetDoublev glad_glGetDoublev
+GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError;
+#define glGetError glad_glGetError
+GLAD_API_CALL PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES;
+#define glGetFixedvOES glad_glGetFixedvOES
+GLAD_API_CALL PFNGLGETFLOATI_VPROC glad_glGetFloati_v;
+#define glGetFloati_v glad_glGetFloati_v
+GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv;
+#define glGetFloatv glad_glGetFloatv
+GLAD_API_CALL PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
+#define glGetFragDataIndex glad_glGetFragDataIndex
+GLAD_API_CALL PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
+#define glGetFragDataLocation glad_glGetFragDataLocation
+GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
+#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
+GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
+#define glGetFramebufferAttachmentParameterivEXT glad_glGetFramebufferAttachmentParameterivEXT
+GLAD_API_CALL PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv;
+#define glGetFramebufferParameteriv glad_glGetFramebufferParameteriv
+GLAD_API_CALL PFNGLGETHANDLEARBPROC glad_glGetHandleARB;
+#define glGetHandleARB glad_glGetHandleARB
+GLAD_API_CALL PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES;
+#define glGetHistogramParameterxvOES glad_glGetHistogramParameterxvOES
+GLAD_API_CALL PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB;
+#define glGetInfoLogARB glad_glGetInfoLogARB
+GLAD_API_CALL PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
+#define glGetInteger64i_v glad_glGetInteger64i_v
+GLAD_API_CALL PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
+#define glGetInteger64v glad_glGetInteger64v
+GLAD_API_CALL PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
+#define glGetIntegeri_v glad_glGetIntegeri_v
+GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv;
+#define glGetIntegerv glad_glGetIntegerv
+GLAD_API_CALL PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v;
+#define glGetInternalformati64v glad_glGetInternalformati64v
+GLAD_API_CALL PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ;
+#define glGetInternalformativ glad_glGetInternalformativ
+GLAD_API_CALL PFNGLGETLIGHTXOESPROC glad_glGetLightxOES;
+#define glGetLightxOES glad_glGetLightxOES
+GLAD_API_CALL PFNGLGETMAPXVOESPROC glad_glGetMapxvOES;
+#define glGetMapxvOES glad_glGetMapxvOES
+GLAD_API_CALL PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES;
+#define glGetMaterialxOES glad_glGetMaterialxOES
+GLAD_API_CALL PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
+#define glGetMultisamplefv glad_glGetMultisamplefv
+GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v;
+#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v
+GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv;
+#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv
+GLAD_API_CALL PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv;
+#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv
+GLAD_API_CALL PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData;
+#define glGetNamedBufferSubData glad_glGetNamedBufferSubData
+GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv;
+#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv
+GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv;
+#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv
+GLAD_API_CALL PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv;
+#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv
+GLAD_API_CALL PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB;
+#define glGetNamedStringARB glad_glGetNamedStringARB
+GLAD_API_CALL PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB;
+#define glGetNamedStringivARB glad_glGetNamedStringivARB
+GLAD_API_CALL PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel;
+#define glGetObjectLabel glad_glGetObjectLabel
+GLAD_API_CALL PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB;
+#define glGetObjectParameterfvARB glad_glGetObjectParameterfvARB
+GLAD_API_CALL PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB;
+#define glGetObjectParameterivARB glad_glGetObjectParameterivARB
+GLAD_API_CALL PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel;
+#define glGetObjectPtrLabel glad_glGetObjectPtrLabel
+GLAD_API_CALL PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv;
+#define glGetPixelMapxv glad_glGetPixelMapxv
+GLAD_API_CALL PFNGLGETPOINTERVPROC glad_glGetPointerv;
+#define glGetPointerv glad_glGetPointerv
+GLAD_API_CALL PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary;
+#define glGetProgramBinary glad_glGetProgramBinary
+GLAD_API_CALL PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB;
+#define glGetProgramEnvParameterdvARB glad_glGetProgramEnvParameterdvARB
+GLAD_API_CALL PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB;
+#define glGetProgramEnvParameterfvARB glad_glGetProgramEnvParameterfvARB
+GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
+#define glGetProgramInfoLog glad_glGetProgramInfoLog
+GLAD_API_CALL PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv;
+#define glGetProgramInterfaceiv glad_glGetProgramInterfaceiv
+GLAD_API_CALL PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB;
+#define glGetProgramLocalParameterdvARB glad_glGetProgramLocalParameterdvARB
+GLAD_API_CALL PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB;
+#define glGetProgramLocalParameterfvARB glad_glGetProgramLocalParameterfvARB
+GLAD_API_CALL PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog;
+#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog
+GLAD_API_CALL PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv;
+#define glGetProgramPipelineiv glad_glGetProgramPipelineiv
+GLAD_API_CALL PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex;
+#define glGetProgramResourceIndex glad_glGetProgramResourceIndex
+GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation;
+#define glGetProgramResourceLocation glad_glGetProgramResourceLocation
+GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex;
+#define glGetProgramResourceLocationIndex glad_glGetProgramResourceLocationIndex
+GLAD_API_CALL PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName;
+#define glGetProgramResourceName glad_glGetProgramResourceName
+GLAD_API_CALL PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv;
+#define glGetProgramResourceiv glad_glGetProgramResourceiv
+GLAD_API_CALL PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv;
+#define glGetProgramStageiv glad_glGetProgramStageiv
+GLAD_API_CALL PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB;
+#define glGetProgramStringARB glad_glGetProgramStringARB
+GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
+#define glGetProgramiv glad_glGetProgramiv
+GLAD_API_CALL PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB;
+#define glGetProgramivARB glad_glGetProgramivARB
+GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v;
+#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v
+GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv;
+#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv
+GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v;
+#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v
+GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv;
+#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv
+GLAD_API_CALL PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv;
+#define glGetQueryIndexediv glad_glGetQueryIndexediv
+GLAD_API_CALL PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
+#define glGetQueryObjecti64v glad_glGetQueryObjecti64v
+GLAD_API_CALL PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
+#define glGetQueryObjectiv glad_glGetQueryObjectiv
+GLAD_API_CALL PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB;
+#define glGetQueryObjectivARB glad_glGetQueryObjectivARB
+GLAD_API_CALL PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
+#define glGetQueryObjectui64v glad_glGetQueryObjectui64v
+GLAD_API_CALL PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
+#define glGetQueryObjectuiv glad_glGetQueryObjectuiv
+GLAD_API_CALL PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB;
+#define glGetQueryObjectuivARB glad_glGetQueryObjectuivARB
+GLAD_API_CALL PFNGLGETQUERYIVPROC glad_glGetQueryiv;
+#define glGetQueryiv glad_glGetQueryiv
+GLAD_API_CALL PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB;
+#define glGetQueryivARB glad_glGetQueryivARB
+GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
+#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
+GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
+#define glGetRenderbufferParameterivEXT glad_glGetRenderbufferParameterivEXT
+GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
+#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv
+GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
+#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv
+GLAD_API_CALL PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
+#define glGetSamplerParameterfv glad_glGetSamplerParameterfv
+GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
+#define glGetSamplerParameteriv glad_glGetSamplerParameteriv
+GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
+#define glGetShaderInfoLog glad_glGetShaderInfoLog
+GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
+#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
+GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
+#define glGetShaderSource glad_glGetShaderSource
+GLAD_API_CALL PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB;
+#define glGetShaderSourceARB glad_glGetShaderSourceARB
+GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv;
+#define glGetShaderiv glad_glGetShaderiv
+GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString;
+#define glGetString glad_glGetString
+GLAD_API_CALL PFNGLGETSTRINGIPROC glad_glGetStringi;
+#define glGetStringi glad_glGetStringi
+GLAD_API_CALL PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex;
+#define glGetSubroutineIndex glad_glGetSubroutineIndex
+GLAD_API_CALL PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation;
+#define glGetSubroutineUniformLocation glad_glGetSubroutineUniformLocation
+GLAD_API_CALL PFNGLGETSYNCIVPROC glad_glGetSynciv;
+#define glGetSynciv glad_glGetSynciv
+GLAD_API_CALL PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES;
+#define glGetTexEnvxvOES glad_glGetTexEnvxvOES
+GLAD_API_CALL PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES;
+#define glGetTexGenxvOES glad_glGetTexGenxvOES
+GLAD_API_CALL PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
+#define glGetTexImage glad_glGetTexImage
+GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
+#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv
+GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
+#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv
+GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES;
+#define glGetTexLevelParameterxvOES glad_glGetTexLevelParameterxvOES
+GLAD_API_CALL PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
+#define glGetTexParameterIiv glad_glGetTexParameterIiv
+GLAD_API_CALL PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
+#define glGetTexParameterIuiv glad_glGetTexParameterIuiv
+GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
+#define glGetTexParameterfv glad_glGetTexParameterfv
+GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
+#define glGetTexParameteriv glad_glGetTexParameteriv
+GLAD_API_CALL PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES;
+#define glGetTexParameterxvOES glad_glGetTexParameterxvOES
+GLAD_API_CALL PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage;
+#define glGetTextureImage glad_glGetTextureImage
+GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv;
+#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv
+GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv;
+#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv
+GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv;
+#define glGetTextureParameterIiv glad_glGetTextureParameterIiv
+GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv;
+#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv
+GLAD_API_CALL PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv;
+#define glGetTextureParameterfv glad_glGetTextureParameterfv
+GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv;
+#define glGetTextureParameteriv glad_glGetTextureParameteriv
+GLAD_API_CALL PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage;
+#define glGetTextureSubImage glad_glGetTextureSubImage
+GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
+#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying
+GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v;
+#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v
+GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v;
+#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v
+GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv;
+#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv
+GLAD_API_CALL PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
+#define glGetUniformBlockIndex glad_glGetUniformBlockIndex
+GLAD_API_CALL PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
+#define glGetUniformIndices glad_glGetUniformIndices
+GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
+#define glGetUniformLocation glad_glGetUniformLocation
+GLAD_API_CALL PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB;
+#define glGetUniformLocationARB glad_glGetUniformLocationARB
+GLAD_API_CALL PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv;
+#define glGetUniformSubroutineuiv glad_glGetUniformSubroutineuiv
+GLAD_API_CALL PFNGLGETUNIFORMDVPROC glad_glGetUniformdv;
+#define glGetUniformdv glad_glGetUniformdv
+GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
+#define glGetUniformfv glad_glGetUniformfv
+GLAD_API_CALL PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB;
+#define glGetUniformfvARB glad_glGetUniformfvARB
+GLAD_API_CALL PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB;
+#define glGetUniformi64vARB glad_glGetUniformi64vARB
+GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
+#define glGetUniformiv glad_glGetUniformiv
+GLAD_API_CALL PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB;
+#define glGetUniformivARB glad_glGetUniformivARB
+GLAD_API_CALL PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB;
+#define glGetUniformui64vARB glad_glGetUniformui64vARB
+GLAD_API_CALL PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
+#define glGetUniformuiv glad_glGetUniformuiv
+GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv;
+#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv
+GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv;
+#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv
+GLAD_API_CALL PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv;
+#define glGetVertexArrayiv glad_glGetVertexArrayiv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
+#define glGetVertexAttribIiv glad_glGetVertexAttribIiv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
+#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv;
+#define glGetVertexAttribLdv glad_glGetVertexAttribLdv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
+#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB;
+#define glGetVertexAttribPointervARB glad_glGetVertexAttribPointervARB
+GLAD_API_CALL PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
+#define glGetVertexAttribdv glad_glGetVertexAttribdv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB;
+#define glGetVertexAttribdvARB glad_glGetVertexAttribdvARB
+GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
+#define glGetVertexAttribfv glad_glGetVertexAttribfv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB;
+#define glGetVertexAttribfvARB glad_glGetVertexAttribfvARB
+GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
+#define glGetVertexAttribiv glad_glGetVertexAttribiv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB;
+#define glGetVertexAttribivARB glad_glGetVertexAttribivARB
+GLAD_API_CALL PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB;
+#define glGetnUniformi64vARB glad_glGetnUniformi64vARB
+GLAD_API_CALL PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB;
+#define glGetnUniformui64vARB glad_glGetnUniformui64vARB
+GLAD_API_CALL PFNGLHINTPROC glad_glHint;
+#define glHint glad_glHint
+GLAD_API_CALL PFNGLINDEXXOESPROC glad_glIndexxOES;
+#define glIndexxOES glad_glIndexxOES
+GLAD_API_CALL PFNGLINDEXXVOESPROC glad_glIndexxvOES;
+#define glIndexxvOES glad_glIndexxvOES
+GLAD_API_CALL PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData;
+#define glInvalidateBufferData glad_glInvalidateBufferData
+GLAD_API_CALL PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData;
+#define glInvalidateBufferSubData glad_glInvalidateBufferSubData
+GLAD_API_CALL PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer;
+#define glInvalidateFramebuffer glad_glInvalidateFramebuffer
+GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData;
+#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData
+GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData;
+#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData
+GLAD_API_CALL PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer;
+#define glInvalidateSubFramebuffer glad_glInvalidateSubFramebuffer
+GLAD_API_CALL PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage;
+#define glInvalidateTexImage glad_glInvalidateTexImage
+GLAD_API_CALL PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage;
+#define glInvalidateTexSubImage glad_glInvalidateTexSubImage
+GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer;
+#define glIsBuffer glad_glIsBuffer
+GLAD_API_CALL PFNGLISBUFFERARBPROC glad_glIsBufferARB;
+#define glIsBufferARB glad_glIsBufferARB
+GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled;
+#define glIsEnabled glad_glIsEnabled
+GLAD_API_CALL PFNGLISENABLEDIPROC glad_glIsEnabledi;
+#define glIsEnabledi glad_glIsEnabledi
+GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
+#define glIsFramebuffer glad_glIsFramebuffer
+GLAD_API_CALL PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
+#define glIsFramebufferEXT glad_glIsFramebufferEXT
+GLAD_API_CALL PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB;
+#define glIsNamedStringARB glad_glIsNamedStringARB
+GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram;
+#define glIsProgram glad_glIsProgram
+GLAD_API_CALL PFNGLISPROGRAMARBPROC glad_glIsProgramARB;
+#define glIsProgramARB glad_glIsProgramARB
+GLAD_API_CALL PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline;
+#define glIsProgramPipeline glad_glIsProgramPipeline
+GLAD_API_CALL PFNGLISQUERYPROC glad_glIsQuery;
+#define glIsQuery glad_glIsQuery
+GLAD_API_CALL PFNGLISQUERYARBPROC glad_glIsQueryARB;
+#define glIsQueryARB glad_glIsQueryARB
+GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
+#define glIsRenderbuffer glad_glIsRenderbuffer
+GLAD_API_CALL PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
+#define glIsRenderbufferEXT glad_glIsRenderbufferEXT
+GLAD_API_CALL PFNGLISSAMPLERPROC glad_glIsSampler;
+#define glIsSampler glad_glIsSampler
+GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader;
+#define glIsShader glad_glIsShader
+GLAD_API_CALL PFNGLISSYNCPROC glad_glIsSync;
+#define glIsSync glad_glIsSync
+GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture;
+#define glIsTexture glad_glIsTexture
+GLAD_API_CALL PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback;
+#define glIsTransformFeedback glad_glIsTransformFeedback
+GLAD_API_CALL PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
+#define glIsVertexArray glad_glIsVertexArray
+GLAD_API_CALL PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES;
+#define glLightModelxOES glad_glLightModelxOES
+GLAD_API_CALL PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES;
+#define glLightModelxvOES glad_glLightModelxvOES
+GLAD_API_CALL PFNGLLIGHTXOESPROC glad_glLightxOES;
+#define glLightxOES glad_glLightxOES
+GLAD_API_CALL PFNGLLIGHTXVOESPROC glad_glLightxvOES;
+#define glLightxvOES glad_glLightxvOES
+GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth;
+#define glLineWidth glad_glLineWidth
+GLAD_API_CALL PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES;
+#define glLineWidthxOES glad_glLineWidthxOES
+GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram;
+#define glLinkProgram glad_glLinkProgram
+GLAD_API_CALL PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB;
+#define glLinkProgramARB glad_glLinkProgramARB
+GLAD_API_CALL PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES;
+#define glLoadMatrixxOES glad_glLoadMatrixxOES
+GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB;
+#define glLoadTransposeMatrixdARB glad_glLoadTransposeMatrixdARB
+GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB;
+#define glLoadTransposeMatrixfARB glad_glLoadTransposeMatrixfARB
+GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES;
+#define glLoadTransposeMatrixxOES glad_glLoadTransposeMatrixxOES
+GLAD_API_CALL PFNGLLOGICOPPROC glad_glLogicOp;
+#define glLogicOp glad_glLogicOp
+GLAD_API_CALL PFNGLMAP1XOESPROC glad_glMap1xOES;
+#define glMap1xOES glad_glMap1xOES
+GLAD_API_CALL PFNGLMAP2XOESPROC glad_glMap2xOES;
+#define glMap2xOES glad_glMap2xOES
+GLAD_API_CALL PFNGLMAPBUFFERPROC glad_glMapBuffer;
+#define glMapBuffer glad_glMapBuffer
+GLAD_API_CALL PFNGLMAPBUFFERARBPROC glad_glMapBufferARB;
+#define glMapBufferARB glad_glMapBufferARB
+GLAD_API_CALL PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
+#define glMapBufferRange glad_glMapBufferRange
+GLAD_API_CALL PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES;
+#define glMapGrid1xOES glad_glMapGrid1xOES
+GLAD_API_CALL PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES;
+#define glMapGrid2xOES glad_glMapGrid2xOES
+GLAD_API_CALL PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer;
+#define glMapNamedBuffer glad_glMapNamedBuffer
+GLAD_API_CALL PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange;
+#define glMapNamedBufferRange glad_glMapNamedBufferRange
+GLAD_API_CALL PFNGLMATERIALXOESPROC glad_glMaterialxOES;
+#define glMaterialxOES glad_glMaterialxOES
+GLAD_API_CALL PFNGLMATERIALXVOESPROC glad_glMaterialxvOES;
+#define glMaterialxvOES glad_glMaterialxvOES
+GLAD_API_CALL PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier;
+#define glMemoryBarrier glad_glMemoryBarrier
+GLAD_API_CALL PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion;
+#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion
+GLAD_API_CALL PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading;
+#define glMinSampleShading glad_glMinSampleShading
+GLAD_API_CALL PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB;
+#define glMinSampleShadingARB glad_glMinSampleShadingARB
+GLAD_API_CALL PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES;
+#define glMultMatrixxOES glad_glMultMatrixxOES
+GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB;
+#define glMultTransposeMatrixdARB glad_glMultTransposeMatrixdARB
+GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB;
+#define glMultTransposeMatrixfARB glad_glMultTransposeMatrixfARB
+GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES;
+#define glMultTransposeMatrixxOES glad_glMultTransposeMatrixxOES
+GLAD_API_CALL PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
+#define glMultiDrawArrays glad_glMultiDrawArrays
+GLAD_API_CALL PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect;
+#define glMultiDrawArraysIndirect glad_glMultiDrawArraysIndirect
+GLAD_API_CALL PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
+#define glMultiDrawElements glad_glMultiDrawElements
+GLAD_API_CALL PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
+#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex
+GLAD_API_CALL PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect;
+#define glMultiDrawElementsIndirect glad_glMultiDrawElementsIndirect
+GLAD_API_CALL PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB;
+#define glMultiTexCoord1dARB glad_glMultiTexCoord1dARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB;
+#define glMultiTexCoord1dvARB glad_glMultiTexCoord1dvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB;
+#define glMultiTexCoord1fARB glad_glMultiTexCoord1fARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB;
+#define glMultiTexCoord1fvARB glad_glMultiTexCoord1fvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB;
+#define glMultiTexCoord1iARB glad_glMultiTexCoord1iARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB;
+#define glMultiTexCoord1ivARB glad_glMultiTexCoord1ivARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB;
+#define glMultiTexCoord1sARB glad_glMultiTexCoord1sARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB;
+#define glMultiTexCoord1svARB glad_glMultiTexCoord1svARB
+GLAD_API_CALL PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES;
+#define glMultiTexCoord1xOES glad_glMultiTexCoord1xOES
+GLAD_API_CALL PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES;
+#define glMultiTexCoord1xvOES glad_glMultiTexCoord1xvOES
+GLAD_API_CALL PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB;
+#define glMultiTexCoord2dARB glad_glMultiTexCoord2dARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB;
+#define glMultiTexCoord2dvARB glad_glMultiTexCoord2dvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB;
+#define glMultiTexCoord2fARB glad_glMultiTexCoord2fARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB;
+#define glMultiTexCoord2fvARB glad_glMultiTexCoord2fvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB;
+#define glMultiTexCoord2iARB glad_glMultiTexCoord2iARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB;
+#define glMultiTexCoord2ivARB glad_glMultiTexCoord2ivARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB;
+#define glMultiTexCoord2sARB glad_glMultiTexCoord2sARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB;
+#define glMultiTexCoord2svARB glad_glMultiTexCoord2svARB
+GLAD_API_CALL PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES;
+#define glMultiTexCoord2xOES glad_glMultiTexCoord2xOES
+GLAD_API_CALL PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES;
+#define glMultiTexCoord2xvOES glad_glMultiTexCoord2xvOES
+GLAD_API_CALL PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB;
+#define glMultiTexCoord3dARB glad_glMultiTexCoord3dARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB;
+#define glMultiTexCoord3dvARB glad_glMultiTexCoord3dvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB;
+#define glMultiTexCoord3fARB glad_glMultiTexCoord3fARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB;
+#define glMultiTexCoord3fvARB glad_glMultiTexCoord3fvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB;
+#define glMultiTexCoord3iARB glad_glMultiTexCoord3iARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB;
+#define glMultiTexCoord3ivARB glad_glMultiTexCoord3ivARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB;
+#define glMultiTexCoord3sARB glad_glMultiTexCoord3sARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB;
+#define glMultiTexCoord3svARB glad_glMultiTexCoord3svARB
+GLAD_API_CALL PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES;
+#define glMultiTexCoord3xOES glad_glMultiTexCoord3xOES
+GLAD_API_CALL PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES;
+#define glMultiTexCoord3xvOES glad_glMultiTexCoord3xvOES
+GLAD_API_CALL PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB;
+#define glMultiTexCoord4dARB glad_glMultiTexCoord4dARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB;
+#define glMultiTexCoord4dvARB glad_glMultiTexCoord4dvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB;
+#define glMultiTexCoord4fARB glad_glMultiTexCoord4fARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB;
+#define glMultiTexCoord4fvARB glad_glMultiTexCoord4fvARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB;
+#define glMultiTexCoord4iARB glad_glMultiTexCoord4iARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB;
+#define glMultiTexCoord4ivARB glad_glMultiTexCoord4ivARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB;
+#define glMultiTexCoord4sARB glad_glMultiTexCoord4sARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB;
+#define glMultiTexCoord4svARB glad_glMultiTexCoord4svARB
+GLAD_API_CALL PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES;
+#define glMultiTexCoord4xOES glad_glMultiTexCoord4xOES
+GLAD_API_CALL PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES;
+#define glMultiTexCoord4xvOES glad_glMultiTexCoord4xvOES
+GLAD_API_CALL PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData;
+#define glNamedBufferData glad_glNamedBufferData
+GLAD_API_CALL PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage;
+#define glNamedBufferStorage glad_glNamedBufferStorage
+GLAD_API_CALL PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData;
+#define glNamedBufferSubData glad_glNamedBufferSubData
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer;
+#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers;
+#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri;
+#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer;
+#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer;
+#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB;
+#define glNamedFramebufferSampleLocationsfvARB glad_glNamedFramebufferSampleLocationsfvARB
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture;
+#define glNamedFramebufferTexture glad_glNamedFramebufferTexture
+GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer;
+#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer
+GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage;
+#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage
+GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample;
+#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample
+GLAD_API_CALL PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB;
+#define glNamedStringARB glad_glNamedStringARB
+GLAD_API_CALL PFNGLNORMAL3XOESPROC glad_glNormal3xOES;
+#define glNormal3xOES glad_glNormal3xOES
+GLAD_API_CALL PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES;
+#define glNormal3xvOES glad_glNormal3xvOES
+GLAD_API_CALL PFNGLOBJECTLABELPROC glad_glObjectLabel;
+#define glObjectLabel glad_glObjectLabel
+GLAD_API_CALL PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel;
+#define glObjectPtrLabel glad_glObjectPtrLabel
+GLAD_API_CALL PFNGLORTHOXOESPROC glad_glOrthoxOES;
+#define glOrthoxOES glad_glOrthoxOES
+GLAD_API_CALL PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES;
+#define glPassThroughxOES glad_glPassThroughxOES
+GLAD_API_CALL PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv;
+#define glPatchParameterfv glad_glPatchParameterfv
+GLAD_API_CALL PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri;
+#define glPatchParameteri glad_glPatchParameteri
+GLAD_API_CALL PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback;
+#define glPauseTransformFeedback glad_glPauseTransformFeedback
+GLAD_API_CALL PFNGLPIXELMAPXPROC glad_glPixelMapx;
+#define glPixelMapx glad_glPixelMapx
+GLAD_API_CALL PFNGLPIXELSTOREFPROC glad_glPixelStoref;
+#define glPixelStoref glad_glPixelStoref
+GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei;
+#define glPixelStorei glad_glPixelStorei
+GLAD_API_CALL PFNGLPIXELSTOREXPROC glad_glPixelStorex;
+#define glPixelStorex glad_glPixelStorex
+GLAD_API_CALL PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES;
+#define glPixelTransferxOES glad_glPixelTransferxOES
+GLAD_API_CALL PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES;
+#define glPixelZoomxOES glad_glPixelZoomxOES
+GLAD_API_CALL PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
+#define glPointParameterf glad_glPointParameterf
+GLAD_API_CALL PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
+#define glPointParameterfv glad_glPointParameterfv
+GLAD_API_CALL PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
+#define glPointParameteri glad_glPointParameteri
+GLAD_API_CALL PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
+#define glPointParameteriv glad_glPointParameteriv
+GLAD_API_CALL PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES;
+#define glPointParameterxvOES glad_glPointParameterxvOES
+GLAD_API_CALL PFNGLPOINTSIZEPROC glad_glPointSize;
+#define glPointSize glad_glPointSize
+GLAD_API_CALL PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES;
+#define glPointSizexOES glad_glPointSizexOES
+GLAD_API_CALL PFNGLPOLYGONMODEPROC glad_glPolygonMode;
+#define glPolygonMode glad_glPolygonMode
+GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
+#define glPolygonOffset glad_glPolygonOffset
+GLAD_API_CALL PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES;
+#define glPolygonOffsetxOES glad_glPolygonOffsetxOES
+GLAD_API_CALL PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup;
+#define glPopDebugGroup glad_glPopDebugGroup
+GLAD_API_CALL PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB;
+#define glPrimitiveBoundingBoxARB glad_glPrimitiveBoundingBoxARB
+GLAD_API_CALL PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
+#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex
+GLAD_API_CALL PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES;
+#define glPrioritizeTexturesxOES glad_glPrioritizeTexturesxOES
+GLAD_API_CALL PFNGLPROGRAMBINARYPROC glad_glProgramBinary;
+#define glProgramBinary glad_glProgramBinary
+GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB;
+#define glProgramEnvParameter4dARB glad_glProgramEnvParameter4dARB
+GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB;
+#define glProgramEnvParameter4dvARB glad_glProgramEnvParameter4dvARB
+GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB;
+#define glProgramEnvParameter4fARB glad_glProgramEnvParameter4fARB
+GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB;
+#define glProgramEnvParameter4fvARB glad_glProgramEnvParameter4fvARB
+GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB;
+#define glProgramLocalParameter4dARB glad_glProgramLocalParameter4dARB
+GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB;
+#define glProgramLocalParameter4dvARB glad_glProgramLocalParameter4dvARB
+GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB;
+#define glProgramLocalParameter4fARB glad_glProgramLocalParameter4fARB
+GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB;
+#define glProgramLocalParameter4fvARB glad_glProgramLocalParameter4fvARB
+GLAD_API_CALL PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri;
+#define glProgramParameteri glad_glProgramParameteri
+GLAD_API_CALL PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB;
+#define glProgramParameteriARB glad_glProgramParameteriARB
+GLAD_API_CALL PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB;
+#define glProgramStringARB glad_glProgramStringARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d;
+#define glProgramUniform1d glad_glProgramUniform1d
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv;
+#define glProgramUniform1dv glad_glProgramUniform1dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f;
+#define glProgramUniform1f glad_glProgramUniform1f
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv;
+#define glProgramUniform1fv glad_glProgramUniform1fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i;
+#define glProgramUniform1i glad_glProgramUniform1i
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB;
+#define glProgramUniform1i64ARB glad_glProgramUniform1i64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB;
+#define glProgramUniform1i64vARB glad_glProgramUniform1i64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv;
+#define glProgramUniform1iv glad_glProgramUniform1iv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui;
+#define glProgramUniform1ui glad_glProgramUniform1ui
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB;
+#define glProgramUniform1ui64ARB glad_glProgramUniform1ui64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB;
+#define glProgramUniform1ui64vARB glad_glProgramUniform1ui64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv;
+#define glProgramUniform1uiv glad_glProgramUniform1uiv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d;
+#define glProgramUniform2d glad_glProgramUniform2d
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv;
+#define glProgramUniform2dv glad_glProgramUniform2dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f;
+#define glProgramUniform2f glad_glProgramUniform2f
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv;
+#define glProgramUniform2fv glad_glProgramUniform2fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i;
+#define glProgramUniform2i glad_glProgramUniform2i
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB;
+#define glProgramUniform2i64ARB glad_glProgramUniform2i64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB;
+#define glProgramUniform2i64vARB glad_glProgramUniform2i64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv;
+#define glProgramUniform2iv glad_glProgramUniform2iv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui;
+#define glProgramUniform2ui glad_glProgramUniform2ui
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB;
+#define glProgramUniform2ui64ARB glad_glProgramUniform2ui64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB;
+#define glProgramUniform2ui64vARB glad_glProgramUniform2ui64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv;
+#define glProgramUniform2uiv glad_glProgramUniform2uiv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d;
+#define glProgramUniform3d glad_glProgramUniform3d
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv;
+#define glProgramUniform3dv glad_glProgramUniform3dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f;
+#define glProgramUniform3f glad_glProgramUniform3f
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv;
+#define glProgramUniform3fv glad_glProgramUniform3fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i;
+#define glProgramUniform3i glad_glProgramUniform3i
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB;
+#define glProgramUniform3i64ARB glad_glProgramUniform3i64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB;
+#define glProgramUniform3i64vARB glad_glProgramUniform3i64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv;
+#define glProgramUniform3iv glad_glProgramUniform3iv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui;
+#define glProgramUniform3ui glad_glProgramUniform3ui
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB;
+#define glProgramUniform3ui64ARB glad_glProgramUniform3ui64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB;
+#define glProgramUniform3ui64vARB glad_glProgramUniform3ui64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv;
+#define glProgramUniform3uiv glad_glProgramUniform3uiv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d;
+#define glProgramUniform4d glad_glProgramUniform4d
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv;
+#define glProgramUniform4dv glad_glProgramUniform4dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f;
+#define glProgramUniform4f glad_glProgramUniform4f
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv;
+#define glProgramUniform4fv glad_glProgramUniform4fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i;
+#define glProgramUniform4i glad_glProgramUniform4i
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB;
+#define glProgramUniform4i64ARB glad_glProgramUniform4i64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB;
+#define glProgramUniform4i64vARB glad_glProgramUniform4i64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv;
+#define glProgramUniform4iv glad_glProgramUniform4iv
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui;
+#define glProgramUniform4ui glad_glProgramUniform4ui
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB;
+#define glProgramUniform4ui64ARB glad_glProgramUniform4ui64ARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB;
+#define glProgramUniform4ui64vARB glad_glProgramUniform4ui64vARB
+GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv;
+#define glProgramUniform4uiv glad_glProgramUniform4uiv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv;
+#define glProgramUniformMatrix2dv glad_glProgramUniformMatrix2dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv;
+#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv;
+#define glProgramUniformMatrix2x3dv glad_glProgramUniformMatrix2x3dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv;
+#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv;
+#define glProgramUniformMatrix2x4dv glad_glProgramUniformMatrix2x4dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv;
+#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv;
+#define glProgramUniformMatrix3dv glad_glProgramUniformMatrix3dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv;
+#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv;
+#define glProgramUniformMatrix3x2dv glad_glProgramUniformMatrix3x2dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv;
+#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv;
+#define glProgramUniformMatrix3x4dv glad_glProgramUniformMatrix3x4dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv;
+#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv;
+#define glProgramUniformMatrix4dv glad_glProgramUniformMatrix4dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv;
+#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv;
+#define glProgramUniformMatrix4x2dv glad_glProgramUniformMatrix4x2dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv;
+#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv;
+#define glProgramUniformMatrix4x3dv glad_glProgramUniformMatrix4x3dv
+GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv;
+#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv
+GLAD_API_CALL PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
+#define glProvokingVertex glad_glProvokingVertex
+GLAD_API_CALL PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup;
+#define glPushDebugGroup glad_glPushDebugGroup
+GLAD_API_CALL PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
+#define glQueryCounter glad_glQueryCounter
+GLAD_API_CALL PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES;
+#define glRasterPos2xOES glad_glRasterPos2xOES
+GLAD_API_CALL PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES;
+#define glRasterPos2xvOES glad_glRasterPos2xvOES
+GLAD_API_CALL PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES;
+#define glRasterPos3xOES glad_glRasterPos3xOES
+GLAD_API_CALL PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES;
+#define glRasterPos3xvOES glad_glRasterPos3xvOES
+GLAD_API_CALL PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES;
+#define glRasterPos4xOES glad_glRasterPos4xOES
+GLAD_API_CALL PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES;
+#define glRasterPos4xvOES glad_glRasterPos4xvOES
+GLAD_API_CALL PFNGLREADBUFFERPROC glad_glReadBuffer;
+#define glReadBuffer glad_glReadBuffer
+GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels;
+#define glReadPixels glad_glReadPixels
+GLAD_API_CALL PFNGLRECTXOESPROC glad_glRectxOES;
+#define glRectxOES glad_glRectxOES
+GLAD_API_CALL PFNGLRECTXVOESPROC glad_glRectxvOES;
+#define glRectxvOES glad_glRectxvOES
+GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
+#define glReleaseShaderCompiler glad_glReleaseShaderCompiler
+GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
+#define glRenderbufferStorage glad_glRenderbufferStorage
+GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
+#define glRenderbufferStorageEXT glad_glRenderbufferStorageEXT
+GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
+#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample
+GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT;
+#define glRenderbufferStorageMultisampleEXT glad_glRenderbufferStorageMultisampleEXT
+GLAD_API_CALL PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback;
+#define glResumeTransformFeedback glad_glResumeTransformFeedback
+GLAD_API_CALL PFNGLROTATEXOESPROC glad_glRotatexOES;
+#define glRotatexOES glad_glRotatexOES
+GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
+#define glSampleCoverage glad_glSampleCoverage
+GLAD_API_CALL PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
+#define glSampleCoverageARB glad_glSampleCoverageARB
+GLAD_API_CALL PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
+#define glSampleMaski glad_glSampleMaski
+GLAD_API_CALL PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
+#define glSamplerParameterIiv glad_glSamplerParameterIiv
+GLAD_API_CALL PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
+#define glSamplerParameterIuiv glad_glSamplerParameterIuiv
+GLAD_API_CALL PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
+#define glSamplerParameterf glad_glSamplerParameterf
+GLAD_API_CALL PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
+#define glSamplerParameterfv glad_glSamplerParameterfv
+GLAD_API_CALL PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
+#define glSamplerParameteri glad_glSamplerParameteri
+GLAD_API_CALL PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
+#define glSamplerParameteriv glad_glSamplerParameteriv
+GLAD_API_CALL PFNGLSCALEXOESPROC glad_glScalexOES;
+#define glScalexOES glad_glScalexOES
+GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor;
+#define glScissor glad_glScissor
+GLAD_API_CALL PFNGLSCISSORARRAYVPROC glad_glScissorArrayv;
+#define glScissorArrayv glad_glScissorArrayv
+GLAD_API_CALL PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed;
+#define glScissorIndexed glad_glScissorIndexed
+GLAD_API_CALL PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv;
+#define glScissorIndexedv glad_glScissorIndexedv
+GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary;
+#define glShaderBinary glad_glShaderBinary
+GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource;
+#define glShaderSource glad_glShaderSource
+GLAD_API_CALL PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB;
+#define glShaderSourceARB glad_glShaderSourceARB
+GLAD_API_CALL PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding;
+#define glShaderStorageBlockBinding glad_glShaderStorageBlockBinding
+GLAD_API_CALL PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB;
+#define glSpecializeShaderARB glad_glSpecializeShaderARB
+GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc;
+#define glStencilFunc glad_glStencilFunc
+GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
+#define glStencilFuncSeparate glad_glStencilFuncSeparate
+GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask;
+#define glStencilMask glad_glStencilMask
+GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
+#define glStencilMaskSeparate glad_glStencilMaskSeparate
+GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp;
+#define glStencilOp glad_glStencilOp
+GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
+#define glStencilOpSeparate glad_glStencilOpSeparate
+GLAD_API_CALL PFNGLTEXBUFFERPROC glad_glTexBuffer;
+#define glTexBuffer glad_glTexBuffer
+GLAD_API_CALL PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange;
+#define glTexBufferRange glad_glTexBufferRange
+GLAD_API_CALL PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES;
+#define glTexCoord1xOES glad_glTexCoord1xOES
+GLAD_API_CALL PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES;
+#define glTexCoord1xvOES glad_glTexCoord1xvOES
+GLAD_API_CALL PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES;
+#define glTexCoord2xOES glad_glTexCoord2xOES
+GLAD_API_CALL PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES;
+#define glTexCoord2xvOES glad_glTexCoord2xvOES
+GLAD_API_CALL PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES;
+#define glTexCoord3xOES glad_glTexCoord3xOES
+GLAD_API_CALL PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES;
+#define glTexCoord3xvOES glad_glTexCoord3xvOES
+GLAD_API_CALL PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES;
+#define glTexCoord4xOES glad_glTexCoord4xOES
+GLAD_API_CALL PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES;
+#define glTexCoord4xvOES glad_glTexCoord4xvOES
+GLAD_API_CALL PFNGLTEXENVXOESPROC glad_glTexEnvxOES;
+#define glTexEnvxOES glad_glTexEnvxOES
+GLAD_API_CALL PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES;
+#define glTexEnvxvOES glad_glTexEnvxvOES
+GLAD_API_CALL PFNGLTEXGENXOESPROC glad_glTexGenxOES;
+#define glTexGenxOES glad_glTexGenxOES
+GLAD_API_CALL PFNGLTEXGENXVOESPROC glad_glTexGenxvOES;
+#define glTexGenxvOES glad_glTexGenxvOES
+GLAD_API_CALL PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
+#define glTexImage1D glad_glTexImage1D
+GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
+#define glTexImage2D glad_glTexImage2D
+GLAD_API_CALL PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
+#define glTexImage2DMultisample glad_glTexImage2DMultisample
+GLAD_API_CALL PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
+#define glTexImage3D glad_glTexImage3D
+GLAD_API_CALL PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
+#define glTexImage3DMultisample glad_glTexImage3DMultisample
+GLAD_API_CALL PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
+#define glTexParameterIiv glad_glTexParameterIiv
+GLAD_API_CALL PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
+#define glTexParameterIuiv glad_glTexParameterIuiv
+GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
+#define glTexParameterf glad_glTexParameterf
+GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
+#define glTexParameterfv glad_glTexParameterfv
+GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
+#define glTexParameteri glad_glTexParameteri
+GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
+#define glTexParameteriv glad_glTexParameteriv
+GLAD_API_CALL PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES;
+#define glTexParameterxOES glad_glTexParameterxOES
+GLAD_API_CALL PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES;
+#define glTexParameterxvOES glad_glTexParameterxvOES
+GLAD_API_CALL PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D;
+#define glTexStorage1D glad_glTexStorage1D
+GLAD_API_CALL PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D;
+#define glTexStorage2D glad_glTexStorage2D
+GLAD_API_CALL PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample;
+#define glTexStorage2DMultisample glad_glTexStorage2DMultisample
+GLAD_API_CALL PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D;
+#define glTexStorage3D glad_glTexStorage3D
+GLAD_API_CALL PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample;
+#define glTexStorage3DMultisample glad_glTexStorage3DMultisample
+GLAD_API_CALL PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
+#define glTexSubImage1D glad_glTexSubImage1D
+GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
+#define glTexSubImage2D glad_glTexSubImage2D
+GLAD_API_CALL PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
+#define glTexSubImage3D glad_glTexSubImage3D
+GLAD_API_CALL PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer;
+#define glTextureBuffer glad_glTextureBuffer
+GLAD_API_CALL PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange;
+#define glTextureBufferRange glad_glTextureBufferRange
+GLAD_API_CALL PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv;
+#define glTextureParameterIiv glad_glTextureParameterIiv
+GLAD_API_CALL PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv;
+#define glTextureParameterIuiv glad_glTextureParameterIuiv
+GLAD_API_CALL PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf;
+#define glTextureParameterf glad_glTextureParameterf
+GLAD_API_CALL PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv;
+#define glTextureParameterfv glad_glTextureParameterfv
+GLAD_API_CALL PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri;
+#define glTextureParameteri glad_glTextureParameteri
+GLAD_API_CALL PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv;
+#define glTextureParameteriv glad_glTextureParameteriv
+GLAD_API_CALL PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D;
+#define glTextureStorage1D glad_glTextureStorage1D
+GLAD_API_CALL PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D;
+#define glTextureStorage2D glad_glTextureStorage2D
+GLAD_API_CALL PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample;
+#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample
+GLAD_API_CALL PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D;
+#define glTextureStorage3D glad_glTextureStorage3D
+GLAD_API_CALL PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample;
+#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample
+GLAD_API_CALL PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D;
+#define glTextureSubImage1D glad_glTextureSubImage1D
+GLAD_API_CALL PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D;
+#define glTextureSubImage2D glad_glTextureSubImage2D
+GLAD_API_CALL PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D;
+#define glTextureSubImage3D glad_glTextureSubImage3D
+GLAD_API_CALL PFNGLTEXTUREVIEWPROC glad_glTextureView;
+#define glTextureView glad_glTextureView
+GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase;
+#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase
+GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange;
+#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange
+GLAD_API_CALL PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
+#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings
+GLAD_API_CALL PFNGLTRANSLATEXOESPROC glad_glTranslatexOES;
+#define glTranslatexOES glad_glTranslatexOES
+GLAD_API_CALL PFNGLUNIFORM1DPROC glad_glUniform1d;
+#define glUniform1d glad_glUniform1d
+GLAD_API_CALL PFNGLUNIFORM1DVPROC glad_glUniform1dv;
+#define glUniform1dv glad_glUniform1dv
+GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f;
+#define glUniform1f glad_glUniform1f
+GLAD_API_CALL PFNGLUNIFORM1FARBPROC glad_glUniform1fARB;
+#define glUniform1fARB glad_glUniform1fARB
+GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv;
+#define glUniform1fv glad_glUniform1fv
+GLAD_API_CALL PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB;
+#define glUniform1fvARB glad_glUniform1fvARB
+GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i;
+#define glUniform1i glad_glUniform1i
+GLAD_API_CALL PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB;
+#define glUniform1i64ARB glad_glUniform1i64ARB
+GLAD_API_CALL PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB;
+#define glUniform1i64vARB glad_glUniform1i64vARB
+GLAD_API_CALL PFNGLUNIFORM1IARBPROC glad_glUniform1iARB;
+#define glUniform1iARB glad_glUniform1iARB
+GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv;
+#define glUniform1iv glad_glUniform1iv
+GLAD_API_CALL PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB;
+#define glUniform1ivARB glad_glUniform1ivARB
+GLAD_API_CALL PFNGLUNIFORM1UIPROC glad_glUniform1ui;
+#define glUniform1ui glad_glUniform1ui
+GLAD_API_CALL PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB;
+#define glUniform1ui64ARB glad_glUniform1ui64ARB
+GLAD_API_CALL PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB;
+#define glUniform1ui64vARB glad_glUniform1ui64vARB
+GLAD_API_CALL PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
+#define glUniform1uiv glad_glUniform1uiv
+GLAD_API_CALL PFNGLUNIFORM2DPROC glad_glUniform2d;
+#define glUniform2d glad_glUniform2d
+GLAD_API_CALL PFNGLUNIFORM2DVPROC glad_glUniform2dv;
+#define glUniform2dv glad_glUniform2dv
+GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f;
+#define glUniform2f glad_glUniform2f
+GLAD_API_CALL PFNGLUNIFORM2FARBPROC glad_glUniform2fARB;
+#define glUniform2fARB glad_glUniform2fARB
+GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv;
+#define glUniform2fv glad_glUniform2fv
+GLAD_API_CALL PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB;
+#define glUniform2fvARB glad_glUniform2fvARB
+GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i;
+#define glUniform2i glad_glUniform2i
+GLAD_API_CALL PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB;
+#define glUniform2i64ARB glad_glUniform2i64ARB
+GLAD_API_CALL PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB;
+#define glUniform2i64vARB glad_glUniform2i64vARB
+GLAD_API_CALL PFNGLUNIFORM2IARBPROC glad_glUniform2iARB;
+#define glUniform2iARB glad_glUniform2iARB
+GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv;
+#define glUniform2iv glad_glUniform2iv
+GLAD_API_CALL PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB;
+#define glUniform2ivARB glad_glUniform2ivARB
+GLAD_API_CALL PFNGLUNIFORM2UIPROC glad_glUniform2ui;
+#define glUniform2ui glad_glUniform2ui
+GLAD_API_CALL PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB;
+#define glUniform2ui64ARB glad_glUniform2ui64ARB
+GLAD_API_CALL PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB;
+#define glUniform2ui64vARB glad_glUniform2ui64vARB
+GLAD_API_CALL PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
+#define glUniform2uiv glad_glUniform2uiv
+GLAD_API_CALL PFNGLUNIFORM3DPROC glad_glUniform3d;
+#define glUniform3d glad_glUniform3d
+GLAD_API_CALL PFNGLUNIFORM3DVPROC glad_glUniform3dv;
+#define glUniform3dv glad_glUniform3dv
+GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f;
+#define glUniform3f glad_glUniform3f
+GLAD_API_CALL PFNGLUNIFORM3FARBPROC glad_glUniform3fARB;
+#define glUniform3fARB glad_glUniform3fARB
+GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv;
+#define glUniform3fv glad_glUniform3fv
+GLAD_API_CALL PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB;
+#define glUniform3fvARB glad_glUniform3fvARB
+GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i;
+#define glUniform3i glad_glUniform3i
+GLAD_API_CALL PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB;
+#define glUniform3i64ARB glad_glUniform3i64ARB
+GLAD_API_CALL PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB;
+#define glUniform3i64vARB glad_glUniform3i64vARB
+GLAD_API_CALL PFNGLUNIFORM3IARBPROC glad_glUniform3iARB;
+#define glUniform3iARB glad_glUniform3iARB
+GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv;
+#define glUniform3iv glad_glUniform3iv
+GLAD_API_CALL PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB;
+#define glUniform3ivARB glad_glUniform3ivARB
+GLAD_API_CALL PFNGLUNIFORM3UIPROC glad_glUniform3ui;
+#define glUniform3ui glad_glUniform3ui
+GLAD_API_CALL PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB;
+#define glUniform3ui64ARB glad_glUniform3ui64ARB
+GLAD_API_CALL PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB;
+#define glUniform3ui64vARB glad_glUniform3ui64vARB
+GLAD_API_CALL PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
+#define glUniform3uiv glad_glUniform3uiv
+GLAD_API_CALL PFNGLUNIFORM4DPROC glad_glUniform4d;
+#define glUniform4d glad_glUniform4d
+GLAD_API_CALL PFNGLUNIFORM4DVPROC glad_glUniform4dv;
+#define glUniform4dv glad_glUniform4dv
+GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f;
+#define glUniform4f glad_glUniform4f
+GLAD_API_CALL PFNGLUNIFORM4FARBPROC glad_glUniform4fARB;
+#define glUniform4fARB glad_glUniform4fARB
+GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv;
+#define glUniform4fv glad_glUniform4fv
+GLAD_API_CALL PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB;
+#define glUniform4fvARB glad_glUniform4fvARB
+GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i;
+#define glUniform4i glad_glUniform4i
+GLAD_API_CALL PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB;
+#define glUniform4i64ARB glad_glUniform4i64ARB
+GLAD_API_CALL PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB;
+#define glUniform4i64vARB glad_glUniform4i64vARB
+GLAD_API_CALL PFNGLUNIFORM4IARBPROC glad_glUniform4iARB;
+#define glUniform4iARB glad_glUniform4iARB
+GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv;
+#define glUniform4iv glad_glUniform4iv
+GLAD_API_CALL PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB;
+#define glUniform4ivARB glad_glUniform4ivARB
+GLAD_API_CALL PFNGLUNIFORM4UIPROC glad_glUniform4ui;
+#define glUniform4ui glad_glUniform4ui
+GLAD_API_CALL PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB;
+#define glUniform4ui64ARB glad_glUniform4ui64ARB
+GLAD_API_CALL PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB;
+#define glUniform4ui64vARB glad_glUniform4ui64vARB
+GLAD_API_CALL PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
+#define glUniform4uiv glad_glUniform4uiv
+GLAD_API_CALL PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
+#define glUniformBlockBinding glad_glUniformBlockBinding
+GLAD_API_CALL PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv;
+#define glUniformMatrix2dv glad_glUniformMatrix2dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
+#define glUniformMatrix2fv glad_glUniformMatrix2fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB;
+#define glUniformMatrix2fvARB glad_glUniformMatrix2fvARB
+GLAD_API_CALL PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv;
+#define glUniformMatrix2x3dv glad_glUniformMatrix2x3dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
+#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv;
+#define glUniformMatrix2x4dv glad_glUniformMatrix2x4dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
+#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv;
+#define glUniformMatrix3dv glad_glUniformMatrix3dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
+#define glUniformMatrix3fv glad_glUniformMatrix3fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB;
+#define glUniformMatrix3fvARB glad_glUniformMatrix3fvARB
+GLAD_API_CALL PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv;
+#define glUniformMatrix3x2dv glad_glUniformMatrix3x2dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
+#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv;
+#define glUniformMatrix3x4dv glad_glUniformMatrix3x4dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
+#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv;
+#define glUniformMatrix4dv glad_glUniformMatrix4dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
+#define glUniformMatrix4fv glad_glUniformMatrix4fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB;
+#define glUniformMatrix4fvARB glad_glUniformMatrix4fvARB
+GLAD_API_CALL PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv;
+#define glUniformMatrix4x2dv glad_glUniformMatrix4x2dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
+#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv;
+#define glUniformMatrix4x3dv glad_glUniformMatrix4x3dv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
+#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv
+GLAD_API_CALL PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv;
+#define glUniformSubroutinesuiv glad_glUniformSubroutinesuiv
+GLAD_API_CALL PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
+#define glUnmapBuffer glad_glUnmapBuffer
+GLAD_API_CALL PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB;
+#define glUnmapBufferARB glad_glUnmapBufferARB
+GLAD_API_CALL PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer;
+#define glUnmapNamedBuffer glad_glUnmapNamedBuffer
+GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram;
+#define glUseProgram glad_glUseProgram
+GLAD_API_CALL PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB;
+#define glUseProgramObjectARB glad_glUseProgramObjectARB
+GLAD_API_CALL PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages;
+#define glUseProgramStages glad_glUseProgramStages
+GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
+#define glValidateProgram glad_glValidateProgram
+GLAD_API_CALL PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB;
+#define glValidateProgramARB glad_glValidateProgramARB
+GLAD_API_CALL PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline;
+#define glValidateProgramPipeline glad_glValidateProgramPipeline
+GLAD_API_CALL PFNGLVERTEX2XOESPROC glad_glVertex2xOES;
+#define glVertex2xOES glad_glVertex2xOES
+GLAD_API_CALL PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES;
+#define glVertex2xvOES glad_glVertex2xvOES
+GLAD_API_CALL PFNGLVERTEX3XOESPROC glad_glVertex3xOES;
+#define glVertex3xOES glad_glVertex3xOES
+GLAD_API_CALL PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES;
+#define glVertex3xvOES glad_glVertex3xvOES
+GLAD_API_CALL PFNGLVERTEX4XOESPROC glad_glVertex4xOES;
+#define glVertex4xOES glad_glVertex4xOES
+GLAD_API_CALL PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES;
+#define glVertex4xvOES glad_glVertex4xvOES
+GLAD_API_CALL PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding;
+#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding
+GLAD_API_CALL PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat;
+#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat
+GLAD_API_CALL PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat;
+#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat
+GLAD_API_CALL PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat;
+#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat
+GLAD_API_CALL PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor;
+#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor
+GLAD_API_CALL PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer;
+#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer
+GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer;
+#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer
+GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers;
+#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers
+GLAD_API_CALL PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
+#define glVertexAttrib1d glad_glVertexAttrib1d
+GLAD_API_CALL PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB;
+#define glVertexAttrib1dARB glad_glVertexAttrib1dARB
+GLAD_API_CALL PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
+#define glVertexAttrib1dv glad_glVertexAttrib1dv
+GLAD_API_CALL PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB;
+#define glVertexAttrib1dvARB glad_glVertexAttrib1dvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
+#define glVertexAttrib1f glad_glVertexAttrib1f
+GLAD_API_CALL PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB;
+#define glVertexAttrib1fARB glad_glVertexAttrib1fARB
+GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
+#define glVertexAttrib1fv glad_glVertexAttrib1fv
+GLAD_API_CALL PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB;
+#define glVertexAttrib1fvARB glad_glVertexAttrib1fvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
+#define glVertexAttrib1s glad_glVertexAttrib1s
+GLAD_API_CALL PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB;
+#define glVertexAttrib1sARB glad_glVertexAttrib1sARB
+GLAD_API_CALL PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
+#define glVertexAttrib1sv glad_glVertexAttrib1sv
+GLAD_API_CALL PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB;
+#define glVertexAttrib1svARB glad_glVertexAttrib1svARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
+#define glVertexAttrib2d glad_glVertexAttrib2d
+GLAD_API_CALL PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB;
+#define glVertexAttrib2dARB glad_glVertexAttrib2dARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
+#define glVertexAttrib2dv glad_glVertexAttrib2dv
+GLAD_API_CALL PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB;
+#define glVertexAttrib2dvARB glad_glVertexAttrib2dvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
+#define glVertexAttrib2f glad_glVertexAttrib2f
+GLAD_API_CALL PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB;
+#define glVertexAttrib2fARB glad_glVertexAttrib2fARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
+#define glVertexAttrib2fv glad_glVertexAttrib2fv
+GLAD_API_CALL PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB;
+#define glVertexAttrib2fvARB glad_glVertexAttrib2fvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
+#define glVertexAttrib2s glad_glVertexAttrib2s
+GLAD_API_CALL PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB;
+#define glVertexAttrib2sARB glad_glVertexAttrib2sARB
+GLAD_API_CALL PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
+#define glVertexAttrib2sv glad_glVertexAttrib2sv
+GLAD_API_CALL PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB;
+#define glVertexAttrib2svARB glad_glVertexAttrib2svARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
+#define glVertexAttrib3d glad_glVertexAttrib3d
+GLAD_API_CALL PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB;
+#define glVertexAttrib3dARB glad_glVertexAttrib3dARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
+#define glVertexAttrib3dv glad_glVertexAttrib3dv
+GLAD_API_CALL PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB;
+#define glVertexAttrib3dvARB glad_glVertexAttrib3dvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
+#define glVertexAttrib3f glad_glVertexAttrib3f
+GLAD_API_CALL PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB;
+#define glVertexAttrib3fARB glad_glVertexAttrib3fARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
+#define glVertexAttrib3fv glad_glVertexAttrib3fv
+GLAD_API_CALL PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB;
+#define glVertexAttrib3fvARB glad_glVertexAttrib3fvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
+#define glVertexAttrib3s glad_glVertexAttrib3s
+GLAD_API_CALL PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB;
+#define glVertexAttrib3sARB glad_glVertexAttrib3sARB
+GLAD_API_CALL PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
+#define glVertexAttrib3sv glad_glVertexAttrib3sv
+GLAD_API_CALL PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB;
+#define glVertexAttrib3svARB glad_glVertexAttrib3svARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
+#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB;
+#define glVertexAttrib4NbvARB glad_glVertexAttrib4NbvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
+#define glVertexAttrib4Niv glad_glVertexAttrib4Niv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB;
+#define glVertexAttrib4NivARB glad_glVertexAttrib4NivARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
+#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB;
+#define glVertexAttrib4NsvARB glad_glVertexAttrib4NsvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
+#define glVertexAttrib4Nub glad_glVertexAttrib4Nub
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB;
+#define glVertexAttrib4NubARB glad_glVertexAttrib4NubARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
+#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB;
+#define glVertexAttrib4NubvARB glad_glVertexAttrib4NubvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
+#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB;
+#define glVertexAttrib4NuivARB glad_glVertexAttrib4NuivARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
+#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv
+GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB;
+#define glVertexAttrib4NusvARB glad_glVertexAttrib4NusvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
+#define glVertexAttrib4bv glad_glVertexAttrib4bv
+GLAD_API_CALL PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB;
+#define glVertexAttrib4bvARB glad_glVertexAttrib4bvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
+#define glVertexAttrib4d glad_glVertexAttrib4d
+GLAD_API_CALL PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB;
+#define glVertexAttrib4dARB glad_glVertexAttrib4dARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
+#define glVertexAttrib4dv glad_glVertexAttrib4dv
+GLAD_API_CALL PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB;
+#define glVertexAttrib4dvARB glad_glVertexAttrib4dvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
+#define glVertexAttrib4f glad_glVertexAttrib4f
+GLAD_API_CALL PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB;
+#define glVertexAttrib4fARB glad_glVertexAttrib4fARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
+#define glVertexAttrib4fv glad_glVertexAttrib4fv
+GLAD_API_CALL PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB;
+#define glVertexAttrib4fvARB glad_glVertexAttrib4fvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
+#define glVertexAttrib4iv glad_glVertexAttrib4iv
+GLAD_API_CALL PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB;
+#define glVertexAttrib4ivARB glad_glVertexAttrib4ivARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
+#define glVertexAttrib4s glad_glVertexAttrib4s
+GLAD_API_CALL PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB;
+#define glVertexAttrib4sARB glad_glVertexAttrib4sARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
+#define glVertexAttrib4sv glad_glVertexAttrib4sv
+GLAD_API_CALL PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB;
+#define glVertexAttrib4svARB glad_glVertexAttrib4svARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
+#define glVertexAttrib4ubv glad_glVertexAttrib4ubv
+GLAD_API_CALL PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB;
+#define glVertexAttrib4ubvARB glad_glVertexAttrib4ubvARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
+#define glVertexAttrib4uiv glad_glVertexAttrib4uiv
+GLAD_API_CALL PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB;
+#define glVertexAttrib4uivARB glad_glVertexAttrib4uivARB
+GLAD_API_CALL PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
+#define glVertexAttrib4usv glad_glVertexAttrib4usv
+GLAD_API_CALL PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB;
+#define glVertexAttrib4usvARB glad_glVertexAttrib4usvARB
+GLAD_API_CALL PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding;
+#define glVertexAttribBinding glad_glVertexAttribBinding
+GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
+#define glVertexAttribDivisor glad_glVertexAttribDivisor
+GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB;
+#define glVertexAttribDivisorARB glad_glVertexAttribDivisorARB
+GLAD_API_CALL PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat;
+#define glVertexAttribFormat glad_glVertexAttribFormat
+GLAD_API_CALL PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
+#define glVertexAttribI1i glad_glVertexAttribI1i
+GLAD_API_CALL PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
+#define glVertexAttribI1iv glad_glVertexAttribI1iv
+GLAD_API_CALL PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
+#define glVertexAttribI1ui glad_glVertexAttribI1ui
+GLAD_API_CALL PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
+#define glVertexAttribI1uiv glad_glVertexAttribI1uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
+#define glVertexAttribI2i glad_glVertexAttribI2i
+GLAD_API_CALL PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
+#define glVertexAttribI2iv glad_glVertexAttribI2iv
+GLAD_API_CALL PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
+#define glVertexAttribI2ui glad_glVertexAttribI2ui
+GLAD_API_CALL PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
+#define glVertexAttribI2uiv glad_glVertexAttribI2uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
+#define glVertexAttribI3i glad_glVertexAttribI3i
+GLAD_API_CALL PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
+#define glVertexAttribI3iv glad_glVertexAttribI3iv
+GLAD_API_CALL PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
+#define glVertexAttribI3ui glad_glVertexAttribI3ui
+GLAD_API_CALL PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
+#define glVertexAttribI3uiv glad_glVertexAttribI3uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
+#define glVertexAttribI4bv glad_glVertexAttribI4bv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
+#define glVertexAttribI4i glad_glVertexAttribI4i
+GLAD_API_CALL PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
+#define glVertexAttribI4iv glad_glVertexAttribI4iv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
+#define glVertexAttribI4sv glad_glVertexAttribI4sv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
+#define glVertexAttribI4ubv glad_glVertexAttribI4ubv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
+#define glVertexAttribI4ui glad_glVertexAttribI4ui
+GLAD_API_CALL PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
+#define glVertexAttribI4uiv glad_glVertexAttribI4uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
+#define glVertexAttribI4usv glad_glVertexAttribI4usv
+GLAD_API_CALL PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat;
+#define glVertexAttribIFormat glad_glVertexAttribIFormat
+GLAD_API_CALL PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
+#define glVertexAttribIPointer glad_glVertexAttribIPointer
+GLAD_API_CALL PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d;
+#define glVertexAttribL1d glad_glVertexAttribL1d
+GLAD_API_CALL PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv;
+#define glVertexAttribL1dv glad_glVertexAttribL1dv
+GLAD_API_CALL PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d;
+#define glVertexAttribL2d glad_glVertexAttribL2d
+GLAD_API_CALL PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv;
+#define glVertexAttribL2dv glad_glVertexAttribL2dv
+GLAD_API_CALL PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d;
+#define glVertexAttribL3d glad_glVertexAttribL3d
+GLAD_API_CALL PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv;
+#define glVertexAttribL3dv glad_glVertexAttribL3dv
+GLAD_API_CALL PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d;
+#define glVertexAttribL4d glad_glVertexAttribL4d
+GLAD_API_CALL PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv;
+#define glVertexAttribL4dv glad_glVertexAttribL4dv
+GLAD_API_CALL PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat;
+#define glVertexAttribLFormat glad_glVertexAttribLFormat
+GLAD_API_CALL PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer;
+#define glVertexAttribLPointer glad_glVertexAttribLPointer
+GLAD_API_CALL PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
+#define glVertexAttribP1ui glad_glVertexAttribP1ui
+GLAD_API_CALL PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
+#define glVertexAttribP1uiv glad_glVertexAttribP1uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
+#define glVertexAttribP2ui glad_glVertexAttribP2ui
+GLAD_API_CALL PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
+#define glVertexAttribP2uiv glad_glVertexAttribP2uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
+#define glVertexAttribP3ui glad_glVertexAttribP3ui
+GLAD_API_CALL PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
+#define glVertexAttribP3uiv glad_glVertexAttribP3uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
+#define glVertexAttribP4ui glad_glVertexAttribP4ui
+GLAD_API_CALL PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
+#define glVertexAttribP4uiv glad_glVertexAttribP4uiv
+GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
+#define glVertexAttribPointer glad_glVertexAttribPointer
+GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB;
+#define glVertexAttribPointerARB glad_glVertexAttribPointerARB
+GLAD_API_CALL PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor;
+#define glVertexBindingDivisor glad_glVertexBindingDivisor
+GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport;
+#define glViewport glad_glViewport
+GLAD_API_CALL PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv;
+#define glViewportArrayv glad_glViewportArrayv
+GLAD_API_CALL PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf;
+#define glViewportIndexedf glad_glViewportIndexedf
+GLAD_API_CALL PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv;
+#define glViewportIndexedfv glad_glViewportIndexedfv
+GLAD_API_CALL PFNGLWAITSYNCPROC glad_glWaitSync;
+#define glWaitSync glad_glWaitSync
+
+
+
+
+
+GLAD_API_CALL int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr);
+GLAD_API_CALL int gladLoadGL( GLADloadfunc load);
+
+
+#ifdef GLAD_GL
+
+GLAD_API_CALL int gladLoaderLoadGL(void);
+GLAD_API_CALL void gladLoaderUnloadGL(void);
+
#endif
#ifdef __cplusplus
}
#endif
-
#endif
-//////////////////////////////////////////////////////////////////////////////
-//
-// IMPLEMENTATION SECTION
-//
-
-#ifdef GLAD_IMPLEMENTATION
-
+/* Source */
+#ifdef GLAD_GL_IMPLEMENTATION
#include
#include
#include
-struct gladGLversionStruct GLVersion;
+#ifndef GLAD_IMPL_UTIL_C_
+#define GLAD_IMPL_UTIL_C_
+
+#ifdef _MSC_VER
+#define GLAD_IMPL_UTIL_SSCANF sscanf_s
+#else
+#define GLAD_IMPL_UTIL_SSCANF sscanf
+#endif
+
+#endif /* GLAD_IMPL_UTIL_C_ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+int GLAD_GL_VERSION_1_0 = 0;
+int GLAD_GL_VERSION_1_1 = 0;
+int GLAD_GL_VERSION_1_2 = 0;
+int GLAD_GL_VERSION_1_3 = 0;
+int GLAD_GL_VERSION_1_4 = 0;
+int GLAD_GL_VERSION_1_5 = 0;
+int GLAD_GL_VERSION_2_0 = 0;
+int GLAD_GL_VERSION_2_1 = 0;
+int GLAD_GL_VERSION_3_0 = 0;
+int GLAD_GL_VERSION_3_1 = 0;
+int GLAD_GL_VERSION_3_2 = 0;
+int GLAD_GL_VERSION_3_3 = 0;
+int GLAD_GL_VERSION_4_0 = 0;
+int GLAD_GL_VERSION_4_1 = 0;
+int GLAD_GL_VERSION_4_2 = 0;
+int GLAD_GL_VERSION_4_3 = 0;
+int GLAD_GL_ARB_ES2_compatibility = 0;
+int GLAD_GL_ARB_ES3_1_compatibility = 0;
+int GLAD_GL_ARB_ES3_2_compatibility = 0;
+int GLAD_GL_ARB_ES3_compatibility = 0;
+int GLAD_GL_ARB_blend_func_extended = 0;
+int GLAD_GL_ARB_buffer_storage = 0;
+int GLAD_GL_ARB_clear_buffer_object = 0;
+int GLAD_GL_ARB_clear_texture = 0;
+int GLAD_GL_ARB_color_buffer_float = 0;
+int GLAD_GL_ARB_compatibility = 0;
+int GLAD_GL_ARB_compressed_texture_pixel_storage = 0;
+int GLAD_GL_ARB_compute_shader = 0;
+int GLAD_GL_ARB_compute_variable_group_size = 0;
+int GLAD_GL_ARB_copy_buffer = 0;
+int GLAD_GL_ARB_copy_image = 0;
+int GLAD_GL_ARB_debug_output = 0;
+int GLAD_GL_ARB_depth_buffer_float = 0;
+int GLAD_GL_ARB_depth_clamp = 0;
+int GLAD_GL_ARB_depth_texture = 0;
+int GLAD_GL_ARB_direct_state_access = 0;
+int GLAD_GL_ARB_draw_buffers = 0;
+int GLAD_GL_ARB_draw_buffers_blend = 0;
+int GLAD_GL_ARB_draw_elements_base_vertex = 0;
+int GLAD_GL_ARB_draw_indirect = 0;
+int GLAD_GL_ARB_draw_instanced = 0;
+int GLAD_GL_ARB_enhanced_layouts = 0;
+int GLAD_GL_ARB_explicit_attrib_location = 0;
+int GLAD_GL_ARB_explicit_uniform_location = 0;
+int GLAD_GL_ARB_fragment_coord_conventions = 0;
+int GLAD_GL_ARB_fragment_layer_viewport = 0;
+int GLAD_GL_ARB_fragment_program = 0;
+int GLAD_GL_ARB_fragment_program_shadow = 0;
+int GLAD_GL_ARB_fragment_shader = 0;
+int GLAD_GL_ARB_fragment_shader_interlock = 0;
+int GLAD_GL_ARB_framebuffer_no_attachments = 0;
+int GLAD_GL_ARB_framebuffer_object = 0;
+int GLAD_GL_ARB_framebuffer_sRGB = 0;
+int GLAD_GL_ARB_geometry_shader4 = 0;
+int GLAD_GL_ARB_get_program_binary = 0;
+int GLAD_GL_ARB_get_texture_sub_image = 0;
+int GLAD_GL_ARB_gl_spirv = 0;
+int GLAD_GL_ARB_gpu_shader5 = 0;
+int GLAD_GL_ARB_gpu_shader_fp64 = 0;
+int GLAD_GL_ARB_gpu_shader_int64 = 0;
+int GLAD_GL_ARB_half_float_pixel = 0;
+int GLAD_GL_ARB_half_float_vertex = 0;
+int GLAD_GL_ARB_instanced_arrays = 0;
+int GLAD_GL_ARB_internalformat_query = 0;
+int GLAD_GL_ARB_internalformat_query2 = 0;
+int GLAD_GL_ARB_map_buffer_range = 0;
+int GLAD_GL_ARB_multi_bind = 0;
+int GLAD_GL_ARB_multi_draw_indirect = 0;
+int GLAD_GL_ARB_multisample = 0;
+int GLAD_GL_ARB_multitexture = 0;
+int GLAD_GL_ARB_occlusion_query = 0;
+int GLAD_GL_ARB_occlusion_query2 = 0;
+int GLAD_GL_ARB_pipeline_statistics_query = 0;
+int GLAD_GL_ARB_query_buffer_object = 0;
+int GLAD_GL_ARB_sample_locations = 0;
+int GLAD_GL_ARB_sample_shading = 0;
+int GLAD_GL_ARB_seamless_cube_map = 0;
+int GLAD_GL_ARB_seamless_cubemap_per_texture = 0;
+int GLAD_GL_ARB_shader_atomic_counter_ops = 0;
+int GLAD_GL_ARB_shader_atomic_counters = 0;
+int GLAD_GL_ARB_shader_bit_encoding = 0;
+int GLAD_GL_ARB_shader_clock = 0;
+int GLAD_GL_ARB_shader_image_load_store = 0;
+int GLAD_GL_ARB_shader_image_size = 0;
+int GLAD_GL_ARB_shader_objects = 0;
+int GLAD_GL_ARB_shader_storage_buffer_object = 0;
+int GLAD_GL_ARB_shader_texture_lod = 0;
+int GLAD_GL_ARB_shading_language_100 = 0;
+int GLAD_GL_ARB_shading_language_420pack = 0;
+int GLAD_GL_ARB_shading_language_include = 0;
+int GLAD_GL_ARB_shading_language_packing = 0;
+int GLAD_GL_ARB_spirv_extensions = 0;
+int GLAD_GL_ARB_tessellation_shader = 0;
+int GLAD_GL_ARB_texture_border_clamp = 0;
+int GLAD_GL_ARB_texture_buffer_object_rgb32 = 0;
+int GLAD_GL_ARB_texture_compression = 0;
+int GLAD_GL_EXT_texture_compression_s3tc = 0;
+int GLAD_GL_ARB_texture_cube_map = 0;
+int GLAD_GL_ARB_texture_cube_map_array = 0;
+int GLAD_GL_ARB_texture_env_add = 0;
+int GLAD_GL_ARB_texture_filter_anisotropic = 0;
+int GLAD_GL_ARB_texture_filter_minmax = 0;
+int GLAD_GL_ARB_texture_float = 0;
+int GLAD_GL_ARB_texture_mirror_clamp_to_edge = 0;
+int GLAD_GL_ARB_texture_mirrored_repeat = 0;
+int GLAD_GL_ARB_texture_multisample = 0;
+int GLAD_GL_ARB_texture_non_power_of_two = 0;
+int GLAD_GL_ARB_texture_rg = 0;
+int GLAD_GL_ARB_texture_storage = 0;
+int GLAD_GL_ARB_texture_swizzle = 0;
+int GLAD_GL_ARB_texture_view = 0;
+int GLAD_GL_ARB_timer_query = 0;
+int GLAD_GL_ARB_transpose_matrix = 0;
+int GLAD_GL_ARB_uniform_buffer_object = 0;
+int GLAD_GL_ARB_vertex_array_bgra = 0;
+int GLAD_GL_ARB_vertex_array_object = 0;
+int GLAD_GL_ARB_vertex_attrib_binding = 0;
+int GLAD_GL_ARB_vertex_buffer_object = 0;
+int GLAD_GL_ARB_vertex_program = 0;
+int GLAD_GL_ARB_vertex_shader = 0;
+int GLAD_GL_EXT_fog_coord = 0;
+int GLAD_GL_EXT_framebuffer_blit = 0;
+int GLAD_GL_EXT_framebuffer_multisample = 0;
+int GLAD_GL_EXT_framebuffer_object = 0;
+int GLAD_GL_EXT_framebuffer_sRGB = 0;
+int GLAD_GL_OES_compressed_paletted_texture = 0;
+int GLAD_GL_OES_fixed_point = 0;
+
+
+
+PFNGLACCUMXOESPROC glad_glAccumxOES = NULL;
+PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL;
+PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
+PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB = NULL;
+PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES = NULL;
+PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB = NULL;
+PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
+PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL;
+PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL;
+PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB = NULL;
+PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL;
+PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL;
+PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
+PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB = NULL;
+PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
+PFNGLBINDBUFFERARBPROC glad_glBindBufferARB = NULL;
+PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL;
+PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL;
+PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL;
+PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL;
+PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL;
+PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL;
+PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
+PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT = NULL;
+PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL;
+PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL;
+PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB = NULL;
+PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL;
+PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
+PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT = NULL;
+PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL;
+PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL;
+PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
+PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL;
+PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL;
+PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL;
+PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL;
+PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL;
+PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL;
+PFNGLBITMAPXOESPROC glad_glBitmapxOES = NULL;
+PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
+PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES = NULL;
+PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
+PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
+PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL;
+PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB = NULL;
+PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL;
+PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB = NULL;
+PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
+PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
+PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL;
+PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB = NULL;
+PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL;
+PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB = NULL;
+PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL;
+PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT = NULL;
+PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL;
+PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
+PFNGLBUFFERDATAARBPROC glad_glBufferDataARB = NULL;
+PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL;
+PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
+PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB = NULL;
+PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
+PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT = NULL;
+PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL;
+PFNGLCLAMPCOLORPROC glad_glClampColor = NULL;
+PFNGLCLAMPCOLORARBPROC glad_glClampColorARB = NULL;
+PFNGLCLEARPROC glad_glClear = NULL;
+PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES = NULL;
+PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL;
+PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL;
+PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL;
+PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL;
+PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL;
+PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL;
+PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
+PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES = NULL;
+PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL;
+PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
+PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES = NULL;
+PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL;
+PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL;
+PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL;
+PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL;
+PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL;
+PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL;
+PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
+PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL;
+PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL;
+PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB = NULL;
+PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL;
+PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES = NULL;
+PFNGLCOLOR3XOESPROC glad_glColor3xOES = NULL;
+PFNGLCOLOR3XVOESPROC glad_glColor3xvOES = NULL;
+PFNGLCOLOR4XOESPROC glad_glColor4xOES = NULL;
+PFNGLCOLOR4XVOESPROC glad_glColor4xvOES = NULL;
+PFNGLCOLORMASKPROC glad_glColorMask = NULL;
+PFNGLCOLORMASKIPROC glad_glColorMaski = NULL;
+PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
+PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB = NULL;
+PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB = NULL;
+PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL;
+PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB = NULL;
+PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
+PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB = NULL;
+PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL;
+PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB = NULL;
+PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL;
+PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL;
+PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL;
+PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES = NULL;
+PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES = NULL;
+PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL;
+PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL;
+PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL;
+PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL;
+PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
+PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL;
+PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
+PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL;
+PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL;
+PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL;
+PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL;
+PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL;
+PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL;
+PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
+PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB = NULL;
+PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL;
+PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL;
+PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL;
+PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL;
+PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
+PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB = NULL;
+PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL;
+PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL;
+PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL;
+PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL;
+PFNGLCULLFACEPROC glad_glCullFace = NULL;
+PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL;
+PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL;
+PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL;
+PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL;
+PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL;
+PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL;
+PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
+PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB = NULL;
+PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
+PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT = NULL;
+PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB = NULL;
+PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB = NULL;
+PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
+PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL;
+PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB = NULL;
+PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL;
+PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB = NULL;
+PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
+PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT = NULL;
+PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL;
+PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
+PFNGLDELETESYNCPROC glad_glDeleteSync = NULL;
+PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
+PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL;
+PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL;
+PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
+PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
+PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL;
+PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL;
+PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL;
+PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
+PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES = NULL;
+PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB = NULL;
+PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
+PFNGLDISABLEPROC glad_glDisable = NULL;
+PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL;
+PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
+PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB = NULL;
+PFNGLDISABLEIPROC glad_glDisablei = NULL;
+PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL;
+PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB = NULL;
+PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL;
+PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
+PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL;
+PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL;
+PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB = NULL;
+PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance = NULL;
+PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL;
+PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL;
+PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB = NULL;
+PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
+PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL;
+PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL;
+PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL;
+PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB = NULL;
+PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL;
+PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL;
+PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL;
+PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL;
+PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL;
+PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL;
+PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL;
+PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL;
+PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL;
+PFNGLENABLEPROC glad_glEnable = NULL;
+PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL;
+PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
+PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB = NULL;
+PFNGLENABLEIPROC glad_glEnablei = NULL;
+PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL;
+PFNGLENDQUERYPROC glad_glEndQuery = NULL;
+PFNGLENDQUERYARBPROC glad_glEndQueryARB = NULL;
+PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL;
+PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL;
+PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES = NULL;
+PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES = NULL;
+PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES = NULL;
+PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES = NULL;
+PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB = NULL;
+PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES = NULL;
+PFNGLFENCESYNCPROC glad_glFenceSync = NULL;
+PFNGLFINISHPROC glad_glFinish = NULL;
+PFNGLFLUSHPROC glad_glFlush = NULL;
+PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL;
+PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL;
+PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT = NULL;
+PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT = NULL;
+PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT = NULL;
+PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT = NULL;
+PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT = NULL;
+PFNGLFOGXOESPROC glad_glFogxOES = NULL;
+PFNGLFOGXVOESPROC glad_glFogxvOES = NULL;
+PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL;
+PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
+PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT = NULL;
+PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB = NULL;
+PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL;
+PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL;
+PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT = NULL;
+PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
+PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT = NULL;
+PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL;
+PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT = NULL;
+PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB = NULL;
+PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB = NULL;
+PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL;
+PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB = NULL;
+PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
+PFNGLFRUSTUMXOESPROC glad_glFrustumxOES = NULL;
+PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
+PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB = NULL;
+PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
+PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT = NULL;
+PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL;
+PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB = NULL;
+PFNGLGENQUERIESPROC glad_glGenQueries = NULL;
+PFNGLGENQUERIESARBPROC glad_glGenQueriesARB = NULL;
+PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
+PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT = NULL;
+PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL;
+PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
+PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL;
+PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL;
+PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
+PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT = NULL;
+PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL;
+PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL;
+PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
+PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB = NULL;
+PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL;
+PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL;
+PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL;
+PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
+PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB = NULL;
+PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL;
+PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL;
+PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL;
+PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL;
+PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB = NULL;
+PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
+PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
+PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB = NULL;
+PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL;
+PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
+PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL;
+PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
+PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB = NULL;
+PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL;
+PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB = NULL;
+PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL;
+PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB = NULL;
+PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES = NULL;
+PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL;
+PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB = NULL;
+PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL;
+PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL;
+PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES = NULL;
+PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL;
+PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL;
+PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL;
+PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL;
+PFNGLGETERRORPROC glad_glGetError = NULL;
+PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES = NULL;
+PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL;
+PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
+PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL;
+PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
+PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
+PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT = NULL;
+PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL;
+PFNGLGETHANDLEARBPROC glad_glGetHandleARB = NULL;
+PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES = NULL;
+PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB = NULL;
+PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
+PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
+PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
+PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
+PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL;
+PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL;
+PFNGLGETLIGHTXOESPROC glad_glGetLightxOES = NULL;
+PFNGLGETMAPXVOESPROC glad_glGetMapxvOES = NULL;
+PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES = NULL;
+PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL;
+PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL;
+PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL;
+PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL;
+PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL;
+PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL;
+PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL;
+PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL;
+PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB = NULL;
+PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB = NULL;
+PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL;
+PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB = NULL;
+PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB = NULL;
+PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL;
+PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv = NULL;
+PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL;
+PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL;
+PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB = NULL;
+PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB = NULL;
+PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
+PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL;
+PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB = NULL;
+PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB = NULL;
+PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL;
+PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL;
+PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL;
+PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL;
+PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex = NULL;
+PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL;
+PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL;
+PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL;
+PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB = NULL;
+PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
+PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB = NULL;
+PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL;
+PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL;
+PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL;
+PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL;
+PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL;
+PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL;
+PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL;
+PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB = NULL;
+PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL;
+PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL;
+PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB = NULL;
+PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL;
+PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB = NULL;
+PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
+PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT = NULL;
+PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL;
+PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL;
+PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL;
+PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL;
+PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
+PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL;
+PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
+PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB = NULL;
+PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
+PFNGLGETSTRINGPROC glad_glGetString = NULL;
+PFNGLGETSTRINGIPROC glad_glGetStringi = NULL;
+PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL;
+PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL;
+PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL;
+PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES = NULL;
+PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES = NULL;
+PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL;
+PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL;
+PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL;
+PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES = NULL;
+PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
+PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
+PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
+PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
+PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES = NULL;
+PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL;
+PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL;
+PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL;
+PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL;
+PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL;
+PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL;
+PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL;
+PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL;
+PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
+PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL;
+PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL;
+PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL;
+PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL;
+PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL;
+PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
+PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB = NULL;
+PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL;
+PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL;
+PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
+PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB = NULL;
+PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB = NULL;
+PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
+PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB = NULL;
+PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB = NULL;
+PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL;
+PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL;
+PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL;
+PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL;
+PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
+PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
+PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL;
+PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
+PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB = NULL;
+PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
+PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB = NULL;
+PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
+PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB = NULL;
+PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
+PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB = NULL;
+PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB = NULL;
+PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB = NULL;
+PFNGLHINTPROC glad_glHint = NULL;
+PFNGLINDEXXOESPROC glad_glIndexxOES = NULL;
+PFNGLINDEXXVOESPROC glad_glIndexxvOES = NULL;
+PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL;
+PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL;
+PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL;
+PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL;
+PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL;
+PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL;
+PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL;
+PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL;
+PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
+PFNGLISBUFFERARBPROC glad_glIsBufferARB = NULL;
+PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
+PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
+PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
+PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT = NULL;
+PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB = NULL;
+PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
+PFNGLISPROGRAMARBPROC glad_glIsProgramARB = NULL;
+PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL;
+PFNGLISQUERYPROC glad_glIsQuery = NULL;
+PFNGLISQUERYARBPROC glad_glIsQueryARB = NULL;
+PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
+PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT = NULL;
+PFNGLISSAMPLERPROC glad_glIsSampler = NULL;
+PFNGLISSHADERPROC glad_glIsShader = NULL;
+PFNGLISSYNCPROC glad_glIsSync = NULL;
+PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
+PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL;
+PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
+PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES = NULL;
+PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES = NULL;
+PFNGLLIGHTXOESPROC glad_glLightxOES = NULL;
+PFNGLLIGHTXVOESPROC glad_glLightxvOES = NULL;
+PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
+PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES = NULL;
+PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
+PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB = NULL;
+PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES = NULL;
+PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB = NULL;
+PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB = NULL;
+PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES = NULL;
+PFNGLLOGICOPPROC glad_glLogicOp = NULL;
+PFNGLMAP1XOESPROC glad_glMap1xOES = NULL;
+PFNGLMAP2XOESPROC glad_glMap2xOES = NULL;
+PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL;
+PFNGLMAPBUFFERARBPROC glad_glMapBufferARB = NULL;
+PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL;
+PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES = NULL;
+PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES = NULL;
+PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL;
+PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL;
+PFNGLMATERIALXOESPROC glad_glMaterialxOES = NULL;
+PFNGLMATERIALXVOESPROC glad_glMaterialxvOES = NULL;
+PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL;
+PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL;
+PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL;
+PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB = NULL;
+PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES = NULL;
+PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB = NULL;
+PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB = NULL;
+PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES = NULL;
+PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL;
+PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL;
+PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL;
+PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL;
+PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL;
+PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB = NULL;
+PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB = NULL;
+PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB = NULL;
+PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB = NULL;
+PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB = NULL;
+PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB = NULL;
+PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB = NULL;
+PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB = NULL;
+PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES = NULL;
+PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES = NULL;
+PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB = NULL;
+PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB = NULL;
+PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB = NULL;
+PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB = NULL;
+PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB = NULL;
+PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB = NULL;
+PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB = NULL;
+PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB = NULL;
+PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES = NULL;
+PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES = NULL;
+PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB = NULL;
+PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB = NULL;
+PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB = NULL;
+PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB = NULL;
+PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB = NULL;
+PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB = NULL;
+PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB = NULL;
+PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB = NULL;
+PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES = NULL;
+PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES = NULL;
+PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB = NULL;
+PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB = NULL;
+PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB = NULL;
+PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB = NULL;
+PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB = NULL;
+PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB = NULL;
+PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB = NULL;
+PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB = NULL;
+PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES = NULL;
+PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES = NULL;
+PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL;
+PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL;
+PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL;
+PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL;
+PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL;
+PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL;
+PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL;
+PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL;
+PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB = NULL;
+PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL;
+PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL;
+PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL;
+PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL;
+PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB = NULL;
+PFNGLNORMAL3XOESPROC glad_glNormal3xOES = NULL;
+PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES = NULL;
+PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL;
+PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL;
+PFNGLORTHOXOESPROC glad_glOrthoxOES = NULL;
+PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES = NULL;
+PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL;
+PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL;
+PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL;
+PFNGLPIXELMAPXPROC glad_glPixelMapx = NULL;
+PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL;
+PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
+PFNGLPIXELSTOREXPROC glad_glPixelStorex = NULL;
+PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES = NULL;
+PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES = NULL;
+PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL;
+PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL;
+PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL;
+PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL;
+PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES = NULL;
+PFNGLPOINTSIZEPROC glad_glPointSize = NULL;
+PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES = NULL;
+PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL;
+PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
+PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES = NULL;
+PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL;
+PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB = NULL;
+PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL;
+PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES = NULL;
+PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL;
+PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB = NULL;
+PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB = NULL;
+PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB = NULL;
+PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB = NULL;
+PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB = NULL;
+PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB = NULL;
+PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB = NULL;
+PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB = NULL;
+PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL;
+PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB = NULL;
+PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB = NULL;
+PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL;
+PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL;
+PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL;
+PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL;
+PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL;
+PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB = NULL;
+PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB = NULL;
+PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL;
+PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL;
+PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB = NULL;
+PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB = NULL;
+PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL;
+PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL;
+PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL;
+PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL;
+PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL;
+PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL;
+PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB = NULL;
+PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB = NULL;
+PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL;
+PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL;
+PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB = NULL;
+PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB = NULL;
+PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL;
+PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL;
+PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL;
+PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL;
+PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL;
+PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL;
+PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB = NULL;
+PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB = NULL;
+PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL;
+PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL;
+PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB = NULL;
+PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB = NULL;
+PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL;
+PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL;
+PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL;
+PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL;
+PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL;
+PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL;
+PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB = NULL;
+PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB = NULL;
+PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL;
+PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL;
+PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB = NULL;
+PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB = NULL;
+PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL;
+PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL;
+PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL;
+PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL;
+PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL;
+PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES = NULL;
+PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES = NULL;
+PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES = NULL;
+PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES = NULL;
+PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES = NULL;
+PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES = NULL;
+PFNGLREADBUFFERPROC glad_glReadBuffer = NULL;
+PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
+PFNGLRECTXOESPROC glad_glRectxOES = NULL;
+PFNGLRECTXVOESPROC glad_glRectxvOES = NULL;
+PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
+PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
+PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT = NULL;
+PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL;
+PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT = NULL;
+PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL;
+PFNGLROTATEXOESPROC glad_glRotatexOES = NULL;
+PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
+PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB = NULL;
+PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL;
+PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL;
+PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL;
+PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL;
+PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL;
+PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL;
+PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL;
+PFNGLSCALEXOESPROC glad_glScalexOES = NULL;
+PFNGLSCISSORPROC glad_glScissor = NULL;
+PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL;
+PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL;
+PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL;
+PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
+PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
+PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB = NULL;
+PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL;
+PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB = NULL;
+PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
+PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
+PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
+PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
+PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
+PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
+PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL;
+PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL;
+PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES = NULL;
+PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES = NULL;
+PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES = NULL;
+PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES = NULL;
+PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES = NULL;
+PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES = NULL;
+PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES = NULL;
+PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES = NULL;
+PFNGLTEXENVXOESPROC glad_glTexEnvxOES = NULL;
+PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES = NULL;
+PFNGLTEXGENXOESPROC glad_glTexGenxOES = NULL;
+PFNGLTEXGENXVOESPROC glad_glTexGenxvOES = NULL;
+PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL;
+PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
+PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL;
+PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL;
+PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL;
+PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL;
+PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL;
+PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
+PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
+PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
+PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
+PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES = NULL;
+PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES = NULL;
+PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D = NULL;
+PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL;
+PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL;
+PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL;
+PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL;
+PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL;
+PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
+PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL;
+PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL;
+PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL;
+PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL;
+PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL;
+PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL;
+PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL;
+PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL;
+PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL;
+PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL;
+PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL;
+PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL;
+PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL;
+PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL;
+PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL;
+PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL;
+PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL;
+PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL;
+PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL;
+PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL;
+PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL;
+PFNGLTRANSLATEXOESPROC glad_glTranslatexOES = NULL;
+PFNGLUNIFORM1DPROC glad_glUniform1d = NULL;
+PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL;
+PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
+PFNGLUNIFORM1FARBPROC glad_glUniform1fARB = NULL;
+PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
+PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB = NULL;
+PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
+PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB = NULL;
+PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB = NULL;
+PFNGLUNIFORM1IARBPROC glad_glUniform1iARB = NULL;
+PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
+PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB = NULL;
+PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL;
+PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB = NULL;
+PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB = NULL;
+PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL;
+PFNGLUNIFORM2DPROC glad_glUniform2d = NULL;
+PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL;
+PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
+PFNGLUNIFORM2FARBPROC glad_glUniform2fARB = NULL;
+PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
+PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB = NULL;
+PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
+PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB = NULL;
+PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB = NULL;
+PFNGLUNIFORM2IARBPROC glad_glUniform2iARB = NULL;
+PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
+PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB = NULL;
+PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL;
+PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB = NULL;
+PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB = NULL;
+PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL;
+PFNGLUNIFORM3DPROC glad_glUniform3d = NULL;
+PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL;
+PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
+PFNGLUNIFORM3FARBPROC glad_glUniform3fARB = NULL;
+PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
+PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB = NULL;
+PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
+PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB = NULL;
+PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB = NULL;
+PFNGLUNIFORM3IARBPROC glad_glUniform3iARB = NULL;
+PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
+PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB = NULL;
+PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL;
+PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB = NULL;
+PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB = NULL;
+PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL;
+PFNGLUNIFORM4DPROC glad_glUniform4d = NULL;
+PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL;
+PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
+PFNGLUNIFORM4FARBPROC glad_glUniform4fARB = NULL;
+PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
+PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB = NULL;
+PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
+PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB = NULL;
+PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB = NULL;
+PFNGLUNIFORM4IARBPROC glad_glUniform4iARB = NULL;
+PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
+PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB = NULL;
+PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL;
+PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB = NULL;
+PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB = NULL;
+PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL;
+PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL;
+PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL;
+PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
+PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB = NULL;
+PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL;
+PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL;
+PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL;
+PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL;
+PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL;
+PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
+PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB = NULL;
+PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL;
+PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL;
+PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL;
+PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL;
+PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL;
+PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
+PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB = NULL;
+PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL;
+PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL;
+PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL;
+PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL;
+PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL;
+PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL;
+PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB = NULL;
+PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL;
+PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
+PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB = NULL;
+PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL;
+PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
+PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB = NULL;
+PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL;
+PFNGLVERTEX2XOESPROC glad_glVertex2xOES = NULL;
+PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES = NULL;
+PFNGLVERTEX3XOESPROC glad_glVertex3xOES = NULL;
+PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES = NULL;
+PFNGLVERTEX4XOESPROC glad_glVertex4xOES = NULL;
+PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES = NULL;
+PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL;
+PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL;
+PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL;
+PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL;
+PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL;
+PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL;
+PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL;
+PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL;
+PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL;
+PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB = NULL;
+PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL;
+PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB = NULL;
+PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
+PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB = NULL;
+PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
+PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB = NULL;
+PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL;
+PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB = NULL;
+PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL;
+PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB = NULL;
+PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL;
+PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB = NULL;
+PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL;
+PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB = NULL;
+PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
+PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB = NULL;
+PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
+PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB = NULL;
+PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL;
+PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB = NULL;
+PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL;
+PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB = NULL;
+PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL;
+PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB = NULL;
+PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL;
+PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB = NULL;
+PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
+PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB = NULL;
+PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
+PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB = NULL;
+PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL;
+PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB = NULL;
+PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL;
+PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB = NULL;
+PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL;
+PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB = NULL;
+PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL;
+PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB = NULL;
+PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL;
+PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB = NULL;
+PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL;
+PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB = NULL;
+PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL;
+PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB = NULL;
+PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL;
+PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB = NULL;
+PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL;
+PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB = NULL;
+PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL;
+PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB = NULL;
+PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL;
+PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB = NULL;
+PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL;
+PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB = NULL;
+PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
+PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB = NULL;
+PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
+PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB = NULL;
+PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL;
+PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB = NULL;
+PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL;
+PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB = NULL;
+PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL;
+PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB = NULL;
+PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL;
+PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB = NULL;
+PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL;
+PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB = NULL;
+PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL;
+PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB = NULL;
+PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL;
+PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL;
+PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB = NULL;
+PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL;
+PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL;
+PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL;
+PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL;
+PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL;
+PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL;
+PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL;
+PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL;
+PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL;
+PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL;
+PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL;
+PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL;
+PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL;
+PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL;
+PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL;
+PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL;
+PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL;
+PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL;
+PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL;
+PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL;
+PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL;
+PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL;
+PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL;
+PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL;
+PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL;
+PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL;
+PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL;
+PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL;
+PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL;
+PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL;
+PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL;
+PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat = NULL;
+PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL;
+PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL;
+PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL;
+PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL;
+PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL;
+PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL;
+PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL;
+PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL;
+PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL;
+PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
+PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB = NULL;
+PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL;
+PFNGLVIEWPORTPROC glad_glViewport = NULL;
+PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL;
+PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL;
+PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL;
+PFNGLWAITSYNCPROC glad_glWaitSync = NULL;
+
+
+static void glad_gl_load_GL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_0) return;
+ glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc");
+ glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear");
+ glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor");
+ glad_glClearDepth = (PFNGLCLEARDEPTHPROC) load(userptr, "glClearDepth");
+ glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil");
+ glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask");
+ glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace");
+ glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc");
+ glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask");
+ glad_glDepthRange = (PFNGLDEPTHRANGEPROC) load(userptr, "glDepthRange");
+ glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable");
+ glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC) load(userptr, "glDrawBuffer");
+ glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable");
+ glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish");
+ glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush");
+ glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace");
+ glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv");
+ glad_glGetDoublev = (PFNGLGETDOUBLEVPROC) load(userptr, "glGetDoublev");
+ glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError");
+ glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv");
+ glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv");
+ glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
+ glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC) load(userptr, "glGetTexImage");
+ glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv");
+ glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv");
+ glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv");
+ glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv");
+ glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint");
+ glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled");
+ glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth");
+ glad_glLogicOp = (PFNGLLOGICOPPROC) load(userptr, "glLogicOp");
+ glad_glPixelStoref = (PFNGLPIXELSTOREFPROC) load(userptr, "glPixelStoref");
+ glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei");
+ glad_glPointSize = (PFNGLPOINTSIZEPROC) load(userptr, "glPointSize");
+ glad_glPolygonMode = (PFNGLPOLYGONMODEPROC) load(userptr, "glPolygonMode");
+ glad_glReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer");
+ glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels");
+ glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor");
+ glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc");
+ glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask");
+ glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp");
+ glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC) load(userptr, "glTexImage1D");
+ glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D");
+ glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf");
+ glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv");
+ glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri");
+ glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv");
+ glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport");
+}
+static void glad_gl_load_GL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_1) return;
+ glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture");
+ glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC) load(userptr, "glCopyTexImage1D");
+ glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D");
+ glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC) load(userptr, "glCopyTexSubImage1D");
+ glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D");
+ glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures");
+ glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays");
+ glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements");
+ glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures");
+ glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv");
+ glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture");
+ glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset");
+ glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC) load(userptr, "glTexSubImage1D");
+ glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D");
+}
+static void glad_gl_load_GL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_2) return;
+ glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D");
+ glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements");
+ glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D");
+ glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D");
+}
+static void glad_gl_load_GL_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_3) return;
+ glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture");
+ glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) load(userptr, "glCompressedTexImage1D");
+ glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D");
+ glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D");
+ glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) load(userptr, "glCompressedTexSubImage1D");
+ glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D");
+ glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D");
+ glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetCompressedTexImage");
+ glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage");
+}
+static void glad_gl_load_GL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_4) return;
+ glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor");
+ glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation");
+ glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate");
+ glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) load(userptr, "glMultiDrawArrays");
+ glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) load(userptr, "glMultiDrawElements");
+ glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC) load(userptr, "glPointParameterf");
+ glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC) load(userptr, "glPointParameterfv");
+ glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC) load(userptr, "glPointParameteri");
+ glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC) load(userptr, "glPointParameteriv");
+}
+static void glad_gl_load_GL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_1_5) return;
+ glad_glBeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery");
+ glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer");
+ glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData");
+ glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData");
+ glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers");
+ glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries");
+ glad_glEndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery");
+ glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers");
+ glad_glGenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries");
+ glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv");
+ glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv");
+ glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) load(userptr, "glGetBufferSubData");
+ glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) load(userptr, "glGetQueryObjectiv");
+ glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv");
+ glad_glGetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv");
+ glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer");
+ glad_glIsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery");
+ glad_glMapBuffer = (PFNGLMAPBUFFERPROC) load(userptr, "glMapBuffer");
+ glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer");
+}
+static void glad_gl_load_GL_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_2_0) return;
+ glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader");
+ glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation");
+ glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate");
+ glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader");
+ glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram");
+ glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader");
+ glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram");
+ glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader");
+ glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader");
+ glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray");
+ glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers");
+ glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray");
+ glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib");
+ glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform");
+ glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders");
+ glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation");
+ glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog");
+ glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv");
+ glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog");
+ glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource");
+ glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv");
+ glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation");
+ glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv");
+ glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv");
+ glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv");
+ glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) load(userptr, "glGetVertexAttribdv");
+ glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv");
+ glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv");
+ glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram");
+ glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader");
+ glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram");
+ glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource");
+ glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate");
+ glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate");
+ glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate");
+ glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f");
+ glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv");
+ glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i");
+ glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv");
+ glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f");
+ glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv");
+ glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i");
+ glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv");
+ glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f");
+ glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv");
+ glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i");
+ glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv");
+ glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f");
+ glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv");
+ glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i");
+ glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv");
+ glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv");
+ glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv");
+ glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv");
+ glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram");
+ glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram");
+ glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) load(userptr, "glVertexAttrib1d");
+ glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) load(userptr, "glVertexAttrib1dv");
+ glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f");
+ glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv");
+ glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) load(userptr, "glVertexAttrib1s");
+ glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) load(userptr, "glVertexAttrib1sv");
+ glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) load(userptr, "glVertexAttrib2d");
+ glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) load(userptr, "glVertexAttrib2dv");
+ glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f");
+ glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv");
+ glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) load(userptr, "glVertexAttrib2s");
+ glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) load(userptr, "glVertexAttrib2sv");
+ glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) load(userptr, "glVertexAttrib3d");
+ glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) load(userptr, "glVertexAttrib3dv");
+ glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f");
+ glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv");
+ glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) load(userptr, "glVertexAttrib3s");
+ glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) load(userptr, "glVertexAttrib3sv");
+ glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) load(userptr, "glVertexAttrib4Nbv");
+ glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) load(userptr, "glVertexAttrib4Niv");
+ glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) load(userptr, "glVertexAttrib4Nsv");
+ glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) load(userptr, "glVertexAttrib4Nub");
+ glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) load(userptr, "glVertexAttrib4Nubv");
+ glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) load(userptr, "glVertexAttrib4Nuiv");
+ glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) load(userptr, "glVertexAttrib4Nusv");
+ glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) load(userptr, "glVertexAttrib4bv");
+ glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) load(userptr, "glVertexAttrib4d");
+ glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) load(userptr, "glVertexAttrib4dv");
+ glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f");
+ glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv");
+ glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) load(userptr, "glVertexAttrib4iv");
+ glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) load(userptr, "glVertexAttrib4s");
+ glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) load(userptr, "glVertexAttrib4sv");
+ glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) load(userptr, "glVertexAttrib4ubv");
+ glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) load(userptr, "glVertexAttrib4uiv");
+ glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) load(userptr, "glVertexAttrib4usv");
+ glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer");
+}
+static void glad_gl_load_GL_VERSION_2_1( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_2_1) return;
+ glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv");
+ glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv");
+ glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv");
+ glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv");
+ glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv");
+ glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv");
+}
+static void glad_gl_load_GL_VERSION_3_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_3_0) return;
+ glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) load(userptr, "glBeginConditionalRender");
+ glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback");
+ glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase");
+ glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange");
+ glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) load(userptr, "glBindFragDataLocation");
+ glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
+ glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
+ glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray");
+ glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer");
+ glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
+ glad_glClampColor = (PFNGLCLAMPCOLORPROC) load(userptr, "glClampColor");
+ glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi");
+ glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv");
+ glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv");
+ glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv");
+ glad_glColorMaski = (PFNGLCOLORMASKIPROC) load(userptr, "glColorMaski");
+ glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
+ glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
+ glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays");
+ glad_glDisablei = (PFNGLDISABLEIPROC) load(userptr, "glDisablei");
+ glad_glEnablei = (PFNGLENABLEIPROC) load(userptr, "glEnablei");
+ glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) load(userptr, "glEndConditionalRender");
+ glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback");
+ glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange");
+ glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
+ glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D");
+ glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
+ glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D");
+ glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer");
+ glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
+ glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
+ glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays");
+ glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
+ glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v");
+ glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation");
+ glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
+ glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v");
+ glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
+ glad_glGetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi");
+ glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) load(userptr, "glGetTexParameterIiv");
+ glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) load(userptr, "glGetTexParameterIuiv");
+ glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying");
+ glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv");
+ glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv");
+ glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv");
+ glad_glIsEnabledi = (PFNGLISENABLEDIPROC) load(userptr, "glIsEnabledi");
+ glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
+ glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
+ glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray");
+ glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange");
+ glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
+ glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample");
+ glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) load(userptr, "glTexParameterIiv");
+ glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) load(userptr, "glTexParameterIuiv");
+ glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings");
+ glad_glUniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui");
+ glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv");
+ glad_glUniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui");
+ glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv");
+ glad_glUniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui");
+ glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv");
+ glad_glUniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui");
+ glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv");
+ glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) load(userptr, "glVertexAttribI1i");
+ glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) load(userptr, "glVertexAttribI1iv");
+ glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) load(userptr, "glVertexAttribI1ui");
+ glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) load(userptr, "glVertexAttribI1uiv");
+ glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) load(userptr, "glVertexAttribI2i");
+ glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) load(userptr, "glVertexAttribI2iv");
+ glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) load(userptr, "glVertexAttribI2ui");
+ glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) load(userptr, "glVertexAttribI2uiv");
+ glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) load(userptr, "glVertexAttribI3i");
+ glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) load(userptr, "glVertexAttribI3iv");
+ glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) load(userptr, "glVertexAttribI3ui");
+ glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) load(userptr, "glVertexAttribI3uiv");
+ glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) load(userptr, "glVertexAttribI4bv");
+ glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i");
+ glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv");
+ glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) load(userptr, "glVertexAttribI4sv");
+ glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) load(userptr, "glVertexAttribI4ubv");
+ glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui");
+ glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv");
+ glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) load(userptr, "glVertexAttribI4usv");
+ glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer");
+}
+static void glad_gl_load_GL_VERSION_3_1( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_3_1) return;
+ glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase");
+ glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange");
+ glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData");
+ glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced");
+ glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced");
+ glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName");
+ glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv");
+ glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName");
+ glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv");
+ glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v");
+ glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex");
+ glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices");
+ glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) load(userptr, "glPrimitiveRestartIndex");
+ glad_glTexBuffer = (PFNGLTEXBUFFERPROC) load(userptr, "glTexBuffer");
+ glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding");
+}
+static void glad_gl_load_GL_VERSION_3_2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_3_2) return;
+ glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync");
+ glad_glDeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync");
+ glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex");
+ glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex");
+ glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex");
+ glad_glFenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync");
+ glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) load(userptr, "glFramebufferTexture");
+ glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v");
+ glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v");
+ glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v");
+ glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv");
+ glad_glGetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv");
+ glad_glIsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync");
+ glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex");
+ glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) load(userptr, "glProvokingVertex");
+ glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski");
+ glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample");
+ glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample");
+ glad_glWaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync");
+}
+static void glad_gl_load_GL_VERSION_3_3( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_3_3) return;
+ glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed");
+ glad_glBindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler");
+ glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers");
+ glad_glGenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers");
+ glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex");
+ glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v");
+ glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v");
+ glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC) load(userptr, "glGetSamplerParameterIiv");
+ glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC) load(userptr, "glGetSamplerParameterIuiv");
+ glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv");
+ glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv");
+ glad_glIsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler");
+ glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter");
+ glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC) load(userptr, "glSamplerParameterIiv");
+ glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC) load(userptr, "glSamplerParameterIuiv");
+ glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf");
+ glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv");
+ glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri");
+ glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv");
+ glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor");
+ glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC) load(userptr, "glVertexAttribP1ui");
+ glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC) load(userptr, "glVertexAttribP1uiv");
+ glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC) load(userptr, "glVertexAttribP2ui");
+ glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC) load(userptr, "glVertexAttribP2uiv");
+ glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC) load(userptr, "glVertexAttribP3ui");
+ glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC) load(userptr, "glVertexAttribP3uiv");
+ glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC) load(userptr, "glVertexAttribP4ui");
+ glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC) load(userptr, "glVertexAttribP4uiv");
+}
+static void glad_gl_load_GL_VERSION_4_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_4_0) return;
+ glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC) load(userptr, "glBeginQueryIndexed");
+ glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC) load(userptr, "glBindTransformFeedback");
+ glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC) load(userptr, "glBlendEquationSeparatei");
+ glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC) load(userptr, "glBlendEquationi");
+ glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC) load(userptr, "glBlendFuncSeparatei");
+ glad_glBlendFunci = (PFNGLBLENDFUNCIPROC) load(userptr, "glBlendFunci");
+ glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC) load(userptr, "glDeleteTransformFeedbacks");
+ glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect");
+ glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect");
+ glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC) load(userptr, "glDrawTransformFeedback");
+ glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) load(userptr, "glDrawTransformFeedbackStream");
+ glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC) load(userptr, "glEndQueryIndexed");
+ glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC) load(userptr, "glGenTransformFeedbacks");
+ glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC) load(userptr, "glGetActiveSubroutineName");
+ glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) load(userptr, "glGetActiveSubroutineUniformName");
+ glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) load(userptr, "glGetActiveSubroutineUniformiv");
+ glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC) load(userptr, "glGetProgramStageiv");
+ glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC) load(userptr, "glGetQueryIndexediv");
+ glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC) load(userptr, "glGetSubroutineIndex");
+ glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) load(userptr, "glGetSubroutineUniformLocation");
+ glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC) load(userptr, "glGetUniformSubroutineuiv");
+ glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv");
+ glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC) load(userptr, "glIsTransformFeedback");
+ glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC) load(userptr, "glMinSampleShading");
+ glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv");
+ glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri");
+ glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC) load(userptr, "glPauseTransformFeedback");
+ glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC) load(userptr, "glResumeTransformFeedback");
+ glad_glUniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d");
+ glad_glUniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv");
+ glad_glUniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d");
+ glad_glUniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv");
+ glad_glUniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d");
+ glad_glUniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv");
+ glad_glUniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d");
+ glad_glUniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv");
+ glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv");
+ glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv");
+ glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv");
+ glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv");
+ glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv");
+ glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv");
+ glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv");
+ glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv");
+ glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv");
+ glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC) load(userptr, "glUniformSubroutinesuiv");
+}
+static void glad_gl_load_GL_VERSION_4_1( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_4_1) return;
+ glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC) load(userptr, "glActiveShaderProgram");
+ glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC) load(userptr, "glBindProgramPipeline");
+ glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf");
+ glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC) load(userptr, "glCreateShaderProgramv");
+ glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC) load(userptr, "glDeleteProgramPipelines");
+ glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC) load(userptr, "glDepthRangeArrayv");
+ glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC) load(userptr, "glDepthRangeIndexed");
+ glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef");
+ glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC) load(userptr, "glGenProgramPipelines");
+ glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC) load(userptr, "glGetDoublei_v");
+ glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC) load(userptr, "glGetFloati_v");
+ glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary");
+ glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC) load(userptr, "glGetProgramPipelineInfoLog");
+ glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC) load(userptr, "glGetProgramPipelineiv");
+ glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat");
+ glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC) load(userptr, "glGetVertexAttribLdv");
+ glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC) load(userptr, "glIsProgramPipeline");
+ glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary");
+ glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri");
+ glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC) load(userptr, "glProgramUniform1d");
+ glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC) load(userptr, "glProgramUniform1dv");
+ glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC) load(userptr, "glProgramUniform1f");
+ glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC) load(userptr, "glProgramUniform1fv");
+ glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC) load(userptr, "glProgramUniform1i");
+ glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC) load(userptr, "glProgramUniform1iv");
+ glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC) load(userptr, "glProgramUniform1ui");
+ glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC) load(userptr, "glProgramUniform1uiv");
+ glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC) load(userptr, "glProgramUniform2d");
+ glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC) load(userptr, "glProgramUniform2dv");
+ glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC) load(userptr, "glProgramUniform2f");
+ glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC) load(userptr, "glProgramUniform2fv");
+ glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC) load(userptr, "glProgramUniform2i");
+ glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC) load(userptr, "glProgramUniform2iv");
+ glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC) load(userptr, "glProgramUniform2ui");
+ glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC) load(userptr, "glProgramUniform2uiv");
+ glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC) load(userptr, "glProgramUniform3d");
+ glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC) load(userptr, "glProgramUniform3dv");
+ glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC) load(userptr, "glProgramUniform3f");
+ glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC) load(userptr, "glProgramUniform3fv");
+ glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC) load(userptr, "glProgramUniform3i");
+ glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC) load(userptr, "glProgramUniform3iv");
+ glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC) load(userptr, "glProgramUniform3ui");
+ glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC) load(userptr, "glProgramUniform3uiv");
+ glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC) load(userptr, "glProgramUniform4d");
+ glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC) load(userptr, "glProgramUniform4dv");
+ glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC) load(userptr, "glProgramUniform4f");
+ glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC) load(userptr, "glProgramUniform4fv");
+ glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC) load(userptr, "glProgramUniform4i");
+ glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC) load(userptr, "glProgramUniform4iv");
+ glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC) load(userptr, "glProgramUniform4ui");
+ glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC) load(userptr, "glProgramUniform4uiv");
+ glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC) load(userptr, "glProgramUniformMatrix2dv");
+ glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC) load(userptr, "glProgramUniformMatrix2fv");
+ glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) load(userptr, "glProgramUniformMatrix2x3dv");
+ glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) load(userptr, "glProgramUniformMatrix2x3fv");
+ glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) load(userptr, "glProgramUniformMatrix2x4dv");
+ glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) load(userptr, "glProgramUniformMatrix2x4fv");
+ glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC) load(userptr, "glProgramUniformMatrix3dv");
+ glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC) load(userptr, "glProgramUniformMatrix3fv");
+ glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) load(userptr, "glProgramUniformMatrix3x2dv");
+ glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) load(userptr, "glProgramUniformMatrix3x2fv");
+ glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) load(userptr, "glProgramUniformMatrix3x4dv");
+ glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) load(userptr, "glProgramUniformMatrix3x4fv");
+ glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC) load(userptr, "glProgramUniformMatrix4dv");
+ glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC) load(userptr, "glProgramUniformMatrix4fv");
+ glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) load(userptr, "glProgramUniformMatrix4x2dv");
+ glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) load(userptr, "glProgramUniformMatrix4x2fv");
+ glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) load(userptr, "glProgramUniformMatrix4x3dv");
+ glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) load(userptr, "glProgramUniformMatrix4x3fv");
+ glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler");
+ glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC) load(userptr, "glScissorArrayv");
+ glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC) load(userptr, "glScissorIndexed");
+ glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC) load(userptr, "glScissorIndexedv");
+ glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary");
+ glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC) load(userptr, "glUseProgramStages");
+ glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC) load(userptr, "glValidateProgramPipeline");
+ glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC) load(userptr, "glVertexAttribL1d");
+ glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC) load(userptr, "glVertexAttribL1dv");
+ glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC) load(userptr, "glVertexAttribL2d");
+ glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC) load(userptr, "glVertexAttribL2dv");
+ glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC) load(userptr, "glVertexAttribL3d");
+ glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC) load(userptr, "glVertexAttribL3dv");
+ glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC) load(userptr, "glVertexAttribL4d");
+ glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC) load(userptr, "glVertexAttribL4dv");
+ glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC) load(userptr, "glVertexAttribLPointer");
+ glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC) load(userptr, "glViewportArrayv");
+ glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC) load(userptr, "glViewportIndexedf");
+ glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC) load(userptr, "glViewportIndexedfv");
+}
+static void glad_gl_load_GL_VERSION_4_2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_4_2) return;
+ glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture");
+ glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawArraysInstancedBaseInstance");
+ glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseInstance");
+ glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseVertexBaseInstance");
+ glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackInstanced");
+ glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackStreamInstanced");
+ glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv");
+ glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ");
+ glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier");
+ glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D");
+ glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D");
+ glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D");
+}
+static void glad_gl_load_GL_VERSION_4_3( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_VERSION_4_3) return;
+ glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer");
+ glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData");
+ glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData");
+ glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData");
+ glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback");
+ glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl");
+ glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert");
+ glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute");
+ glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect");
+ glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri");
+ glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog");
+ glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv");
+ glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v");
+ glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel");
+ glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel");
+ glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv");
+ glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC) load(userptr, "glGetProgramInterfaceiv");
+ glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC) load(userptr, "glGetProgramResourceIndex");
+ glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC) load(userptr, "glGetProgramResourceLocation");
+ glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) load(userptr, "glGetProgramResourceLocationIndex");
+ glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC) load(userptr, "glGetProgramResourceName");
+ glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC) load(userptr, "glGetProgramResourceiv");
+ glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC) load(userptr, "glInvalidateBufferData");
+ glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC) load(userptr, "glInvalidateBufferSubData");
+ glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC) load(userptr, "glInvalidateFramebuffer");
+ glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC) load(userptr, "glInvalidateSubFramebuffer");
+ glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC) load(userptr, "glInvalidateTexImage");
+ glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC) load(userptr, "glInvalidateTexSubImage");
+ glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect");
+ glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect");
+ glad_glObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel");
+ glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel");
+ glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup");
+ glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup");
+ glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding");
+ glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC) load(userptr, "glTexBufferRange");
+ glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC) load(userptr, "glTexStorage2DMultisample");
+ glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC) load(userptr, "glTexStorage3DMultisample");
+ glad_glTextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView");
+ glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding");
+ glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat");
+ glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat");
+ glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat");
+ glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor");
+}
+static void glad_gl_load_GL_ARB_ES2_compatibility( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_ES2_compatibility) return;
+ glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf");
+ glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef");
+ glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat");
+ glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler");
+ glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary");
+}
+static void glad_gl_load_GL_ARB_ES3_1_compatibility( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_ES3_1_compatibility) return;
+ glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC) load(userptr, "glMemoryBarrierByRegion");
+}
+static void glad_gl_load_GL_ARB_ES3_2_compatibility( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_ES3_2_compatibility) return;
+ glad_glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC) load(userptr, "glPrimitiveBoundingBoxARB");
+}
+static void glad_gl_load_GL_ARB_blend_func_extended( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_blend_func_extended) return;
+ glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed");
+ glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex");
+}
+static void glad_gl_load_GL_ARB_buffer_storage( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_buffer_storage) return;
+ glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC) load(userptr, "glBufferStorage");
+}
+static void glad_gl_load_GL_ARB_clear_buffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_clear_buffer_object) return;
+ glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData");
+ glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData");
+}
+static void glad_gl_load_GL_ARB_clear_texture( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_clear_texture) return;
+ glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC) load(userptr, "glClearTexImage");
+ glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC) load(userptr, "glClearTexSubImage");
+}
+static void glad_gl_load_GL_ARB_color_buffer_float( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_color_buffer_float) return;
+ glad_glClampColorARB = (PFNGLCLAMPCOLORARBPROC) load(userptr, "glClampColorARB");
+}
+static void glad_gl_load_GL_ARB_compute_shader( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_compute_shader) return;
+ glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute");
+ glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect");
+}
+static void glad_gl_load_GL_ARB_compute_variable_group_size( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_compute_variable_group_size) return;
+ glad_glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) load(userptr, "glDispatchComputeGroupSizeARB");
+}
+static void glad_gl_load_GL_ARB_copy_buffer( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_copy_buffer) return;
+ glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData");
+}
+static void glad_gl_load_GL_ARB_copy_image( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_copy_image) return;
+ glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData");
+}
+static void glad_gl_load_GL_ARB_debug_output( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_debug_output) return;
+ glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC) load(userptr, "glDebugMessageCallbackARB");
+ glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC) load(userptr, "glDebugMessageControlARB");
+ glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC) load(userptr, "glDebugMessageInsertARB");
+ glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC) load(userptr, "glGetDebugMessageLogARB");
+}
+static void glad_gl_load_GL_ARB_direct_state_access( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_direct_state_access) return;
+ glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC) load(userptr, "glBindTextureUnit");
+ glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC) load(userptr, "glBlitNamedFramebuffer");
+ glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckNamedFramebufferStatus");
+ glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC) load(userptr, "glClearNamedBufferData");
+ glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC) load(userptr, "glClearNamedBufferSubData");
+ glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) load(userptr, "glClearNamedFramebufferfi");
+ glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) load(userptr, "glClearNamedFramebufferfv");
+ glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) load(userptr, "glClearNamedFramebufferiv");
+ glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) load(userptr, "glClearNamedFramebufferuiv");
+ glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) load(userptr, "glCompressedTextureSubImage1D");
+ glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) load(userptr, "glCompressedTextureSubImage2D");
+ glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) load(userptr, "glCompressedTextureSubImage3D");
+ glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC) load(userptr, "glCopyNamedBufferSubData");
+ glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC) load(userptr, "glCopyTextureSubImage1D");
+ glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC) load(userptr, "glCopyTextureSubImage2D");
+ glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC) load(userptr, "glCopyTextureSubImage3D");
+ glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC) load(userptr, "glCreateBuffers");
+ glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC) load(userptr, "glCreateFramebuffers");
+ glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC) load(userptr, "glCreateProgramPipelines");
+ glad_glCreateQueries = (PFNGLCREATEQUERIESPROC) load(userptr, "glCreateQueries");
+ glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC) load(userptr, "glCreateRenderbuffers");
+ glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC) load(userptr, "glCreateSamplers");
+ glad_glCreateTextures = (PFNGLCREATETEXTURESPROC) load(userptr, "glCreateTextures");
+ glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC) load(userptr, "glCreateTransformFeedbacks");
+ glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC) load(userptr, "glCreateVertexArrays");
+ glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC) load(userptr, "glDisableVertexArrayAttrib");
+ glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC) load(userptr, "glEnableVertexArrayAttrib");
+ glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) load(userptr, "glFlushMappedNamedBufferRange");
+ glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC) load(userptr, "glGenerateTextureMipmap");
+ glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) load(userptr, "glGetCompressedTextureImage");
+ glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) load(userptr, "glGetNamedBufferParameteri64v");
+ glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedBufferParameteriv");
+ glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC) load(userptr, "glGetNamedBufferPointerv");
+ glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC) load(userptr, "glGetNamedBufferSubData");
+ glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferAttachmentParameteriv");
+ glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferParameteriv");
+ glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedRenderbufferParameteriv");
+ glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC) load(userptr, "glGetQueryBufferObjecti64v");
+ glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC) load(userptr, "glGetQueryBufferObjectiv");
+ glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC) load(userptr, "glGetQueryBufferObjectui64v");
+ glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC) load(userptr, "glGetQueryBufferObjectuiv");
+ glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC) load(userptr, "glGetTextureImage");
+ glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC) load(userptr, "glGetTextureLevelParameterfv");
+ glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC) load(userptr, "glGetTextureLevelParameteriv");
+ glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC) load(userptr, "glGetTextureParameterIiv");
+ glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC) load(userptr, "glGetTextureParameterIuiv");
+ glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC) load(userptr, "glGetTextureParameterfv");
+ glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC) load(userptr, "glGetTextureParameteriv");
+ glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC) load(userptr, "glGetTransformFeedbacki64_v");
+ glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC) load(userptr, "glGetTransformFeedbacki_v");
+ glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC) load(userptr, "glGetTransformFeedbackiv");
+ glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC) load(userptr, "glGetVertexArrayIndexed64iv");
+ glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC) load(userptr, "glGetVertexArrayIndexediv");
+ glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC) load(userptr, "glGetVertexArrayiv");
+ glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) load(userptr, "glInvalidateNamedFramebufferData");
+ glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) load(userptr, "glInvalidateNamedFramebufferSubData");
+ glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC) load(userptr, "glMapNamedBuffer");
+ glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC) load(userptr, "glMapNamedBufferRange");
+ glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC) load(userptr, "glNamedBufferData");
+ glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC) load(userptr, "glNamedBufferStorage");
+ glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC) load(userptr, "glNamedBufferSubData");
+ glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) load(userptr, "glNamedFramebufferDrawBuffer");
+ glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) load(userptr, "glNamedFramebufferDrawBuffers");
+ glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) load(userptr, "glNamedFramebufferParameteri");
+ glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) load(userptr, "glNamedFramebufferReadBuffer");
+ glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glNamedFramebufferRenderbuffer");
+ glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) load(userptr, "glNamedFramebufferTexture");
+ glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glNamedFramebufferTextureLayer");
+ glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC) load(userptr, "glNamedRenderbufferStorage");
+ glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glNamedRenderbufferStorageMultisample");
+ glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC) load(userptr, "glTextureBuffer");
+ glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC) load(userptr, "glTextureBufferRange");
+ glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC) load(userptr, "glTextureParameterIiv");
+ glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC) load(userptr, "glTextureParameterIuiv");
+ glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC) load(userptr, "glTextureParameterf");
+ glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC) load(userptr, "glTextureParameterfv");
+ glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC) load(userptr, "glTextureParameteri");
+ glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC) load(userptr, "glTextureParameteriv");
+ glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC) load(userptr, "glTextureStorage1D");
+ glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC) load(userptr, "glTextureStorage2D");
+ glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) load(userptr, "glTextureStorage2DMultisample");
+ glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC) load(userptr, "glTextureStorage3D");
+ glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) load(userptr, "glTextureStorage3DMultisample");
+ glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC) load(userptr, "glTextureSubImage1D");
+ glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC) load(userptr, "glTextureSubImage2D");
+ glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC) load(userptr, "glTextureSubImage3D");
+ glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) load(userptr, "glTransformFeedbackBufferBase");
+ glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) load(userptr, "glTransformFeedbackBufferRange");
+ glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC) load(userptr, "glUnmapNamedBuffer");
+ glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC) load(userptr, "glVertexArrayAttribBinding");
+ glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC) load(userptr, "glVertexArrayAttribFormat");
+ glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC) load(userptr, "glVertexArrayAttribIFormat");
+ glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC) load(userptr, "glVertexArrayAttribLFormat");
+ glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC) load(userptr, "glVertexArrayBindingDivisor");
+ glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC) load(userptr, "glVertexArrayElementBuffer");
+ glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC) load(userptr, "glVertexArrayVertexBuffer");
+ glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC) load(userptr, "glVertexArrayVertexBuffers");
+}
+static void glad_gl_load_GL_ARB_draw_buffers( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_draw_buffers) return;
+ glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC) load(userptr, "glDrawBuffersARB");
+}
+static void glad_gl_load_GL_ARB_draw_buffers_blend( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_draw_buffers_blend) return;
+ glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC) load(userptr, "glBlendEquationSeparateiARB");
+ glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC) load(userptr, "glBlendEquationiARB");
+ glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC) load(userptr, "glBlendFuncSeparateiARB");
+ glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC) load(userptr, "glBlendFunciARB");
+}
+static void glad_gl_load_GL_ARB_draw_elements_base_vertex( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_draw_elements_base_vertex) return;
+ glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex");
+ glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex");
+ glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex");
+ glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex");
+}
+static void glad_gl_load_GL_ARB_draw_indirect( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_draw_indirect) return;
+ glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect");
+ glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect");
+}
+static void glad_gl_load_GL_ARB_draw_instanced( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_draw_instanced) return;
+ glad_glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC) load(userptr, "glDrawArraysInstancedARB");
+ glad_glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC) load(userptr, "glDrawElementsInstancedARB");
+}
+static void glad_gl_load_GL_ARB_fragment_program( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_fragment_program) return;
+ glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) load(userptr, "glBindProgramARB");
+ glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) load(userptr, "glDeleteProgramsARB");
+ glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) load(userptr, "glGenProgramsARB");
+ glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC) load(userptr, "glGetProgramEnvParameterdvARB");
+ glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) load(userptr, "glGetProgramEnvParameterfvARB");
+ glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) load(userptr, "glGetProgramLocalParameterdvARB");
+ glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) load(userptr, "glGetProgramLocalParameterfvARB");
+ glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC) load(userptr, "glGetProgramStringARB");
+ glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) load(userptr, "glGetProgramivARB");
+ glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC) load(userptr, "glIsProgramARB");
+ glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC) load(userptr, "glProgramEnvParameter4dARB");
+ glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC) load(userptr, "glProgramEnvParameter4dvARB");
+ glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) load(userptr, "glProgramEnvParameter4fARB");
+ glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) load(userptr, "glProgramEnvParameter4fvARB");
+ glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) load(userptr, "glProgramLocalParameter4dARB");
+ glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) load(userptr, "glProgramLocalParameter4dvARB");
+ glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) load(userptr, "glProgramLocalParameter4fARB");
+ glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) load(userptr, "glProgramLocalParameter4fvARB");
+ glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) load(userptr, "glProgramStringARB");
+}
+static void glad_gl_load_GL_ARB_framebuffer_no_attachments( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_framebuffer_no_attachments) return;
+ glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri");
+ glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv");
+}
+static void glad_gl_load_GL_ARB_framebuffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_framebuffer_object) return;
+ glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
+ glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
+ glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer");
+ glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
+ glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
+ glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
+ glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
+ glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D");
+ glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
+ glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D");
+ glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer");
+ glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
+ glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
+ glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
+ glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
+ glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
+ glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
+ glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
+ glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
+ glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample");
+}
+static void glad_gl_load_GL_ARB_geometry_shader4( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_geometry_shader4) return;
+ glad_glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC) load(userptr, "glFramebufferTextureARB");
+ glad_glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) load(userptr, "glFramebufferTextureFaceARB");
+ glad_glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) load(userptr, "glFramebufferTextureLayerARB");
+ glad_glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC) load(userptr, "glProgramParameteriARB");
+}
+static void glad_gl_load_GL_ARB_get_program_binary( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_get_program_binary) return;
+ glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary");
+ glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary");
+ glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri");
+}
+static void glad_gl_load_GL_ARB_get_texture_sub_image( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_get_texture_sub_image) return;
+ glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) load(userptr, "glGetCompressedTextureSubImage");
+ glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC) load(userptr, "glGetTextureSubImage");
+}
+static void glad_gl_load_GL_ARB_gl_spirv( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_gl_spirv) return;
+ glad_glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC) load(userptr, "glSpecializeShaderARB");
+}
+static void glad_gl_load_GL_ARB_gpu_shader_fp64( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_gpu_shader_fp64) return;
+ glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv");
+ glad_glUniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d");
+ glad_glUniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv");
+ glad_glUniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d");
+ glad_glUniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv");
+ glad_glUniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d");
+ glad_glUniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv");
+ glad_glUniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d");
+ glad_glUniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv");
+ glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv");
+ glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv");
+ glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv");
+ glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv");
+ glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv");
+ glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv");
+ glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv");
+ glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv");
+ glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv");
+}
+static void glad_gl_load_GL_ARB_gpu_shader_int64( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_gpu_shader_int64) return;
+ glad_glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC) load(userptr, "glGetUniformi64vARB");
+ glad_glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC) load(userptr, "glGetUniformui64vARB");
+ glad_glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC) load(userptr, "glGetnUniformi64vARB");
+ glad_glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC) load(userptr, "glGetnUniformui64vARB");
+ glad_glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC) load(userptr, "glProgramUniform1i64ARB");
+ glad_glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC) load(userptr, "glProgramUniform1i64vARB");
+ glad_glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC) load(userptr, "glProgramUniform1ui64ARB");
+ glad_glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC) load(userptr, "glProgramUniform1ui64vARB");
+ glad_glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC) load(userptr, "glProgramUniform2i64ARB");
+ glad_glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC) load(userptr, "glProgramUniform2i64vARB");
+ glad_glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC) load(userptr, "glProgramUniform2ui64ARB");
+ glad_glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC) load(userptr, "glProgramUniform2ui64vARB");
+ glad_glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC) load(userptr, "glProgramUniform3i64ARB");
+ glad_glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC) load(userptr, "glProgramUniform3i64vARB");
+ glad_glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC) load(userptr, "glProgramUniform3ui64ARB");
+ glad_glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC) load(userptr, "glProgramUniform3ui64vARB");
+ glad_glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC) load(userptr, "glProgramUniform4i64ARB");
+ glad_glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC) load(userptr, "glProgramUniform4i64vARB");
+ glad_glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC) load(userptr, "glProgramUniform4ui64ARB");
+ glad_glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC) load(userptr, "glProgramUniform4ui64vARB");
+ glad_glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC) load(userptr, "glUniform1i64ARB");
+ glad_glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC) load(userptr, "glUniform1i64vARB");
+ glad_glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC) load(userptr, "glUniform1ui64ARB");
+ glad_glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC) load(userptr, "glUniform1ui64vARB");
+ glad_glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC) load(userptr, "glUniform2i64ARB");
+ glad_glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC) load(userptr, "glUniform2i64vARB");
+ glad_glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC) load(userptr, "glUniform2ui64ARB");
+ glad_glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC) load(userptr, "glUniform2ui64vARB");
+ glad_glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC) load(userptr, "glUniform3i64ARB");
+ glad_glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC) load(userptr, "glUniform3i64vARB");
+ glad_glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC) load(userptr, "glUniform3ui64ARB");
+ glad_glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC) load(userptr, "glUniform3ui64vARB");
+ glad_glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC) load(userptr, "glUniform4i64ARB");
+ glad_glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC) load(userptr, "glUniform4i64vARB");
+ glad_glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC) load(userptr, "glUniform4ui64ARB");
+ glad_glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC) load(userptr, "glUniform4ui64vARB");
+}
+static void glad_gl_load_GL_ARB_instanced_arrays( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_instanced_arrays) return;
+ glad_glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC) load(userptr, "glVertexAttribDivisorARB");
+}
+static void glad_gl_load_GL_ARB_internalformat_query( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_internalformat_query) return;
+ glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ");
+}
+static void glad_gl_load_GL_ARB_internalformat_query2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_internalformat_query2) return;
+ glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v");
+}
+static void glad_gl_load_GL_ARB_map_buffer_range( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_map_buffer_range) return;
+ glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange");
+ glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange");
+}
+static void glad_gl_load_GL_ARB_multi_bind( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_multi_bind) return;
+ glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC) load(userptr, "glBindBuffersBase");
+ glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC) load(userptr, "glBindBuffersRange");
+ glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC) load(userptr, "glBindImageTextures");
+ glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC) load(userptr, "glBindSamplers");
+ glad_glBindTextures = (PFNGLBINDTEXTURESPROC) load(userptr, "glBindTextures");
+ glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC) load(userptr, "glBindVertexBuffers");
+}
+static void glad_gl_load_GL_ARB_multi_draw_indirect( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_multi_draw_indirect) return;
+ glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect");
+ glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect");
+}
+static void glad_gl_load_GL_ARB_multisample( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_multisample) return;
+ glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC) load(userptr, "glSampleCoverageARB");
+}
+static void glad_gl_load_GL_ARB_multitexture( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_multitexture) return;
+ glad_glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) load(userptr, "glActiveTextureARB");
+ glad_glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC) load(userptr, "glClientActiveTextureARB");
+ glad_glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC) load(userptr, "glMultiTexCoord1dARB");
+ glad_glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC) load(userptr, "glMultiTexCoord1dvARB");
+ glad_glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC) load(userptr, "glMultiTexCoord1fARB");
+ glad_glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC) load(userptr, "glMultiTexCoord1fvARB");
+ glad_glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC) load(userptr, "glMultiTexCoord1iARB");
+ glad_glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC) load(userptr, "glMultiTexCoord1ivARB");
+ glad_glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC) load(userptr, "glMultiTexCoord1sARB");
+ glad_glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC) load(userptr, "glMultiTexCoord1svARB");
+ glad_glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC) load(userptr, "glMultiTexCoord2dARB");
+ glad_glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC) load(userptr, "glMultiTexCoord2dvARB");
+ glad_glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) load(userptr, "glMultiTexCoord2fARB");
+ glad_glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC) load(userptr, "glMultiTexCoord2fvARB");
+ glad_glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC) load(userptr, "glMultiTexCoord2iARB");
+ glad_glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC) load(userptr, "glMultiTexCoord2ivARB");
+ glad_glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC) load(userptr, "glMultiTexCoord2sARB");
+ glad_glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC) load(userptr, "glMultiTexCoord2svARB");
+ glad_glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC) load(userptr, "glMultiTexCoord3dARB");
+ glad_glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC) load(userptr, "glMultiTexCoord3dvARB");
+ glad_glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC) load(userptr, "glMultiTexCoord3fARB");
+ glad_glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC) load(userptr, "glMultiTexCoord3fvARB");
+ glad_glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC) load(userptr, "glMultiTexCoord3iARB");
+ glad_glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC) load(userptr, "glMultiTexCoord3ivARB");
+ glad_glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC) load(userptr, "glMultiTexCoord3sARB");
+ glad_glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC) load(userptr, "glMultiTexCoord3svARB");
+ glad_glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC) load(userptr, "glMultiTexCoord4dARB");
+ glad_glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC) load(userptr, "glMultiTexCoord4dvARB");
+ glad_glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC) load(userptr, "glMultiTexCoord4fARB");
+ glad_glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC) load(userptr, "glMultiTexCoord4fvARB");
+ glad_glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC) load(userptr, "glMultiTexCoord4iARB");
+ glad_glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC) load(userptr, "glMultiTexCoord4ivARB");
+ glad_glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC) load(userptr, "glMultiTexCoord4sARB");
+ glad_glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC) load(userptr, "glMultiTexCoord4svARB");
+}
+static void glad_gl_load_GL_ARB_occlusion_query( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_occlusion_query) return;
+ glad_glBeginQueryARB = (PFNGLBEGINQUERYARBPROC) load(userptr, "glBeginQueryARB");
+ glad_glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC) load(userptr, "glDeleteQueriesARB");
+ glad_glEndQueryARB = (PFNGLENDQUERYARBPROC) load(userptr, "glEndQueryARB");
+ glad_glGenQueriesARB = (PFNGLGENQUERIESARBPROC) load(userptr, "glGenQueriesARB");
+ glad_glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC) load(userptr, "glGetQueryObjectivARB");
+ glad_glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC) load(userptr, "glGetQueryObjectuivARB");
+ glad_glGetQueryivARB = (PFNGLGETQUERYIVARBPROC) load(userptr, "glGetQueryivARB");
+ glad_glIsQueryARB = (PFNGLISQUERYARBPROC) load(userptr, "glIsQueryARB");
+}
+static void glad_gl_load_GL_ARB_sample_locations( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_sample_locations) return;
+ glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC) load(userptr, "glEvaluateDepthValuesARB");
+ glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) load(userptr, "glFramebufferSampleLocationsfvARB");
+ glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) load(userptr, "glNamedFramebufferSampleLocationsfvARB");
+}
+static void glad_gl_load_GL_ARB_sample_shading( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_sample_shading) return;
+ glad_glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC) load(userptr, "glMinSampleShadingARB");
+}
+static void glad_gl_load_GL_ARB_shader_atomic_counters( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_shader_atomic_counters) return;
+ glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv");
+}
+static void glad_gl_load_GL_ARB_shader_image_load_store( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_shader_image_load_store) return;
+ glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture");
+ glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier");
+}
+static void glad_gl_load_GL_ARB_shader_objects( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_shader_objects) return;
+ glad_glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) load(userptr, "glAttachObjectARB");
+ glad_glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) load(userptr, "glCompileShaderARB");
+ glad_glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) load(userptr, "glCreateProgramObjectARB");
+ glad_glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) load(userptr, "glCreateShaderObjectARB");
+ glad_glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) load(userptr, "glDeleteObjectARB");
+ glad_glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC) load(userptr, "glDetachObjectARB");
+ glad_glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC) load(userptr, "glGetActiveUniformARB");
+ glad_glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC) load(userptr, "glGetAttachedObjectsARB");
+ glad_glGetHandleARB = (PFNGLGETHANDLEARBPROC) load(userptr, "glGetHandleARB");
+ glad_glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) load(userptr, "glGetInfoLogARB");
+ glad_glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC) load(userptr, "glGetObjectParameterfvARB");
+ glad_glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) load(userptr, "glGetObjectParameterivARB");
+ glad_glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC) load(userptr, "glGetShaderSourceARB");
+ glad_glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) load(userptr, "glGetUniformLocationARB");
+ glad_glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC) load(userptr, "glGetUniformfvARB");
+ glad_glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC) load(userptr, "glGetUniformivARB");
+ glad_glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) load(userptr, "glLinkProgramARB");
+ glad_glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) load(userptr, "glShaderSourceARB");
+ glad_glUniform1fARB = (PFNGLUNIFORM1FARBPROC) load(userptr, "glUniform1fARB");
+ glad_glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC) load(userptr, "glUniform1fvARB");
+ glad_glUniform1iARB = (PFNGLUNIFORM1IARBPROC) load(userptr, "glUniform1iARB");
+ glad_glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC) load(userptr, "glUniform1ivARB");
+ glad_glUniform2fARB = (PFNGLUNIFORM2FARBPROC) load(userptr, "glUniform2fARB");
+ glad_glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC) load(userptr, "glUniform2fvARB");
+ glad_glUniform2iARB = (PFNGLUNIFORM2IARBPROC) load(userptr, "glUniform2iARB");
+ glad_glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC) load(userptr, "glUniform2ivARB");
+ glad_glUniform3fARB = (PFNGLUNIFORM3FARBPROC) load(userptr, "glUniform3fARB");
+ glad_glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC) load(userptr, "glUniform3fvARB");
+ glad_glUniform3iARB = (PFNGLUNIFORM3IARBPROC) load(userptr, "glUniform3iARB");
+ glad_glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC) load(userptr, "glUniform3ivARB");
+ glad_glUniform4fARB = (PFNGLUNIFORM4FARBPROC) load(userptr, "glUniform4fARB");
+ glad_glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC) load(userptr, "glUniform4fvARB");
+ glad_glUniform4iARB = (PFNGLUNIFORM4IARBPROC) load(userptr, "glUniform4iARB");
+ glad_glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC) load(userptr, "glUniform4ivARB");
+ glad_glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC) load(userptr, "glUniformMatrix2fvARB");
+ glad_glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC) load(userptr, "glUniformMatrix3fvARB");
+ glad_glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC) load(userptr, "glUniformMatrix4fvARB");
+ glad_glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) load(userptr, "glUseProgramObjectARB");
+ glad_glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC) load(userptr, "glValidateProgramARB");
+}
+static void glad_gl_load_GL_ARB_shader_storage_buffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_shader_storage_buffer_object) return;
+ glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding");
+}
+static void glad_gl_load_GL_ARB_shading_language_include( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_shading_language_include) return;
+ glad_glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC) load(userptr, "glCompileShaderIncludeARB");
+ glad_glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC) load(userptr, "glDeleteNamedStringARB");
+ glad_glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC) load(userptr, "glGetNamedStringARB");
+ glad_glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC) load(userptr, "glGetNamedStringivARB");
+ glad_glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC) load(userptr, "glIsNamedStringARB");
+ glad_glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC) load(userptr, "glNamedStringARB");
+}
+static void glad_gl_load_GL_ARB_tessellation_shader( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_tessellation_shader) return;
+ glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv");
+ glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri");
+}
+static void glad_gl_load_GL_ARB_texture_compression( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_texture_compression) return;
+ glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) load(userptr, "glCompressedTexImage1DARB");
+ glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) load(userptr, "glCompressedTexImage2DARB");
+ glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) load(userptr, "glCompressedTexImage3DARB");
+ glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) load(userptr, "glCompressedTexSubImage1DARB");
+ glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) load(userptr, "glCompressedTexSubImage2DARB");
+ glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) load(userptr, "glCompressedTexSubImage3DARB");
+ glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) load(userptr, "glGetCompressedTexImageARB");
+}
+static void glad_gl_load_GL_ARB_texture_multisample( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_texture_multisample) return;
+ glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv");
+ glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski");
+ glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample");
+ glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample");
+}
+static void glad_gl_load_GL_ARB_texture_storage( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_texture_storage) return;
+ glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D");
+ glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D");
+ glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D");
+}
+static void glad_gl_load_GL_ARB_texture_view( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_texture_view) return;
+ glad_glTextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView");
+}
+static void glad_gl_load_GL_ARB_timer_query( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_timer_query) return;
+ glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v");
+ glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v");
+ glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter");
+}
+static void glad_gl_load_GL_ARB_transpose_matrix( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_transpose_matrix) return;
+ glad_glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC) load(userptr, "glLoadTransposeMatrixdARB");
+ glad_glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC) load(userptr, "glLoadTransposeMatrixfARB");
+ glad_glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC) load(userptr, "glMultTransposeMatrixdARB");
+ glad_glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC) load(userptr, "glMultTransposeMatrixfARB");
+}
+static void glad_gl_load_GL_ARB_uniform_buffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_uniform_buffer_object) return;
+ glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase");
+ glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange");
+ glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName");
+ glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv");
+ glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName");
+ glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv");
+ glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v");
+ glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex");
+ glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices");
+ glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding");
+}
+static void glad_gl_load_GL_ARB_vertex_array_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_vertex_array_object) return;
+ glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray");
+ glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays");
+ glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays");
+ glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray");
+}
+static void glad_gl_load_GL_ARB_vertex_attrib_binding( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_vertex_attrib_binding) return;
+ glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer");
+ glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding");
+ glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat");
+ glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat");
+ glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat");
+ glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor");
+}
+static void glad_gl_load_GL_ARB_vertex_buffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_vertex_buffer_object) return;
+ glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC) load(userptr, "glBindBufferARB");
+ glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC) load(userptr, "glBufferDataARB");
+ glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC) load(userptr, "glBufferSubDataARB");
+ glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) load(userptr, "glDeleteBuffersARB");
+ glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) load(userptr, "glGenBuffersARB");
+ glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC) load(userptr, "glGetBufferParameterivARB");
+ glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC) load(userptr, "glGetBufferPointervARB");
+ glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC) load(userptr, "glGetBufferSubDataARB");
+ glad_glIsBufferARB = (PFNGLISBUFFERARBPROC) load(userptr, "glIsBufferARB");
+ glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) load(userptr, "glMapBufferARB");
+ glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC) load(userptr, "glUnmapBufferARB");
+}
+static void glad_gl_load_GL_ARB_vertex_program( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_vertex_program) return;
+ glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) load(userptr, "glBindProgramARB");
+ glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) load(userptr, "glDeleteProgramsARB");
+ glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glDisableVertexAttribArrayARB");
+ glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glEnableVertexAttribArrayARB");
+ glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) load(userptr, "glGenProgramsARB");
+ glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC) load(userptr, "glGetProgramEnvParameterdvARB");
+ glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) load(userptr, "glGetProgramEnvParameterfvARB");
+ glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) load(userptr, "glGetProgramLocalParameterdvARB");
+ glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) load(userptr, "glGetProgramLocalParameterfvARB");
+ glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC) load(userptr, "glGetProgramStringARB");
+ glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) load(userptr, "glGetProgramivARB");
+ glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC) load(userptr, "glGetVertexAttribPointervARB");
+ glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) load(userptr, "glGetVertexAttribdvARB");
+ glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) load(userptr, "glGetVertexAttribfvARB");
+ glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) load(userptr, "glGetVertexAttribivARB");
+ glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC) load(userptr, "glIsProgramARB");
+ glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC) load(userptr, "glProgramEnvParameter4dARB");
+ glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC) load(userptr, "glProgramEnvParameter4dvARB");
+ glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) load(userptr, "glProgramEnvParameter4fARB");
+ glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) load(userptr, "glProgramEnvParameter4fvARB");
+ glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) load(userptr, "glProgramLocalParameter4dARB");
+ glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) load(userptr, "glProgramLocalParameter4dvARB");
+ glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) load(userptr, "glProgramLocalParameter4fARB");
+ glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) load(userptr, "glProgramLocalParameter4fvARB");
+ glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) load(userptr, "glProgramStringARB");
+ glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC) load(userptr, "glVertexAttrib1dARB");
+ glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) load(userptr, "glVertexAttrib1dvARB");
+ glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC) load(userptr, "glVertexAttrib1fARB");
+ glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) load(userptr, "glVertexAttrib1fvARB");
+ glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC) load(userptr, "glVertexAttrib1sARB");
+ glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) load(userptr, "glVertexAttrib1svARB");
+ glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC) load(userptr, "glVertexAttrib2dARB");
+ glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC) load(userptr, "glVertexAttrib2dvARB");
+ glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC) load(userptr, "glVertexAttrib2fARB");
+ glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC) load(userptr, "glVertexAttrib2fvARB");
+ glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC) load(userptr, "glVertexAttrib2sARB");
+ glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC) load(userptr, "glVertexAttrib2svARB");
+ glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC) load(userptr, "glVertexAttrib3dARB");
+ glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC) load(userptr, "glVertexAttrib3dvARB");
+ glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) load(userptr, "glVertexAttrib3fARB");
+ glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) load(userptr, "glVertexAttrib3fvARB");
+ glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC) load(userptr, "glVertexAttrib3sARB");
+ glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC) load(userptr, "glVertexAttrib3svARB");
+ glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC) load(userptr, "glVertexAttrib4NbvARB");
+ glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC) load(userptr, "glVertexAttrib4NivARB");
+ glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) load(userptr, "glVertexAttrib4NsvARB");
+ glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC) load(userptr, "glVertexAttrib4NubARB");
+ glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) load(userptr, "glVertexAttrib4NubvARB");
+ glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) load(userptr, "glVertexAttrib4NuivARB");
+ glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) load(userptr, "glVertexAttrib4NusvARB");
+ glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC) load(userptr, "glVertexAttrib4bvARB");
+ glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC) load(userptr, "glVertexAttrib4dARB");
+ glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC) load(userptr, "glVertexAttrib4dvARB");
+ glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) load(userptr, "glVertexAttrib4fARB");
+ glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) load(userptr, "glVertexAttrib4fvARB");
+ glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) load(userptr, "glVertexAttrib4ivARB");
+ glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC) load(userptr, "glVertexAttrib4sARB");
+ glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC) load(userptr, "glVertexAttrib4svARB");
+ glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC) load(userptr, "glVertexAttrib4ubvARB");
+ glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) load(userptr, "glVertexAttrib4uivARB");
+ glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) load(userptr, "glVertexAttrib4usvARB");
+ glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) load(userptr, "glVertexAttribPointerARB");
+}
+static void glad_gl_load_GL_ARB_vertex_shader( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ARB_vertex_shader) return;
+ glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC) load(userptr, "glBindAttribLocationARB");
+ glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glDisableVertexAttribArrayARB");
+ glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glEnableVertexAttribArrayARB");
+ glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC) load(userptr, "glGetActiveAttribARB");
+ glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC) load(userptr, "glGetAttribLocationARB");
+ glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC) load(userptr, "glGetVertexAttribPointervARB");
+ glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) load(userptr, "glGetVertexAttribdvARB");
+ glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) load(userptr, "glGetVertexAttribfvARB");
+ glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) load(userptr, "glGetVertexAttribivARB");
+ glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC) load(userptr, "glVertexAttrib1dARB");
+ glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) load(userptr, "glVertexAttrib1dvARB");
+ glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC) load(userptr, "glVertexAttrib1fARB");
+ glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) load(userptr, "glVertexAttrib1fvARB");
+ glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC) load(userptr, "glVertexAttrib1sARB");
+ glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) load(userptr, "glVertexAttrib1svARB");
+ glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC) load(userptr, "glVertexAttrib2dARB");
+ glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC) load(userptr, "glVertexAttrib2dvARB");
+ glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC) load(userptr, "glVertexAttrib2fARB");
+ glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC) load(userptr, "glVertexAttrib2fvARB");
+ glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC) load(userptr, "glVertexAttrib2sARB");
+ glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC) load(userptr, "glVertexAttrib2svARB");
+ glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC) load(userptr, "glVertexAttrib3dARB");
+ glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC) load(userptr, "glVertexAttrib3dvARB");
+ glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) load(userptr, "glVertexAttrib3fARB");
+ glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) load(userptr, "glVertexAttrib3fvARB");
+ glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC) load(userptr, "glVertexAttrib3sARB");
+ glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC) load(userptr, "glVertexAttrib3svARB");
+ glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC) load(userptr, "glVertexAttrib4NbvARB");
+ glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC) load(userptr, "glVertexAttrib4NivARB");
+ glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) load(userptr, "glVertexAttrib4NsvARB");
+ glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC) load(userptr, "glVertexAttrib4NubARB");
+ glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) load(userptr, "glVertexAttrib4NubvARB");
+ glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) load(userptr, "glVertexAttrib4NuivARB");
+ glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) load(userptr, "glVertexAttrib4NusvARB");
+ glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC) load(userptr, "glVertexAttrib4bvARB");
+ glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC) load(userptr, "glVertexAttrib4dARB");
+ glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC) load(userptr, "glVertexAttrib4dvARB");
+ glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) load(userptr, "glVertexAttrib4fARB");
+ glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) load(userptr, "glVertexAttrib4fvARB");
+ glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) load(userptr, "glVertexAttrib4ivARB");
+ glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC) load(userptr, "glVertexAttrib4sARB");
+ glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC) load(userptr, "glVertexAttrib4svARB");
+ glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC) load(userptr, "glVertexAttrib4ubvARB");
+ glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) load(userptr, "glVertexAttrib4uivARB");
+ glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) load(userptr, "glVertexAttrib4usvARB");
+ glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) load(userptr, "glVertexAttribPointerARB");
+}
+static void glad_gl_load_GL_EXT_fog_coord( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_EXT_fog_coord) return;
+ glad_glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC) load(userptr, "glFogCoordPointerEXT");
+ glad_glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC) load(userptr, "glFogCoorddEXT");
+ glad_glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC) load(userptr, "glFogCoorddvEXT");
+ glad_glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC) load(userptr, "glFogCoordfEXT");
+ glad_glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC) load(userptr, "glFogCoordfvEXT");
+}
+static void glad_gl_load_GL_EXT_framebuffer_blit( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_EXT_framebuffer_blit) return;
+ glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC) load(userptr, "glBlitFramebufferEXT");
+}
+static void glad_gl_load_GL_EXT_framebuffer_multisample( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_EXT_framebuffer_multisample) return;
+ glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) load(userptr, "glRenderbufferStorageMultisampleEXT");
+}
+static void glad_gl_load_GL_EXT_framebuffer_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_EXT_framebuffer_object) return;
+ glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC) load(userptr, "glBindFramebufferEXT");
+ glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC) load(userptr, "glBindRenderbufferEXT");
+ glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) load(userptr, "glCheckFramebufferStatusEXT");
+ glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC) load(userptr, "glDeleteFramebuffersEXT");
+ glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC) load(userptr, "glDeleteRenderbuffersEXT");
+ glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) load(userptr, "glFramebufferRenderbufferEXT");
+ glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) load(userptr, "glFramebufferTexture1DEXT");
+ glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) load(userptr, "glFramebufferTexture2DEXT");
+ glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) load(userptr, "glFramebufferTexture3DEXT");
+ glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC) load(userptr, "glGenFramebuffersEXT");
+ glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC) load(userptr, "glGenRenderbuffersEXT");
+ glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC) load(userptr, "glGenerateMipmapEXT");
+ glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) load(userptr, "glGetFramebufferAttachmentParameterivEXT");
+ glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) load(userptr, "glGetRenderbufferParameterivEXT");
+ glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC) load(userptr, "glIsFramebufferEXT");
+ glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC) load(userptr, "glIsRenderbufferEXT");
+ glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC) load(userptr, "glRenderbufferStorageEXT");
+}
+static void glad_gl_load_GL_OES_fixed_point( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_OES_fixed_point) return;
+ glad_glAccumxOES = (PFNGLACCUMXOESPROC) load(userptr, "glAccumxOES");
+ glad_glAlphaFuncxOES = (PFNGLALPHAFUNCXOESPROC) load(userptr, "glAlphaFuncxOES");
+ glad_glBitmapxOES = (PFNGLBITMAPXOESPROC) load(userptr, "glBitmapxOES");
+ glad_glBlendColorxOES = (PFNGLBLENDCOLORXOESPROC) load(userptr, "glBlendColorxOES");
+ glad_glClearAccumxOES = (PFNGLCLEARACCUMXOESPROC) load(userptr, "glClearAccumxOES");
+ glad_glClearColorxOES = (PFNGLCLEARCOLORXOESPROC) load(userptr, "glClearColorxOES");
+ glad_glClearDepthxOES = (PFNGLCLEARDEPTHXOESPROC) load(userptr, "glClearDepthxOES");
+ glad_glClipPlanexOES = (PFNGLCLIPPLANEXOESPROC) load(userptr, "glClipPlanexOES");
+ glad_glColor3xOES = (PFNGLCOLOR3XOESPROC) load(userptr, "glColor3xOES");
+ glad_glColor3xvOES = (PFNGLCOLOR3XVOESPROC) load(userptr, "glColor3xvOES");
+ glad_glColor4xOES = (PFNGLCOLOR4XOESPROC) load(userptr, "glColor4xOES");
+ glad_glColor4xvOES = (PFNGLCOLOR4XVOESPROC) load(userptr, "glColor4xvOES");
+ glad_glConvolutionParameterxOES = (PFNGLCONVOLUTIONPARAMETERXOESPROC) load(userptr, "glConvolutionParameterxOES");
+ glad_glConvolutionParameterxvOES = (PFNGLCONVOLUTIONPARAMETERXVOESPROC) load(userptr, "glConvolutionParameterxvOES");
+ glad_glDepthRangexOES = (PFNGLDEPTHRANGEXOESPROC) load(userptr, "glDepthRangexOES");
+ glad_glEvalCoord1xOES = (PFNGLEVALCOORD1XOESPROC) load(userptr, "glEvalCoord1xOES");
+ glad_glEvalCoord1xvOES = (PFNGLEVALCOORD1XVOESPROC) load(userptr, "glEvalCoord1xvOES");
+ glad_glEvalCoord2xOES = (PFNGLEVALCOORD2XOESPROC) load(userptr, "glEvalCoord2xOES");
+ glad_glEvalCoord2xvOES = (PFNGLEVALCOORD2XVOESPROC) load(userptr, "glEvalCoord2xvOES");
+ glad_glFeedbackBufferxOES = (PFNGLFEEDBACKBUFFERXOESPROC) load(userptr, "glFeedbackBufferxOES");
+ glad_glFogxOES = (PFNGLFOGXOESPROC) load(userptr, "glFogxOES");
+ glad_glFogxvOES = (PFNGLFOGXVOESPROC) load(userptr, "glFogxvOES");
+ glad_glFrustumxOES = (PFNGLFRUSTUMXOESPROC) load(userptr, "glFrustumxOES");
+ glad_glGetClipPlanexOES = (PFNGLGETCLIPPLANEXOESPROC) load(userptr, "glGetClipPlanexOES");
+ glad_glGetConvolutionParameterxvOES = (PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) load(userptr, "glGetConvolutionParameterxvOES");
+ glad_glGetFixedvOES = (PFNGLGETFIXEDVOESPROC) load(userptr, "glGetFixedvOES");
+ glad_glGetHistogramParameterxvOES = (PFNGLGETHISTOGRAMPARAMETERXVOESPROC) load(userptr, "glGetHistogramParameterxvOES");
+ glad_glGetLightxOES = (PFNGLGETLIGHTXOESPROC) load(userptr, "glGetLightxOES");
+ glad_glGetMapxvOES = (PFNGLGETMAPXVOESPROC) load(userptr, "glGetMapxvOES");
+ glad_glGetMaterialxOES = (PFNGLGETMATERIALXOESPROC) load(userptr, "glGetMaterialxOES");
+ glad_glGetPixelMapxv = (PFNGLGETPIXELMAPXVPROC) load(userptr, "glGetPixelMapxv");
+ glad_glGetTexEnvxvOES = (PFNGLGETTEXENVXVOESPROC) load(userptr, "glGetTexEnvxvOES");
+ glad_glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC) load(userptr, "glGetTexGenxvOES");
+ glad_glGetTexLevelParameterxvOES = (PFNGLGETTEXLEVELPARAMETERXVOESPROC) load(userptr, "glGetTexLevelParameterxvOES");
+ glad_glGetTexParameterxvOES = (PFNGLGETTEXPARAMETERXVOESPROC) load(userptr, "glGetTexParameterxvOES");
+ glad_glIndexxOES = (PFNGLINDEXXOESPROC) load(userptr, "glIndexxOES");
+ glad_glIndexxvOES = (PFNGLINDEXXVOESPROC) load(userptr, "glIndexxvOES");
+ glad_glLightModelxOES = (PFNGLLIGHTMODELXOESPROC) load(userptr, "glLightModelxOES");
+ glad_glLightModelxvOES = (PFNGLLIGHTMODELXVOESPROC) load(userptr, "glLightModelxvOES");
+ glad_glLightxOES = (PFNGLLIGHTXOESPROC) load(userptr, "glLightxOES");
+ glad_glLightxvOES = (PFNGLLIGHTXVOESPROC) load(userptr, "glLightxvOES");
+ glad_glLineWidthxOES = (PFNGLLINEWIDTHXOESPROC) load(userptr, "glLineWidthxOES");
+ glad_glLoadMatrixxOES = (PFNGLLOADMATRIXXOESPROC) load(userptr, "glLoadMatrixxOES");
+ glad_glLoadTransposeMatrixxOES = (PFNGLLOADTRANSPOSEMATRIXXOESPROC) load(userptr, "glLoadTransposeMatrixxOES");
+ glad_glMap1xOES = (PFNGLMAP1XOESPROC) load(userptr, "glMap1xOES");
+ glad_glMap2xOES = (PFNGLMAP2XOESPROC) load(userptr, "glMap2xOES");
+ glad_glMapGrid1xOES = (PFNGLMAPGRID1XOESPROC) load(userptr, "glMapGrid1xOES");
+ glad_glMapGrid2xOES = (PFNGLMAPGRID2XOESPROC) load(userptr, "glMapGrid2xOES");
+ glad_glMaterialxOES = (PFNGLMATERIALXOESPROC) load(userptr, "glMaterialxOES");
+ glad_glMaterialxvOES = (PFNGLMATERIALXVOESPROC) load(userptr, "glMaterialxvOES");
+ glad_glMultMatrixxOES = (PFNGLMULTMATRIXXOESPROC) load(userptr, "glMultMatrixxOES");
+ glad_glMultTransposeMatrixxOES = (PFNGLMULTTRANSPOSEMATRIXXOESPROC) load(userptr, "glMultTransposeMatrixxOES");
+ glad_glMultiTexCoord1xOES = (PFNGLMULTITEXCOORD1XOESPROC) load(userptr, "glMultiTexCoord1xOES");
+ glad_glMultiTexCoord1xvOES = (PFNGLMULTITEXCOORD1XVOESPROC) load(userptr, "glMultiTexCoord1xvOES");
+ glad_glMultiTexCoord2xOES = (PFNGLMULTITEXCOORD2XOESPROC) load(userptr, "glMultiTexCoord2xOES");
+ glad_glMultiTexCoord2xvOES = (PFNGLMULTITEXCOORD2XVOESPROC) load(userptr, "glMultiTexCoord2xvOES");
+ glad_glMultiTexCoord3xOES = (PFNGLMULTITEXCOORD3XOESPROC) load(userptr, "glMultiTexCoord3xOES");
+ glad_glMultiTexCoord3xvOES = (PFNGLMULTITEXCOORD3XVOESPROC) load(userptr, "glMultiTexCoord3xvOES");
+ glad_glMultiTexCoord4xOES = (PFNGLMULTITEXCOORD4XOESPROC) load(userptr, "glMultiTexCoord4xOES");
+ glad_glMultiTexCoord4xvOES = (PFNGLMULTITEXCOORD4XVOESPROC) load(userptr, "glMultiTexCoord4xvOES");
+ glad_glNormal3xOES = (PFNGLNORMAL3XOESPROC) load(userptr, "glNormal3xOES");
+ glad_glNormal3xvOES = (PFNGLNORMAL3XVOESPROC) load(userptr, "glNormal3xvOES");
+ glad_glOrthoxOES = (PFNGLORTHOXOESPROC) load(userptr, "glOrthoxOES");
+ glad_glPassThroughxOES = (PFNGLPASSTHROUGHXOESPROC) load(userptr, "glPassThroughxOES");
+ glad_glPixelMapx = (PFNGLPIXELMAPXPROC) load(userptr, "glPixelMapx");
+ glad_glPixelStorex = (PFNGLPIXELSTOREXPROC) load(userptr, "glPixelStorex");
+ glad_glPixelTransferxOES = (PFNGLPIXELTRANSFERXOESPROC) load(userptr, "glPixelTransferxOES");
+ glad_glPixelZoomxOES = (PFNGLPIXELZOOMXOESPROC) load(userptr, "glPixelZoomxOES");
+ glad_glPointParameterxvOES = (PFNGLPOINTPARAMETERXVOESPROC) load(userptr, "glPointParameterxvOES");
+ glad_glPointSizexOES = (PFNGLPOINTSIZEXOESPROC) load(userptr, "glPointSizexOES");
+ glad_glPolygonOffsetxOES = (PFNGLPOLYGONOFFSETXOESPROC) load(userptr, "glPolygonOffsetxOES");
+ glad_glPrioritizeTexturesxOES = (PFNGLPRIORITIZETEXTURESXOESPROC) load(userptr, "glPrioritizeTexturesxOES");
+ glad_glRasterPos2xOES = (PFNGLRASTERPOS2XOESPROC) load(userptr, "glRasterPos2xOES");
+ glad_glRasterPos2xvOES = (PFNGLRASTERPOS2XVOESPROC) load(userptr, "glRasterPos2xvOES");
+ glad_glRasterPos3xOES = (PFNGLRASTERPOS3XOESPROC) load(userptr, "glRasterPos3xOES");
+ glad_glRasterPos3xvOES = (PFNGLRASTERPOS3XVOESPROC) load(userptr, "glRasterPos3xvOES");
+ glad_glRasterPos4xOES = (PFNGLRASTERPOS4XOESPROC) load(userptr, "glRasterPos4xOES");
+ glad_glRasterPos4xvOES = (PFNGLRASTERPOS4XVOESPROC) load(userptr, "glRasterPos4xvOES");
+ glad_glRectxOES = (PFNGLRECTXOESPROC) load(userptr, "glRectxOES");
+ glad_glRectxvOES = (PFNGLRECTXVOESPROC) load(userptr, "glRectxvOES");
+ glad_glRotatexOES = (PFNGLROTATEXOESPROC) load(userptr, "glRotatexOES");
+ glad_glScalexOES = (PFNGLSCALEXOESPROC) load(userptr, "glScalexOES");
+ glad_glTexCoord1xOES = (PFNGLTEXCOORD1XOESPROC) load(userptr, "glTexCoord1xOES");
+ glad_glTexCoord1xvOES = (PFNGLTEXCOORD1XVOESPROC) load(userptr, "glTexCoord1xvOES");
+ glad_glTexCoord2xOES = (PFNGLTEXCOORD2XOESPROC) load(userptr, "glTexCoord2xOES");
+ glad_glTexCoord2xvOES = (PFNGLTEXCOORD2XVOESPROC) load(userptr, "glTexCoord2xvOES");
+ glad_glTexCoord3xOES = (PFNGLTEXCOORD3XOESPROC) load(userptr, "glTexCoord3xOES");
+ glad_glTexCoord3xvOES = (PFNGLTEXCOORD3XVOESPROC) load(userptr, "glTexCoord3xvOES");
+ glad_glTexCoord4xOES = (PFNGLTEXCOORD4XOESPROC) load(userptr, "glTexCoord4xOES");
+ glad_glTexCoord4xvOES = (PFNGLTEXCOORD4XVOESPROC) load(userptr, "glTexCoord4xvOES");
+ glad_glTexEnvxOES = (PFNGLTEXENVXOESPROC) load(userptr, "glTexEnvxOES");
+ glad_glTexEnvxvOES = (PFNGLTEXENVXVOESPROC) load(userptr, "glTexEnvxvOES");
+ glad_glTexGenxOES = (PFNGLTEXGENXOESPROC) load(userptr, "glTexGenxOES");
+ glad_glTexGenxvOES = (PFNGLTEXGENXVOESPROC) load(userptr, "glTexGenxvOES");
+ glad_glTexParameterxOES = (PFNGLTEXPARAMETERXOESPROC) load(userptr, "glTexParameterxOES");
+ glad_glTexParameterxvOES = (PFNGLTEXPARAMETERXVOESPROC) load(userptr, "glTexParameterxvOES");
+ glad_glTranslatexOES = (PFNGLTRANSLATEXOESPROC) load(userptr, "glTranslatexOES");
+ glad_glVertex2xOES = (PFNGLVERTEX2XOESPROC) load(userptr, "glVertex2xOES");
+ glad_glVertex2xvOES = (PFNGLVERTEX2XVOESPROC) load(userptr, "glVertex2xvOES");
+ glad_glVertex3xOES = (PFNGLVERTEX3XOESPROC) load(userptr, "glVertex3xOES");
+ glad_glVertex3xvOES = (PFNGLVERTEX3XVOESPROC) load(userptr, "glVertex3xvOES");
+ glad_glVertex4xOES = (PFNGLVERTEX4XOESPROC) load(userptr, "glVertex4xOES");
+ glad_glVertex4xvOES = (PFNGLVERTEX4XVOESPROC) load(userptr, "glVertex4xvOES");
+}
+
+
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
-#define _GLAD_IS_SOME_NEW_VERSION 1
+#define GLAD_GL_IS_SOME_NEW_VERSION 1
+#else
+#define GLAD_GL_IS_SOME_NEW_VERSION 0
#endif
-static int max_loaded_major;
-static int max_loaded_minor;
-
-static const char *exts = NULL;
-static int num_exts_i = 0;
-static const char **exts_i = NULL;
-
-static int get_exts(void) {
-#ifdef _GLAD_IS_SOME_NEW_VERSION
- if(max_loaded_major < 3) {
+static int glad_gl_get_extensions( int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) {
+#if GLAD_GL_IS_SOME_NEW_VERSION
+ if(GLAD_VERSION_MAJOR(version) < 3) {
+#else
+ (void) version;
+ (void) out_num_exts_i;
+ (void) out_exts_i;
#endif
- exts = (const char *)glGetString(GL_EXTENSIONS);
-#ifdef _GLAD_IS_SOME_NEW_VERSION
- } else {
- int index;
-
- num_exts_i = 0;
- glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
- if (num_exts_i > 0) {
- exts_i = (const char **)GLAD_REALLOC((void *)exts_i, num_exts_i * sizeof *exts_i);
+ if (glad_glGetString == NULL) {
+ return 0;
+ }
+ *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS);
+#if GLAD_GL_IS_SOME_NEW_VERSION
+ } else {
+ unsigned int index = 0;
+ unsigned int num_exts_i = 0;
+ char **exts_i = NULL;
+ if (glad_glGetStringi == NULL || glad_glGetIntegerv == NULL) {
+ return 0;
+ }
+ glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i);
+ if (num_exts_i > 0) {
+ exts_i = (char **) GLAD_MALLOC(num_exts_i * (sizeof *exts_i));
}
-
if (exts_i == NULL) {
return 0;
}
-
for(index = 0; index < num_exts_i; index++) {
- exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index);
+ const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index);
+ size_t len = strlen(gl_str_tmp) + 1;
+
+ char *local_str = (char*) GLAD_MALLOC(len * sizeof(char));
+ if(local_str != NULL) {
+ memcpy(local_str, gl_str_tmp, len * sizeof(char));
+ }
+
+ exts_i[index] = local_str;
}
+
+ *out_num_exts_i = num_exts_i;
+ *out_exts_i = exts_i;
}
#endif
return 1;
}
-
-static void free_exts(void) {
+static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) {
if (exts_i != NULL) {
- GLAD_FREE((char **)exts_i);
+ unsigned int index;
+ for(index = 0; index < num_exts_i; index++) {
+ GLAD_FREE((void *) (exts_i[index]));
+ }
+ GLAD_FREE((void *)exts_i);
exts_i = NULL;
}
}
-
-static int has_ext(const char *ext) {
-#ifdef _GLAD_IS_SOME_NEW_VERSION
- if(max_loaded_major < 3) {
-#endif
+static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) {
+ if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) {
const char *extensions;
const char *loc;
const char *terminator;
@@ -3801,13 +8337,11 @@ static int has_ext(const char *ext) {
if(extensions == NULL || ext == NULL) {
return 0;
}
-
while(1) {
loc = strstr(extensions, ext);
if(loc == NULL) {
return 0;
}
-
terminator = loc + strlen(ext);
if((loc == extensions || *(loc - 1) == ' ') &&
(*terminator == ' ' || *terminator == '\0')) {
@@ -3815,1574 +8349,159 @@ static int has_ext(const char *ext) {
}
extensions = terminator;
}
-#ifdef _GLAD_IS_SOME_NEW_VERSION
} else {
- int index;
-
+ unsigned int index;
for(index = 0; index < num_exts_i; index++) {
const char *e = exts_i[index];
-
if(strcmp(e, ext) == 0) {
return 1;
}
}
}
-#endif
-
return 0;
}
-int GLAD_GL_VERSION_1_0;
-int GLAD_GL_VERSION_1_1;
-int GLAD_GL_VERSION_1_2;
-int GLAD_GL_VERSION_1_3;
-int GLAD_GL_VERSION_1_4;
-int GLAD_GL_VERSION_1_5;
-int GLAD_GL_VERSION_2_0;
-int GLAD_GL_VERSION_2_1;
-int GLAD_GL_VERSION_3_0;
-int GLAD_GL_VERSION_3_1;
-int GLAD_GL_VERSION_3_2;
-int GLAD_GL_VERSION_3_3;
-PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
-PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
-PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
-PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
-PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
-PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
-PFNGLBINDSAMPLERPROC glad_glBindSampler;
-PFNGLLINEWIDTHPROC glad_glLineWidth;
-PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
-PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
-PFNGLCOMPILESHADERPROC glad_glCompileShader;
-PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
-PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
-PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
-PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
-PFNGLENABLEIPROC glad_glEnablei;
-PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
-PFNGLCREATESHADERPROC glad_glCreateShader;
-PFNGLISBUFFERPROC glad_glIsBuffer;
-PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
-PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
-PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
-PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
-PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
-PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
-PFNGLHINTPROC glad_glHint;
-PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
-PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
-PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
-PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
-PFNGLPOINTSIZEPROC glad_glPointSize;
-PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
-PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
-PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
-PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
-PFNGLWAITSYNCPROC glad_glWaitSync;
-PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
-PFNGLUNIFORM3IPROC glad_glUniform3i;
-PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
-PFNGLUNIFORM3FPROC glad_glUniform3f;
-PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
-PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
-PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
-PFNGLCOLORMASKIPROC glad_glColorMaski;
-PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
-PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
-PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
-PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
-PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
-PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
-PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
-PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
-PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
-PFNGLDRAWARRAYSPROC glad_glDrawArrays;
-PFNGLUNIFORM1UIPROC glad_glUniform1ui;
-PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
-PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
-PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
-PFNGLCLEARPROC glad_glClear;
-PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
-PFNGLISENABLEDPROC glad_glIsEnabled;
-PFNGLSTENCILOPPROC glad_glStencilOp;
-PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
-PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
-PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
-PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
-PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
-PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
-PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
-PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
-PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
-PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
-PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
-PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
-PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
-PFNGLGETQUERYIVPROC glad_glGetQueryiv;
-PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
-PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
-PFNGLISSHADERPROC glad_glIsShader;
-PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
-PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
-PFNGLENABLEPROC glad_glEnable;
-PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
-PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
-PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
-PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
-PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
-PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
-PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
-PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
-PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
-PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
-PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
-PFNGLFLUSHPROC glad_glFlush;
-PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
-PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
-PFNGLFENCESYNCPROC glad_glFenceSync;
-PFNGLCOLORP3UIPROC glad_glColorP3ui;
-PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
-PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
-PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
-PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
-PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
-PFNGLGENSAMPLERSPROC glad_glGenSamplers;
-PFNGLCLAMPCOLORPROC glad_glClampColor;
-PFNGLUNIFORM4IVPROC glad_glUniform4iv;
-PFNGLCLEARSTENCILPROC glad_glClearStencil;
-PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
-PFNGLGENTEXTURESPROC glad_glGenTextures;
-PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
-PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
-PFNGLISSYNCPROC glad_glIsSync;
-PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
-PFNGLUNIFORM2IPROC glad_glUniform2i;
-PFNGLUNIFORM2FPROC glad_glUniform2f;
-PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
-PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
-PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
-PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
-PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
-PFNGLGENQUERIESPROC glad_glGenQueries;
-PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
-PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
-PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
-PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
-PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
-PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
-PFNGLISENABLEDIPROC glad_glIsEnabledi;
-PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
-PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
-PFNGLUNIFORM2IVPROC glad_glUniform2iv;
-PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
-PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
-PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
-PFNGLGETSHADERIVPROC glad_glGetShaderiv;
-PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
-PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
-PFNGLGETDOUBLEVPROC glad_glGetDoublev;
-PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
-PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
-PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
-PFNGLUNIFORM3FVPROC glad_glUniform3fv;
-PFNGLDEPTHRANGEPROC glad_glDepthRange;
-PFNGLMAPBUFFERPROC glad_glMapBuffer;
-PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
-PFNGLDELETESYNCPROC glad_glDeleteSync;
-PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
-PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
-PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
-PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
-PFNGLUNIFORM3IVPROC glad_glUniform3iv;
-PFNGLPOLYGONMODEPROC glad_glPolygonMode;
-PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
-PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
-PFNGLUSEPROGRAMPROC glad_glUseProgram;
-PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
-PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
-PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
-PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
-PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
-PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
-PFNGLFINISHPROC glad_glFinish;
-PFNGLDELETESHADERPROC glad_glDeleteShader;
-PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
-PFNGLVIEWPORTPROC glad_glViewport;
-PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
-PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
-PFNGLUNIFORM2UIPROC glad_glUniform2ui;
-PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
-PFNGLCLEARDEPTHPROC glad_glClearDepth;
-PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
-PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
-PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
-PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
-PFNGLTEXBUFFERPROC glad_glTexBuffer;
-PFNGLPIXELSTOREIPROC glad_glPixelStorei;
-PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
-PFNGLPIXELSTOREFPROC glad_glPixelStoref;
-PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
-PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
-PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
-PFNGLLINKPROGRAMPROC glad_glLinkProgram;
-PFNGLBINDTEXTUREPROC glad_glBindTexture;
-PFNGLGETSTRINGPROC glad_glGetString;
-PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
-PFNGLDETACHSHADERPROC glad_glDetachShader;
-PFNGLENDQUERYPROC glad_glEndQuery;
-PFNGLNORMALP3UIPROC glad_glNormalP3ui;
-PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
-PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
-PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
-PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
-PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
-PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
-PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
-PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
-PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
-PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
-PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
-PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
-PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
-PFNGLUNIFORM1FPROC glad_glUniform1f;
-PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
-PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
-PFNGLUNIFORM1IPROC glad_glUniform1i;
-PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
-PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
-PFNGLDISABLEPROC glad_glDisable;
-PFNGLLOGICOPPROC glad_glLogicOp;
-PFNGLUNIFORM4UIPROC glad_glUniform4ui;
-PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
-PFNGLCULLFACEPROC glad_glCullFace;
-PFNGLGETSTRINGIPROC glad_glGetStringi;
-PFNGLATTACHSHADERPROC glad_glAttachShader;
-PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
-PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
-PFNGLDRAWELEMENTSPROC glad_glDrawElements;
-PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
-PFNGLUNIFORM1IVPROC glad_glUniform1iv;
-PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
-PFNGLREADBUFFERPROC glad_glReadBuffer;
-PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
-PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
-PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
-PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
-PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
-PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
-PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
-PFNGLBLENDCOLORPROC glad_glBlendColor;
-PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
-PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
-PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
-PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
-PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
-PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
-PFNGLISPROGRAMPROC glad_glIsProgram;
-PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
-PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
-PFNGLUNIFORM4IPROC glad_glUniform4i;
-PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
-PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
-PFNGLREADPIXELSPROC glad_glReadPixels;
-PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
-PFNGLUNIFORM4FPROC glad_glUniform4f;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
-PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
-PFNGLSTENCILFUNCPROC glad_glStencilFunc;
-PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
-PFNGLCOLORP4UIPROC glad_glColorP4ui;
-PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
-PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
-PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
-PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
-PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
-PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
-PFNGLGENBUFFERSPROC glad_glGenBuffers;
-PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
-PFNGLBLENDFUNCPROC glad_glBlendFunc;
-PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
-PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
-PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
-PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
-PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
-PFNGLSCISSORPROC glad_glScissor;
-PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
-PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
-PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
-PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
-PFNGLCLEARCOLORPROC glad_glClearColor;
-PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
-PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
-PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
-PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
-PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
-PFNGLUNIFORM3UIPROC glad_glUniform3ui;
-PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
-PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
-PFNGLUNIFORM2FVPROC glad_glUniform2fv;
-PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
-PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
-PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
-PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
-PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
-PFNGLDEPTHFUNCPROC glad_glDepthFunc;
-PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
-PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
-PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
-PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
-PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
-PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
-PFNGLCOLORMASKPROC glad_glColorMask;
-PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
-PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
-PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
-PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
-PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
-PFNGLUNIFORM4FVPROC glad_glUniform4fv;
-PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
-PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
-PFNGLISSAMPLERPROC glad_glIsSampler;
-PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
-PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
-PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
-PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
-PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
-PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
-PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
-PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
-PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
-PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
-PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
-PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
-PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
-PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
-PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
-PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
-PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
-PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
-PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
-PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
-PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
-PFNGLDISABLEIPROC glad_glDisablei;
-PFNGLSHADERSOURCEPROC glad_glShaderSource;
-PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
-PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
-PFNGLGETSYNCIVPROC glad_glGetSynciv;
-PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
-PFNGLBEGINQUERYPROC glad_glBeginQuery;
-PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
-PFNGLBINDBUFFERPROC glad_glBindBuffer;
-PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
-PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
-PFNGLBUFFERDATAPROC glad_glBufferData;
-PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
-PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
-PFNGLGETERRORPROC glad_glGetError;
-PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
-PFNGLGETFLOATVPROC glad_glGetFloatv;
-PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
-PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
-PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
-PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
-PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
-PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
-PFNGLGETINTEGERVPROC glad_glGetIntegerv;
-PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
-PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
-PFNGLISQUERYPROC glad_glIsQuery;
-PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
-PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
-PFNGLSTENCILMASKPROC glad_glStencilMask;
-PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
-PFNGLISTEXTUREPROC glad_glIsTexture;
-PFNGLUNIFORM1FVPROC glad_glUniform1fv;
-PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
-PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
-PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
-PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
-PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
-PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
-PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
-PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
-PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
-PFNGLDEPTHMASKPROC glad_glDepthMask;
-PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
-PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
-PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
-PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
-PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
-PFNGLFRONTFACEPROC glad_glFrontFace;
-int GLAD_GL_ARB_texture_compression;
-int GLAD_GL_ARB_texture_swizzle;
-int GLAD_GL_ATI_fragment_shader;
-int GLAD_GL_EXT_texture_sRGB;
-int GLAD_GL_ARB_explicit_attrib_location;
-int GLAD_GL_ARB_ES3_compatibility;
-int GLAD_GL_EXT_blend_color;
-int GLAD_GL_EXT_framebuffer_sRGB;
-int GLAD_GL_EXT_index_array_formats;
-int GLAD_GL_ARB_vertex_shader;
-int GLAD_GL_ARB_vertex_attrib_binding;
-int GLAD_GL_ARB_vertex_program;
-int GLAD_GL_EXT_texture_compression_s3tc;
-int GLAD_GL_EXT_debug_marker;
-int GLAD_GL_EXT_texture_swizzle;
-int GLAD_GL_ARB_texture_multisample;
-int GLAD_GL_ARB_texture_rg;
-int GLAD_GL_ARB_texture_float;
-int GLAD_GL_ARB_compressed_texture_pixel_storage;
-int GLAD_GL_ARB_framebuffer_sRGB;
-int GLAD_GL_ARB_vertex_array_object;
-int GLAD_GL_ARB_depth_clamp;
-int GLAD_GL_ARB_fragment_shader;
-int GLAD_GL_ATI_vertex_array_object;
-int GLAD_GL_ARB_vertex_buffer_object;
-int GLAD_GL_ARB_fragment_program;
-int GLAD_GL_EXT_framebuffer_multisample;
-int GLAD_GL_ARB_framebuffer_object;
-int GLAD_GL_ARB_draw_buffers_blend;
-int GLAD_GL_EXT_vertex_shader;
-int GLAD_GL_EXT_blend_func_separate;
-int GLAD_GL_ARB_texture_non_power_of_two;
-int GLAD_GL_EXT_texture;
-int GLAD_GL_ARB_buffer_storage;
-int GLAD_GL_ARB_explicit_uniform_location;
-int GLAD_GL_EXT_framebuffer_object;
-int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
-int GLAD_GL_AMD_debug_output;
-int GLAD_GL_ARB_depth_buffer_float;
-int GLAD_GL_ARB_multisample;
-int GLAD_GL_ARB_compatibility;
-int GLAD_GL_ARB_depth_texture;
-int GLAD_GL_ARB_sample_locations;
-int GLAD_GL_ARB_ES2_compatibility;
-int GLAD_GL_AMD_query_buffer_object;
-int GLAD_GL_EXT_framebuffer_blit;
-int GLAD_GL_EXT_vertex_array;
-int GLAD_GL_ARB_draw_buffers;
-int GLAD_GL_EXT_blend_equation_separate;
-int GLAD_GL_ATI_element_array;
-int GLAD_GL_ARB_debug_output;
-int GLAD_GL_ARB_uniform_buffer_object;
-PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD;
-PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD;
-PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD;
-PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD;
-PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
-PFNGLSHADERBINARYPROC glad_glShaderBinary;
-PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
-PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
-PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
-PFNGLBUFFERSTORAGEPROC glad_glBufferStorage;
-PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
-PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
-PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
-PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
-PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB;
-PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB;
-PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB;
-PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB;
-PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB;
-PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB;
-PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB;
-PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB;
-PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB;
-PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB;
-PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB;
-PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB;
-PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB;
-PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB;
-PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB;
-PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB;
-PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB;
-PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB;
-PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB;
-PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB;
-PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB;
-PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB;
-PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB;
-PFNGLISPROGRAMARBPROC glad_glIsProgramARB;
-PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
-PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB;
-PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB;
-PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB;
-PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB;
-PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB;
-PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB;
-PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB;
-PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB;
-PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer;
-PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat;
-PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat;
-PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat;
-PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding;
-PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor;
-PFNGLBINDBUFFERARBPROC glad_glBindBufferARB;
-PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB;
-PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB;
-PFNGLISBUFFERARBPROC glad_glIsBufferARB;
-PFNGLBUFFERDATAARBPROC glad_glBufferDataARB;
-PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB;
-PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB;
-PFNGLMAPBUFFERARBPROC glad_glMapBufferARB;
-PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB;
-PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB;
-PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB;
-PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB;
-PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB;
-PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB;
-PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB;
-PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB;
-PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB;
-PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB;
-PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB;
-PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB;
-PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB;
-PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB;
-PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB;
-PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB;
-PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB;
-PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB;
-PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB;
-PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB;
-PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB;
-PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB;
-PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB;
-PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB;
-PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB;
-PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB;
-PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB;
-PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB;
-PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB;
-PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB;
-PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB;
-PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB;
-PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB;
-PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB;
-PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB;
-PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB;
-PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB;
-PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB;
-PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB;
-PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB;
-PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB;
-PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB;
-PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB;
-PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB;
-PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB;
-PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB;
-PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB;
-PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB;
-PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB;
-PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI;
-PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI;
-PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI;
-PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI;
-PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI;
-PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI;
-PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI;
-PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI;
-PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI;
-PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI;
-PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI;
-PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI;
-PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI;
-PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI;
-PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI;
-PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI;
-PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI;
-PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI;
-PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI;
-PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI;
-PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI;
-PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI;
-PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI;
-PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI;
-PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI;
-PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI;
-PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI;
-PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI;
-PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI;
-PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT;
-PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT;
-PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
-PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT;
-PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT;
-PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT;
-PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT;
-PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
-PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
-PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
-PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
-PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
-PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
-PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
-PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
-PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
-PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
-PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
-PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
-PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
-PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
-PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
-PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
-PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT;
-PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT;
-PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT;
-PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT;
-PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT;
-PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT;
-PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT;
-PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT;
-PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT;
-PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT;
-PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT;
-PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT;
-PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT;
-PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT;
-PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT;
-PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT;
-PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT;
-PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT;
-PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT;
-PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT;
-PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT;
-PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT;
-PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT;
-PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT;
-PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT;
-PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT;
-PFNGLVARIANTIVEXTPROC glad_glVariantivEXT;
-PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT;
-PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT;
-PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT;
-PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT;
-PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT;
-PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT;
-PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT;
-PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT;
-PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT;
-PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT;
-PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT;
-PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT;
-PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT;
-PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT;
-PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT;
-PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT;
-PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT;
-PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT;
-PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT;
-PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT;
-PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT;
-PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT;
-PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT;
-PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT;
-static void load_GL_VERSION_1_0(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_0) return;
- glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
- glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace");
- glad_glHint = (PFNGLHINTPROC)load("glHint");
- glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth");
- glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize");
- glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode");
- glad_glScissor = (PFNGLSCISSORPROC)load("glScissor");
- glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf");
- glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv");
- glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri");
- glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv");
- glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D");
- glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D");
- glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer");
- glad_glClear = (PFNGLCLEARPROC)load("glClear");
- glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor");
- glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil");
- glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth");
- glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask");
- glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask");
- glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask");
- glad_glDisable = (PFNGLDISABLEPROC)load("glDisable");
- glad_glEnable = (PFNGLENABLEPROC)load("glEnable");
- glad_glFinish = (PFNGLFINISHPROC)load("glFinish");
- glad_glFlush = (PFNGLFLUSHPROC)load("glFlush");
- glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc");
- glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp");
- glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc");
- glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp");
- glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc");
- glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref");
- glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei");
- glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer");
- glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels");
- glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv");
- glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev");
- glad_glGetError = (PFNGLGETERRORPROC)load("glGetError");
- glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv");
- glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv");
- glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
- glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage");
- glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv");
- glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv");
- glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv");
- glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv");
- glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled");
- glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange");
- glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport");
-}
-static void load_GL_VERSION_1_1(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_1) return;
- glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays");
- glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements");
- glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset");
- glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D");
- glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D");
- glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D");
- glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D");
- glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D");
- glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D");
- glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture");
- glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures");
- glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures");
- glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture");
-}
-static void load_GL_VERSION_1_2(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_2) return;
- glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements");
- glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D");
- glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D");
- glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D");
-}
-static void load_GL_VERSION_1_3(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_3) return;
- glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture");
- glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage");
- glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D");
- glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D");
- glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D");
- glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D");
- glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D");
- glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D");
- glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage");
-}
-static void load_GL_VERSION_1_4(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_4) return;
- glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate");
- glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays");
- glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements");
- glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf");
- glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv");
- glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri");
- glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv");
- glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor");
- glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation");
-}
-static void load_GL_VERSION_1_5(GLADloadproc load) {
- if(!GLAD_GL_VERSION_1_5) return;
- glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries");
- glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries");
- glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery");
- glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery");
- glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery");
- glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv");
- glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv");
- glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv");
- glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer");
- glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers");
- glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers");
- glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer");
- glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData");
- glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData");
- glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData");
- glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer");
- glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer");
- glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv");
- glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv");
-}
-static void load_GL_VERSION_2_0(GLADloadproc load) {
- if(!GLAD_GL_VERSION_2_0) return;
- glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate");
- glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers");
- glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate");
- glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate");
- glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate");
- glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader");
- glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation");
- glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader");
- glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram");
- glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader");
- glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram");
- glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader");
- glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader");
- glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray");
- glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray");
- glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib");
- glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform");
- glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders");
- glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation");
- glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv");
- glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog");
- glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv");
- glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog");
- glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource");
- glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation");
- glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv");
- glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv");
- glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv");
- glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv");
- glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv");
- glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv");
- glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram");
- glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader");
- glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram");
- glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource");
- glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram");
- glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f");
- glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f");
- glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f");
- glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f");
- glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i");
- glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i");
- glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i");
- glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i");
- glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv");
- glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv");
- glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv");
- glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv");
- glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv");
- glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv");
- glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv");
- glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv");
- glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv");
- glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv");
- glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv");
- glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram");
- glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d");
- glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv");
- glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f");
- glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv");
- glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s");
- glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv");
- glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d");
- glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv");
- glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f");
- glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv");
- glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s");
- glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv");
- glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d");
- glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv");
- glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f");
- glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv");
- glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s");
- glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv");
- glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv");
- glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv");
- glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv");
- glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub");
- glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv");
- glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv");
- glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv");
- glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv");
- glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d");
- glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv");
- glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f");
- glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv");
- glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv");
- glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s");
- glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv");
- glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv");
- glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv");
- glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv");
- glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer");
-}
-static void load_GL_VERSION_2_1(GLADloadproc load) {
- if(!GLAD_GL_VERSION_2_1) return;
- glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv");
- glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv");
- glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv");
- glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv");
- glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv");
- glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv");
-}
-static void load_GL_VERSION_3_0(GLADloadproc load) {
- if(!GLAD_GL_VERSION_3_0) return;
- glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski");
- glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v");
- glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
- glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei");
- glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei");
- glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi");
- glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback");
- glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback");
- glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
- glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
- glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings");
- glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying");
- glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor");
- glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender");
- glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender");
- glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer");
- glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv");
- glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv");
- glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i");
- glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i");
- glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i");
- glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i");
- glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui");
- glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui");
- glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui");
- glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui");
- glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv");
- glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv");
- glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv");
- glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv");
- glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv");
- glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv");
- glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv");
- glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv");
- glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv");
- glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv");
- glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv");
- glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv");
- glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv");
- glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation");
- glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation");
- glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui");
- glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui");
- glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui");
- glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui");
- glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv");
- glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv");
- glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv");
- glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv");
- glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv");
- glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv");
- glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv");
- glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv");
- glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv");
- glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv");
- glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv");
- glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi");
- glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi");
- glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer");
- glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer");
- glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers");
- glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers");
- glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage");
- glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv");
- glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer");
- glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer");
- glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers");
- glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers");
- glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus");
- glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D");
- glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D");
- glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D");
- glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer");
- glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv");
- glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap");
- glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer");
- glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
- glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
- glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange");
- glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange");
- glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray");
- glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays");
- glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays");
- glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray");
-}
-static void load_GL_VERSION_3_1(GLADloadproc load) {
- if(!GLAD_GL_VERSION_3_1) return;
- glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced");
- glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced");
- glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer");
- glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex");
- glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData");
- glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices");
- glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv");
- glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName");
- glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex");
- glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv");
- glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName");
- glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding");
- glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
- glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
- glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
-}
-static void load_GL_VERSION_3_2(GLADloadproc load) {
- if(!GLAD_GL_VERSION_3_2) return;
- glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex");
- glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex");
- glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex");
- glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex");
- glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex");
- glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync");
- glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync");
- glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync");
- glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync");
- glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync");
- glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v");
- glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv");
- glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v");
- glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v");
- glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture");
- glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample");
- glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample");
- glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv");
- glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski");
-}
-static void load_GL_VERSION_3_3(GLADloadproc load) {
- if(!GLAD_GL_VERSION_3_3) return;
- glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed");
- glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex");
- glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers");
- glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers");
- glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler");
- glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler");
- glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri");
- glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv");
- glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf");
- glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv");
- glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv");
- glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv");
- glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv");
- glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv");
- glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv");
- glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv");
- glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter");
- glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v");
- glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v");
- glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor");
- glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui");
- glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv");
- glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui");
- glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv");
- glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui");
- glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv");
- glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui");
- glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv");
- glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui");
- glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv");
- glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui");
- glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv");
- glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui");
- glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv");
- glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui");
- glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv");
- glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui");
- glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv");
- glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui");
- glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv");
- glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui");
- glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv");
- glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui");
- glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv");
- glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui");
- glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv");
- glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui");
- glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv");
- glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui");
- glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv");
- glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui");
- glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv");
- glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui");
- glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv");
- glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui");
- glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv");
- glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui");
- glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv");
-}
-static void load_GL_AMD_debug_output(GLADloadproc load) {
- if(!GLAD_GL_AMD_debug_output) return;
- glad_glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)load("glDebugMessageEnableAMD");
- glad_glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)load("glDebugMessageInsertAMD");
- glad_glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)load("glDebugMessageCallbackAMD");
- glad_glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)load("glGetDebugMessageLogAMD");
-}
-static void load_GL_ARB_ES2_compatibility(GLADloadproc load) {
- if(!GLAD_GL_ARB_ES2_compatibility) return;
- glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler");
- glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary");
- glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat");
- glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef");
- glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf");
-}
-static void load_GL_ARB_buffer_storage(GLADloadproc load) {
- if(!GLAD_GL_ARB_buffer_storage) return;
- glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage");
-}
-static void load_GL_ARB_debug_output(GLADloadproc load) {
- if(!GLAD_GL_ARB_debug_output) return;
- glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB");
- glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB");
- glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB");
- glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB");
-}
-static void load_GL_ARB_draw_buffers(GLADloadproc load) {
- if(!GLAD_GL_ARB_draw_buffers) return;
- glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)load("glDrawBuffersARB");
-}
-static void load_GL_ARB_draw_buffers_blend(GLADloadproc load) {
- if(!GLAD_GL_ARB_draw_buffers_blend) return;
- glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)load("glBlendEquationiARB");
- glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)load("glBlendEquationSeparateiARB");
- glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)load("glBlendFunciARB");
- glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)load("glBlendFuncSeparateiARB");
-}
-static void load_GL_ARB_fragment_program(GLADloadproc load) {
- if(!GLAD_GL_ARB_fragment_program) return;
- glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB");
- glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB");
- glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB");
- glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB");
- glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB");
- glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB");
- glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB");
- glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB");
- glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB");
- glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB");
- glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB");
- glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB");
- glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB");
- glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB");
- glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB");
- glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB");
- glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB");
- glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB");
- glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB");
-}
-static void load_GL_ARB_framebuffer_object(GLADloadproc load) {
- if(!GLAD_GL_ARB_framebuffer_object) return;
- glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer");
- glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer");
- glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers");
- glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers");
- glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage");
- glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv");
- glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer");
- glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer");
- glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers");
- glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers");
- glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus");
- glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D");
- glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D");
- glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D");
- glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer");
- glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv");
- glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap");
- glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer");
- glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
- glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
-}
-static void load_GL_ARB_multisample(GLADloadproc load) {
- if(!GLAD_GL_ARB_multisample) return;
- glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB");
-}
-static void load_GL_ARB_sample_locations(GLADloadproc load) {
- if(!GLAD_GL_ARB_sample_locations) return;
- glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glFramebufferSampleLocationsfvARB");
- glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glNamedFramebufferSampleLocationsfvARB");
- glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC)load("glEvaluateDepthValuesARB");
-}
-static void load_GL_ARB_texture_compression(GLADloadproc load) {
- if(!GLAD_GL_ARB_texture_compression) return;
- glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)load("glCompressedTexImage3DARB");
- glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)load("glCompressedTexImage2DARB");
- glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)load("glCompressedTexImage1DARB");
- glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)load("glCompressedTexSubImage3DARB");
- glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)load("glCompressedTexSubImage2DARB");
- glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)load("glCompressedTexSubImage1DARB");
- glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)load("glGetCompressedTexImageARB");
-}
-static void load_GL_ARB_texture_multisample(GLADloadproc load) {
- if(!GLAD_GL_ARB_texture_multisample) return;
- glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample");
- glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample");
- glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv");
- glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski");
-}
-static void load_GL_ARB_uniform_buffer_object(GLADloadproc load) {
- if(!GLAD_GL_ARB_uniform_buffer_object) return;
- glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices");
- glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv");
- glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName");
- glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex");
- glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv");
- glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName");
- glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding");
- glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
- glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
- glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
-}
-static void load_GL_ARB_vertex_array_object(GLADloadproc load) {
- if(!GLAD_GL_ARB_vertex_array_object) return;
- glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray");
- glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays");
- glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays");
- glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray");
-}
-static void load_GL_ARB_vertex_attrib_binding(GLADloadproc load) {
- if(!GLAD_GL_ARB_vertex_attrib_binding) return;
- glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer");
- glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat");
- glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat");
- glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat");
- glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding");
- glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor");
-}
-static void load_GL_ARB_vertex_buffer_object(GLADloadproc load) {
- if(!GLAD_GL_ARB_vertex_buffer_object) return;
- glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC)load("glBindBufferARB");
- glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)load("glDeleteBuffersARB");
- glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)load("glGenBuffersARB");
- glad_glIsBufferARB = (PFNGLISBUFFERARBPROC)load("glIsBufferARB");
- glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC)load("glBufferDataARB");
- glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)load("glBufferSubDataARB");
- glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)load("glGetBufferSubDataARB");
- glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC)load("glMapBufferARB");
- glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)load("glUnmapBufferARB");
- glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)load("glGetBufferParameterivARB");
- glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)load("glGetBufferPointervARB");
-}
-static void load_GL_ARB_vertex_program(GLADloadproc load) {
- if(!GLAD_GL_ARB_vertex_program) return;
- glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB");
- glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB");
- glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB");
- glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB");
- glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB");
- glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB");
- glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB");
- glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB");
- glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB");
- glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB");
- glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB");
- glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB");
- glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB");
- glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB");
- glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB");
- glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB");
- glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB");
- glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB");
- glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB");
- glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB");
- glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB");
- glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB");
- glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB");
- glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB");
- glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB");
- glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB");
- glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB");
- glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB");
- glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB");
- glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB");
- glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB");
- glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB");
- glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB");
- glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB");
- glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB");
- glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB");
- glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB");
- glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB");
- glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB");
- glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB");
- glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB");
- glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB");
- glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB");
- glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB");
- glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB");
- glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB");
- glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB");
- glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB");
- glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB");
- glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB");
- glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB");
- glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB");
- glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB");
- glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB");
- glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB");
- glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB");
- glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB");
- glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB");
- glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB");
- glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB");
- glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB");
- glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB");
-}
-static void load_GL_ARB_vertex_shader(GLADloadproc load) {
- if(!GLAD_GL_ARB_vertex_shader) return;
- glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB");
- glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB");
- glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB");
- glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB");
- glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB");
- glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB");
- glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB");
- glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB");
- glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB");
- glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB");
- glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB");
- glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB");
- glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB");
- glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB");
- glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB");
- glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB");
- glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB");
- glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB");
- glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB");
- glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB");
- glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB");
- glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB");
- glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB");
- glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB");
- glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB");
- glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB");
- glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB");
- glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB");
- glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB");
- glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB");
- glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB");
- glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB");
- glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB");
- glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB");
- glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB");
- glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB");
- glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB");
- glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB");
- glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB");
- glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)load("glBindAttribLocationARB");
- glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)load("glGetActiveAttribARB");
- glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)load("glGetAttribLocationARB");
- glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB");
- glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB");
- glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB");
- glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB");
-}
-static void load_GL_ATI_element_array(GLADloadproc load) {
- if(!GLAD_GL_ATI_element_array) return;
- glad_glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)load("glElementPointerATI");
- glad_glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)load("glDrawElementArrayATI");
- glad_glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)load("glDrawRangeElementArrayATI");
-}
-static void load_GL_ATI_fragment_shader(GLADloadproc load) {
- if(!GLAD_GL_ATI_fragment_shader) return;
- glad_glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)load("glGenFragmentShadersATI");
- glad_glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)load("glBindFragmentShaderATI");
- glad_glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)load("glDeleteFragmentShaderATI");
- glad_glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)load("glBeginFragmentShaderATI");
- glad_glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)load("glEndFragmentShaderATI");
- glad_glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)load("glPassTexCoordATI");
- glad_glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)load("glSampleMapATI");
- glad_glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)load("glColorFragmentOp1ATI");
- glad_glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)load("glColorFragmentOp2ATI");
- glad_glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)load("glColorFragmentOp3ATI");
- glad_glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)load("glAlphaFragmentOp1ATI");
- glad_glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)load("glAlphaFragmentOp2ATI");
- glad_glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)load("glAlphaFragmentOp3ATI");
- glad_glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)load("glSetFragmentShaderConstantATI");
-}
-static void load_GL_ATI_vertex_array_object(GLADloadproc load) {
- if(!GLAD_GL_ATI_vertex_array_object) return;
- glad_glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)load("glNewObjectBufferATI");
- glad_glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)load("glIsObjectBufferATI");
- glad_glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)load("glUpdateObjectBufferATI");
- glad_glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)load("glGetObjectBufferfvATI");
- glad_glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)load("glGetObjectBufferivATI");
- glad_glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)load("glFreeObjectBufferATI");
- glad_glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)load("glArrayObjectATI");
- glad_glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)load("glGetArrayObjectfvATI");
- glad_glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)load("glGetArrayObjectivATI");
- glad_glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)load("glVariantArrayObjectATI");
- glad_glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)load("glGetVariantArrayObjectfvATI");
- glad_glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)load("glGetVariantArrayObjectivATI");
-}
-static void load_GL_EXT_blend_color(GLADloadproc load) {
- if(!GLAD_GL_EXT_blend_color) return;
- glad_glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)load("glBlendColorEXT");
-}
-static void load_GL_EXT_blend_equation_separate(GLADloadproc load) {
- if(!GLAD_GL_EXT_blend_equation_separate) return;
- glad_glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)load("glBlendEquationSeparateEXT");
-}
-static void load_GL_EXT_blend_func_separate(GLADloadproc load) {
- if(!GLAD_GL_EXT_blend_func_separate) return;
- glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT");
-}
-static void load_GL_EXT_debug_marker(GLADloadproc load) {
- if(!GLAD_GL_EXT_debug_marker) return;
- glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT");
- glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT");
- glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT");
-}
-static void load_GL_EXT_framebuffer_blit(GLADloadproc load) {
- if(!GLAD_GL_EXT_framebuffer_blit) return;
- glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT");
-}
-static void load_GL_EXT_framebuffer_multisample(GLADloadproc load) {
- if(!GLAD_GL_EXT_framebuffer_multisample) return;
- glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT");
-}
-static void load_GL_EXT_framebuffer_object(GLADloadproc load) {
- if(!GLAD_GL_EXT_framebuffer_object) return;
- glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT");
- glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT");
- glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT");
- glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT");
- glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT");
- glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT");
- glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT");
- glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT");
- glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT");
- glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT");
- glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT");
- glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT");
- glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT");
- glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT");
- glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT");
- glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT");
- glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT");
-}
-static void load_GL_EXT_vertex_array(GLADloadproc load) {
- if(!GLAD_GL_EXT_vertex_array) return;
- glad_glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)load("glArrayElementEXT");
- glad_glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)load("glColorPointerEXT");
- glad_glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)load("glDrawArraysEXT");
- glad_glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)load("glEdgeFlagPointerEXT");
- glad_glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)load("glGetPointervEXT");
- glad_glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)load("glIndexPointerEXT");
- glad_glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)load("glNormalPointerEXT");
- glad_glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)load("glTexCoordPointerEXT");
- glad_glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)load("glVertexPointerEXT");
-}
-static void load_GL_EXT_vertex_shader(GLADloadproc load) {
- if(!GLAD_GL_EXT_vertex_shader) return;
- glad_glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)load("glBeginVertexShaderEXT");
- glad_glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)load("glEndVertexShaderEXT");
- glad_glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)load("glBindVertexShaderEXT");
- glad_glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)load("glGenVertexShadersEXT");
- glad_glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)load("glDeleteVertexShaderEXT");
- glad_glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)load("glShaderOp1EXT");
- glad_glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)load("glShaderOp2EXT");
- glad_glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)load("glShaderOp3EXT");
- glad_glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)load("glSwizzleEXT");
- glad_glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)load("glWriteMaskEXT");
- glad_glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)load("glInsertComponentEXT");
- glad_glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)load("glExtractComponentEXT");
- glad_glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)load("glGenSymbolsEXT");
- glad_glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)load("glSetInvariantEXT");
- glad_glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)load("glSetLocalConstantEXT");
- glad_glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)load("glVariantbvEXT");
- glad_glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)load("glVariantsvEXT");
- glad_glVariantivEXT = (PFNGLVARIANTIVEXTPROC)load("glVariantivEXT");
- glad_glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)load("glVariantfvEXT");
- glad_glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)load("glVariantdvEXT");
- glad_glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)load("glVariantubvEXT");
- glad_glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)load("glVariantusvEXT");
- glad_glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)load("glVariantuivEXT");
- glad_glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)load("glVariantPointerEXT");
- glad_glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)load("glEnableVariantClientStateEXT");
- glad_glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)load("glDisableVariantClientStateEXT");
- glad_glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)load("glBindLightParameterEXT");
- glad_glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)load("glBindMaterialParameterEXT");
- glad_glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)load("glBindTexGenParameterEXT");
- glad_glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)load("glBindTextureUnitParameterEXT");
- glad_glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)load("glBindParameterEXT");
- glad_glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)load("glIsVariantEnabledEXT");
- glad_glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)load("glGetVariantBooleanvEXT");
- glad_glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)load("glGetVariantIntegervEXT");
- glad_glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)load("glGetVariantFloatvEXT");
- glad_glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)load("glGetVariantPointervEXT");
- glad_glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)load("glGetInvariantBooleanvEXT");
- glad_glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)load("glGetInvariantIntegervEXT");
- glad_glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)load("glGetInvariantFloatvEXT");
- glad_glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)load("glGetLocalConstantBooleanvEXT");
- glad_glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)load("glGetLocalConstantIntegervEXT");
- glad_glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)load("glGetLocalConstantFloatvEXT");
-}
-static int find_extensionsGL(void) {
- if (!get_exts()) return 0;
- GLAD_GL_AMD_debug_output = has_ext("GL_AMD_debug_output");
- GLAD_GL_AMD_query_buffer_object = has_ext("GL_AMD_query_buffer_object");
- GLAD_GL_ARB_ES2_compatibility = has_ext("GL_ARB_ES2_compatibility");
- GLAD_GL_ARB_ES3_compatibility = has_ext("GL_ARB_ES3_compatibility");
- GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage");
- GLAD_GL_ARB_compatibility = has_ext("GL_ARB_compatibility");
- GLAD_GL_ARB_compressed_texture_pixel_storage = has_ext("GL_ARB_compressed_texture_pixel_storage");
- GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output");
- GLAD_GL_ARB_depth_buffer_float = has_ext("GL_ARB_depth_buffer_float");
- GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp");
- GLAD_GL_ARB_depth_texture = has_ext("GL_ARB_depth_texture");
- GLAD_GL_ARB_draw_buffers = has_ext("GL_ARB_draw_buffers");
- GLAD_GL_ARB_draw_buffers_blend = has_ext("GL_ARB_draw_buffers_blend");
- GLAD_GL_ARB_explicit_attrib_location = has_ext("GL_ARB_explicit_attrib_location");
- GLAD_GL_ARB_explicit_uniform_location = has_ext("GL_ARB_explicit_uniform_location");
- GLAD_GL_ARB_fragment_program = has_ext("GL_ARB_fragment_program");
- GLAD_GL_ARB_fragment_shader = has_ext("GL_ARB_fragment_shader");
- GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object");
- GLAD_GL_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB");
- GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample");
- GLAD_GL_ARB_sample_locations = has_ext("GL_ARB_sample_locations");
- GLAD_GL_ARB_texture_compression = has_ext("GL_ARB_texture_compression");
- GLAD_GL_ARB_texture_float = has_ext("GL_ARB_texture_float");
- GLAD_GL_ARB_texture_multisample = has_ext("GL_ARB_texture_multisample");
- GLAD_GL_ARB_texture_non_power_of_two = has_ext("GL_ARB_texture_non_power_of_two");
- GLAD_GL_ARB_texture_rg = has_ext("GL_ARB_texture_rg");
- GLAD_GL_ARB_texture_swizzle = has_ext("GL_ARB_texture_swizzle");
- GLAD_GL_ARB_uniform_buffer_object = has_ext("GL_ARB_uniform_buffer_object");
- GLAD_GL_ARB_vertex_array_object = has_ext("GL_ARB_vertex_array_object");
- GLAD_GL_ARB_vertex_attrib_binding = has_ext("GL_ARB_vertex_attrib_binding");
- GLAD_GL_ARB_vertex_buffer_object = has_ext("GL_ARB_vertex_buffer_object");
- GLAD_GL_ARB_vertex_program = has_ext("GL_ARB_vertex_program");
- GLAD_GL_ARB_vertex_shader = has_ext("GL_ARB_vertex_shader");
- GLAD_GL_ATI_element_array = has_ext("GL_ATI_element_array");
- GLAD_GL_ATI_fragment_shader = has_ext("GL_ATI_fragment_shader");
- GLAD_GL_ATI_vertex_array_object = has_ext("GL_ATI_vertex_array_object");
- GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color");
- GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate");
- GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate");
- GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker");
- GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit");
- GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample");
- GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled");
- GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object");
- GLAD_GL_EXT_framebuffer_sRGB = has_ext("GL_EXT_framebuffer_sRGB");
- GLAD_GL_EXT_index_array_formats = has_ext("GL_EXT_index_array_formats");
- GLAD_GL_EXT_texture = has_ext("GL_EXT_texture");
- GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc");
- GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB");
- GLAD_GL_EXT_texture_swizzle = has_ext("GL_EXT_texture_swizzle");
- GLAD_GL_EXT_vertex_array = has_ext("GL_EXT_vertex_array");
- GLAD_GL_EXT_vertex_shader = has_ext("GL_EXT_vertex_shader");
- free_exts();
- return 1;
+
+static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) {
+ return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
}
-static void find_coreGL(void) {
+static int glad_gl_find_extensions_gl( int version) {
+ const char *exts = NULL;
+ unsigned int num_exts_i = 0;
+ char **exts_i = NULL;
+ if (!glad_gl_get_extensions(version, &exts, &num_exts_i, &exts_i)) return 0;
- /* Thank you @elmindreda
- * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176
- * https://github.com/glfw/glfw/blob/master/src/context.c#L36
- */
- int i, major, minor;
+ GLAD_GL_ARB_ES2_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES2_compatibility");
+ GLAD_GL_ARB_ES3_1_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_1_compatibility");
+ GLAD_GL_ARB_ES3_2_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_2_compatibility");
+ GLAD_GL_ARB_ES3_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_compatibility");
+ GLAD_GL_ARB_blend_func_extended = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_blend_func_extended");
+ GLAD_GL_ARB_buffer_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_buffer_storage");
+ GLAD_GL_ARB_clear_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_clear_buffer_object");
+ GLAD_GL_ARB_clear_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_clear_texture");
+ GLAD_GL_ARB_color_buffer_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_color_buffer_float");
+ GLAD_GL_ARB_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compatibility");
+ GLAD_GL_ARB_compressed_texture_pixel_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compressed_texture_pixel_storage");
+ GLAD_GL_ARB_compute_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compute_shader");
+ GLAD_GL_ARB_compute_variable_group_size = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compute_variable_group_size");
+ GLAD_GL_ARB_copy_buffer = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_copy_buffer");
+ GLAD_GL_ARB_copy_image = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_copy_image");
+ GLAD_GL_ARB_debug_output = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_debug_output");
+ GLAD_GL_ARB_depth_buffer_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_buffer_float");
+ GLAD_GL_ARB_depth_clamp = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_clamp");
+ GLAD_GL_ARB_depth_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_texture");
+ GLAD_GL_ARB_direct_state_access = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_direct_state_access");
+ GLAD_GL_ARB_draw_buffers = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_buffers");
+ GLAD_GL_ARB_draw_buffers_blend = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_buffers_blend");
+ GLAD_GL_ARB_draw_elements_base_vertex = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_elements_base_vertex");
+ GLAD_GL_ARB_draw_indirect = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_indirect");
+ GLAD_GL_ARB_draw_instanced = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_instanced");
+ GLAD_GL_ARB_enhanced_layouts = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_enhanced_layouts");
+ GLAD_GL_ARB_explicit_attrib_location = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_explicit_attrib_location");
+ GLAD_GL_ARB_explicit_uniform_location = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_explicit_uniform_location");
+ GLAD_GL_ARB_fragment_coord_conventions = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_coord_conventions");
+ GLAD_GL_ARB_fragment_layer_viewport = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_layer_viewport");
+ GLAD_GL_ARB_fragment_program = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_program");
+ GLAD_GL_ARB_fragment_program_shadow = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_program_shadow");
+ GLAD_GL_ARB_fragment_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_shader");
+ GLAD_GL_ARB_fragment_shader_interlock = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_shader_interlock");
+ GLAD_GL_ARB_framebuffer_no_attachments = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_no_attachments");
+ GLAD_GL_ARB_framebuffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_object");
+ GLAD_GL_ARB_framebuffer_sRGB = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_sRGB");
+ GLAD_GL_ARB_geometry_shader4 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_geometry_shader4");
+ GLAD_GL_ARB_get_program_binary = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_get_program_binary");
+ GLAD_GL_ARB_get_texture_sub_image = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_get_texture_sub_image");
+ GLAD_GL_ARB_gl_spirv = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gl_spirv");
+ GLAD_GL_ARB_gpu_shader5 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader5");
+ GLAD_GL_ARB_gpu_shader_fp64 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader_fp64");
+ GLAD_GL_ARB_gpu_shader_int64 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader_int64");
+ GLAD_GL_ARB_half_float_pixel = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_half_float_pixel");
+ GLAD_GL_ARB_half_float_vertex = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_half_float_vertex");
+ GLAD_GL_ARB_instanced_arrays = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_instanced_arrays");
+ GLAD_GL_ARB_internalformat_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_internalformat_query");
+ GLAD_GL_ARB_internalformat_query2 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_internalformat_query2");
+ GLAD_GL_ARB_map_buffer_range = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_map_buffer_range");
+ GLAD_GL_ARB_multi_bind = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multi_bind");
+ GLAD_GL_ARB_multi_draw_indirect = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multi_draw_indirect");
+ GLAD_GL_ARB_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multisample");
+ GLAD_GL_ARB_multitexture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multitexture");
+ GLAD_GL_ARB_occlusion_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_occlusion_query");
+ GLAD_GL_ARB_occlusion_query2 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_occlusion_query2");
+ GLAD_GL_ARB_pipeline_statistics_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_pipeline_statistics_query");
+ GLAD_GL_ARB_query_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_query_buffer_object");
+ GLAD_GL_ARB_sample_locations = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_sample_locations");
+ GLAD_GL_ARB_sample_shading = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_sample_shading");
+ GLAD_GL_ARB_seamless_cube_map = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_seamless_cube_map");
+ GLAD_GL_ARB_seamless_cubemap_per_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_seamless_cubemap_per_texture");
+ GLAD_GL_ARB_shader_atomic_counter_ops = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_atomic_counter_ops");
+ GLAD_GL_ARB_shader_atomic_counters = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_atomic_counters");
+ GLAD_GL_ARB_shader_bit_encoding = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_bit_encoding");
+ GLAD_GL_ARB_shader_clock = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_clock");
+ GLAD_GL_ARB_shader_image_load_store = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_image_load_store");
+ GLAD_GL_ARB_shader_image_size = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_image_size");
+ GLAD_GL_ARB_shader_objects = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_objects");
+ GLAD_GL_ARB_shader_storage_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_storage_buffer_object");
+ GLAD_GL_ARB_shader_texture_lod = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_texture_lod");
+ GLAD_GL_ARB_shading_language_100 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_100");
+ GLAD_GL_ARB_shading_language_420pack = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_420pack");
+ GLAD_GL_ARB_shading_language_include = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_include");
+ GLAD_GL_ARB_shading_language_packing = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_packing");
+ GLAD_GL_ARB_spirv_extensions = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_spirv_extensions");
+ GLAD_GL_ARB_tessellation_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_tessellation_shader");
+ GLAD_GL_ARB_texture_border_clamp = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_border_clamp");
+ GLAD_GL_ARB_texture_buffer_object_rgb32 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_buffer_object_rgb32");
+ GLAD_GL_ARB_texture_compression = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_compression");
+ GLAD_GL_EXT_texture_compression_s3tc = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_texture_compression_s3tc");
+ GLAD_GL_ARB_texture_cube_map = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_cube_map");
+ GLAD_GL_ARB_texture_cube_map_array = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_cube_map_array");
+ GLAD_GL_ARB_texture_env_add = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_env_add");
+ GLAD_GL_ARB_texture_filter_anisotropic = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_filter_anisotropic");
+ GLAD_GL_ARB_texture_filter_minmax = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_filter_minmax");
+ GLAD_GL_ARB_texture_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_float");
+ GLAD_GL_ARB_texture_mirror_clamp_to_edge = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_mirror_clamp_to_edge");
+ GLAD_GL_ARB_texture_mirrored_repeat = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_mirrored_repeat");
+ GLAD_GL_ARB_texture_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_multisample");
+ GLAD_GL_ARB_texture_non_power_of_two = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_non_power_of_two");
+ GLAD_GL_ARB_texture_rg = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_rg");
+ GLAD_GL_ARB_texture_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_storage");
+ GLAD_GL_ARB_texture_swizzle = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_swizzle");
+ GLAD_GL_ARB_texture_view = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_view");
+ GLAD_GL_ARB_timer_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_timer_query");
+ GLAD_GL_ARB_transpose_matrix = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_transpose_matrix");
+ GLAD_GL_ARB_uniform_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_uniform_buffer_object");
+ GLAD_GL_ARB_vertex_array_bgra = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_array_bgra");
+ GLAD_GL_ARB_vertex_array_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_array_object");
+ GLAD_GL_ARB_vertex_attrib_binding = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_attrib_binding");
+ GLAD_GL_ARB_vertex_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_buffer_object");
+ GLAD_GL_ARB_vertex_program = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_program");
+ GLAD_GL_ARB_vertex_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_shader");
+ GLAD_GL_EXT_fog_coord = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_fog_coord");
+ GLAD_GL_EXT_framebuffer_blit = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_blit");
+ GLAD_GL_EXT_framebuffer_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_multisample");
+ GLAD_GL_EXT_framebuffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_object");
+ GLAD_GL_EXT_framebuffer_sRGB = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_sRGB");
+ GLAD_GL_OES_compressed_paletted_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_OES_compressed_paletted_texture");
+ GLAD_GL_OES_fixed_point = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_OES_fixed_point");
+ glad_gl_free_extensions(exts_i, num_exts_i);
+
+ return 1;
+}
+
+static int glad_gl_find_core_gl(void) {
+ int i;
const char* version;
const char* prefixes[] = {
"OpenGL ES-CM ",
"OpenGL ES-CL ",
"OpenGL ES ",
+ "OpenGL SC ",
NULL
};
-
- version = (const char*) glGetString(GL_VERSION);
- if (!version) return;
-
+ int major = 0;
+ int minor = 0;
+ version = (const char*) glad_glGetString(GL_VERSION);
+ if (!version) return 0;
for (i = 0; prefixes[i]; i++) {
const size_t length = strlen(prefixes[i]);
if (strncmp(version, prefixes[i], length) == 0) {
@@ -5391,84 +8510,131 @@ static void find_coreGL(void) {
}
}
-/* PR #18 */
-#ifdef _MSC_VER
- sscanf_s(version, "%d.%d", &major, &minor);
-#else
- sscanf(version, "%d.%d", &major, &minor);
+ GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
+
+ GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
+ GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
+ GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
+ GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
+ GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
+ GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
+ GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
+ GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2;
+ GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
+ GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
+ GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
+ GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
+ GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4;
+ GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4;
+ GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4;
+ GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4;
+
+ return GLAD_MAKE_VERSION(major, minor);
+}
+
+int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) {
+ int version;
+
+ glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
+ if(glad_glGetString == NULL) return 0;
+ if(glad_glGetString(GL_VERSION) == NULL) return 0;
+ version = glad_gl_find_core_gl();
+
+ glad_gl_load_GL_VERSION_1_0(load, userptr);
+ glad_gl_load_GL_VERSION_1_1(load, userptr);
+ glad_gl_load_GL_VERSION_1_2(load, userptr);
+ glad_gl_load_GL_VERSION_1_3(load, userptr);
+ glad_gl_load_GL_VERSION_1_4(load, userptr);
+ glad_gl_load_GL_VERSION_1_5(load, userptr);
+ glad_gl_load_GL_VERSION_2_0(load, userptr);
+ glad_gl_load_GL_VERSION_2_1(load, userptr);
+ glad_gl_load_GL_VERSION_3_0(load, userptr);
+ glad_gl_load_GL_VERSION_3_1(load, userptr);
+ glad_gl_load_GL_VERSION_3_2(load, userptr);
+ glad_gl_load_GL_VERSION_3_3(load, userptr);
+ glad_gl_load_GL_VERSION_4_0(load, userptr);
+ glad_gl_load_GL_VERSION_4_1(load, userptr);
+ glad_gl_load_GL_VERSION_4_2(load, userptr);
+ glad_gl_load_GL_VERSION_4_3(load, userptr);
+
+ if (!glad_gl_find_extensions_gl(version)) return 0;
+ glad_gl_load_GL_ARB_ES2_compatibility(load, userptr);
+ glad_gl_load_GL_ARB_ES3_1_compatibility(load, userptr);
+ glad_gl_load_GL_ARB_ES3_2_compatibility(load, userptr);
+ glad_gl_load_GL_ARB_blend_func_extended(load, userptr);
+ glad_gl_load_GL_ARB_buffer_storage(load, userptr);
+ glad_gl_load_GL_ARB_clear_buffer_object(load, userptr);
+ glad_gl_load_GL_ARB_clear_texture(load, userptr);
+ glad_gl_load_GL_ARB_color_buffer_float(load, userptr);
+ glad_gl_load_GL_ARB_compute_shader(load, userptr);
+ glad_gl_load_GL_ARB_compute_variable_group_size(load, userptr);
+ glad_gl_load_GL_ARB_copy_buffer(load, userptr);
+ glad_gl_load_GL_ARB_copy_image(load, userptr);
+ glad_gl_load_GL_ARB_debug_output(load, userptr);
+ glad_gl_load_GL_ARB_direct_state_access(load, userptr);
+ glad_gl_load_GL_ARB_draw_buffers(load, userptr);
+ glad_gl_load_GL_ARB_draw_buffers_blend(load, userptr);
+ glad_gl_load_GL_ARB_draw_elements_base_vertex(load, userptr);
+ glad_gl_load_GL_ARB_draw_indirect(load, userptr);
+ glad_gl_load_GL_ARB_draw_instanced(load, userptr);
+ glad_gl_load_GL_ARB_fragment_program(load, userptr);
+ glad_gl_load_GL_ARB_framebuffer_no_attachments(load, userptr);
+ glad_gl_load_GL_ARB_framebuffer_object(load, userptr);
+ glad_gl_load_GL_ARB_geometry_shader4(load, userptr);
+ glad_gl_load_GL_ARB_get_program_binary(load, userptr);
+ glad_gl_load_GL_ARB_get_texture_sub_image(load, userptr);
+ glad_gl_load_GL_ARB_gl_spirv(load, userptr);
+ glad_gl_load_GL_ARB_gpu_shader_fp64(load, userptr);
+ glad_gl_load_GL_ARB_gpu_shader_int64(load, userptr);
+ glad_gl_load_GL_ARB_instanced_arrays(load, userptr);
+ glad_gl_load_GL_ARB_internalformat_query(load, userptr);
+ glad_gl_load_GL_ARB_internalformat_query2(load, userptr);
+ glad_gl_load_GL_ARB_map_buffer_range(load, userptr);
+ glad_gl_load_GL_ARB_multi_bind(load, userptr);
+ glad_gl_load_GL_ARB_multi_draw_indirect(load, userptr);
+ glad_gl_load_GL_ARB_multisample(load, userptr);
+ glad_gl_load_GL_ARB_multitexture(load, userptr);
+ glad_gl_load_GL_ARB_occlusion_query(load, userptr);
+ glad_gl_load_GL_ARB_sample_locations(load, userptr);
+ glad_gl_load_GL_ARB_sample_shading(load, userptr);
+ glad_gl_load_GL_ARB_shader_atomic_counters(load, userptr);
+ glad_gl_load_GL_ARB_shader_image_load_store(load, userptr);
+ glad_gl_load_GL_ARB_shader_objects(load, userptr);
+ glad_gl_load_GL_ARB_shader_storage_buffer_object(load, userptr);
+ glad_gl_load_GL_ARB_shading_language_include(load, userptr);
+ glad_gl_load_GL_ARB_tessellation_shader(load, userptr);
+ glad_gl_load_GL_ARB_texture_compression(load, userptr);
+ glad_gl_load_GL_ARB_texture_multisample(load, userptr);
+ glad_gl_load_GL_ARB_texture_storage(load, userptr);
+ glad_gl_load_GL_ARB_texture_view(load, userptr);
+ glad_gl_load_GL_ARB_timer_query(load, userptr);
+ glad_gl_load_GL_ARB_transpose_matrix(load, userptr);
+ glad_gl_load_GL_ARB_uniform_buffer_object(load, userptr);
+ glad_gl_load_GL_ARB_vertex_array_object(load, userptr);
+ glad_gl_load_GL_ARB_vertex_attrib_binding(load, userptr);
+ glad_gl_load_GL_ARB_vertex_buffer_object(load, userptr);
+ glad_gl_load_GL_ARB_vertex_program(load, userptr);
+ glad_gl_load_GL_ARB_vertex_shader(load, userptr);
+ glad_gl_load_GL_EXT_fog_coord(load, userptr);
+ glad_gl_load_GL_EXT_framebuffer_blit(load, userptr);
+ glad_gl_load_GL_EXT_framebuffer_multisample(load, userptr);
+ glad_gl_load_GL_EXT_framebuffer_object(load, userptr);
+ glad_gl_load_GL_OES_fixed_point(load, userptr);
+
+
+
+ return version;
+}
+
+
+int gladLoadGL( GLADloadfunc load) {
+ return gladLoadGLUserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
+}
+
+
+#ifdef __cplusplus
+}
#endif
- GLVersion.major = major; GLVersion.minor = minor;
- max_loaded_major = major; max_loaded_minor = minor;
- GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
- GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
- GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
- GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
- GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
- GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
- GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
- GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2;
- GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
- GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
- GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
- GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
- if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) {
- max_loaded_major = 3;
- max_loaded_minor = 3;
- }
-}
+#endif /* GLAD_GL_IMPLEMENTATION */
-int gladLoadGLLoader(GLADloadproc load) {
- GLVersion.major = 0; GLVersion.minor = 0;
- glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
- if(glGetString == NULL) return 0;
- if(glGetString(GL_VERSION) == NULL) return 0;
- find_coreGL();
- load_GL_VERSION_1_0(load);
- load_GL_VERSION_1_1(load);
- load_GL_VERSION_1_2(load);
- load_GL_VERSION_1_3(load);
- load_GL_VERSION_1_4(load);
- load_GL_VERSION_1_5(load);
- load_GL_VERSION_2_0(load);
- load_GL_VERSION_2_1(load);
- load_GL_VERSION_3_0(load);
- load_GL_VERSION_3_1(load);
- load_GL_VERSION_3_2(load);
- load_GL_VERSION_3_3(load);
-
- if (!find_extensionsGL()) return 0;
- load_GL_AMD_debug_output(load);
- load_GL_ARB_ES2_compatibility(load);
- load_GL_ARB_buffer_storage(load);
- load_GL_ARB_debug_output(load);
- load_GL_ARB_draw_buffers(load);
- load_GL_ARB_draw_buffers_blend(load);
- load_GL_ARB_fragment_program(load);
- load_GL_ARB_framebuffer_object(load);
- load_GL_ARB_multisample(load);
- load_GL_ARB_sample_locations(load);
- load_GL_ARB_texture_compression(load);
- load_GL_ARB_texture_multisample(load);
- load_GL_ARB_uniform_buffer_object(load);
- load_GL_ARB_vertex_array_object(load);
- load_GL_ARB_vertex_attrib_binding(load);
- load_GL_ARB_vertex_buffer_object(load);
- load_GL_ARB_vertex_program(load);
- load_GL_ARB_vertex_shader(load);
- load_GL_ATI_element_array(load);
- load_GL_ATI_fragment_shader(load);
- load_GL_ATI_vertex_array_object(load);
- load_GL_EXT_blend_color(load);
- load_GL_EXT_blend_equation_separate(load);
- load_GL_EXT_blend_func_separate(load);
- load_GL_EXT_debug_marker(load);
- load_GL_EXT_framebuffer_blit(load);
- load_GL_EXT_framebuffer_multisample(load);
- load_GL_EXT_framebuffer_object(load);
- load_GL_EXT_vertex_array(load);
- load_GL_EXT_vertex_shader(load);
- return GLVersion.major != 0 || GLVersion.minor != 0;
-}
-
-#endif // GLAD_IMPLEMENTATION
diff --git a/src/external/vox_loader.h b/src/external/vox_loader.h
index f199a333c..0eb5cafb4 100644
--- a/src/external/vox_loader.h
+++ b/src/external/vox_loader.h
@@ -43,27 +43,25 @@ revision history:
Changed Vox_LoadFileName to Vox_LoadFromMemory
1.02 (2021-09-10) @raysan5: Reviewed some formating
1.03 (2021-10-02) @catmanl: Reduce warnings on gcc
+ 1.04 (2021-10-17) @warzes: Fixing the error of loading VOX models
*/
#ifndef VOX_LOADER_H
#define VOX_LOADER_H
-#include
-#include
-
// Allow custom memory allocators
#ifndef VOX_MALLOC
- #define VOX_MALLOC RL_MALLOC
+ #define VOX_MALLOC(sz) malloc(sz)
#endif
#ifndef VOX_CALLOC
- #define VOX_CALLOC RL_CALLOC
+ #define VOX_CALLOC(n,sz) calloc(n,sz)
#endif
#ifndef VOX_REALLOC
- #define VOX_REALLOC RL_REALLOC
+ #define VOX_REALLOC(n,sz) realloc(n,sz)
#endif
#ifndef VOX_FREE
- #define VOX_FREE RL_FREE
+ #define VOX_FREE(p) free(p)
#endif
#define VOX_SUCCESS (0)
@@ -157,6 +155,9 @@ void Vox_FreeArrays(VoxArray3D* voxarray);
#ifdef VOX_LOADER_IMPLEMENTATION
+#include
+#include
+
/////////////////////////////////////////////////////////////////////////////////////////////
// ArrayUShort helper
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -585,6 +586,9 @@ int Vox_LoadFromMemory(unsigned char* pvoxData, unsigned int voxDataSize, VoxArr
unsigned long chunkSize = *((unsigned long*)fileDataPtr);
fileDataPtr += sizeof(unsigned long);
+ //unsigned long chunkTotalChildSize = *((unsigned long*)fileDataPtr);
+ fileDataPtr += sizeof(unsigned long);
+
if (strcmp(szChunkName, "SIZE") == 0)
{
//(4 bytes x 3 : x, y, z )
diff --git a/src/raudio.c b/src/raudio.c
index 36820abe2..a694c9feb 100644
--- a/src/raudio.c
+++ b/src/raudio.c
@@ -193,7 +193,7 @@ typedef struct tagBITMAPINFOHEADER {
#endif
#if defined(SUPPORT_FILEFORMAT_OGG)
- // TODO: Remap malloc()/free() calls to RL_MALLOC/RL_FREE
+ // TODO: Remap stb_vorbis malloc()/free() calls to RL_MALLOC/RL_FREE
#define STB_VORBIS_IMPLEMENTATION
#include "external/stb_vorbis.h" // OGG loading functions
@@ -405,8 +405,6 @@ void UntrackAudioBuffer(AudioBuffer *buffer);
// Initialize audio device
void InitAudioDevice(void)
{
- // TODO: Load AUDIO context memory dynamically?
-
// Init audio context
ma_context_config ctxConfig = ma_context_config_init();
ctxConfig.logCallback = OnLog;
@@ -1680,7 +1678,7 @@ void SeekMusicStream(Music music, float position)
#endif
default: break;
}
-
+
music.stream.buffer->framesProcessed = positionInFrames;
}
diff --git a/src/raylib.h b/src/raylib.h
index 31af5d57c..9f6ce25d6 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -5,7 +5,7 @@
* FEATURES:
* - NO external dependencies, all required libraries included with raylib
* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly,
-* MacOS, Haiku, UWP, Android, Raspberry Pi, HTML5.
+* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5.
* - Written in plain C code (C99) in PascalCase/camelCase notation
* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2 - choose at compile)
* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl]
@@ -21,29 +21,28 @@
* - Bindings to multiple programming languages available!
*
* NOTES:
-* One default Font is loaded on InitWindow()->LoadFontDefault() [core, text]
-* One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2)
-* One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2)
-* One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2)
+* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text]
+* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2)
+* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2)
+* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2)
*
* DEPENDENCIES (included):
-* [core] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP)
+* [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP)
* [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP)
* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management
*
* OPTIONAL DEPENDENCIES (included):
-* [core] msf_gif (Miles Fogle) for GIF recording
-* [core] sinfl (Micha Mettke) for DEFLATE decompression algorythm
-* [core] sdefl (Micha Mettke) for DEFLATE compression algorythm
-* [textures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...)
-* [textures] stb_image_write (Sean Barret) for image writting (BMP, TGA, PNG, JPG)
-* [textures] stb_image_resize (Sean Barret) for image resizing algorithms
-* [textures] stb_perlin (Sean Barret) for Perlin noise image generation
-* [text] stb_truetype (Sean Barret) for ttf fonts loading
-* [text] stb_rect_pack (Sean Barret) for rectangles packing
-* [models] par_shapes (Philip Rideout) for parametric 3d shapes generation
-* [models] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL)
-* [models] cgltf (Johannes Kuhlmann) for models loading (glTF)
+* [rcore] msf_gif (Miles Fogle) for GIF recording
+* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorythm
+* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorythm
+* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...)
+* [rtextures] stb_image_write (Sean Barret) for image writting (BMP, TGA, PNG, JPG)
+* [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms
+* [rtext] stb_truetype (Sean Barret) for ttf fonts loading
+* [rtext] stb_rect_pack (Sean Barret) for rectangles packing
+* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation
+* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL)
+* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF)
* [raudio] dr_wav (David Reid) for WAV audio file loading
* [raudio] dr_flac (David Reid) for FLAC audio file loading
* [raudio] dr_mp3 (David Reid) for MP3 audio file loading
@@ -1053,8 +1052,11 @@ RLAPI char **GetDroppedFiles(int *count); // Get dropped
RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory)
RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time)
+// Compression/Encoding functionality
RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorithm)
RLAPI unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorithm)
+RLAPI char *EncodeDataBase64(const unsigned char *data, int dataLength, int *outputLength); // Encode data to Base64 string
+RLAPI unsigned char *DecodeDataBase64(unsigned char *data, int *outputLength); // Decode Base64 string data
// Persistent storage management
RLAPI bool SaveStorageValue(unsigned int position, int value); // Save integer value to storage file (to defined position), returns true on success
@@ -1109,7 +1111,6 @@ RLAPI int GetTouchY(void); // Get touch posit
RLAPI Vector2 GetTouchPosition(int index); // Get touch position XY for a touch point index (relative to screen size)
RLAPI int GetTouchPointId(int index); // Get touch point identifier for given index
RLAPI int GetTouchPointCount(void); // Get number of touch points
-RLAPI int GetTouchEvent(void); // Get last touch event registered
//------------------------------------------------------------------------------------
// Gestures and Touch Handling Functions (Module: rgestures)
@@ -1189,6 +1190,7 @@ RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec);
RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle
RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle
RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference
+RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision
//------------------------------------------------------------------------------------
@@ -1383,7 +1385,9 @@ RLAPI void DrawSphere(Vector3 centerPos, float radius, Color color);
RLAPI void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters
RLAPI void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires
RLAPI void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone
+RLAPI void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder with base at startPos and top at endPos
RLAPI void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires
+RLAPI void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder wires with base at startPos and top at endPos
RLAPI void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ
RLAPI void DrawRay(Ray ray, Color color); // Draw a ray line
RLAPI void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0))
diff --git a/src/raymath.h b/src/raymath.h
index 8f579ed6e..48846a7ad 100644
--- a/src/raymath.h
+++ b/src/raymath.h
@@ -69,7 +69,6 @@
#define RMAPI inline // Functions may be inlined or external definition used
#endif
#endif
-
//----------------------------------------------------------------------------------
// Defines and Macros
diff --git a/src/rcamera.h b/src/rcamera.h
index 5edd79de2..2a86e3626 100644
--- a/src/rcamera.h
+++ b/src/rcamera.h
@@ -279,7 +279,6 @@ void SetCameraMode(Camera camera, int mode)
// System: EnableCursor(), DisableCursor()
// Mouse: IsMouseButtonDown(), GetMousePosition(), GetMouseWheelMove()
// Keys: IsKeyDown()
-// TODO: Port to quaternion-based camera (?)
void UpdateCamera(Camera *camera)
{
static int swingCounter = 0; // Used for 1st person swinging movement
@@ -532,7 +531,6 @@ void UpdateCamera(Camera *camera)
// Camera distance clamp
if (CAMERA.targetDistance < CAMERA_THIRD_PERSON_DISTANCE_CLAMP) CAMERA.targetDistance = CAMERA_THIRD_PERSON_DISTANCE_CLAMP;
- // TODO: It seems camera->position is not correctly updated or some rounding issue makes the camera move straight to camera->target...
camera->position.x = sinf(CAMERA.angle.x)*CAMERA.targetDistance*cosf(CAMERA.angle.y) + camera->target.x;
if (CAMERA.angle.y <= 0.0f) camera->position.y = sinf(CAMERA.angle.y)*CAMERA.targetDistance*sinf(CAMERA.angle.y) + camera->target.y;
diff --git a/src/rcore.c b/src/rcore.c
index 5e5d99a30..9ab34e158 100644
--- a/src/rcore.c
+++ b/src/rcore.c
@@ -680,11 +680,11 @@ void android_main(struct android_app *app)
char arg0[] = "raylib"; // NOTE: argv[] are mutable
CORE.Android.app = app;
- // TODO: Should we maybe report != 0 return codes somewhere?
+ // NOTE: Return codes != 0 are skipped
(void)main(1, (char *[]) { arg0, NULL });
}
-// TODO: Add this to header (if apps really need it)
+// NOTE: Add this to header (if apps really need it)
struct android_app *GetAndroidApp(void)
{
return CORE.Android.app;
@@ -1519,7 +1519,6 @@ void SetWindowMinSize(int width, int height)
}
// Set window dimensions
-// TODO: Issues on HighDPI scaling
void SetWindowSize(int width, int height)
{
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
@@ -1528,8 +1527,7 @@ void SetWindowSize(int width, int height)
#if defined(PLATFORM_WEB)
//emscripten_set_canvas_size(width, height); // DEPRECATED!
- // TODO: Below functions should be used to replace previous one but
- // they do not seem to work properly
+ // TODO: Below functions should be used to replace previous one but they do not seem to work properly
//emscripten_set_canvas_element_size("canvas", width, height);
//emscripten_set_element_css_size("canvas", width, height);
#endif
@@ -1538,13 +1536,25 @@ void SetWindowSize(int width, int height)
// Get current screen width
int GetScreenWidth(void)
{
- return CORE.Window.currentFbo.width;
+ return CORE.Window.screen.width;
}
// Get current screen height
int GetScreenHeight(void)
{
- return CORE.Window.currentFbo.height;
+ return CORE.Window.screen.height;
+}
+
+// Get current render width which is equal to screen width * dpi scale
+int GetRenderWidth(void)
+{
+ return CORE.Window.render.width;
+}
+
+// Get current screen height which is equal to screen height * dpi scale
+int GetRenderHeight(void)
+{
+ return CORE.Window.render.height;
}
// Get native window handle
@@ -2136,8 +2146,8 @@ void EndTextureMode(void)
SetupViewport(CORE.Window.render.width, CORE.Window.render.height);
// Reset current fbo to screen size
- CORE.Window.currentFbo.width = CORE.Window.screen.width;
- CORE.Window.currentFbo.height = CORE.Window.screen.height;
+ CORE.Window.currentFbo.width = CORE.Window.render.width;
+ CORE.Window.currentFbo.height = CORE.Window.render.height;
}
// Begin custom shader mode
@@ -2172,7 +2182,17 @@ void BeginScissorMode(int x, int y, int width, int height)
rlDrawRenderBatchActive(); // Update and draw internal render batch
rlEnableScissorTest();
- rlScissor(x, CORE.Window.currentFbo.height - (y + height), width, height);
+
+ if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0)
+ {
+ Vector2 scale = GetWindowScaleDPI();
+
+ rlScissor(x*scale.x, CORE.Window.currentFbo.height - (y + height)*scale.y, width*scale.x, height*scale.y);
+ }
+ else
+ {
+ rlScissor(x, CORE.Window.currentFbo.height - (y + height), width, height);
+ }
}
// End scissor mode
@@ -2203,71 +2223,71 @@ VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device)
{
VrStereoConfig config = { 0 };
-#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- // Compute aspect ratio
- float aspect = ((float)device.hResolution*0.5f)/(float)device.vResolution;
+ if ((rlGetVersion() == OPENGL_33) || (rlGetVersion() == OPENGL_ES_20))
+ {
+ // Compute aspect ratio
+ float aspect = ((float)device.hResolution*0.5f)/(float)device.vResolution;
- // Compute lens parameters
- float lensShift = (device.hScreenSize*0.25f - device.lensSeparationDistance*0.5f)/device.hScreenSize;
- config.leftLensCenter[0] = 0.25f + lensShift;
- config.leftLensCenter[1] = 0.5f;
- config.rightLensCenter[0] = 0.75f - lensShift;
- config.rightLensCenter[1] = 0.5f;
- config.leftScreenCenter[0] = 0.25f;
- config.leftScreenCenter[1] = 0.5f;
- config.rightScreenCenter[0] = 0.75f;
- config.rightScreenCenter[1] = 0.5f;
+ // Compute lens parameters
+ float lensShift = (device.hScreenSize*0.25f - device.lensSeparationDistance*0.5f)/device.hScreenSize;
+ config.leftLensCenter[0] = 0.25f + lensShift;
+ config.leftLensCenter[1] = 0.5f;
+ config.rightLensCenter[0] = 0.75f - lensShift;
+ config.rightLensCenter[1] = 0.5f;
+ config.leftScreenCenter[0] = 0.25f;
+ config.leftScreenCenter[1] = 0.5f;
+ config.rightScreenCenter[0] = 0.75f;
+ config.rightScreenCenter[1] = 0.5f;
- // Compute distortion scale parameters
- // NOTE: To get lens max radius, lensShift must be normalized to [-1..1]
- float lensRadius = fabsf(-1.0f - 4.0f*lensShift);
- float lensRadiusSq = lensRadius*lensRadius;
- float distortionScale = device.lensDistortionValues[0] +
- device.lensDistortionValues[1]*lensRadiusSq +
- device.lensDistortionValues[2]*lensRadiusSq*lensRadiusSq +
- device.lensDistortionValues[3]*lensRadiusSq*lensRadiusSq*lensRadiusSq;
+ // Compute distortion scale parameters
+ // NOTE: To get lens max radius, lensShift must be normalized to [-1..1]
+ float lensRadius = fabsf(-1.0f - 4.0f*lensShift);
+ float lensRadiusSq = lensRadius*lensRadius;
+ float distortionScale = device.lensDistortionValues[0] +
+ device.lensDistortionValues[1]*lensRadiusSq +
+ device.lensDistortionValues[2]*lensRadiusSq*lensRadiusSq +
+ device.lensDistortionValues[3]*lensRadiusSq*lensRadiusSq*lensRadiusSq;
- float normScreenWidth = 0.5f;
- float normScreenHeight = 1.0f;
- config.scaleIn[0] = 2.0f/normScreenWidth;
- config.scaleIn[1] = 2.0f/normScreenHeight/aspect;
- config.scale[0] = normScreenWidth*0.5f/distortionScale;
- config.scale[1] = normScreenHeight*0.5f*aspect/distortionScale;
+ float normScreenWidth = 0.5f;
+ float normScreenHeight = 1.0f;
+ config.scaleIn[0] = 2.0f/normScreenWidth;
+ config.scaleIn[1] = 2.0f/normScreenHeight/aspect;
+ config.scale[0] = normScreenWidth*0.5f/distortionScale;
+ config.scale[1] = normScreenHeight*0.5f*aspect/distortionScale;
- // Fovy is normally computed with: 2*atan2f(device.vScreenSize, 2*device.eyeToScreenDistance)
- // ...but with lens distortion it is increased (see Oculus SDK Documentation)
- //float fovy = 2.0f*atan2f(device.vScreenSize*0.5f*distortionScale, device.eyeToScreenDistance); // Really need distortionScale?
- float fovy = 2.0f*(float)atan2f(device.vScreenSize*0.5f, device.eyeToScreenDistance);
+ // Fovy is normally computed with: 2*atan2f(device.vScreenSize, 2*device.eyeToScreenDistance)
+ // ...but with lens distortion it is increased (see Oculus SDK Documentation)
+ //float fovy = 2.0f*atan2f(device.vScreenSize*0.5f*distortionScale, device.eyeToScreenDistance); // Really need distortionScale?
+ float fovy = 2.0f*(float)atan2f(device.vScreenSize*0.5f, device.eyeToScreenDistance);
- // Compute camera projection matrices
- float projOffset = 4.0f*lensShift; // Scaled to projection space coordinates [-1..1]
- Matrix proj = MatrixPerspective(fovy, aspect, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
+ // Compute camera projection matrices
+ float projOffset = 4.0f*lensShift; // Scaled to projection space coordinates [-1..1]
+ Matrix proj = MatrixPerspective(fovy, aspect, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
- config.projection[0] = MatrixMultiply(proj, MatrixTranslate(projOffset, 0.0f, 0.0f));
- config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f));
+ config.projection[0] = MatrixMultiply(proj, MatrixTranslate(projOffset, 0.0f, 0.0f));
+ config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f));
- // Compute camera transformation matrices
- // NOTE: Camera movement might seem more natural if we model the head.
- // Our axis of rotation is the base of our head, so we might want to add
- // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions.
- config.viewOffset[0] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f);
- config.viewOffset[1] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f);
+ // Compute camera transformation matrices
+ // NOTE: Camera movement might seem more natural if we model the head.
+ // Our axis of rotation is the base of our head, so we might want to add
+ // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions.
+ config.viewOffset[0] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f);
+ config.viewOffset[1] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f);
- // Compute eyes Viewports
- /*
- config.eyeViewportRight[0] = 0;
- config.eyeViewportRight[1] = 0;
- config.eyeViewportRight[2] = device.hResolution/2;
- config.eyeViewportRight[3] = device.vResolution;
+ // Compute eyes Viewports
+ /*
+ config.eyeViewportRight[0] = 0;
+ config.eyeViewportRight[1] = 0;
+ config.eyeViewportRight[2] = device.hResolution/2;
+ config.eyeViewportRight[3] = device.vResolution;
- config.eyeViewportLeft[0] = device.hResolution/2;
- config.eyeViewportLeft[1] = 0;
- config.eyeViewportLeft[2] = device.hResolution/2;
- config.eyeViewportLeft[3] = device.vResolution;
- */
-#else
- TRACELOG(LOG_WARNING, "RLGL: VR Simulator not supported on OpenGL 1.1");
-#endif
+ config.eyeViewportLeft[0] = device.hResolution/2;
+ config.eyeViewportLeft[1] = 0;
+ config.eyeViewportLeft[2] = device.hResolution/2;
+ config.eyeViewportLeft[3] = device.vResolution;
+ */
+ }
+ else TRACELOG(LOG_WARNING, "RLGL: VR Simulator not supported on OpenGL 1.1");
return config;
}
@@ -2655,7 +2675,6 @@ void TakeScreenshot(const char *fileName)
emscripten_run_script(TextFormat("saveFileFromMEMFSToDisk('%s','%s')", GetFileName(path), GetFileName(path)));
#endif
- // TODO: Verification required for log
TRACELOG(LOG_INFO, "SYSTEM: [%s] Screenshot taken successfully", path);
}
@@ -3019,6 +3038,100 @@ unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *
return data;
}
+// Encode data to Base64 string
+char *EncodeDataBase64(const unsigned char *data, int dataLength, int *outputLength)
+{
+ static const unsigned char base64encodeTable[] = {
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
+ 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+ 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
+ };
+
+ static const int modTable[] = { 0, 2, 1 };
+
+ *outputLength = 4*((dataLength + 2)/3);
+
+ char *encodedData = RL_MALLOC(*outputLength);
+
+ if (encodedData == NULL) return NULL;
+
+ for (int i = 0, j = 0; i < dataLength;)
+ {
+ unsigned int octetA = (i < dataLength)? (unsigned char)data[i++] : 0;
+ unsigned int octetB = (i < dataLength)? (unsigned char)data[i++] : 0;
+ unsigned int octetC = (i < dataLength)? (unsigned char)data[i++] : 0;
+
+ unsigned int triple = (octetA << 0x10) + (octetB << 0x08) + octetC;
+
+ encodedData[j++] = base64encodeTable[(triple >> 3*6) & 0x3F];
+ encodedData[j++] = base64encodeTable[(triple >> 2*6) & 0x3F];
+ encodedData[j++] = base64encodeTable[(triple >> 1*6) & 0x3F];
+ encodedData[j++] = base64encodeTable[(triple >> 0*6) & 0x3F];
+ }
+
+ for (int i = 0; i < modTable[dataLength%3]; i++) encodedData[*outputLength - 1 - i] = '=';
+
+ return encodedData;
+}
+
+// Decode Base64 string data
+unsigned char *DecodeDataBase64(unsigned char *data, int *outputLength)
+{
+ static const unsigned char base64decodeTable[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
+ };
+
+ // Get output size of Base64 input data
+ int outLength = 0;
+ for (int i = 0; data[4*i] != 0; i++)
+ {
+ if (data[4*i + 3] == '=')
+ {
+ if (data[4*i + 2] == '=') outLength += 1;
+ else outLength += 2;
+ }
+ else outLength += 3;
+ }
+
+ // Allocate memory to store decoded Base64 data
+ unsigned char *decodedData = (unsigned char *)RL_MALLOC(outLength);
+
+ for (int i = 0; i < outLength/3; i++)
+ {
+ unsigned char a = base64decodeTable[(int)data[4*i]];
+ unsigned char b = base64decodeTable[(int)data[4*i + 1]];
+ unsigned char c = base64decodeTable[(int)data[4*i + 2]];
+ unsigned char d = base64decodeTable[(int)data[4*i + 3]];
+
+ decodedData[3*i] = (a << 2) | (b >> 4);
+ decodedData[3*i + 1] = (b << 4) | (c >> 2);
+ decodedData[3*i + 2] = (c << 6) | d;
+ }
+
+ if (outLength%3 == 1)
+ {
+ int n = outLength/3;
+ unsigned char a = base64decodeTable[(int)data[4*n]];
+ unsigned char b = base64decodeTable[(int)data[4*n + 1]];
+ decodedData[outLength - 1] = (a << 2) | (b >> 4);
+ }
+ else if (outLength%3 == 2)
+ {
+ int n = outLength/3;
+ unsigned char a = base64decodeTable[(int)data[4*n]];
+ unsigned char b = base64decodeTable[(int)data[4*n + 1]];
+ unsigned char c = base64decodeTable[(int)data[4*n + 2]];
+ decodedData[outLength - 2] = (a << 2) | (b >> 4);
+ decodedData[outLength - 1] = (b << 4) | (c >> 2);
+ }
+
+ *outputLength = outLength;
+ return decodedData;
+}
+
// Save integer value to storage file (to defined position)
// NOTE: Storage positions is directly related to file memory layout (4 bytes each integer)
bool SaveStorageValue(unsigned int position, int value)
@@ -3571,8 +3684,6 @@ Vector2 GetTouchPosition(int index)
#if defined(PLATFORM_WEB) || defined(PLATFORM_RPI) || defined(PLATFORM_DRM)
if (index < MAX_TOUCH_POINTS) position = CORE.Input.Touch.position[index];
else TRACELOG(LOG_WARNING, "INPUT: Required touch point out of range (Max touch points: %i)", MAX_TOUCH_POINTS);
-
- // TODO: Touch position scaling required?
#endif
return position;
@@ -3741,6 +3852,16 @@ static bool InitGraphicsDevice(int width, int height)
#endif
//glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // Request OpenGL DEBUG context
}
+ else if (rlGetVersion() == OPENGL_43)
+ {
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); // Choose OpenGL major version (just hint)
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); // Choose OpenGL minor version (just hint)
+ glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
+ glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_FALSE);
+#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT)
+ glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // Enable OpenGL Debug Context
+#endif
+ }
else if (rlGetVersion() == OPENGL_ES_20) // Request OpenGL ES 2.0 context
{
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
@@ -3842,16 +3963,6 @@ static bool InitGraphicsDevice(int width, int height)
TRACELOG(LOG_WARNING, "GLFW: Failed to initialize Window");
return false;
}
- else
- {
- TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully");
-#if defined(PLATFORM_DESKTOP)
- TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height);
-#endif
- TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height);
- TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height);
- TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y);
- }
// Set window callback events
glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback); // NOTE: Resizing not allowed by default!
@@ -4300,12 +4411,8 @@ static bool InitGraphicsDevice(int width, int height)
rlLoadExtensions(eglGetProcAddress);
#endif
- // Initialize OpenGL context (states and resources)
- // NOTE: CORE.Window.screen.width and CORE.Window.screen.height not used, just stored as globals in rlgl
- rlglInit(CORE.Window.screen.width, CORE.Window.screen.height);
-
- int fbWidth = CORE.Window.render.width;
- int fbHeight = CORE.Window.render.height;
+ int fbWidth = CORE.Window.screen.width;
+ int fbHeight = CORE.Window.screen.height;
#if defined(PLATFORM_DESKTOP)
if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0)
@@ -4324,11 +4431,25 @@ static bool InitGraphicsDevice(int width, int height)
}
#endif
+ CORE.Window.currentFbo.width = fbWidth;
+ CORE.Window.currentFbo.height = fbHeight;
+ CORE.Window.render.width = CORE.Window.currentFbo.width;
+ CORE.Window.render.height = CORE.Window.currentFbo.height;
+
+ // Initialize OpenGL context (states and resources)
+ // NOTE: CORE.Window.currentFbo.width and CORE.Window.currentFbo.height not used, just stored as globals in rlgl
+ rlglInit(CORE.Window.currentFbo.width, CORE.Window.currentFbo.height);
+
// Setup default viewport
SetupViewport(fbWidth, fbHeight);
- CORE.Window.currentFbo.width = CORE.Window.screen.width;
- CORE.Window.currentFbo.height = CORE.Window.screen.height;
+ TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully");
+#if defined(PLATFORM_DESKTOP)
+ TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height);
+#endif
+ TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height);
+ TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height);
+ TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y);
ClearBackground(RAYWHITE); // Default background color for raylib games :P
@@ -4353,9 +4474,9 @@ static void SetupViewport(int width, int height)
#if defined(__APPLE__)
float xScale = 1.0f, yScale = 1.0f;
glfwGetWindowContentScale(CORE.Window.handle, &xScale, &yScale);
- rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width - CORE.Window.renderOffset.x)*xScale, (CORE.Window.render.height - CORE.Window.renderOffset.y)*yScale);
+ rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width)*xScale, (CORE.Window.render.height)*yScale);
#else
- rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width - CORE.Window.renderOffset.x, CORE.Window.render.height - CORE.Window.renderOffset.y);
+ rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width, CORE.Window.render.height);
#endif
rlMatrixMode(RL_PROJECTION); // Switch to projection matrix
@@ -4893,8 +5014,23 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height)
if (IsWindowFullscreen()) return;
// Set current screen size
+#if defined(__APPLE__)
CORE.Window.screen.width = width;
CORE.Window.screen.height = height;
+#else
+ if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0)
+ {
+ Vector2 windowScaleDPI = GetWindowScaleDPI();
+
+ CORE.Window.screen.width = width/windowScaleDPI.x;
+ CORE.Window.screen.height = height/windowScaleDPI.y;
+ }
+ else
+ {
+ CORE.Window.screen.width = width;
+ CORE.Window.screen.height = height;
+ }
+#endif
// NOTE: Postprocessing texture is not scaled to new size
}
@@ -5436,8 +5572,6 @@ static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadE
}
else CORE.Input.Gamepad.ready[gamepadEvent->index] = false;
- // TODO: Test gamepadEvent->index
-
return 0;
}
#endif
@@ -5502,7 +5636,6 @@ static void RestoreKeyboard(void)
#if defined(SUPPORT_SSH_KEYBOARD_RPI)
// Process keyboard inputs
-// TODO: Most probably input reading and processing should be in a separate thread
static void ProcessKeyboard(void)
{
#define MAX_KEYBUFFER_SIZE 32 // Max size in bytes to read
@@ -5857,7 +5990,7 @@ static void ConfigureEvdevDevice(char *device)
static void PollKeyboardEvents(void)
{
// Scancode to keycode mapping for US keyboards
- // TODO: Probably replace this with a keymap from the X11 to get the correct regional map for the keyboard:
+ // TODO: Replace this with a keymap from the X11 to get the correct regional map for the keyboard:
// Currently non US keyboards will have the wrong mapping for some keys
static const int keymapUS[] = {
0, 256, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 259, 258, 81, 87, 69, 82, 84,
@@ -6343,7 +6476,6 @@ static void LoadAutomationEvents(const char *fileName)
// Export recorded events into a file
static void ExportAutomationEvents(const char *fileName)
{
- // TODO: eventCount is required -> header? -> rAEL
unsigned char fileId[4] = "rEP ";
// Save as binary
diff --git a/src/rgestures.h b/src/rgestures.h
index 2442e797b..bb9dd1689 100644
--- a/src/rgestures.h
+++ b/src/rgestures.h
@@ -412,7 +412,7 @@ void ProcessGestureEvent(GestureEvent event)
}
else if (GESTURES.Touch.pointCount > 2) // More than two touch points
{
- // TODO.
+ // TODO: Process gesture events for more than two points
}
}
diff --git a/src/rglfw.c b/src/rglfw.c
index 5728fa6e7..b6a45c092 100644
--- a/src/rglfw.c
+++ b/src/rglfw.c
@@ -98,7 +98,6 @@
#include "external/glfw/src/x11_monitor.c"
#include "external/glfw/src/x11_window.c"
#include "external/glfw/src/xkb_unicode.c"
- // TODO: Joystick implementation
#include "external/glfw/src/null_joystick.c"
#include "external/glfw/src/posix_time.c"
#include "external/glfw/src/posix_thread.c"
diff --git a/src/rlgl.h b/src/rlgl.h
index 47f631708..cd486a266 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -24,6 +24,7 @@
* #define GRAPHICS_API_OPENGL_11
* #define GRAPHICS_API_OPENGL_21
* #define GRAPHICS_API_OPENGL_33
+* #define GRAPHICS_API_OPENGL_43
* #define GRAPHICS_API_OPENGL_ES2
* Use selected OpenGL graphics backend, should be supported by platform
* Those preprocessor defines are only used on rlgl module, if OpenGL version is
@@ -41,6 +42,9 @@
* #define RLGL_SHOW_GL_DETAILS_INFO
* Show OpenGL extensions and capabilities detailed logs on init
*
+* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT
+* Enable debug context (only available on OpenGL 4.3)
+*
* rlgl capabilities could be customized just defining some internal
* values before library inclusion (default values listed):
*
@@ -105,11 +109,6 @@
#define RLGL_VERSION "4.0"
-// Function specifiers definition
-#ifndef RLAPI
- #define RLAPI // Functions defined as 'extern' by default (implicit specifiers)
-#endif
-
// Function specifiers in case library is build/used as a shared library (Windows)
// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll
#if defined(_WIN32)
@@ -120,6 +119,11 @@
#endif
#endif
+// Function specifiers definition
+#ifndef RLAPI
+ #define RLAPI // Functions defined as 'extern' by default (implicit specifiers)
+#endif
+
// Support TRACELOG macros
#ifndef TRACELOG
#define TRACELOG(level, ...) (void)0
@@ -144,6 +148,7 @@
#if !defined(GRAPHICS_API_OPENGL_11) && \
!defined(GRAPHICS_API_OPENGL_21) && \
!defined(GRAPHICS_API_OPENGL_33) && \
+ !defined(GRAPHICS_API_OPENGL_43) && \
!defined(GRAPHICS_API_OPENGL_ES2)
#define GRAPHICS_API_OPENGL_33
#endif
@@ -156,6 +161,9 @@
#if defined(GRAPHICS_API_OPENGL_33)
#undef GRAPHICS_API_OPENGL_33
#endif
+ #if defined(GRAPHICS_API_OPENGL_43)
+ #undef GRAPHICS_API_OPENGL_43
+ #endif
#if defined(GRAPHICS_API_OPENGL_ES2)
#undef GRAPHICS_API_OPENGL_ES2
#endif
@@ -167,6 +175,11 @@
#define GRAPHICS_API_OPENGL_33
#endif
+// OpenGL 4.3 uses OpenGL 3.3 Core functionality
+#if defined(GRAPHICS_API_OPENGL_43)
+ #define GRAPHICS_API_OPENGL_33
+#endif
+
// Support framebuffer objects by default
// NOTE: Some driver implementation do not support it, despite they should
#define RLGL_RENDER_TEXTURES_HINT
@@ -250,6 +263,22 @@
#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE
#define RL_FLOAT 0x1406 // GL_FLOAT
+// Buffer usage hint
+#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW
+#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ
+#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY
+#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW
+#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ
+#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY
+#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW
+#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ
+#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY
+
+// GL Shader type
+#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER
+#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER
+#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER
+
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
@@ -257,6 +286,7 @@ typedef enum {
OPENGL_11 = 1,
OPENGL_21,
OPENGL_33,
+ OPENGL_43,
OPENGL_ES_20
} rlGlVersion;
@@ -607,7 +637,7 @@ RLAPI unsigned int rlLoadTexture(void *data, int width, int height, int format,
RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo)
RLAPI unsigned int rlLoadTextureCubemap(void *data, int size, int format); // Load texture cubemap
RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update GPU texture with new data
-RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats
+RLAPI void rlGetGlTextureFormats(int format, int *glInternalFormat, int *glFormat, int *glType); // Get OpenGL internal formats
RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format
RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory
RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture
@@ -622,16 +652,34 @@ RLAPI void rlUnloadFramebuffer(unsigned int id); // Del
// Shaders management
RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings
-RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: GL_VERTEX_SHADER, GL_FRAGMENT_SHADER)
+RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program
RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program
RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform
RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute
-RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform
-RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix
+RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform
+RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix
RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler
RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations)
+#if defined(GRAPHICS_API_OPENGL_43)
+// Compute shader management
+RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program
+RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pilepine)
+
+// Shader buffer storage object management (ssbo)
+RLAPI unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint); // Load shader storage buffer object (SSBO)
+RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO)
+RLAPI void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset); // Update SSBO buffer data
+RLAPI unsigned long long rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size
+RLAPI void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset); // Bind SSBO buffer
+RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Copy SSBO buffer data
+
+// Buffer management
+RLAPI void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count); // Copy SSBO buffer data
+RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly); // Bind image texture
+#endif
+
// Matrix state management
RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix
RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix
@@ -640,8 +688,8 @@ RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get
RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye)
RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix)
RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix)
-RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering
-RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering
+RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering
+RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering
// Quick and dirty cube/quad buffers load->draw->unload
RLAPI void rlLoadDrawCube(void); // Load and draw a cube
@@ -688,10 +736,10 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
#include // OpenGL 3 library for OSX
#include // OpenGL 3 extensions library for OSX
#else
- #define GLAD_REALLOC RL_REALLOC
+ #define GLAD_MALLOC RL_MALLOC
#define GLAD_FREE RL_FREE
- #define GLAD_IMPLEMENTATION
+ #define GLAD_GL_IMPLEMENTATION
#include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers
#endif
#endif
@@ -896,6 +944,8 @@ typedef struct rlglData {
bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr)
bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp)
bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic)
+ bool computeShader; // Compute shaders support (GL_ARB_compute_shader)
+ bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object)
float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f)
int maxDepthBits; // Maximum bits for depth component
@@ -1294,8 +1344,8 @@ void rlVertex3f(float x, float y, float z)
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx;
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy;
- // Add current normal
- // TODO.
+ // TODO: Add current normal
+ // By default rlVertexBuffer type does not store normals
// Add current color
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr;
@@ -1447,7 +1497,6 @@ void rlDisableTexture(void)
void rlEnableTextureCubemap(unsigned int id)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- glEnable(GL_TEXTURE_CUBE_MAP); // Core in OpenGL 1.4
glBindTexture(GL_TEXTURE_CUBE_MAP, id);
#endif
}
@@ -1456,7 +1505,6 @@ void rlEnableTextureCubemap(unsigned int id)
void rlDisableTextureCubemap(void)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- glDisable(GL_TEXTURE_CUBE_MAP);
glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
#endif
}
@@ -1751,6 +1799,66 @@ void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation)
#endif
}
+//----------------------------------------------------------------------------------
+// Module Functions Definition - OpenGL Debug
+//----------------------------------------------------------------------------------
+#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43)
+static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
+{
+ // Ignore non-significant error/warning codes (NVidia drivers)
+ // NOTE: Here there are the details with a sample output:
+ // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low)
+ // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4)
+ // will use VIDEO memory as the source for buffer object operations. (severity: low)
+ // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium)
+ // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have
+ // a defined base level and cannot be used for texture mapping. (severity: low)
+ if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return;
+
+ const char *msgSource = NULL;
+ switch (source)
+ {
+ case GL_DEBUG_SOURCE_API: msgSource = "API"; break;
+ case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break;
+ case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break;
+ case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break;
+ case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break;
+ case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break;
+ default: break;
+ }
+
+ const char *msgType = NULL;
+ switch (type)
+ {
+ case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break;
+ case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break;
+ case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break;
+ case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break;
+ case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break;
+ case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break;
+ case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break;
+ case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break;
+ case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break;
+ default: break;
+ }
+
+ const char *msgSeverity = "DEFAULT";
+ switch (severity)
+ {
+ case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break;
+ case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break;
+ case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break;
+ case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break;
+ default: break;
+ }
+
+ TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message);
+ TRACELOG(LOG_WARNING, " > Type: %s", msgType);
+ TRACELOG(LOG_WARNING, " > Source = %s", msgSource);
+ TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity);
+}
+#endif
+
//----------------------------------------------------------------------------------
// Module Functions Definition - rlgl functionality
//----------------------------------------------------------------------------------
@@ -1758,6 +1866,21 @@ void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation)
// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states
void rlglInit(int width, int height)
{
+ // Enable OpenGL debug context if required
+#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43)
+ if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL))
+ {
+ glDebugMessageCallback(rlDebugMessageCallback, 0);
+ // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); // TODO: Filter message
+
+ // Debug context options:
+ // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints
+ // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error
+ glEnable(GL_DEBUG_OUTPUT);
+ glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
+ }
+#endif
+
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
// Init default white texture
unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes)
@@ -1848,7 +1971,7 @@ void rlLoadExtensions(void *loader)
#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21
// NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions)
#if !defined(__APPLE__)
- if (!gladLoadGLLoader((GLADloadproc)loader)) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions");
+ if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions");
else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully");
#endif
@@ -1860,14 +1983,8 @@ void rlLoadExtensions(void *loader)
#if defined(RLGL_SHOW_GL_DETAILS_INFO)
// Get supported extensions list
// WARNING: glGetStringi() not available on OpenGL 2.1
- char **extList = RL_MALLOC(numExt*sizeof(char *));
TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:");
- for (int i = 0; i < numExt; i++)
- {
- extList[i] = (char *)glGetStringi(GL_EXTENSIONS, i);
- TRACELOG(RL_LOG_INFO, " %s", extList[i]);
- }
- RL_FREE(extList); // Free extensions pointers
+ for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i));
#endif
// Register supported extensions flags
@@ -1880,6 +1997,10 @@ void rlLoadExtensions(void *loader)
RLGL.ExtSupported.maxDepthBits = 32;
RLGL.ExtSupported.texAnisoFilter = true;
RLGL.ExtSupported.texMirrorClamp = true;
+ #if defined(GRAPHICS_API_OPENGL_43)
+ if (GLAD_GL_ARB_compute_shader) RLGL.ExtSupported.computeShader = true;
+ if (GLAD_GL_ARB_shader_storage_buffer_object) RLGL.ExtSupported.ssbo = true;
+ #endif
#if !defined(__APPLE__)
// NOTE: With GLAD, we can check if an extension is supported using the GLAD_GL_xxx booleans
if (GLAD_GL_EXT_texture_compression_s3tc) RLGL.ExtSupported.texCompDXT = true; // Texture compression: DXT
@@ -2036,9 +2157,10 @@ void rlLoadExtensions(void *loader)
#endif
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability);
TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability);
- GLint format[32] = { 0 };
- glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, format);
- for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(format[i]));
+ GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint));
+ glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats);
+ for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i]));
+ RL_FREE(compFormats);
/*
// Following capabilities are only supported by OpenGL 4.3 or greater
@@ -2061,6 +2183,8 @@ void rlLoadExtensions(void *loader)
if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported");
if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported");
if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported");
+ if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported");
+ if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported");
#endif // RLGL_SHOW_GL_DETAILS_INFO
#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2
@@ -2082,6 +2206,9 @@ int rlGetVersion(void)
#elif defined(GRAPHICS_API_OPENGL_33)
glVersion = OPENGL_33;
#endif
+#if defined(GRAPHICS_API_OPENGL_43)
+ glVersion = OPENGL_43;
+#endif
#if defined(GRAPHICS_API_OPENGL_ES2)
glVersion = OPENGL_ES_20;
#endif
@@ -2270,17 +2397,23 @@ void rlUnloadRenderBatch(rlRenderBatch batch)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
// Unbind everything
- if (RLGL.ExtSupported.vao) glBindVertexArray(0);
- glDisableVertexAttribArray(0);
- glDisableVertexAttribArray(1);
- glDisableVertexAttribArray(2);
- glDisableVertexAttribArray(3);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
// Unload all vertex buffers data
for (int i = 0; i < batch.bufferCount; i++)
{
+ // Unbind VAO attribs data
+ if (RLGL.ExtSupported.vao)
+ {
+ glBindVertexArray(batch.vertexBuffer[i].vaoId);
+ glDisableVertexAttribArray(0);
+ glDisableVertexAttribArray(1);
+ glDisableVertexAttribArray(2);
+ glDisableVertexAttribArray(3);
+ glBindVertexArray(0);
+ }
+
// Delete VBOs from GPU (VRAM)
glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]);
glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]);
@@ -2608,7 +2741,7 @@ unsigned int rlLoadTexture(void *data, int width, int height, int format, int mi
{
unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format);
- unsigned int glInternalFormat, glFormat, glType;
+ int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset);
@@ -2758,7 +2891,7 @@ unsigned int rlLoadTextureCubemap(void *data, int size, int format)
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_CUBE_MAP, id);
- unsigned int glInternalFormat, glFormat, glType;
+ int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
if (glInternalFormat != -1)
@@ -2830,7 +2963,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h
{
glBindTexture(GL_TEXTURE_2D, id);
- unsigned int glInternalFormat, glFormat, glType;
+ int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB))
@@ -2841,7 +2974,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h
}
// Get OpenGL internal formats and data type from raylib PixelFormat
-void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType)
+void rlGetGlTextureFormats(int format, int *glInternalFormat, int *glFormat, int *glType)
{
*glInternalFormat = -1;
*glFormat = -1;
@@ -2991,7 +3124,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format)
// GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.)
glPixelStorei(GL_PACK_ALIGNMENT, 1);
- unsigned int glInternalFormat, glFormat, glType;
+ int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
unsigned int size = rlGetPixelDataSize(width, height, format);
@@ -3487,7 +3620,9 @@ unsigned int rlCompileShader(const char *shaderCode, int type)
case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break;
case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break;
//case GL_GEOMETRY_SHADER:
- //case GL_COMPUTE_SHADER:
+ #if defined(GRAPHICS_API_OPENGL_43)
+ case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break;
+ #endif
default: break;
}
@@ -3510,7 +3645,9 @@ unsigned int rlCompileShader(const char *shaderCode, int type)
case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break;
case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break;
//case GL_GEOMETRY_SHADER:
- //case GL_COMPUTE_SHADER:
+ #if defined(GRAPHICS_API_OPENGL_43)
+ case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break;
+ #endif
default: break;
}
}
@@ -3699,6 +3836,127 @@ void rlSetShader(unsigned int id, int *locs)
#endif
}
+#if defined(GRAPHICS_API_OPENGL_43)
+// Load compute shader program
+unsigned int rlLoadComputeShaderProgram(unsigned int shaderId)
+{
+ unsigned int program = 0;
+
+ GLint success = 0;
+ program = glCreateProgram();
+ glAttachShader(program, shaderId);
+ glLinkProgram(program);
+
+ // NOTE: All uniform variables are intitialised to 0 when a program links
+
+ glGetProgramiv(program, GL_LINK_STATUS, &success);
+
+ if (success == GL_FALSE)
+ {
+ TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program);
+
+ int maxLength = 0;
+ glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength);
+
+ if (maxLength > 0)
+ {
+ int length = 0;
+ char *log = RL_CALLOC(maxLength, sizeof(char));
+ glGetProgramInfoLog(program, maxLength, &length, log);
+ TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log);
+ RL_FREE(log);
+ }
+
+ glDeleteProgram(program);
+
+ program = 0;
+ }
+ else
+ {
+ // Get the size of compiled shader program (not available on OpenGL ES 2.0)
+ // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero.
+ //GLint binarySize = 0;
+ //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize);
+
+ TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program);
+ }
+
+ return program;
+}
+
+// Dispatch compute shader (equivalent to *draw* for graphics pilepine)
+void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ)
+{
+ glDispatchCompute(groupX, groupY, groupZ);
+}
+
+// Load shader storage buffer object (SSBO)
+unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint)
+{
+ unsigned int ssbo = 0;
+
+ glGenBuffers(1, &ssbo);
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo);
+ glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY);
+
+ return ssbo;
+}
+
+// Unload shader storage buffer object (SSBO)
+void rlUnloadShaderBuffer(unsigned int ssboId)
+{
+ glDeleteBuffers(1, &ssboId);
+}
+
+// Update SSBO buffer data
+void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset)
+{
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
+ glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data);
+}
+
+// Get SSBO buffer size
+unsigned long long rlGetShaderBufferSize(unsigned int id)
+{
+ long long size = 0;
+
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
+ glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size);
+
+ return (size > 0)? size : 0;
+}
+
+// Read SSBO buffer data
+void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset)
+{
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
+ glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest);
+}
+
+// Bind SSBO buffer
+void rlBindShaderBuffer(unsigned int id, unsigned int index)
+{
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id);
+}
+
+// Copy SSBO buffer data
+void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count)
+{
+ glBindBuffer(GL_COPY_READ_BUFFER, srcId);
+ glBindBuffer(GL_COPY_WRITE_BUFFER, destId);
+ glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count);
+}
+
+// Bind image texture
+void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly)
+{
+ int glInternalFormat = 0, glFormat = 0, glType = 0;
+
+ rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
+ glBindImageTexture(index, id, 0, 0, 0, readonly ? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat);
+}
+#endif
+
// Matrix state management
//-----------------------------------------------------------------------------------------
// Get internal modelview matrix
@@ -3827,7 +4085,7 @@ void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left)
#endif
}
-// Load and draw a 1x1 XY quad in NDC
+// Load and draw a quad in NDC
void rlLoadDrawQuad(void)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@@ -3868,7 +4126,7 @@ void rlLoadDrawQuad(void)
#endif
}
-// Load and draw a 1x1 3D cube in NDC
+// Load and draw a cube in NDC
void rlLoadDrawCube(void)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
diff --git a/src/rmodels.c b/src/rmodels.c
index 2069aaabb..bb07412c3 100644
--- a/src/rmodels.c
+++ b/src/rmodels.c
@@ -79,7 +79,7 @@
#define VOX_FREE RL_FREE
#define VOX_LOADER_IMPLEMENTATION
- #include "external/vox_loader.h" // vox file format loading (MagikaVoxel)
+ #include "external/vox_loader.h" // VOX file format loading (MagikaVoxel)
#endif
#if defined(SUPPORT_MESH_GENERATION)
@@ -128,20 +128,11 @@ static Model LoadOBJ(const char *fileName); // Load OBJ mesh data
#endif
#if defined(SUPPORT_FILEFORMAT_IQM)
static Model LoadIQM(const char *fileName); // Load IQM mesh data
-static ModelAnimation *LoadIQMModelAnimations(const char *fileName, unsigned int *animCount); // Load IQM animation data
+static ModelAnimation *LoadModelAnimationsIQM(const char *fileName, unsigned int *animCount); // Load IQM animation data
#endif
#if defined(SUPPORT_FILEFORMAT_GLTF)
static Model LoadGLTF(const char *fileName); // Load GLTF mesh data
-static ModelAnimation *LoadGLTFModelAnimations(const char *fileName, unsigned int *animCount); // Load GLTF animation data
-static void LoadGLTFMaterial(Model *model, const char *fileName, const cgltf_data *data);
-static void LoadGLTFMesh(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName);
-static void LoadGLTFNode(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName);
-static void InitGLTFBones(Model *model, const cgltf_data *data);
-static void BindGLTFPrimitiveToBones(Model *model, cgltf_node *node, const cgltf_data *data, int primitiveIndex);
-static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount);
-static bool ReadGLTFValue(cgltf_accessor *acc, unsigned int index, void *variable);
-static void *ReadGLTFValuesAs(cgltf_accessor *acc, cgltf_component_type type, bool adjustOnDownCasting);
-static Matrix GetNodeTransformationMatrix(cgltf_node *node, Matrix current);
+//static ModelAnimation *LoadModelAnimationGLTF(const char *fileName, unsigned int *animCount); // Load GLTF animation data
#endif
#if defined(SUPPORT_FILEFORMAT_VOX)
static Model LoadVOX(const char *filename); // Load VOX mesh data
@@ -341,57 +332,57 @@ void DrawCubeWires(Vector3 position, float width, float height, float length, Co
rlBegin(RL_LINES);
rlColor4ub(color.r, color.g, color.b, color.a);
- // Front Face -----------------------------------------------------
- // Bottom Line
- rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left
- rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right
+ // Front face -----------------------------------------------------
+ // Bottom line
+ rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom left
+ rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom right
- // Left Line
- rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right
- rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right
+ // Left line
+ rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom right
+ rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right
- // Top Line
- rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right
- rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left
+ // Top line
+ rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right
+ rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left
- // Right Line
- rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left
- rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left
+ // Right line
+ rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left
+ rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom left
- // Back Face ------------------------------------------------------
- // Bottom Line
- rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left
- rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right
+ // Back face ------------------------------------------------------
+ // Bottom line
+ rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom left
+ rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom right
- // Left Line
- rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right
- rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right
+ // Left line
+ rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom right
+ rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right
- // Top Line
- rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right
- rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left
+ // Top line
+ rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right
+ rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left
- // Right Line
- rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left
- rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left
+ // Right line
+ rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left
+ rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom left
- // Top Face -------------------------------------------------------
- // Left Line
- rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left Front
- rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left Back
+ // Top face -------------------------------------------------------
+ // Left line
+ rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left front
+ rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left back
- // Right Line
- rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right Front
- rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right Back
+ // Right line
+ rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right front
+ rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right back
- // Bottom Face ---------------------------------------------------
- // Left Line
- rlVertex3f(x-width/2, y-height/2, z+length/2); // Top Left Front
- rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left Back
+ // Bottom face ---------------------------------------------------
+ // Left line
+ rlVertex3f(x-width/2, y-height/2, z+length/2); // Top left front
+ rlVertex3f(x-width/2, y-height/2, z-length/2); // Top left back
- // Right Line
- rlVertex3f(x+width/2, y-height/2, z+length/2); // Top Right Front
- rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right Back
+ // Right line
+ rlVertex3f(x+width/2, y-height/2, z+length/2); // Top right front
+ rlVertex3f(x+width/2, y-height/2, z-length/2); // Top right back
rlEnd();
rlPopMatrix();
}
@@ -464,153 +455,89 @@ void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float hei
rlSetTexture(0);
}
+// Draw cube with texture piece applied to all faces
void DrawCubeTextureRec(Texture2D texture, Rectangle source, Vector3 position, float width, float height, float length, Color color)
{
float x = position.x;
float y = position.y;
float z = position.z;
- float texture_width = (float)texture.width;
- float texture_height = (float)texture.height;
+ float texWidth = (float)texture.width;
+ float texHeight = (float)texture.height;
rlCheckRenderBatchLimit(36);
rlSetTexture(texture.id);
- rlBegin(RL_QUADS);
- rlColor4ub(color.r, color.g, color.b, color.a);
+ rlBegin(RL_QUADS);
+ rlColor4ub(color.r, color.g, color.b, color.a);
- // Front Face
- {
- // Normal Pointing Towards Viewer
- rlNormal3f(0.0f, 0.0f, 1.0f);
+ // Front face
+ rlNormal3f(0.0f, 0.0f, 1.0f);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z + length/2);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z + length/2);
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y - height/2, z + length/2);
+ // Back face
+ rlNormal3f(0.0f, 0.0f, - 1.0f);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z - length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z - length/2);
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y - height/2, z + length/2);
+ // Top face
+ rlNormal3f(0.0f, 1.0f, 0.0f);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z - length/2);
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y + height/2, z + length/2);
+ // Bottom face
+ rlNormal3f(0.0f, - 1.0f, 0.0f);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z + length/2);
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y + height/2, z + length/2);
- }
+ // Right face
+ rlNormal3f(1.0f, 0.0f, 0.0f);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z - length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z - length/2);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x + width/2, y + height/2, z + length/2);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x + width/2, y - height/2, z + length/2);
- // Back Face
- {
- // Normal Pointing Away From Viewer
- rlNormal3f(0.0f, 0.0f, - 1.0f);
+ // Left face
+ rlNormal3f( - 1.0f, 0.0f, 0.0f);
+ rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z - length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight);
+ rlVertex3f(x - width/2, y - height/2, z + length/2);
+ rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z + length/2);
+ rlTexCoord2f(source.x/texWidth, source.y/texHeight);
+ rlVertex3f(x - width/2, y + height/2, z - length/2);
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y - height/2, z - length/2);
-
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y + height/2, z - length/2);
-
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y + height/2, z - length/2);
-
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y - height/2, z - length/2);
- }
-
- // Top Face
- {
- // Normal Pointing Up
- rlNormal3f(0.0f, 1.0f, 0.0f);
-
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y + height/2, z - length/2);
-
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y + height/2, z + length/2);
-
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y + height/2, z + length/2);
-
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y + height/2, z - length/2);
- }
-
- // Bottom Face
- {
- // Normal Pointing Down
- rlNormal3f(0.0f, - 1.0f, 0.0f);
-
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y - height/2, z - length/2);
-
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y - height/2, z - length/2);
-
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y - height/2, z + length/2);
-
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y - height/2, z + length/2);
- }
-
- // Right face
- {
- // Normal Pointing Right
- rlNormal3f(1.0f, 0.0f, 0.0f);
-
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y - height/2, z - length/2);
-
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y + height/2, z - length/2);
-
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x + width/2, y + height/2, z + length/2);
-
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x + width/2, y - height/2, z + length/2);
- }
-
- // Left Face
- {
- // Normal Pointing Left
- rlNormal3f( - 1.0f, 0.0f, 0.0f);
-
- // Bottom Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y - height/2, z - length/2);
-
- // Bottom Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height);
- rlVertex3f(x - width/2, y - height/2, z + length/2);
-
- // Top Right Of The Texture and Quad
- rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y + height/2, z + length/2);
-
- // Top Left Of The Texture and Quad
- rlTexCoord2f(source.x / texture_width, source.y / texture_height);
- rlVertex3f(x - width/2, y + height/2, z - length/2);
- }
- rlEnd();
+ rlEnd();
rlSetTexture(0);
}
@@ -767,6 +694,65 @@ void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float h
rlPopMatrix();
}
+// Draw a cylinder with base at startPos and top at endPos
+// NOTE: It could be also used for pyramid and cone
+void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color)
+{
+ if (sides < 3) sides = 3;
+
+ int numVertex = sides*6;
+ rlCheckRenderBatchLimit(numVertex);
+
+ Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z };
+ if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0)) return;
+
+ // Construct a basis of the base and the top face:
+ Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction));
+ Vector3 b2 = Vector3Normalize(Vector3CrossProduct(b1, direction));
+
+ float baseAngle = (2.0f*PI)/sides;
+
+ rlBegin(RL_TRIANGLES);
+ rlColor4ub(color.r, color.g, color.b, color.a);
+
+ for (int i = 0; i < sides; i++) {
+ // compute the four vertices
+ float s1 = sinf(baseAngle*(i + 0))*startRadius;
+ float c1 = cosf(baseAngle*(i + 0))*startRadius;
+ Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z };
+ float s2 = sinf(baseAngle*(i + 1))*startRadius;
+ float c2 = cosf(baseAngle*(i + 1))*startRadius;
+ Vector3 w2 = { startPos.x + s2*b1.x + c2*b2.x, startPos.y + s2*b1.y + c2*b2.y, startPos.z + s2*b1.z + c2*b2.z };
+ float s3 = sinf(baseAngle*(i + 0))*endRadius;
+ float c3 = cosf(baseAngle*(i + 0))*endRadius;
+ Vector3 w3 = { endPos.x + s3*b1.x + c3*b2.x, endPos.y + s3*b1.y + c3*b2.y, endPos.z + s3*b1.z + c3*b2.z };
+ float s4 = sinf(baseAngle*(i + 1))*endRadius;
+ float c4 = cosf(baseAngle*(i + 1))*endRadius;
+ Vector3 w4 = { endPos.x + s4*b1.x + c4*b2.x, endPos.y + s4*b1.y + c4*b2.y, endPos.z + s4*b1.z + c4*b2.z };
+
+ if (startRadius > 0) { //
+ rlVertex3f(startPos.x, startPos.y, startPos.z); // |
+ rlVertex3f(w2.x, w2.y, w2.z); // T0
+ rlVertex3f(w1.x, w1.y, w1.z); // |
+ } //
+ // w2 x.-----------x startPos
+ rlVertex3f(w1.x, w1.y, w1.z); // | |\'. T0 /
+ rlVertex3f(w2.x, w2.y, w2.z); // T1 | \ '. /
+ rlVertex3f(w3.x, w3.y, w3.z); // | |T \ '. /
+ // | 2 \ T 'x w1
+ rlVertex3f(w2.x, w2.y, w2.z); // | w4 x.---\-1-|---x endPos
+ rlVertex3f(w4.x, w4.y, w4.z); // T2 '. \ |T3/
+ rlVertex3f(w3.x, w3.y, w3.z); // | '. \ | /
+ // '.\|/
+ if (endRadius > 0) { // 'x w3
+ rlVertex3f(endPos.x, endPos.y, endPos.z); // |
+ rlVertex3f(w3.x, w3.y, w3.z); // T3
+ rlVertex3f(w4.x, w4.y, w4.z); // |
+ } //
+ }
+ rlEnd();
+}
+
// Draw a wired cylinder
// NOTE: It could be also used for pyramid and cone
void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int sides, Color color)
@@ -800,6 +786,56 @@ void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, fl
rlPopMatrix();
}
+
+// Draw a wired cylinder with base at startPos and top at endPos
+// NOTE: It could be also used for pyramid and cone
+void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color)
+{
+ if (sides < 3) sides = 3;
+
+ int numVertex = sides*6;
+ rlCheckRenderBatchLimit(numVertex);
+
+ Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z };
+ if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0))return;
+
+ // Construct a basis of the base and the top face:
+ Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction));
+ Vector3 b2 = Vector3Normalize(Vector3CrossProduct(b1, direction));
+
+ float baseAngle = (2.0f*PI)/sides;
+
+ rlBegin(RL_LINES);
+ rlColor4ub(color.r, color.g, color.b, color.a);
+
+ for (int i = 0; i < sides; i++) {
+ // compute the four vertices
+ float s1 = sinf(baseAngle*(i + 0))*startRadius;
+ float c1 = cosf(baseAngle*(i + 0))*startRadius;
+ Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z };
+ float s2 = sinf(baseAngle*(i + 1))*startRadius;
+ float c2 = cosf(baseAngle*(i + 1))*startRadius;
+ Vector3 w2 = { startPos.x + s2*b1.x + c2*b2.x, startPos.y + s2*b1.y + c2*b2.y, startPos.z + s2*b1.z + c2*b2.z };
+ float s3 = sinf(baseAngle*(i + 0))*endRadius;
+ float c3 = cosf(baseAngle*(i + 0))*endRadius;
+ Vector3 w3 = { endPos.x + s3*b1.x + c3*b2.x, endPos.y + s3*b1.y + c3*b2.y, endPos.z + s3*b1.z + c3*b2.z };
+ float s4 = sinf(baseAngle*(i + 1))*endRadius;
+ float c4 = cosf(baseAngle*(i + 1))*endRadius;
+ Vector3 w4 = { endPos.x + s4*b1.x + c4*b2.x, endPos.y + s4*b1.y + c4*b2.y, endPos.z + s4*b1.z + c4*b2.z };
+
+ rlVertex3f(w1.x, w1.y, w1.z);
+ rlVertex3f(w2.x, w2.y, w2.z);
+
+ rlVertex3f(w1.x, w1.y, w1.z);
+ rlVertex3f(w3.x, w3.y, w3.z);
+
+ rlVertex3f(w3.x, w3.y, w3.z);
+ rlVertex3f(w4.x, w4.y, w4.z);
+ }
+ rlEnd();
+}
+
+
// Draw a plane
void DrawPlane(Vector3 centerPos, Vector2 size, Color color)
{
@@ -1764,10 +1800,10 @@ ModelAnimation *LoadModelAnimations(const char *fileName, unsigned int *animCoun
ModelAnimation *animations = NULL;
#if defined(SUPPORT_FILEFORMAT_IQM)
- if (IsFileExtension(fileName, ".iqm")) animations = LoadIQMModelAnimations(fileName, animCount);
+ if (IsFileExtension(fileName, ".iqm")) animations = LoadModelAnimationsIQM(fileName, animCount);
#endif
#if defined(SUPPORT_FILEFORMAT_GLTF)
- if (IsFileExtension(fileName, ".gltf;.glb")) animations = LoadGLTFModelAnimations(fileName, animCount);
+ //if (IsFileExtension(fileName, ".gltf;.glb")) animations = LoadModelAnimationGLTF(fileName, animCount);
#endif
return animations;
@@ -3740,7 +3776,7 @@ static Model LoadOBJ(const char *fileName)
// iff no materials are present use all faces on one mesh
if (materialCount > 0)
{
- for (int fi = 0; fi< attrib.num_faces; fi++)
+ for (unsigned int fi = 0; fi < attrib.num_faces; fi++)
{
//tinyobj_vertex_index_t face = attrib.faces[fi];
int idx = attrib.material_ids[fi];
@@ -4245,10 +4281,10 @@ static Model LoadIQM(const char *fileName)
}
// Load IQM animation data
-static ModelAnimation* LoadIQMModelAnimations(const char *fileName, unsigned int *animCount)
+static ModelAnimation* LoadModelAnimationsIQM(const char *fileName, unsigned int *animCount)
{
-#define IQM_MAGIC "INTERQUAKEMODEL" // IQM file magic number
-#define IQM_VERSION 2 // only IQM version 2 supported
+ #define IQM_MAGIC "INTERQUAKEMODEL" // IQM file magic number
+ #define IQM_VERSION 2 // only IQM version 2 supported
unsigned int fileSize = 0;
unsigned char *fileData = LoadFileData(fileName, &fileSize);
@@ -4458,547 +4494,6 @@ static ModelAnimation* LoadIQMModelAnimations(const char *fileName, unsigned int
#endif
#if defined(SUPPORT_FILEFORMAT_GLTF)
-
-static const unsigned char base64Table[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 62, 0, 0, 0, 63, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 0, 0, 0, 0, 0, 0, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51
-};
-
-static int GetSizeBase64(char *input)
-{
- int size = 0;
-
- for (int i = 0; input[4*i] != 0; i++)
- {
- if (input[4*i + 3] == '=')
- {
- if (input[4*i + 2] == '=') size += 1;
- else size += 2;
- }
- else size += 3;
- }
-
- return size;
-}
-
-static unsigned char *DecodeBase64(char *input, int *size)
-{
- *size = GetSizeBase64(input);
-
- unsigned char *buf = (unsigned char *)RL_MALLOC(*size);
- for (int i = 0; i < *size/3; i++)
- {
- unsigned char a = base64Table[(int)input[4*i]];
- unsigned char b = base64Table[(int)input[4*i + 1]];
- unsigned char c = base64Table[(int)input[4*i + 2]];
- unsigned char d = base64Table[(int)input[4*i + 3]];
-
- buf[3*i] = (a << 2) | (b >> 4);
- buf[3*i + 1] = (b << 4) | (c >> 2);
- buf[3*i + 2] = (c << 6) | d;
- }
-
- if (*size%3 == 1)
- {
- int n = *size/3;
- unsigned char a = base64Table[(int)input[4*n]];
- unsigned char b = base64Table[(int)input[4*n + 1]];
- buf[*size - 1] = (a << 2) | (b >> 4);
- }
- else if (*size%3 == 2)
- {
- int n = *size/3;
- unsigned char a = base64Table[(int)input[4*n]];
- unsigned char b = base64Table[(int)input[4*n + 1]];
- unsigned char c = base64Table[(int)input[4*n + 2]];
- buf[*size - 2] = (a << 2) | (b >> 4);
- buf[*size - 1] = (b << 4) | (c >> 2);
- }
- return buf;
-}
-
-// Load texture from cgltf_image
-static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Color tint)
-{
- Image rimage = { 0 };
-
- if (image->uri)
- {
- if ((strlen(image->uri) > 5) &&
- (image->uri[0] == 'd') &&
- (image->uri[1] == 'a') &&
- (image->uri[2] == 't') &&
- (image->uri[3] == 'a') &&
- (image->uri[4] == ':'))
- {
- // Data URI
- // Format: data:;base64,
-
- // Find the comma
- int i = 0;
- while ((image->uri[i] != ',') && (image->uri[i] != 0)) i++;
-
- if (image->uri[i] == 0) TRACELOG(LOG_WARNING, "IMAGE: glTF data URI is not a valid image");
- else
- {
- int size = 0;
- unsigned char *data = DecodeBase64(image->uri + i + 1, &size);
-
- rimage = LoadImageFromMemory(".png", data, size);
- RL_FREE(data);
-
- // TODO: Tint shouldn't be applied here!
- ImageColorTint(&rimage, tint);
- }
- }
- else
- {
- rimage = LoadImage(TextFormat("%s/%s", texPath, image->uri));
-
- // TODO: Tint shouldn't be applied here!
- ImageColorTint(&rimage, tint);
- }
- }
- else if (image->buffer_view)
- {
- unsigned char *data = RL_MALLOC(image->buffer_view->size);
- int n = (int)image->buffer_view->offset;
- int stride = (int)image->buffer_view->stride ? (int)image->buffer_view->stride : 1;
-
- for (unsigned int i = 0; i < image->buffer_view->size; i++)
- {
- data[i] = ((unsigned char *)image->buffer_view->buffer->data)[n];
- n += stride;
- }
-
- rimage = LoadImageFromMemory(".png", data, (int)image->buffer_view->size);
- RL_FREE(data);
-
- // TODO: Tint shouldn't be applied here!
- ImageColorTint(&rimage, tint);
- }
- else rimage = GenImageColor(1, 1, tint);
-
- return rimage;
-}
-
-//
-static bool ReadGLTFValue(cgltf_accessor *acc, unsigned int index, void *variable)
-{
- unsigned int typeElements = 0;
-
- switch (acc->type)
- {
- case cgltf_type_scalar: typeElements = 1; break;
- case cgltf_type_vec2: typeElements = 2; break;
- case cgltf_type_vec3: typeElements = 3; break;
- case cgltf_type_vec4:
- case cgltf_type_mat2: typeElements = 4; break;
- case cgltf_type_mat3: typeElements = 9; break;
- case cgltf_type_mat4: typeElements = 16; break;
- case cgltf_type_invalid: typeElements = 0; break;
- default: break;
- }
-
- unsigned int typeSize = 0;
-
- switch (acc->component_type)
- {
- case cgltf_component_type_r_8u:
- case cgltf_component_type_r_8: typeSize = 1; break;
- case cgltf_component_type_r_16u:
- case cgltf_component_type_r_16: typeSize = 2; break;
- case cgltf_component_type_r_32f:
- case cgltf_component_type_r_32u: typeSize = 4; break;
- case cgltf_component_type_invalid: typeSize = 0; break;
- default: break;
- }
-
- unsigned int singleElementSize = typeSize*typeElements;
-
- if (acc->count == 2)
- {
- if (index > 1) return false;
-
- memcpy(variable, index == 0 ? acc->min : acc->max, singleElementSize);
- return true;
- }
-
- memset(variable, 0, singleElementSize);
-
- if (acc->buffer_view == NULL || acc->buffer_view->buffer == NULL || acc->buffer_view->buffer->data == NULL) return false;
-
- if (!acc->buffer_view->stride)
- {
- void *readPosition = ((char *)acc->buffer_view->buffer->data) + (index*singleElementSize) + acc->buffer_view->offset + acc->offset;
- memcpy(variable, readPosition, singleElementSize);
- }
- else
- {
- void *readPosition = ((char *)acc->buffer_view->buffer->data) + (index*acc->buffer_view->stride) + acc->buffer_view->offset + acc->offset;
- memcpy(variable, readPosition, singleElementSize);
- }
-
- return true;
-}
-
-static void *ReadGLTFValuesAs(cgltf_accessor* acc, cgltf_component_type type, bool adjustOnDownCasting)
-{
- unsigned int count = acc->count;
- unsigned int typeSize = 0;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- case cgltf_component_type_r_8: typeSize = 1; break;
- case cgltf_component_type_r_16u:
- case cgltf_component_type_r_16: typeSize = 2; break;
- case cgltf_component_type_r_32f:
- case cgltf_component_type_r_32u: typeSize = 4; break;
- case cgltf_component_type_invalid: typeSize = 0; break;
- default: break;
- }
-
- unsigned int typeElements = 0;
- switch (acc->type)
- {
- case cgltf_type_scalar: typeElements = 1; break;
- case cgltf_type_vec2: typeElements = 2; break;
- case cgltf_type_vec3: typeElements = 3; break;
- case cgltf_type_vec4:
- case cgltf_type_mat2: typeElements = 4; break;
- case cgltf_type_mat3: typeElements = 9; break;
- case cgltf_type_mat4: typeElements = 16; break;
- case cgltf_type_invalid: typeElements = 0; break;
- default: break;
- }
-
- if (acc->component_type == type)
- {
- void *array = RL_MALLOC(count*typeElements*typeSize);
-
- for (unsigned int i = 0; i < count; i++) ReadGLTFValue(acc, i, (char *)array + i*typeElements*typeSize);
-
- return array;
-
- }
- else
- {
- unsigned int accTypeSize = 0;
- switch (acc->component_type)
- {
- case cgltf_component_type_r_8u:
- case cgltf_component_type_r_8: accTypeSize = 1; break;
- case cgltf_component_type_r_16u:
- case cgltf_component_type_r_16: accTypeSize = 2; break;
- case cgltf_component_type_r_32f:
- case cgltf_component_type_r_32u: accTypeSize = 4; break;
- case cgltf_component_type_invalid: accTypeSize = 0; break;
- default: break;
- }
-
- void *array = RL_MALLOC(count*typeElements*typeSize);
- void *additionalArray = RL_MALLOC(count*typeElements*accTypeSize);
-
- for (unsigned int i = 0; i < count; i++)
- {
- ReadGLTFValue(acc, i, (char *)additionalArray + i*typeElements*accTypeSize);
- }
-
- switch (acc->component_type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedAdditionalArray = (unsigned char *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8:
- {
- char *typedArray = (char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(UCHAR_MAX/CHAR_MAX));
- else typedArray[i] = (char)typedAdditionalArray[i];
- }
-
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedArray = (unsigned short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedArray = (short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedArray = (float *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedArray = (unsigned int *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- case cgltf_component_type_r_8:
- {
- char *typedAdditionalArray = (char *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedArray = (unsigned char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned char)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedArray = (unsigned short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedArray = (short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedArray = (float *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedArray = (unsigned int *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedAdditionalArray = (unsigned short *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedArray = (unsigned char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(USHRT_MAX/UCHAR_MAX));
- else typedArray[i] = (unsigned char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_8:
- {
- char *typedArray = (char *) array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(USHRT_MAX/CHAR_MAX));
- else typedArray[i] = (char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedArray = (short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (short)(typedAdditionalArray[i]/(USHRT_MAX/SHRT_MAX));
- else typedArray[i] = (short)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedArray = (float *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedArray = (unsigned int *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedAdditionalArray = (short *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedArray = (unsigned char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(SHRT_MAX/UCHAR_MAX));
- else typedArray[i] = (unsigned char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_8:
- {
- char *typedArray = (char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(SHRT_MAX/CHAR_MAX));
- else typedArray[i] = (char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedArray = (unsigned short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedArray = (float *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedArray = (unsigned int *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedAdditionalArray = (float *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedArray = (unsigned char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned char)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_8:
- {
- char *typedArray = (char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (char)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedArray = (unsigned short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedArray = (short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i];
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedArray = (unsigned int *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- case cgltf_component_type_r_32u:
- {
- unsigned int *typedAdditionalArray = (unsigned int *)additionalArray;
- switch (type)
- {
- case cgltf_component_type_r_8u:
- {
- unsigned char *typedArray = (unsigned char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(UINT_MAX/UCHAR_MAX));
- else typedArray[i] = (unsigned char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_8:
- {
- char *typedArray = (char *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(UINT_MAX/CHAR_MAX));
- else typedArray[i] = (char)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_16u:
- {
- unsigned short *typedArray = (unsigned short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (unsigned short)(typedAdditionalArray[i]/(UINT_MAX/USHRT_MAX));
- else typedArray[i] = (unsigned short)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_16:
- {
- short *typedArray = (short *)array;
- for (unsigned int i = 0; i < count*typeElements; i++)
- {
- if (adjustOnDownCasting) typedArray[i] = (short)(typedAdditionalArray[i]/(UINT_MAX/SHRT_MAX));
- else typedArray[i] = (short)typedAdditionalArray[i];
- }
- } break;
- case cgltf_component_type_r_32f:
- {
- float *typedArray = (float *)array;
- for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i];
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
- } break;
- default:
- {
- RL_FREE(array);
- RL_FREE(additionalArray);
- return NULL;
- } break;
- }
-
- RL_FREE(additionalArray);
- return array;
- }
-}
-
// LoadGLTF loads in model data from given filename, supporting both .gltf and .glb
static Model LoadGLTF(const char *fileName)
{
@@ -5023,54 +4518,54 @@ static Model LoadGLTF(const char *fileName)
Model model = { 0 };
// glTF file loading
- unsigned int dataSize = 0;
- unsigned char *fileData = LoadFileData(fileName, &dataSize);
+ unsigned int fileSize = 0;
+ unsigned char *fileData = LoadFileData(fileName, &fileSize);
if (fileData == NULL) return model;
// glTF data loading
- cgltf_options options = { 0 };
- cgltf_data *data = NULL;
- cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data);
+ cgltf_data *gltfData = NULL;
+ cgltf_options gltfOptions = { 0 }; // TODO: Define custom allocators/file-accessors
+ cgltf_result result = cgltf_parse(&gltfOptions, fileData, fileSize, &gltfData);
if (result == cgltf_result_success)
{
- TRACELOG(LOG_INFO, "MODEL: [%s] glTF meshes (%s) count: %i", fileName, (data->file_type == 2)? "glb" : "gltf", data->meshes_count);
- TRACELOG(LOG_INFO, "MODEL: [%s] glTF materials (%s) count: %i", fileName, (data->file_type == 2)? "glb" : "gltf", data->materials_count);
+ TRACELOG(LOG_INFO, "MODEL: [%s] glTF meshes (%s) count: %i", fileName, (gltfData->file_type == 2)? "glb" : "gltf", gltfData->meshes_count);
+ TRACELOG(LOG_INFO, "MODEL: [%s] glTF materials (%s) count: %i", fileName, (gltfData->file_type == 2)? "glb" : "gltf", gltfData->materials_count);
// Read data buffers
- result = cgltf_load_buffers(&options, data, fileName);
+ result = cgltf_load_buffers(&gltfOptions, gltfData, fileName); // TODO: Not needed, gltfData already contains URIs to buffers for manual loading
if (result != cgltf_result_success) TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load mesh/material buffers", fileName);
- if (data->scenes_count > 1) TRACELOG(LOG_INFO, "MODEL: [%s] Has multiple scenes but only the first one will be loaded", fileName);
+ if (gltfData->scenes_count > 1) TRACELOG(LOG_INFO, "MODEL: [%s] Has multiple scenes but only the first one will be loaded", fileName);
int primitiveCount = 0;
- for (unsigned int i = 0; i < data->scene->nodes_count; i++)
+ for (unsigned int i = 0; i < gltfData->scene->nodes_count; i++)
{
- GetGLTFPrimitiveCount(data->scene->nodes[i], &primitiveCount);
+ //GetGLTFPrimitiveCount(gltfData->scene->nodes[i], &primitiveCount); // TODO: Recursive function, really needed?
}
// Process glTF data and map to model
model.meshCount = primitiveCount;
model.meshes = RL_CALLOC(model.meshCount, sizeof(Mesh));
- model.materialCount = (int)data->materials_count + 1;
+ model.materialCount = (int)gltfData->materials_count + 1;
model.materials = RL_MALLOC(model.materialCount*sizeof(Material));
model.meshMaterial = RL_MALLOC(model.meshCount*sizeof(int));
- model.boneCount = (int)data->nodes_count;
+ model.boneCount = (int)gltfData->nodes_count;
model.bones = RL_CALLOC(model.boneCount, sizeof(BoneInfo));
model.bindPose = RL_CALLOC(model.boneCount, sizeof(Transform));
- InitGLTFBones(&model, data);
- LoadGLTFMaterial(&model, fileName, data);
+ //InitGLTFBones(&model, gltfData);
+ //LoadGLTFMaterial(&model, fileName, gltfData);
int primitiveIndex = 0;
- for (unsigned int i = 0; i < data->scene->nodes_count; i++)
+ for (unsigned int i = 0; i < gltfData->scene->nodes_count; i++)
{
Matrix staticTransform = MatrixIdentity();
- LoadGLTFNode(data, data->scene->nodes[i], &model, staticTransform, &primitiveIndex, fileName);
+ //LoadGLTFNode(gltfData, gltfData->scene->nodes[i], &model, staticTransform, &primitiveIndex, fileName); // TODO: Recursive function, really needed?
}
- cgltf_free(data);
+ cgltf_free(gltfData);
}
else TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load glTF data", fileName);
@@ -5078,616 +4573,6 @@ static Model LoadGLTF(const char *fileName)
return model;
}
-
-static void InitGLTFBones(Model *model, const cgltf_data *data)
-{
- for (unsigned int j = 0; j < data->nodes_count; j++)
- {
- strcpy(model->bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name);
- model->bones[j].parent = (data->nodes[j].parent != NULL) ? (int)(data->nodes[j].parent - data->nodes) : -1;
- }
-
- for (unsigned int i = 0; i < data->nodes_count; i++)
- {
- if (data->nodes[i].has_translation) memcpy(&model->bindPose[i].translation, data->nodes[i].translation, 3*sizeof(float));
- else model->bindPose[i].translation = Vector3Zero();
-
- if (data->nodes[i].has_rotation) memcpy(&model->bindPose[i].rotation, data->nodes[i].rotation, 4*sizeof(float));
- else model->bindPose[i].rotation = QuaternionIdentity();
-
- model->bindPose[i].rotation = QuaternionNormalize(model->bindPose[i].rotation);
-
- if (data->nodes[i].has_scale) memcpy(&model->bindPose[i].scale, data->nodes[i].scale, 3*sizeof(float));
- else model->bindPose[i].scale = Vector3One();
- }
-
- {
- bool *completedBones = RL_CALLOC(model->boneCount, sizeof(bool));
- int numberCompletedBones = 0;
-
- while (numberCompletedBones < model->boneCount)
- {
- for (int i = 0; i < model->boneCount; i++)
- {
- if (completedBones[i]) continue;
-
- if (model->bones[i].parent < 0)
- {
- completedBones[i] = true;
- numberCompletedBones++;
- continue;
- }
-
- if (!completedBones[model->bones[i].parent]) continue;
-
- Transform* currentTransform = &model->bindPose[i];
- BoneInfo* currentBone = &model->bones[i];
- int root = currentBone->parent;
- if (root >= model->boneCount) root = 0;
- Transform* parentTransform = &model->bindPose[root];
-
- currentTransform->rotation = QuaternionMultiply(parentTransform->rotation, currentTransform->rotation);
- currentTransform->translation = Vector3RotateByQuaternion(currentTransform->translation, parentTransform->rotation);
- currentTransform->translation = Vector3Add(currentTransform->translation, parentTransform->translation);
- currentTransform->scale = Vector3Multiply(currentTransform->scale, parentTransform->scale);
- completedBones[i] = true;
- numberCompletedBones++;
- }
- }
-
- RL_FREE(completedBones);
- }
-}
-
-static void LoadGLTFMaterial(Model *model, const char *fileName, const cgltf_data *data)
-{
- for (int i = 0; i < model->materialCount - 1; i++)
- {
- model->materials[i] = LoadMaterialDefault();
- Color tint = (Color){ 255, 255, 255, 255 };
- const char *texPath = GetDirectoryPath(fileName);
-
- // Ensure material follows raylib support for PBR (metallic/roughness flow)
- if (data->materials[i].has_pbr_metallic_roughness)
- {
- tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255);
- tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255);
- tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255);
- tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3]*255);
-
- model->materials[i].maps[MATERIAL_MAP_ALBEDO].color = tint;
-
- if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture)
- {
- Image albedo = LoadImageFromCgltfImage(data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image, texPath, tint);
- model->materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTextureFromImage(albedo);
- UnloadImage(albedo);
- }
-
- tint = WHITE; // Set tint to white after it's been used by Albedo
-
- if (data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture)
- {
- Image metallicRoughness = LoadImageFromCgltfImage(data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture->image, texPath, tint);
- model->materials[i].maps[MATERIAL_MAP_ROUGHNESS].texture = LoadTextureFromImage(metallicRoughness);
-
- float roughness = data->materials[i].pbr_metallic_roughness.roughness_factor;
- model->materials[i].maps[MATERIAL_MAP_ROUGHNESS].value = roughness;
-
- float metallic = data->materials[i].pbr_metallic_roughness.metallic_factor;
- model->materials[i].maps[MATERIAL_MAP_METALNESS].value = metallic;
-
- UnloadImage(metallicRoughness);
- }
-
- if (data->materials[i].normal_texture.texture)
- {
- Image normalImage = LoadImageFromCgltfImage(data->materials[i].normal_texture.texture->image, texPath, tint);
- model->materials[i].maps[MATERIAL_MAP_NORMAL].texture = LoadTextureFromImage(normalImage);
- UnloadImage(normalImage);
- }
-
- if (data->materials[i].occlusion_texture.texture)
- {
- Image occulsionImage = LoadImageFromCgltfImage(data->materials[i].occlusion_texture.texture->image, texPath, tint);
- model->materials[i].maps[MATERIAL_MAP_OCCLUSION].texture = LoadTextureFromImage(occulsionImage);
- UnloadImage(occulsionImage);
- }
-
- if (data->materials[i].emissive_texture.texture)
- {
- Image emissiveImage = LoadImageFromCgltfImage(data->materials[i].emissive_texture.texture->image, texPath, tint);
- model->materials[i].maps[MATERIAL_MAP_EMISSION].texture = LoadTextureFromImage(emissiveImage);
- tint.r = (unsigned char)(data->materials[i].emissive_factor[0]*255);
- tint.g = (unsigned char)(data->materials[i].emissive_factor[1]*255);
- tint.b = (unsigned char)(data->materials[i].emissive_factor[2]*255);
- model->materials[i].maps[MATERIAL_MAP_EMISSION].color = tint;
- UnloadImage(emissiveImage);
- }
- }
- }
-
- model->materials[model->materialCount - 1] = LoadMaterialDefault();
-}
-
-static void BindGLTFPrimitiveToBones(Model *model, cgltf_node *node, const cgltf_data *data, int primitiveIndex)
-{
- int nodeId = node - data->nodes;
-
- if (model->meshes[primitiveIndex].boneIds == NULL)
- {
- model->meshes[primitiveIndex].boneIds = RL_CALLOC(model->meshes[primitiveIndex].vertexCount*4, sizeof(int));
- model->meshes[primitiveIndex].boneWeights = RL_CALLOC(model->meshes[primitiveIndex].vertexCount*4, sizeof(float));
-
- for (int b = 0; b < model->meshes[primitiveIndex].vertexCount*4; b++)
- {
- if (b%4 == 0)
- {
- model->meshes[primitiveIndex].boneIds[b] = nodeId;
- model->meshes[primitiveIndex].boneWeights[b] = 1.0f;
- }
- else
- {
- model->meshes[primitiveIndex].boneIds[b] = 0;
- model->meshes[primitiveIndex].boneWeights[b] = 0.0f;
- }
- }
- }
-}
-
-// LoadGLTF loads in animation data from given filename
-static ModelAnimation *LoadGLTFModelAnimations(const char *fileName, unsigned int *animCount)
-{
- /***********************************************************************************
-
- Function implemented by Hristo Stamenov (@object71)
-
- Features:
- - Supports .gltf and .glb files
-
- Some restrictions (not exhaustive):
- - ...
-
- *************************************************************************************/
-
- // glTF file loading
- unsigned int dataSize = 0;
- unsigned char *fileData = LoadFileData(fileName, &dataSize);
-
- ModelAnimation *animations = NULL;
-
- if (fileData == NULL) return animations;
-
- // glTF data loading
- cgltf_options options = { 0 };
- cgltf_data *data = NULL;
- cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data);
-
- if (result == cgltf_result_success)
- {
- TRACELOG(LOG_INFO, "MODEL: [%s] glTF animations (%s) count: %i", fileName, (data->file_type == 2)? "glb" :
- "gltf", data->animations_count);
-
- result = cgltf_load_buffers(&options, data, fileName);
- if (result != cgltf_result_success) TRACELOG(LOG_WARNING, "MODEL: [%s] unable to load glTF animations data", fileName);
- animations = RL_MALLOC(data->animations_count*sizeof(ModelAnimation));
- *animCount = (unsigned int)data->animations_count;
-
- for (unsigned int a = 0; a < data->animations_count; a++)
- {
- // gltf animation consists of the following structures:
- // - nodes - bones are part of the node system (the whole node system is animatable)
- // - channels - single transformation type on a single bone
- // - node - animatable node
- // - transformation type (path) - translation, rotation, scale
- // - sampler - animation samples
- // - input - points in time this transformation happens
- // - output - the transformation amount at the given input points in time
- // - interpolation - the type of interpolation to use between the frames
-
- cgltf_animation *animation = data->animations + a;
-
- ModelAnimation *output = animations + a;
-
- // 30 frames sampled per second
- const float timeStep = (1.0f/60.0f);
- float animationDuration = 0.0f;
-
- // Getting the max animation time to consider for animation duration
- for (unsigned int i = 0; i < animation->channels_count; i++)
- {
- cgltf_animation_channel *channel = animation->channels + i;
- int frameCounts = (int)channel->sampler->input->count;
- float lastFrameTime = 0.0f;
-
- if (ReadGLTFValue(channel->sampler->input, frameCounts - 1, &lastFrameTime))
- {
- animationDuration = fmaxf(lastFrameTime, animationDuration);
- }
- }
-
- output->frameCount = (int)(animationDuration/timeStep);
- output->boneCount = (int)data->nodes_count;
- output->bones = RL_MALLOC(output->boneCount*sizeof(BoneInfo));
- output->framePoses = RL_MALLOC(output->frameCount*sizeof(Transform *));
- // output->framerate = // TODO: Use framerate instead of const timestep
-
- // Name and parent bones
- for (int j = 0; j < output->boneCount; j++)
- {
- strcpy(output->bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name);
- output->bones[j].parent = (data->nodes[j].parent != NULL) ? (int)(data->nodes[j].parent - data->nodes) : -1;
- }
-
- // Allocate data for frames
- // Initiate with zero bone translations
- for (int frame = 0; frame < output->frameCount; frame++)
- {
- output->framePoses[frame] = RL_MALLOC(output->boneCount*sizeof(Transform));
-
- for (int i = 0; i < output->boneCount; i++)
- {
- if (data->nodes[i].has_translation) memcpy(&output->framePoses[frame][i].translation, data->nodes[i].translation, 3*sizeof(float));
- else output->framePoses[frame][i].translation = Vector3Zero();
-
- if (data->nodes[i].has_rotation) memcpy(&output->framePoses[frame][i], data->nodes[i].rotation, 4*sizeof(float));
- else output->framePoses[frame][i].rotation = QuaternionIdentity();
-
- output->framePoses[frame][i].rotation = QuaternionNormalize(output->framePoses[frame][i].rotation);
-
- if (data->nodes[i].has_scale) memcpy(&output->framePoses[frame][i].scale, data->nodes[i].scale, 3*sizeof(float));
- else output->framePoses[frame][i].scale = Vector3One();
- }
- }
-
- // for each single transformation type on single bone
- for (unsigned int channelId = 0; channelId < animation->channels_count; channelId++)
- {
- cgltf_animation_channel *channel = animation->channels + channelId;
- cgltf_animation_sampler *sampler = channel->sampler;
-
- int boneId = (int)(channel->target_node - data->nodes);
-
- for (int frame = 0; frame < output->frameCount; frame++)
- {
- bool shouldSkipFurtherTransformation = true;
- int outputMin = 0;
- int outputMax = 0;
- float frameTime = frame*timeStep;
- float lerpPercent = 0.0f;
-
- // For this transformation:
- // getting between which input values the current frame time position
- // and also what is the percent to use in the linear interpolation later
- for (unsigned int j = 0; j < sampler->input->count; j++)
- {
- float inputFrameTime;
- if (ReadGLTFValue(sampler->input, j, &inputFrameTime))
- {
- if (frameTime < inputFrameTime)
- {
- shouldSkipFurtherTransformation = false;
- outputMin = (j == 0) ? 0 : j - 1;
- outputMax = j;
-
- float previousInputTime = 0.0f;
- if (ReadGLTFValue(sampler->input, outputMin, &previousInputTime))
- {
- if ((inputFrameTime - previousInputTime) != 0)
- {
- lerpPercent = (frameTime - previousInputTime)/(inputFrameTime - previousInputTime);
- }
- }
-
- break;
- }
- }
- else break;
- }
-
- // If the current transformation has no information for the current frame time point
- if (shouldSkipFurtherTransformation) continue;
-
- if (channel->target_path == cgltf_animation_path_type_translation)
- {
- Vector3 translationStart;
- Vector3 translationEnd;
-
- float values[3];
-
- bool success = ReadGLTFValue(sampler->output, outputMin, values);
-
- translationStart.x = values[0];
- translationStart.y = values[1];
- translationStart.z = values[2];
-
- success = ReadGLTFValue(sampler->output, outputMax, values) && success;
-
- translationEnd.x = values[0];
- translationEnd.y = values[1];
- translationEnd.z = values[2];
-
- if (success)
- {
- output->framePoses[frame][boneId].translation = Vector3Lerp(translationStart, translationEnd, lerpPercent);
- }
- }
- if (channel->target_path == cgltf_animation_path_type_rotation)
- {
- Vector4 rotationStart;
- Vector4 rotationEnd;
-
- float values[4];
-
- bool success = ReadGLTFValue(sampler->output, outputMin, &values);
-
- rotationStart.x = values[0];
- rotationStart.y = values[1];
- rotationStart.z = values[2];
- rotationStart.w = values[3];
-
- success = ReadGLTFValue(sampler->output, outputMax, &values) && success;
-
- rotationEnd.x = values[0];
- rotationEnd.y = values[1];
- rotationEnd.z = values[2];
- rotationEnd.w = values[3];
-
- if (success)
- {
- output->framePoses[frame][boneId].rotation = QuaternionNlerp(rotationStart, rotationEnd, lerpPercent);
- }
- }
- if (channel->target_path == cgltf_animation_path_type_scale)
- {
- Vector3 scaleStart;
- Vector3 scaleEnd;
-
- float values[3];
-
- bool success = ReadGLTFValue(sampler->output, outputMin, &values);
-
- scaleStart.x = values[0];
- scaleStart.y = values[1];
- scaleStart.z = values[2];
-
- success = ReadGLTFValue(sampler->output, outputMax, &values) && success;
-
- scaleEnd.x = values[0];
- scaleEnd.y = values[1];
- scaleEnd.z = values[2];
-
- if (success)
- {
- output->framePoses[frame][boneId].scale = Vector3Lerp(scaleStart, scaleEnd, lerpPercent);
- }
- }
- }
- }
-
- // Build frameposes
- for (int frame = 0; frame < output->frameCount; frame++)
- {
- bool *completedBones = RL_CALLOC(output->boneCount, sizeof(bool));
- int numberCompletedBones = 0;
-
- while (numberCompletedBones < output->boneCount)
- {
- for (int i = 0; i < output->boneCount; i++)
- {
- if (completedBones[i])
- {
- continue;
- }
-
- if (output->bones[i].parent < 0)
- {
- completedBones[i] = true;
- numberCompletedBones++;
- continue;
- }
-
- if (!completedBones[output->bones[i].parent])
- {
- continue;
- }
-
- output->framePoses[frame][i].rotation = QuaternionMultiply(output->framePoses[frame][output->bones[i].parent].rotation, output->framePoses[frame][i].rotation);
- output->framePoses[frame][i].translation = Vector3RotateByQuaternion(output->framePoses[frame][i].translation, output->framePoses[frame][output->bones[i].parent].rotation);
- output->framePoses[frame][i].translation = Vector3Add(output->framePoses[frame][i].translation, output->framePoses[frame][output->bones[i].parent].translation);
- output->framePoses[frame][i].scale = Vector3Multiply(output->framePoses[frame][i].scale, output->framePoses[frame][output->bones[i].parent].scale);
- completedBones[i] = true;
- numberCompletedBones++;
- }
- }
- RL_FREE(completedBones);
- }
- }
-
- cgltf_free(data);
- }
- else TRACELOG(LOG_WARNING, ": [%s] Failed to load glTF data", fileName);
-
- RL_FREE(fileData);
-
- return animations;
-}
-
-void LoadGLTFMesh(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName)
-{
- cgltf_mesh *mesh = node->mesh;
- for (unsigned int p = 0; p < mesh->primitives_count; p++)
- {
- for (unsigned int j = 0; j < mesh->primitives[p].attributes_count; j++)
- {
- if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_position)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
- outModel->meshes[(*primitiveIndex)].vertexCount = (int)acc->count;
- int bufferSize = outModel->meshes[(*primitiveIndex)].vertexCount*3*sizeof(float);
- outModel->meshes[(*primitiveIndex)].animVertices = RL_MALLOC(bufferSize);
-
- outModel->meshes[(*primitiveIndex)].vertices = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false);
-
- // Transform using the nodes matrix attributes
- for (int v = 0; v < outModel->meshes[(*primitiveIndex)].vertexCount; v++)
- {
- Vector3 vertex = {
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 0)],
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 1)],
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 2)] };
-
- vertex = Vector3Transform(vertex, currentTransform);
-
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 0)] = vertex.x;
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 1)] = vertex.y;
- outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 2)] = vertex.z;
- }
-
- memcpy(outModel->meshes[(*primitiveIndex)].animVertices, outModel->meshes[(*primitiveIndex)].vertices, bufferSize);
- }
- else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_normal)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
-
- int bufferSize = (int)(acc->count*3*sizeof(float));
- outModel->meshes[(*primitiveIndex)].animNormals = RL_MALLOC(bufferSize);
-
- outModel->meshes[(*primitiveIndex)].normals = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false);
-
- // Transform using the nodes matrix attributes
- for (int v = 0; v < outModel->meshes[(*primitiveIndex)].vertexCount; v++)
- {
- Vector3 normal = {
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 0)],
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 1)],
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 2)] };
-
- normal = Vector3Transform(normal, currentTransform);
-
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 0)] = normal.x;
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 1)] = normal.y;
- outModel->meshes[(*primitiveIndex)].normals[(v*3 + 2)] = normal.z;
- }
-
- memcpy(outModel->meshes[(*primitiveIndex)].animNormals, outModel->meshes[(*primitiveIndex)].normals, bufferSize);
- }
- else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_texcoord)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
- outModel->meshes[(*primitiveIndex)].texcoords = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false);
- }
- else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_joints)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
- unsigned int boneCount = acc->count;
- unsigned int totalBoneWeights = boneCount*4;
- outModel->meshes[(*primitiveIndex)].boneIds = RL_MALLOC(totalBoneWeights*sizeof(int));
- short *bones = ReadGLTFValuesAs(acc, cgltf_component_type_r_16, false);
- // Find skin joint
- for (unsigned int a = 0; a < totalBoneWeights; a++)
- {
- outModel->meshes[(*primitiveIndex)].boneIds[a] = 0;
- if (bones[a] < 0) continue;
- cgltf_node* skinJoint = node->skin->joints[bones[a]];
- unsigned int skinJointId = skinJoint - data->nodes;
- outModel->meshes[(*primitiveIndex)].boneIds[a] = skinJointId;
- }
- RL_FREE(bones);
- }
- else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_weights)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
- outModel->meshes[(*primitiveIndex)].boneWeights = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false);
- }
- else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_color)
- {
- cgltf_accessor *acc = mesh->primitives[p].attributes[j].data;
- outModel->meshes[(*primitiveIndex)].colors = ReadGLTFValuesAs(acc, cgltf_component_type_r_8u, true);
- }
- }
-
- cgltf_accessor *acc = mesh->primitives[p].indices;
- if (acc)
- {
- outModel->meshes[(*primitiveIndex)].triangleCount = acc->count/3;
- outModel->meshes[(*primitiveIndex)].indices = ReadGLTFValuesAs(acc, cgltf_component_type_r_16u, false);
- }
- else
- {
- // Unindexed mesh
- outModel->meshes[(*primitiveIndex)].triangleCount = outModel->meshes[(*primitiveIndex)].vertexCount/3;
- }
-
- if (mesh->primitives[p].material)
- {
- // Compute the offset
- outModel->meshMaterial[(*primitiveIndex)] = (int)(mesh->primitives[p].material - data->materials);
- }
- else outModel->meshMaterial[(*primitiveIndex)] = outModel->materialCount - 1;
-
- BindGLTFPrimitiveToBones(outModel, node, data, *primitiveIndex);
-
- (*primitiveIndex) = (*primitiveIndex) + 1;
- }
-}
-
-static Matrix GetNodeTransformationMatrix(cgltf_node *node, Matrix current)
-{
- if (node->has_matrix)
- {
- Matrix nodeTransform = {
- node->matrix[0], node->matrix[4], node->matrix[8], node->matrix[12],
- node->matrix[1], node->matrix[5], node->matrix[9], node->matrix[13],
- node->matrix[2], node->matrix[6], node->matrix[10], node->matrix[14],
- node->matrix[3], node->matrix[7], node->matrix[11], node->matrix[15] };
- current= MatrixMultiply(nodeTransform, current);
- }
- if (node->has_translation)
- {
- Matrix tl = MatrixTranslate(node->translation[0],node->translation[1],node->translation[2]);
- current = MatrixMultiply(tl, current);
- }
- if (node->has_rotation)
- {
- Matrix rot = QuaternionToMatrix((Quaternion){node->rotation[0],node->rotation[1],node->rotation[2],node->rotation[3]});
- current = MatrixMultiply(rot, current);
- }
- if (node->has_scale)
- {
- Matrix scale = MatrixScale(node->scale[0],node->scale[1],node->scale[2]);
- current = MatrixMultiply(scale, current);
- }
- return current;
-}
-
-void LoadGLTFNode(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName)
-{
- // Apply the transforms if they exist (Will still be applied even if no mesh is present to support emptys and bone structures)
- Matrix localTransform = GetNodeTransformationMatrix(node, MatrixIdentity());
- currentTransform = MatrixMultiply(localTransform, currentTransform);
- // Load mesh if it exists
- if (node->mesh != NULL)
- {
- // Check if skinning is enabled and load Mesh accordingly
- Matrix vertexTransform = currentTransform;
- if ((node->skin != NULL) && (node->parent != NULL))
- {
- vertexTransform = localTransform;
- TRACELOG(LOG_WARNING,"MODEL: GLTF Node %s is skinned but not root node! Parent transformations will be ignored (NODE_SKINNED_MESH_NON_ROOT)",node->name);
- }
- LoadGLTFMesh(data, node, outModel, vertexTransform, primitiveIndex, fileName);
- }
- for (unsigned int i = 0; i < node->children_count; i++) LoadGLTFNode(data, node->children[i], outModel, currentTransform, primitiveIndex, fileName);
-}
-
-static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount)
-{
- if (node->mesh != NULL) *outCount += node->mesh->primitives_count;
-
- for (unsigned int i = 0; i < node->children_count; i++) GetGLTFPrimitiveCount(node->children[i], outCount);
-}
-
#endif
#if defined(SUPPORT_FILEFORMAT_VOX)
@@ -5695,22 +4580,23 @@ static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount)
static Model LoadVOX(const char *fileName)
{
Model model = { 0 };
+
int nbvertices = 0;
int meshescount = 0;
- unsigned int readed = 0;
- unsigned char* fileData;
+ unsigned int fileSize = 0;
+ unsigned char *fileData = NULL;
- //Read vox file into buffer
- fileData = LoadFileData(fileName, &readed);
+ // Read vox file into buffer
+ fileData = LoadFileData(fileName, &fileSize);
if (fileData == 0)
{
TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load VOX file", fileName);
return model;
}
- //Read and build voxarray description
+ // Read and build voxarray description
VoxArray3D voxarray = { 0 };
- int ret = Vox_LoadFromMemory(fileData, readed, &voxarray);
+ int ret = Vox_LoadFromMemory(fileData, fileSize, &voxarray);
if (ret != VOX_SUCCESS)
{
@@ -5733,12 +4619,12 @@ static Model LoadVOX(const char *fileName)
model.transform = MatrixIdentity();
model.meshCount = meshescount;
- model.meshes = (Mesh *)MemAlloc(model.meshCount*sizeof(Mesh));
+ model.meshes = (Mesh *)RL_CALLOC(model.meshCount, sizeof(Mesh));
- model.meshMaterial = (int *)MemAlloc(model.meshCount*sizeof(int));
+ model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int));
model.materialCount = 1;
- model.materials = (Material *)MemAlloc(model.materialCount*sizeof(Material));
+ model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material));
model.materials[0] = LoadMaterialDefault();
// Init model meshes
@@ -5746,58 +4632,47 @@ static Model LoadVOX(const char *fileName)
int verticesMax = 65532; // 5461 voxels x 12 vertices per voxel -> 65532 (must be inf 65536)
// 6*4 = 12 vertices per voxel
- Vector3 *pvertices = { 0 };
- pvertices->x = voxarray.vertices.array->x;
- pvertices->y = voxarray.vertices.array->y;
- pvertices->z = voxarray.vertices.array->z;
-
- Color *pcolors = { 0 };
- pcolors->r = voxarray.colors.array->r;
- pcolors->g = voxarray.colors.array->g;
- pcolors->b = voxarray.colors.array->b;
- pcolors->a = voxarray.colors.array->a;
+ Vector3 *pvertices = (Vector3 *)voxarray.vertices.array;
+ Color *pcolors = (Color *)voxarray.colors.array;
unsigned short *pindices = voxarray.indices.array; // 5461*6*6 = 196596 indices max per mesh
int size = 0;
- for (int idxMesh = 0; idxMesh < meshescount; idxMesh++)
+ for (int i = 0; i < meshescount; i++)
{
- Mesh *pmesh = &model.meshes[idxMesh];
+ Mesh *pmesh = &model.meshes[i];
memset(pmesh, 0, sizeof(Mesh));
// Copy vertices
pmesh->vertexCount = (int)fmin(verticesMax, verticesRemain);
size = pmesh->vertexCount*sizeof(float)*3;
- pmesh->vertices = MemAlloc(size);
+ pmesh->vertices = RL_MALLOC(size);
memcpy(pmesh->vertices, pvertices, size);
// Copy indices
// TODO: Compute globals indices array
- size = voxarray.indices.used * sizeof(unsigned short);
- pmesh->indices = MemAlloc(size);
+ size = voxarray.indices.used*sizeof(unsigned short);
+ pmesh->indices = RL_MALLOC(size);
memcpy(pmesh->indices, pindices, size);
pmesh->triangleCount = (pmesh->vertexCount/4)*2;
// Copy colors
size = pmesh->vertexCount*sizeof(Color);
- pmesh->colors = MemAlloc(size);
+ pmesh->colors = RL_MALLOC(size);
memcpy(pmesh->colors, pcolors, size);
// First material index
- model.meshMaterial[idxMesh] = 0;
-
- // Upload mesh data to GPU
- UploadMesh(pmesh, false);
+ model.meshMaterial[i] = 0;
verticesRemain -= verticesMax;
pvertices += verticesMax;
pcolors += verticesMax;
}
- //Free buffers
+ // Free buffers
Vox_FreeArrays(&voxarray);
UnloadFileData(fileData);
diff --git a/src/rtext.c b/src/rtext.c
index dd6bcf2d7..0cd26263f 100644
--- a/src/rtext.c
+++ b/src/rtext.c
@@ -364,7 +364,9 @@ Font LoadFontFromImage(Image image, Color key, int firstChar)
#define MAX_GLYPHS_FROM_IMAGE 256 // Maximum number of glyphs supported on image scan
#endif
- #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r)&&(col1.g == col2.g)&&(col1.b == col2.b)&&(col1.a == col2.a))
+ #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r) && (col1.g == col2.g) && (col1.b == col2.b) && (col1.a == col2.a))
+
+ Font font = GetFontDefault();
int charSpacing = 0;
int lineSpacing = 0;
@@ -374,8 +376,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar)
// We allocate a temporal arrays for chars data measures,
// once we get the actual number of chars, we copy data to a sized arrays
- int tempCharValues[MAX_GLYPHS_FROM_IMAGE];
- Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE];
+ int tempCharValues[MAX_GLYPHS_FROM_IMAGE] = { 0 };
+ Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE] = { 0 };
Color *pixels = LoadImageColors(image);
@@ -390,6 +392,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar)
if (!COLOR_EQUAL(pixels[y*image.width + x], key)) break;
}
+ if ((x == 0) || (y == 0)) return font;
+
charSpacing = x;
lineSpacing = y;
@@ -445,9 +449,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar)
.mipmaps = 1
};
- // Create font with all data parsed from image
- Font font = { 0 };
-
+ // Set font with all data parsed from image
font.texture = LoadTextureFromImage(fontClear); // Convert processed image to OpenGL texture
font.glyphCount = index;
font.glyphPadding = 0;
@@ -773,8 +775,6 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC
RL_FREE(context);
}
- // TODO: Crop image if required for smaller size
-
// Convert image data from GRAYSCALE to GRAY_ALPHA
unsigned char *dataGrayAlpha = (unsigned char *)RL_MALLOC(atlas.width*atlas.height*sizeof(unsigned char)*2); // Two channels
@@ -1350,7 +1350,7 @@ const char *TextToUpper(const char *text)
buffer[i] = (char)toupper(text[i]);
//if ((text[i] >= 'a') && (text[i] <= 'z')) buffer[i] = text[i] - 32;
- // TODO: Support UTF-8 diacritics!
+ // TODO: Support UTF-8 diacritics to upper-case
//if ((text[i] >= 'à') && (text[i] <= 'ý')) buffer[i] = text[i] - 32;
}
else { buffer[i] = '\0'; break; }
diff --git a/src/rtextures.c b/src/rtextures.c
index 26d9e2cbe..34c4685f3 100644
--- a/src/rtextures.c
+++ b/src/rtextures.c
@@ -279,7 +279,7 @@ Image LoadImageAnim(const char *fileName, int *frames)
#endif
else image = LoadImage(fileName);
- // TODO: Support APNG animated images?
+ // TODO: Support APNG animated images
*frames = frameCount;
return image;
@@ -1481,7 +1481,7 @@ void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, i
int bytesPerPixel = GetPixelDataSize(1, 1, image->format);
unsigned char *resizedData = (unsigned char *)RL_CALLOC(newWidth*newHeight*bytesPerPixel, 1);
- // TODO: Fill resizedData with fill color (must be formatted to image->format)
+ // TODO: Fill resized canvas with fill color (must be formatted to image->format)
int dstOffsetSize = ((int)dstPos.y*newWidth + (int)dstPos.x)*bytesPerPixel;
@@ -2893,7 +2893,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout)
faces = GenImageColor(size, size*6, MAGENTA);
ImageFormat(&faces, image.format);
- // TODO: Image formating does not work with compressed textures!
+ // NOTE: Image formating does not work with compressed textures
}
for (int i = 0; i < 6; i++) ImageDraw(&faces, image, faceRecs[i], (Rectangle){ 0, (float)size*i, (float)size, (float)size }, WHITE);
@@ -3786,45 +3786,69 @@ Color GetColor(unsigned int hexValue)
// Get color from a pixel from certain format
Color GetPixelColor(void *srcPtr, int format)
{
- Color col = { 0 };
+ Color color = { 0 };
switch (format)
{
- case PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], 255 }; break;
- case PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1] }; break;
+ case PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], 255 }; break;
+ case PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1] }; break;
case PIXELFORMAT_UNCOMPRESSED_R5G6B5:
{
- col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31);
- col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 5) & 0b0000000000111111)*255/63);
- col.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31);
- col.a = 255;
+ color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31);
+ color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 5) & 0b0000000000111111)*255/63);
+ color.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31);
+ color.a = 255;
} break;
case PIXELFORMAT_UNCOMPRESSED_R5G5B5A1:
{
- col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31);
- col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 6) & 0b0000000000011111)*255/31);
- col.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31);
- col.a = (((unsigned short *)srcPtr)[0] & 0b0000000000000001)? 255 : 0;
+ color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31);
+ color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 6) & 0b0000000000011111)*255/31);
+ color.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31);
+ color.a = (((unsigned short *)srcPtr)[0] & 0b0000000000000001)? 255 : 0;
} break;
case PIXELFORMAT_UNCOMPRESSED_R4G4B4A4:
{
- col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 12)*255/15);
- col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 8) & 0b0000000000001111)*255/15);
- col.b = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 4) & 0b0000000000001111)*255/15);
- col.a = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000001111)*255/15);
+ color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 12)*255/15);
+ color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 8) & 0b0000000000001111)*255/15);
+ color.b = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 4) & 0b0000000000001111)*255/15);
+ color.a = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000001111)*255/15);
+
+ } break;
+ case PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], ((unsigned char *)srcPtr)[3] }; break;
+ case PIXELFORMAT_UNCOMPRESSED_R8G8B8: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], 255 }; break;
+ case PIXELFORMAT_UNCOMPRESSED_R32:
+ {
+ // NOTE: Pixel normalized float value is converted to [0..255]
+ color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f);
+ color.g = (unsigned char)(((float *)srcPtr)[0]*255.0f);
+ color.b = (unsigned char)(((float *)srcPtr)[0]*255.0f);
+ color.a = 255;
+
+ } break;
+ case PIXELFORMAT_UNCOMPRESSED_R32G32B32:
+ {
+ // NOTE: Pixel normalized float value is converted to [0..255]
+ color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f);
+ color.g = (unsigned char)(((float *)srcPtr)[1]*255.0f);
+ color.b = (unsigned char)(((float *)srcPtr)[2]*255.0f);
+ color.a = 255;
+
+ } break;
+ case PIXELFORMAT_UNCOMPRESSED_R32G32B32A32:
+ {
+ // NOTE: Pixel normalized float value is converted to [0..255]
+ color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f);
+ color.g = (unsigned char)(((float *)srcPtr)[1]*255.0f);
+ color.b = (unsigned char)(((float *)srcPtr)[2]*255.0f);
+ color.a = (unsigned char)(((float *)srcPtr)[3]*255.0f);
} break;
- case PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], ((unsigned char *)srcPtr)[3] }; break;
- case PIXELFORMAT_UNCOMPRESSED_R8G8B8: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], 255 }; break;
- // TODO: case PIXELFORMAT_UNCOMPRESSED_R32: break;
- // TODO: case PIXELFORMAT_UNCOMPRESSED_R32G32B32: break;
- // TODO: case PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: break;
default: break;
}
- return col;
+ return color;
}
// Set pixel color formatted into destination pointer
diff --git a/src/utils.c b/src/utils.c
index dbf4b3bbb..215454ccd 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -375,8 +375,8 @@ FILE *android_fopen(const char *fileName, const char *mode)
{
if (mode[0] == 'w')
{
- // TODO: fopen() is mapped to android_fopen() that only grants read access
- // to assets directory through AAssetManager but we want to also be able to
+ // fopen() is mapped to android_fopen() that only grants read access to
+ // assets directory through AAssetManager but we want to also be able to
// write data when required using the standard stdio FILE access functions
// Ref: https://stackoverflow.com/questions/11294487/android-writing-saving-files-from-native-code-only
#undef fopen