/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 *
 * Generated from Khronos EGL API description (egl.xml) revision 13a26984991216cbf9a44fbf390f95dc05b5493a.
 */

static const char* s_EGL14[] =
{
	"eglBindAPI",
	"eglBindTexImage",
	"eglChooseConfig",
	"eglCopyBuffers",
	"eglCreateContext",
	"eglCreatePbufferFromClientBuffer",
	"eglCreatePbufferSurface",
	"eglCreatePixmapSurface",
	"eglCreateWindowSurface",
	"eglDestroyContext",
	"eglDestroySurface",
	"eglGetConfigAttrib",
	"eglGetConfigs",
	"eglGetCurrentContext",
	"eglGetCurrentDisplay",
	"eglGetCurrentSurface",
	"eglGetDisplay",
	"eglGetError",
	"eglGetProcAddress",
	"eglInitialize",
	"eglMakeCurrent",
	"eglQueryAPI",
	"eglQueryContext",
	"eglQueryString",
	"eglQuerySurface",
	"eglReleaseTexImage",
	"eglReleaseThread",
	"eglSurfaceAttrib",
	"eglSwapBuffers",
	"eglSwapInterval",
	"eglTerminate",
	"eglWaitClient",
	"eglWaitGL",
	"eglWaitNative",
};

static const char* s_GLES10[] =
{
	"glActiveTexture",
	"glAlphaFunc",
	"glAlphaFuncx",
	"glBindBuffer",
	"glBindTexture",
	"glBlendFunc",
	"glBufferData",
	"glBufferSubData",
	"glClear",
	"glClearColor",
	"glClearColorx",
	"glClearDepthf",
	"glClearDepthx",
	"glClearStencil",
	"glClientActiveTexture",
	"glClipPlanef",
	"glClipPlanex",
	"glColor4f",
	"glColor4ub",
	"glColor4x",
	"glColorMask",
	"glColorPointer",
	"glCompressedTexImage2D",
	"glCompressedTexSubImage2D",
	"glCopyTexImage2D",
	"glCopyTexSubImage2D",
	"glCullFace",
	"glDeleteBuffers",
	"glDeleteTextures",
	"glDepthFunc",
	"glDepthMask",
	"glDepthRangef",
	"glDepthRangex",
	"glDisable",
	"glDisableClientState",
	"glDrawArrays",
	"glDrawElements",
	"glEnable",
	"glEnableClientState",
	"glFinish",
	"glFlush",
	"glFogf",
	"glFogfv",
	"glFogx",
	"glFogxv",
	"glFrontFace",
	"glFrustumf",
	"glFrustumx",
	"glGenBuffers",
	"glGenTextures",
	"glGetBooleanv",
	"glGetBufferParameteriv",
	"glGetClipPlanef",
	"glGetClipPlanex",
	"glGetError",
	"glGetFixedv",
	"glGetFloatv",
	"glGetIntegerv",
	"glGetLightfv",
	"glGetLightxv",
	"glGetMaterialfv",
	"glGetMaterialxv",
	"glGetPointerv",
	"glGetString",
	"glGetTexEnvfv",
	"glGetTexEnviv",
	"glGetTexEnvxv",
	"glGetTexParameterfv",
	"glGetTexParameteriv",
	"glGetTexParameterxv",
	"glHint",
	"glIsBuffer",
	"glIsEnabled",
	"glIsTexture",
	"glLightModelf",
	"glLightModelfv",
	"glLightModelx",
	"glLightModelxv",
	"glLightf",
	"glLightfv",
	"glLightx",
	"glLightxv",
	"glLineWidth",
	"glLineWidthx",
	"glLoadIdentity",
	"glLoadMatrixf",
	"glLoadMatrixx",
	"glLogicOp",
	"glMaterialf",
	"glMaterialfv",
	"glMaterialx",
	"glMaterialxv",
	"glMatrixMode",
	"glMultMatrixf",
	"glMultMatrixx",
	"glMultiTexCoord4f",
	"glMultiTexCoord4x",
	"glNormal3f",
	"glNormal3x",
	"glNormalPointer",
	"glOrthof",
	"glOrthox",
	"glPixelStorei",
	"glPointParameterf",
	"glPointParameterfv",
	"glPointParameterx",
	"glPointParameterxv",
	"glPointSize",
	"glPointSizex",
	"glPolygonOffset",
	"glPolygonOffsetx",
	"glPopMatrix",
	"glPushMatrix",
	"glReadPixels",
	"glRotatef",
	"glRotatex",
	"glSampleCoverage",
	"glSampleCoveragex",
	"glScalef",
	"glScalex",
	"glScissor",
	"glShadeModel",
	"glStencilFunc",
	"glStencilMask",
	"glStencilOp",
	"glTexCoordPointer",
	"glTexEnvf",
	"glTexEnvfv",
	"glTexEnvi",
	"glTexEnviv",
	"glTexEnvx",
	"glTexEnvxv",
	"glTexImage2D",
	"glTexParameterf",
	"glTexParameterfv",
	"glTexParameteri",
	"glTexParameteriv",
	"glTexParameterx",
	"glTexParameterxv",
	"glTexSubImage2D",
	"glTranslatef",
	"glTranslatex",
	"glVertexPointer",
	"glViewport",
};

static const char* s_GLES20[] =
{
	"glActiveTexture",
	"glAttachShader",
	"glBindAttribLocation",
	"glBindBuffer",
	"glBindFramebuffer",
	"glBindRenderbuffer",
	"glBindTexture",
	"glBlendColor",
	"glBlendEquation",
	"glBlendEquationSeparate",
	"glBlendFunc",
	"glBlendFuncSeparate",
	"glBufferData",
	"glBufferSubData",
	"glCheckFramebufferStatus",
	"glClear",
	"glClearColor",
	"glClearDepthf",
	"glClearStencil",
	"glColorMask",
	"glCompileShader",
	"glCompressedTexImage2D",
	"glCompressedTexSubImage2D",
	"glCopyTexImage2D",
	"glCopyTexSubImage2D",
	"glCreateProgram",
	"glCreateShader",
	"glCullFace",
	"glDeleteBuffers",
	"glDeleteFramebuffers",
	"glDeleteProgram",
	"glDeleteRenderbuffers",
	"glDeleteShader",
	"glDeleteTextures",
	"glDepthFunc",
	"glDepthMask",
	"glDepthRangef",
	"glDetachShader",
	"glDisable",
	"glDisableVertexAttribArray",
	"glDrawArrays",
	"glDrawElements",
	"glEnable",
	"glEnableVertexAttribArray",
	"glFinish",
	"glFlush",
	"glFramebufferRenderbuffer",
	"glFramebufferTexture2D",
	"glFrontFace",
	"glGenBuffers",
	"glGenFramebuffers",
	"glGenRenderbuffers",
	"glGenTextures",
	"glGenerateMipmap",
	"glGetActiveAttrib",
	"glGetActiveUniform",
	"glGetAttachedShaders",
	"glGetAttribLocation",
	"glGetBooleanv",
	"glGetBufferParameteriv",
	"glGetError",
	"glGetFloatv",
	"glGetFramebufferAttachmentParameteriv",
	"glGetIntegerv",
	"glGetProgramInfoLog",
	"glGetProgramiv",
	"glGetRenderbufferParameteriv",
	"glGetShaderInfoLog",
	"glGetShaderPrecisionFormat",
	"glGetShaderSource",
	"glGetShaderiv",
	"glGetString",
	"glGetTexParameterfv",
	"glGetTexParameteriv",
	"glGetUniformLocation",
	"glGetUniformfv",
	"glGetUniformiv",
	"glGetVertexAttribPointerv",
	"glGetVertexAttribfv",
	"glGetVertexAttribiv",
	"glHint",
	"glIsBuffer",
	"glIsEnabled",
	"glIsFramebuffer",
	"glIsProgram",
	"glIsRenderbuffer",
	"glIsShader",
	"glIsTexture",
	"glLineWidth",
	"glLinkProgram",
	"glPixelStorei",
	"glPolygonOffset",
	"glReadPixels",
	"glReleaseShaderCompiler",
	"glRenderbufferStorage",
	"glSampleCoverage",
	"glScissor",
	"glShaderBinary",
	"glShaderSource",
	"glStencilFunc",
	"glStencilFuncSeparate",
	"glStencilMask",
	"glStencilMaskSeparate",
	"glStencilOp",
	"glStencilOpSeparate",
	"glTexImage2D",
	"glTexParameterf",
	"glTexParameterfv",
	"glTexParameteri",
	"glTexParameteriv",
	"glTexSubImage2D",
	"glUniform1f",
	"glUniform1fv",
	"glUniform1i",
	"glUniform1iv",
	"glUniform2f",
	"glUniform2fv",
	"glUniform2i",
	"glUniform2iv",
	"glUniform3f",
	"glUniform3fv",
	"glUniform3i",
	"glUniform3iv",
	"glUniform4f",
	"glUniform4fv",
	"glUniform4i",
	"glUniform4iv",
	"glUniformMatrix2fv",
	"glUniformMatrix3fv",
	"glUniformMatrix4fv",
	"glUseProgram",
	"glValidateProgram",
	"glVertexAttrib1f",
	"glVertexAttrib1fv",
	"glVertexAttrib2f",
	"glVertexAttrib2fv",
	"glVertexAttrib3f",
	"glVertexAttrib3fv",
	"glVertexAttrib4f",
	"glVertexAttrib4fv",
	"glVertexAttribPointer",
	"glViewport",
};

static const char* s_GLES30[] =
{
	"glBeginQuery",
	"glBeginTransformFeedback",
	"glBindBufferBase",
	"glBindBufferRange",
	"glBindSampler",
	"glBindTransformFeedback",
	"glBindVertexArray",
	"glBlitFramebuffer",
	"glClearBufferfi",
	"glClearBufferfv",
	"glClearBufferiv",
	"glClearBufferuiv",
	"glClientWaitSync",
	"glCompressedTexImage3D",
	"glCompressedTexSubImage3D",
	"glCopyBufferSubData",
	"glCopyTexSubImage3D",
	"glDeleteQueries",
	"glDeleteSamplers",
	"glDeleteSync",
	"glDeleteTransformFeedbacks",
	"glDeleteVertexArrays",
	"glDrawArraysInstanced",
	"glDrawBuffers",
	"glDrawElementsInstanced",
	"glDrawRangeElements",
	"glEndQuery",
	"glEndTransformFeedback",
	"glFenceSync",
	"glFlushMappedBufferRange",
	"glFramebufferTextureLayer",
	"glGenQueries",
	"glGenSamplers",
	"glGenTransformFeedbacks",
	"glGenVertexArrays",
	"glGetActiveUniformBlockName",
	"glGetActiveUniformBlockiv",
	"glGetActiveUniformsiv",
	"glGetBufferParameteri64v",
	"glGetBufferPointerv",
	"glGetFragDataLocation",
	"glGetInteger64i_v",
	"glGetInteger64v",
	"glGetIntegeri_v",
	"glGetInternalformativ",
	"glGetProgramBinary",
	"glGetQueryObjectuiv",
	"glGetQueryiv",
	"glGetSamplerParameterfv",
	"glGetSamplerParameteriv",
	"glGetStringi",
	"glGetSynciv",
	"glGetTransformFeedbackVarying",
	"glGetUniformBlockIndex",
	"glGetUniformIndices",
	"glGetUniformuiv",
	"glGetVertexAttribIiv",
	"glGetVertexAttribIuiv",
	"glInvalidateFramebuffer",
	"glInvalidateSubFramebuffer",
	"glIsQuery",
	"glIsSampler",
	"glIsSync",
	"glIsTransformFeedback",
	"glIsVertexArray",
	"glMapBufferRange",
	"glPauseTransformFeedback",
	"glProgramBinary",
	"glProgramParameteri",
	"glReadBuffer",
	"glRenderbufferStorageMultisample",
	"glResumeTransformFeedback",
	"glSamplerParameterf",
	"glSamplerParameterfv",
	"glSamplerParameteri",
	"glSamplerParameteriv",
	"glTexImage3D",
	"glTexStorage2D",
	"glTexStorage3D",
	"glTexSubImage3D",
	"glTransformFeedbackVaryings",
	"glUniform1ui",
	"glUniform1uiv",
	"glUniform2ui",
	"glUniform2uiv",
	"glUniform3ui",
	"glUniform3uiv",
	"glUniform4ui",
	"glUniform4uiv",
	"glUniformBlockBinding",
	"glUniformMatrix2x3fv",
	"glUniformMatrix2x4fv",
	"glUniformMatrix3x2fv",
	"glUniformMatrix3x4fv",
	"glUniformMatrix4x2fv",
	"glUniformMatrix4x3fv",
	"glUnmapBuffer",
	"glVertexAttribDivisor",
	"glVertexAttribI4i",
	"glVertexAttribI4iv",
	"glVertexAttribI4ui",
	"glVertexAttribI4uiv",
	"glVertexAttribIPointer",
	"glWaitSync",
};

static const char* s_EGL_ANDROID_blob_cache[] =
{
	"eglSetBlobCacheFuncsANDROID",
};

static const char* s_EGL_ANDROID_create_native_client_buffer[] =
{
	"eglCreateNativeClientBufferANDROID",
};

static const char* s_EGL_ANDROID_native_fence_sync[] =
{
	"eglDupNativeFenceFDANDROID",
};

static const char* s_EGL_ANDROID_presentation_time[] =
{
	"eglPresentationTimeANDROID",
};

static const char* s_EGL_ANGLE_query_surface_pointer[] =
{
	"eglQuerySurfacePointerANGLE",
};

static const char* s_EGL_EXT_device_base[] =
{
	"eglQueryDeviceAttribEXT",
	"eglQueryDeviceStringEXT",
	"eglQueryDevicesEXT",
	"eglQueryDisplayAttribEXT",
};

static const char* s_EGL_EXT_device_enumeration[] =
{
	"eglQueryDevicesEXT",
};

static const char* s_EGL_EXT_device_query[] =
{
	"eglQueryDeviceAttribEXT",
	"eglQueryDeviceStringEXT",
	"eglQueryDisplayAttribEXT",
};

static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
{
	"eglQueryDmaBufFormatsEXT",
	"eglQueryDmaBufModifiersEXT",
};

static const char* s_EGL_EXT_output_base[] =
{
	"eglGetOutputLayersEXT",
	"eglGetOutputPortsEXT",
	"eglOutputLayerAttribEXT",
	"eglOutputPortAttribEXT",
	"eglQueryOutputLayerAttribEXT",
	"eglQueryOutputLayerStringEXT",
	"eglQueryOutputPortAttribEXT",
	"eglQueryOutputPortStringEXT",
};

static const char* s_EGL_EXT_platform_base[] =
{
	"eglCreatePlatformPixmapSurfaceEXT",
	"eglCreatePlatformWindowSurfaceEXT",
	"eglGetPlatformDisplayEXT",
};

static const char* s_EGL_EXT_stream_consumer_egloutput[] =
{
	"eglStreamConsumerOutputEXT",
};

static const char* s_EGL_EXT_swap_buffers_with_damage[] =
{
	"eglSwapBuffersWithDamageEXT",
};

static const char* s_EGL_HI_clientpixmap[] =
{
	"eglCreatePixmapSurfaceHI",
};

static const char* s_EGL_KHR_cl_event2[] =
{
	"eglCreateSync64KHR",
};

static const char* s_EGL_KHR_debug[] =
{
	"eglDebugMessageControlKHR",
	"eglLabelObjectKHR",
	"eglQueryDebugKHR",
};

static const char* s_EGL_KHR_display_reference[] =
{
	"eglQueryDisplayAttribKHR",
};

static const char* s_EGL_KHR_fence_sync[] =
{
	"eglClientWaitSyncKHR",
	"eglCreateSyncKHR",
	"eglDestroySyncKHR",
	"eglGetSyncAttribKHR",
};

static const char* s_EGL_KHR_image[] =
{
	"eglCreateImageKHR",
	"eglDestroyImageKHR",
};

static const char* s_EGL_KHR_image_base[] =
{
	"eglCreateImageKHR",
	"eglDestroyImageKHR",
};

static const char* s_EGL_KHR_lock_surface[] =
{
	"eglLockSurfaceKHR",
	"eglUnlockSurfaceKHR",
};

static const char* s_EGL_KHR_lock_surface3[] =
{
	"eglLockSurfaceKHR",
	"eglQuerySurface64KHR",
	"eglUnlockSurfaceKHR",
};

static const char* s_EGL_KHR_partial_update[] =
{
	"eglSetDamageRegionKHR",
};

static const char* s_EGL_KHR_reusable_sync[] =
{
	"eglClientWaitSyncKHR",
	"eglCreateSyncKHR",
	"eglDestroySyncKHR",
	"eglGetSyncAttribKHR",
	"eglSignalSyncKHR",
};

static const char* s_EGL_KHR_stream[] =
{
	"eglCreateStreamKHR",
	"eglDestroyStreamKHR",
	"eglQueryStreamKHR",
	"eglQueryStreamu64KHR",
	"eglStreamAttribKHR",
};

static const char* s_EGL_KHR_stream_attrib[] =
{
	"eglCreateStreamAttribKHR",
	"eglQueryStreamAttribKHR",
	"eglSetStreamAttribKHR",
	"eglStreamConsumerAcquireAttribKHR",
	"eglStreamConsumerReleaseAttribKHR",
};

static const char* s_EGL_KHR_stream_consumer_gltexture[] =
{
	"eglStreamConsumerAcquireKHR",
	"eglStreamConsumerGLTextureExternalKHR",
	"eglStreamConsumerReleaseKHR",
};

static const char* s_EGL_KHR_stream_cross_process_fd[] =
{
	"eglCreateStreamFromFileDescriptorKHR",
	"eglGetStreamFileDescriptorKHR",
};

static const char* s_EGL_KHR_stream_fifo[] =
{
	"eglQueryStreamTimeKHR",
};

static const char* s_EGL_KHR_stream_producer_eglsurface[] =
{
	"eglCreateStreamProducerSurfaceKHR",
};

static const char* s_EGL_KHR_swap_buffers_with_damage[] =
{
	"eglSwapBuffersWithDamageKHR",
};

static const char* s_EGL_KHR_wait_sync[] =
{
	"eglWaitSyncKHR",
};

static const char* s_EGL_MESA_drm_image[] =
{
	"eglCreateDRMImageMESA",
	"eglExportDRMImageMESA",
};

static const char* s_EGL_MESA_image_dma_buf_export[] =
{
	"eglExportDMABUFImageMESA",
	"eglExportDMABUFImageQueryMESA",
};

static const char* s_EGL_NOK_swap_region[] =
{
	"eglSwapBuffersRegionNOK",
};

static const char* s_EGL_NOK_swap_region2[] =
{
	"eglSwapBuffersRegion2NOK",
};

static const char* s_EGL_NV_native_query[] =
{
	"eglQueryNativeDisplayNV",
	"eglQueryNativePixmapNV",
	"eglQueryNativeWindowNV",
};

static const char* s_EGL_NV_post_sub_buffer[] =
{
	"eglPostSubBufferNV",
};

static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] =
{
	"eglStreamConsumerGLTextureExternalAttribsNV",
};

static const char* s_EGL_NV_stream_metadata[] =
{
	"eglQueryDisplayAttribNV",
	"eglQueryStreamMetadataNV",
	"eglSetStreamMetadataNV",
};

static const char* s_EGL_NV_stream_reset[] =
{
	"eglResetStreamNV",
};

static const char* s_EGL_NV_stream_sync[] =
{
	"eglCreateStreamSyncNV",
};

static const char* s_EGL_NV_sync[] =
{
	"eglClientWaitSyncNV",
	"eglCreateFenceSyncNV",
	"eglDestroySyncNV",
	"eglFenceNV",
	"eglGetSyncAttribNV",
	"eglSignalSyncNV",
};

static const char* s_EGL_NV_system_time[] =
{
	"eglGetSystemTimeFrequencyNV",
	"eglGetSystemTimeNV",
};

static const char* s_EGL_EXT_compositor[] =
{
	"eglCompositorSetContextListEXT",
	"eglCompositorSetContextAttributesEXT",
	"eglCompositorSetWindowListEXT",
	"eglCompositorSetWindowAttributesEXT",
	"eglCompositorBindTexWindowEXT",
	"eglCompositorSetSizeEXT",
	"eglCompositorSwapPolicyEXT",
};

static const char* s_GL_APPLE_copy_texture_levels[] =
{
	"glCopyTextureLevelsAPPLE",
};

static const char* s_GL_APPLE_framebuffer_multisample[] =
{
	"glRenderbufferStorageMultisampleAPPLE",
	"glResolveMultisampleFramebufferAPPLE",
};

static const char* s_GL_APPLE_sync[] =
{
	"glClientWaitSyncAPPLE",
	"glDeleteSyncAPPLE",
	"glFenceSyncAPPLE",
	"glGetInteger64vAPPLE",
	"glGetSyncivAPPLE",
	"glIsSyncAPPLE",
	"glWaitSyncAPPLE",
};

static const char* s_GL_EXT_discard_framebuffer[] =
{
	"glDiscardFramebufferEXT",
};

static const char* s_GL_EXT_map_buffer_range[] =
{
	"glFlushMappedBufferRangeEXT",
	"glMapBufferRangeEXT",
};

static const char* s_GL_EXT_multi_draw_arrays[] =
{
	"glMultiDrawArraysEXT",
	"glMultiDrawElementsEXT",
};

static const char* s_GL_EXT_multisampled_render_to_texture[] =
{
	"glFramebufferTexture2DMultisampleEXT",
	"glRenderbufferStorageMultisampleEXT",
};

static const char* s_GL_EXT_robustness[] =
{
	"glGetGraphicsResetStatusEXT",
	"glGetnUniformfvEXT",
	"glGetnUniformivEXT",
	"glReadnPixelsEXT",
};

static const char* s_GL_EXT_texture_storage[] =
{
	"glTexStorage1DEXT",
	"glTexStorage2DEXT",
	"glTexStorage3DEXT",
	"glTextureStorage1DEXT",
	"glTextureStorage2DEXT",
	"glTextureStorage3DEXT",
};

static const char* s_GL_IMG_multisampled_render_to_texture[] =
{
	"glFramebufferTexture2DMultisampleIMG",
	"glRenderbufferStorageMultisampleIMG",
};

static const char* s_GL_IMG_user_clip_plane[] =
{
	"glClipPlanefIMG",
	"glClipPlanexIMG",
};

static const char* s_GL_NV_fence[] =
{
	"glDeleteFencesNV",
	"glFinishFenceNV",
	"glGenFencesNV",
	"glGetFenceivNV",
	"glIsFenceNV",
	"glSetFenceNV",
	"glTestFenceNV",
};

static const char* s_GL_OES_EGL_image[] =
{
	"glEGLImageTargetRenderbufferStorageOES",
	"glEGLImageTargetTexture2DOES",
};

static const char* s_GL_OES_blend_equation_separate[] =
{
	"glBlendEquationSeparateOES",
};

static const char* s_GL_OES_blend_func_separate[] =
{
	"glBlendFuncSeparateOES",
};

static const char* s_GL_OES_blend_subtract[] =
{
	"glBlendEquationOES",
};

static const char* s_GL_OES_draw_texture[] =
{
	"glDrawTexfOES",
	"glDrawTexfvOES",
	"glDrawTexiOES",
	"glDrawTexivOES",
	"glDrawTexsOES",
	"glDrawTexsvOES",
	"glDrawTexxOES",
	"glDrawTexxvOES",
};

static const char* s_GL_OES_fixed_point[] =
{
	"glAlphaFuncxOES",
	"glClearColorxOES",
	"glClearDepthxOES",
	"glClipPlanexOES",
	"glColor4xOES",
	"glDepthRangexOES",
	"glFogxOES",
	"glFogxvOES",
	"glFrustumxOES",
	"glGetClipPlanexOES",
	"glGetFixedvOES",
	"glGetLightxvOES",
	"glGetMaterialxvOES",
	"glGetTexEnvxvOES",
	"glGetTexParameterxvOES",
	"glLightModelxOES",
	"glLightModelxvOES",
	"glLightxOES",
	"glLightxvOES",
	"glLineWidthxOES",
	"glLoadMatrixxOES",
	"glMaterialxOES",
	"glMaterialxvOES",
	"glMultMatrixxOES",
	"glMultiTexCoord4xOES",
	"glNormal3xOES",
	"glOrthoxOES",
	"glPointParameterxOES",
	"glPointParameterxvOES",
	"glPointSizexOES",
	"glPolygonOffsetxOES",
	"glRotatexOES",
	"glSampleCoveragexOES",
	"glScalexOES",
	"glTexEnvxOES",
	"glTexEnvxvOES",
	"glTexParameterxOES",
	"glTexParameterxvOES",
	"glTranslatexOES",
};

static const char* s_GL_OES_framebuffer_object[] =
{
	"glBindFramebufferOES",
	"glBindRenderbufferOES",
	"glCheckFramebufferStatusOES",
	"glDeleteFramebuffersOES",
	"glDeleteRenderbuffersOES",
	"glFramebufferRenderbufferOES",
	"glFramebufferTexture2DOES",
	"glGenFramebuffersOES",
	"glGenRenderbuffersOES",
	"glGenerateMipmapOES",
	"glGetFramebufferAttachmentParameterivOES",
	"glGetRenderbufferParameterivOES",
	"glIsFramebufferOES",
	"glIsRenderbufferOES",
	"glRenderbufferStorageOES",
};

static const char* s_GL_OES_mapbuffer[] =
{
	"glGetBufferPointervOES",
	"glMapBufferOES",
	"glUnmapBufferOES",
};

static const char* s_GL_OES_matrix_palette[] =
{
	"glCurrentPaletteMatrixOES",
	"glLoadPaletteFromModelViewMatrixOES",
	"glMatrixIndexPointerOES",
	"glWeightPointerOES",
};

static const char* s_GL_OES_point_size_array[] =
{
	"glPointSizePointerOES",
};

static const char* s_GL_OES_query_matrix[] =
{
	"glQueryMatrixxOES",
};

static const char* s_GL_OES_single_precision[] =
{
	"glClearDepthfOES",
	"glClipPlanefOES",
	"glDepthRangefOES",
	"glFrustumfOES",
	"glGetClipPlanefOES",
	"glOrthofOES",
};

static const char* s_GL_OES_texture_cube_map[] =
{
	"glGetTexGenfvOES",
	"glGetTexGenivOES",
	"glGetTexGenxvOES",
	"glTexGenfOES",
	"glTexGenfvOES",
	"glTexGeniOES",
	"glTexGenivOES",
	"glTexGenxOES",
	"glTexGenxvOES",
};

static const char* s_GL_OES_vertex_array_object[] =
{
	"glBindVertexArrayOES",
	"glDeleteVertexArraysOES",
	"glGenVertexArraysOES",
	"glIsVertexArrayOES",
};

static const char* s_GL_QCOM_driver_control[] =
{
	"glDisableDriverControlQCOM",
	"glEnableDriverControlQCOM",
	"glGetDriverControlStringQCOM",
	"glGetDriverControlsQCOM",
};

static const char* s_GL_QCOM_extended_get[] =
{
	"glExtGetBufferPointervQCOM",
	"glExtGetBuffersQCOM",
	"glExtGetFramebuffersQCOM",
	"glExtGetRenderbuffersQCOM",
	"glExtGetTexLevelParameterivQCOM",
	"glExtGetTexSubImageQCOM",
	"glExtGetTexturesQCOM",
	"glExtTexObjectStateOverrideiQCOM",
};

static const char* s_GL_QCOM_extended_get2[] =
{
	"glExtGetProgramBinarySourceQCOM",
	"glExtGetProgramsQCOM",
	"glExtGetShadersQCOM",
	"glExtIsProgramBinaryQCOM",
};

static const char* s_GL_QCOM_tiled_rendering[] =
{
	"glEndTilingQCOM",
	"glStartTilingQCOM",
};

static const char* s_GL_AMD_performance_monitor[] =
{
	"glBeginPerfMonitorAMD",
	"glDeletePerfMonitorsAMD",
	"glEndPerfMonitorAMD",
	"glGenPerfMonitorsAMD",
	"glGetPerfMonitorCounterDataAMD",
	"glGetPerfMonitorCounterInfoAMD",
	"glGetPerfMonitorCounterStringAMD",
	"glGetPerfMonitorCountersAMD",
	"glGetPerfMonitorGroupStringAMD",
	"glGetPerfMonitorGroupsAMD",
	"glSelectPerfMonitorCountersAMD",
};

static const char* s_GL_ANGLE_framebuffer_blit[] =
{
	"glBlitFramebufferANGLE",
};

static const char* s_GL_ANGLE_framebuffer_multisample[] =
{
	"glRenderbufferStorageMultisampleANGLE",
};

static const char* s_GL_ANGLE_instanced_arrays[] =
{
	"glDrawArraysInstancedANGLE",
	"glDrawElementsInstancedANGLE",
	"glVertexAttribDivisorANGLE",
};

static const char* s_GL_ANGLE_translated_shader_source[] =
{
	"glGetTranslatedShaderSourceANGLE",
};

static const char* s_GL_EXT_base_instance[] =
{
	"glDrawArraysInstancedBaseInstanceEXT",
	"glDrawElementsInstancedBaseInstanceEXT",
	"glDrawElementsInstancedBaseVertexBaseInstanceEXT",
};

static const char* s_GL_EXT_blend_func_extended[] =
{
	"glBindFragDataLocationEXT",
	"glBindFragDataLocationIndexedEXT",
	"glGetFragDataIndexEXT",
	"glGetProgramResourceLocationIndexEXT",
};

static const char* s_GL_EXT_buffer_storage[] =
{
	"glBufferStorageEXT",
};

static const char* s_GL_EXT_clear_texture[] =
{
	"glClearTexImageEXT",
	"glClearTexSubImageEXT",
};

static const char* s_GL_EXT_copy_image[] =
{
	"glCopyImageSubDataEXT",
};

static const char* s_GL_EXT_debug_label[] =
{
	"glGetObjectLabelEXT",
	"glLabelObjectEXT",
};

static const char* s_GL_EXT_debug_marker[] =
{
	"glInsertEventMarkerEXT",
	"glPopGroupMarkerEXT",
	"glPushGroupMarkerEXT",
};

static const char* s_GL_EXT_disjoint_timer_query[] =
{
	"glBeginQueryEXT",
	"glDeleteQueriesEXT",
	"glEndQueryEXT",
	"glGenQueriesEXT",
	"glGetQueryObjecti64vEXT",
	"glGetQueryObjectivEXT",
	"glGetQueryObjectui64vEXT",
	"glGetQueryObjectuivEXT",
	"glGetQueryivEXT",
	"glIsQueryEXT",
	"glQueryCounterEXT",
};

static const char* s_GL_EXT_draw_buffers[] =
{
	"glDrawBuffersEXT",
};

static const char* s_GL_EXT_draw_buffers_indexed[] =
{
	"glBlendEquationSeparateiEXT",
	"glBlendEquationiEXT",
	"glBlendFuncSeparateiEXT",
	"glBlendFunciEXT",
	"glColorMaskiEXT",
	"glDisableiEXT",
	"glEnableiEXT",
	"glIsEnablediEXT",
};

static const char* s_GL_EXT_draw_elements_base_vertex[] =
{
	"glDrawElementsBaseVertexEXT",
	"glDrawElementsInstancedBaseVertexEXT",
	"glDrawRangeElementsBaseVertexEXT",
	"glMultiDrawElementsBaseVertexEXT",
};

static const char* s_GL_EXT_draw_instanced[] =
{
	"glDrawArraysInstancedEXT",
	"glDrawElementsInstancedEXT",
};

static const char* s_GL_EXT_draw_transform_feedback[] =
{
	"glDrawTransformFeedbackEXT",
	"glDrawTransformFeedbackInstancedEXT",
};

static const char* s_GL_EXT_external_buffer[] =
{
	"glBufferStorageExternalEXT",
	"glNamedBufferStorageExternalEXT",
};

static const char* s_GL_EXT_geometry_shader[] =
{
	"glFramebufferTextureEXT",
};

static const char* s_GL_EXT_instanced_arrays[] =
{
	"glDrawArraysInstancedEXT",
	"glDrawElementsInstancedEXT",
	"glVertexAttribDivisorEXT",
};

static const char* s_GL_EXT_memory_object[] =
{
	"glBufferStorageMemEXT",
	"glCreateMemoryObjectsEXT",
	"glDeleteMemoryObjectsEXT",
	"glGetMemoryObjectParameterivEXT",
	"glGetUnsignedBytevEXT",
	"glGetUnsignedBytei_vEXT",
	"glIsMemoryObjectEXT",
	"glMemoryObjectParameterivEXT",
	"glNamedBufferStorageMemEXT",
	"glTexStorageMem2DEXT",
	"glTexStorageMem2DMultisampleEXT",
	"glTexStorageMem3DEXT",
	"glTexStorageMem3DMultisampleEXT",
	"glTextureStorageMem2DEXT",
	"glTextureStorageMem2DMultisampleEXT",
	"glTextureStorageMem3DEXT",
	"glTextureStorageMem3DMultisampleEXT",
};

static const char* s_GL_EXT_memory_object_fd[] =
{
	"glImportMemoryFdEXT",
};

static const char* s_GL_EXT_memory_object_win32[] =
{
	"glImportMemoryWin32HandleEXT",
	"glImportMemoryWin32NameEXT",
};

static const char* s_GL_EXT_multi_draw_indirect[] =
{
	"glMultiDrawArraysIndirectEXT",
	"glMultiDrawElementsIndirectEXT",
};

static const char* s_GL_EXT_multiview_draw_buffers[] =
{
	"glDrawBuffersIndexedEXT",
	"glGetIntegeri_vEXT",
	"glReadBufferIndexedEXT",
};

static const char* s_GL_EXT_occlusion_query_boolean[] =
{
	"glBeginQueryEXT",
	"glDeleteQueriesEXT",
	"glEndQueryEXT",
	"glGenQueriesEXT",
	"glGetQueryObjectuivEXT",
	"glGetQueryivEXT",
	"glIsQueryEXT",
};

static const char* s_GL_EXT_polygon_offset_clamp[] =
{
	"glPolygonOffsetClampEXT",
};

static const char* s_GL_EXT_primitive_bounding_box[] =
{
	"glPrimitiveBoundingBoxEXT",
};

static const char* s_GL_EXT_raster_multisample[] =
{
	"glRasterSamplesEXT",
};

static const char* s_GL_EXT_semaphore[] =
{
	"glDeleteSemaphoresEXT",
	"glGenSemaphoresEXT",
	"glGetSemaphoreParameterui64vEXT",
	"glGetUnsignedBytevEXT",
	"glGetUnsignedBytei_vEXT",
	"glIsSemaphoreEXT",
	"glSemaphoreParameterui64vEXT",
	"glSignalSemaphoreEXT",
	"glWaitSemaphoreEXT",
};

static const char* s_GL_EXT_semaphore_fd[] =
{
	"glImportSemaphoreFdEXT",
};

static const char* s_GL_EXT_semaphore_win32[] =
{
	"glImportSemaphoreWin32HandleEXT",
	"glImportSemaphoreWin32NameEXT",
};

static const char* s_GL_EXT_separate_shader_objects[] =
{
	"glActiveShaderProgramEXT",
	"glBindProgramPipelineEXT",
	"glCreateShaderProgramvEXT",
	"glDeleteProgramPipelinesEXT",
	"glGenProgramPipelinesEXT",
	"glGetProgramPipelineInfoLogEXT",
	"glGetProgramPipelineivEXT",
	"glIsProgramPipelineEXT",
	"glProgramParameteriEXT",
	"glProgramUniform1fEXT",
	"glProgramUniform1fvEXT",
	"glProgramUniform1iEXT",
	"glProgramUniform1ivEXT",
	"glProgramUniform1uiEXT",
	"glProgramUniform1uivEXT",
	"glProgramUniform2fEXT",
	"glProgramUniform2fvEXT",
	"glProgramUniform2iEXT",
	"glProgramUniform2ivEXT",
	"glProgramUniform2uiEXT",
	"glProgramUniform2uivEXT",
	"glProgramUniform3fEXT",
	"glProgramUniform3fvEXT",
	"glProgramUniform3iEXT",
	"glProgramUniform3ivEXT",
	"glProgramUniform3uiEXT",
	"glProgramUniform3uivEXT",
	"glProgramUniform4fEXT",
	"glProgramUniform4fvEXT",
	"glProgramUniform4iEXT",
	"glProgramUniform4ivEXT",
	"glProgramUniform4uiEXT",
	"glProgramUniform4uivEXT",
	"glProgramUniformMatrix2fvEXT",
	"glProgramUniformMatrix2x3fvEXT",
	"glProgramUniformMatrix2x4fvEXT",
	"glProgramUniformMatrix3fvEXT",
	"glProgramUniformMatrix3x2fvEXT",
	"glProgramUniformMatrix3x4fvEXT",
	"glProgramUniformMatrix4fvEXT",
	"glProgramUniformMatrix4x2fvEXT",
	"glProgramUniformMatrix4x3fvEXT",
	"glUseProgramStagesEXT",
	"glValidateProgramPipelineEXT",
};

static const char* s_GL_EXT_shader_pixel_local_storage2[] =
{
	"glClearPixelLocalStorageuiEXT",
	"glFramebufferPixelLocalStorageSizeEXT",
	"glGetFramebufferPixelLocalStorageSizeEXT",
};

static const char* s_GL_EXT_sparse_texture[] =
{
	"glTexPageCommitmentEXT",
};

static const char* s_GL_EXT_tessellation_shader[] =
{
	"glPatchParameteriEXT",
};

static const char* s_GL_EXT_texture_border_clamp[] =
{
	"glGetSamplerParameterIivEXT",
	"glGetSamplerParameterIuivEXT",
	"glGetTexParameterIivEXT",
	"glGetTexParameterIuivEXT",
	"glSamplerParameterIivEXT",
	"glSamplerParameterIuivEXT",
	"glTexParameterIivEXT",
	"glTexParameterIuivEXT",
};

static const char* s_GL_EXT_texture_buffer[] =
{
	"glTexBufferEXT",
	"glTexBufferRangeEXT",
};

static const char* s_GL_EXT_texture_filter_minmax[] =
{
	"glRasterSamplesEXT",
};

static const char* s_GL_EXT_texture_view[] =
{
	"glTextureViewEXT",
};

static const char* s_GL_EXT_win32_keyed_mutex[] =
{
	"glAcquireKeyedMutexWin32EXT",
	"glReleaseKeyedMutexWin32EXT",
};

static const char* s_GL_EXT_window_rectangles[] =
{
	"glWindowRectanglesEXT",
};

static const char* s_GL_IMG_bindless_texture[] =
{
	"glGetTextureHandleIMG",
	"glGetTextureSamplerHandleIMG",
	"glProgramUniformHandleui64IMG",
	"glProgramUniformHandleui64vIMG",
	"glUniformHandleui64IMG",
	"glUniformHandleui64vIMG",
};

static const char* s_GL_IMG_framebuffer_downsample[] =
{
	"glFramebufferTexture2DDownsampleIMG",
	"glFramebufferTextureLayerDownsampleIMG",
};

static const char* s_GL_INTEL_framebuffer_CMAA[] =
{
	"glApplyFramebufferAttachmentCMAAINTEL",
};

static const char* s_GL_INTEL_performance_query[] =
{
	"glBeginPerfQueryINTEL",
	"glCreatePerfQueryINTEL",
	"glDeletePerfQueryINTEL",
	"glEndPerfQueryINTEL",
	"glGetFirstPerfQueryIdINTEL",
	"glGetNextPerfQueryIdINTEL",
	"glGetPerfCounterInfoINTEL",
	"glGetPerfQueryDataINTEL",
	"glGetPerfQueryIdByNameINTEL",
	"glGetPerfQueryInfoINTEL",
};

static const char* s_GL_KHR_blend_equation_advanced[] =
{
	"glBlendBarrierKHR",
};

static const char* s_GL_KHR_debug[] =
{
	"glDebugMessageCallbackKHR",
	"glDebugMessageControlKHR",
	"glDebugMessageInsertKHR",
	"glGetDebugMessageLogKHR",
	"glGetObjectLabelKHR",
	"glGetObjectPtrLabelKHR",
	"glGetPointervKHR",
	"glObjectLabelKHR",
	"glObjectPtrLabelKHR",
	"glPopDebugGroupKHR",
	"glPushDebugGroupKHR",
};

static const char* s_GL_KHR_robustness[] =
{
	"glGetGraphicsResetStatusKHR",
	"glGetnUniformfvKHR",
	"glGetnUniformivKHR",
	"glGetnUniformuivKHR",
	"glReadnPixelsKHR",
};

static const char* s_GL_KHR_parallel_shader_compile[] =
{
	"glMaxShaderCompilerThreadsKHR",
};

static const char* s_GL_NV_bindless_texture[] =
{
	"glGetImageHandleNV",
	"glGetTextureHandleNV",
	"glGetTextureSamplerHandleNV",
	"glIsImageHandleResidentNV",
	"glIsTextureHandleResidentNV",
	"glMakeImageHandleNonResidentNV",
	"glMakeImageHandleResidentNV",
	"glMakeTextureHandleNonResidentNV",
	"glMakeTextureHandleResidentNV",
	"glProgramUniformHandleui64NV",
	"glProgramUniformHandleui64vNV",
	"glUniformHandleui64NV",
	"glUniformHandleui64vNV",
};

static const char* s_GL_NV_blend_equation_advanced[] =
{
	"glBlendBarrierNV",
	"glBlendParameteriNV",
};

static const char* s_GL_NV_conditional_render[] =
{
	"glBeginConditionalRenderNV",
	"glEndConditionalRenderNV",
};

static const char* s_GL_NV_conservative_raster[] =
{
	"glSubpixelPrecisionBiasNV",
};

static const char* s_GL_NV_conservative_raster_pre_snap_triangles[] =
{
	"glConservativeRasterParameteriNV",
};

static const char* s_GL_NV_copy_buffer[] =
{
	"glCopyBufferSubDataNV",
};

static const char* s_GL_NV_coverage_sample[] =
{
	"glCoverageMaskNV",
	"glCoverageOperationNV",
};

static const char* s_GL_NV_draw_buffers[] =
{
	"glDrawBuffersNV",
};

static const char* s_GL_NV_draw_instanced[] =
{
	"glDrawArraysInstancedNV",
	"glDrawElementsInstancedNV",
};

static const char* s_GL_NV_draw_vulkan_image[] =
{
	"glDrawVkImageNV",
	"glGetVkProcAddrNV",
	"glWaitVkSemaphoreNV",
	"glSignalVkSemaphoreNV",
	"glSignalVkFenceNV",
};

static const char* s_GL_NV_fragment_coverage_to_color[] =
{
	"glFragmentCoverageColorNV",
};

static const char* s_GL_NV_framebuffer_blit[] =
{
	"glBlitFramebufferNV",
};

static const char* s_GL_NV_framebuffer_mixed_samples[] =
{
	"glCoverageModulationNV",
	"glCoverageModulationTableNV",
	"glGetCoverageModulationTableNV",
	"glRasterSamplesEXT",
};

static const char* s_GL_NV_framebuffer_multisample[] =
{
	"glRenderbufferStorageMultisampleNV",
};

static const char* s_GL_NV_gpu_shader5[] =
{
	"glGetUniformi64vNV",
	"glProgramUniform1i64NV",
	"glProgramUniform1i64vNV",
	"glProgramUniform1ui64NV",
	"glProgramUniform1ui64vNV",
	"glProgramUniform2i64NV",
	"glProgramUniform2i64vNV",
	"glProgramUniform2ui64NV",
	"glProgramUniform2ui64vNV",
	"glProgramUniform3i64NV",
	"glProgramUniform3i64vNV",
	"glProgramUniform3ui64NV",
	"glProgramUniform3ui64vNV",
	"glProgramUniform4i64NV",
	"glProgramUniform4i64vNV",
	"glProgramUniform4ui64NV",
	"glProgramUniform4ui64vNV",
	"glUniform1i64NV",
	"glUniform1i64vNV",
	"glUniform1ui64NV",
	"glUniform1ui64vNV",
	"glUniform2i64NV",
	"glUniform2i64vNV",
	"glUniform2ui64NV",
	"glUniform2ui64vNV",
	"glUniform3i64NV",
	"glUniform3i64vNV",
	"glUniform3ui64NV",
	"glUniform3ui64vNV",
	"glUniform4i64NV",
	"glUniform4i64vNV",
	"glUniform4ui64NV",
	"glUniform4ui64vNV",
};

static const char* s_GL_NV_instanced_arrays[] =
{
	"glVertexAttribDivisorNV",
};

static const char* s_GL_NV_internalformat_sample_query[] =
{
	"glGetInternalformatSampleivNV",
};

static const char* s_GL_NV_non_square_matrices[] =
{
	"glUniformMatrix2x3fvNV",
	"glUniformMatrix2x4fvNV",
	"glUniformMatrix3x2fvNV",
	"glUniformMatrix3x4fvNV",
	"glUniformMatrix4x2fvNV",
	"glUniformMatrix4x3fvNV",
};

static const char* s_GL_NV_path_rendering[] =
{
	"glCopyPathNV",
	"glCoverFillPathInstancedNV",
	"glCoverFillPathNV",
	"glCoverStrokePathInstancedNV",
	"glCoverStrokePathNV",
	"glDeletePathsNV",
	"glGenPathsNV",
	"glGetPathCommandsNV",
	"glGetPathCoordsNV",
	"glGetPathDashArrayNV",
	"glGetPathLengthNV",
	"glGetPathMetricRangeNV",
	"glGetPathMetricsNV",
	"glGetPathParameterfvNV",
	"glGetPathParameterivNV",
	"glGetPathSpacingNV",
	"glGetProgramResourcefvNV",
	"glInterpolatePathsNV",
	"glIsPathNV",
	"glIsPointInFillPathNV",
	"glIsPointInStrokePathNV",
	"glMatrixLoad3x2fNV",
	"glMatrixLoad3x3fNV",
	"glMatrixLoadTranspose3x3fNV",
	"glMatrixMult3x2fNV",
	"glMatrixMult3x3fNV",
	"glMatrixMultTranspose3x3fNV",
	"glPathCommandsNV",
	"glPathCoordsNV",
	"glPathCoverDepthFuncNV",
	"glPathDashArrayNV",
	"glPathGlyphIndexArrayNV",
	"glPathGlyphIndexRangeNV",
	"glPathGlyphRangeNV",
	"glPathGlyphsNV",
	"glPathMemoryGlyphIndexArrayNV",
	"glPathParameterfNV",
	"glPathParameterfvNV",
	"glPathParameteriNV",
	"glPathParameterivNV",
	"glPathStencilDepthOffsetNV",
	"glPathStencilFuncNV",
	"glPathStringNV",
	"glPathSubCommandsNV",
	"glPathSubCoordsNV",
	"glPointAlongPathNV",
	"glProgramPathFragmentInputGenNV",
	"glStencilFillPathInstancedNV",
	"glStencilFillPathNV",
	"glStencilStrokePathInstancedNV",
	"glStencilStrokePathNV",
	"glStencilThenCoverFillPathInstancedNV",
	"glStencilThenCoverFillPathNV",
	"glStencilThenCoverStrokePathInstancedNV",
	"glStencilThenCoverStrokePathNV",
	"glTransformPathNV",
	"glWeightPathsNV",
};

static const char* s_GL_NV_polygon_mode[] =
{
	"glPolygonModeNV",
};

static const char* s_GL_NV_read_buffer[] =
{
	"glReadBufferNV",
};

static const char* s_GL_NV_sample_locations[] =
{
	"glFramebufferSampleLocationsfvNV",
	"glNamedFramebufferSampleLocationsfvNV",
	"glResolveDepthValuesNV",
};

static const char* s_GL_NV_viewport_array[] =
{
	"glDepthRangeArrayfvNV",
	"glDepthRangeIndexedfNV",
	"glDisableiNV",
	"glEnableiNV",
	"glGetFloati_vNV",
	"glIsEnablediNV",
	"glScissorArrayvNV",
	"glScissorIndexedNV",
	"glScissorIndexedvNV",
	"glViewportArrayvNV",
	"glViewportIndexedfNV",
	"glViewportIndexedfvNV",
};

static const char* s_GL_NV_viewport_swizzle[] =
{
	"glViewportSwizzleNV",
};

static const char* s_GL_OES_copy_image[] =
{
	"glCopyImageSubDataOES",
};

static const char* s_GL_OES_draw_buffers_indexed[] =
{
	"glBlendEquationSeparateiOES",
	"glBlendEquationiOES",
	"glBlendFuncSeparateiOES",
	"glBlendFunciOES",
	"glColorMaskiOES",
	"glDisableiOES",
	"glEnableiOES",
	"glIsEnablediOES",
};

static const char* s_GL_OES_draw_elements_base_vertex[] =
{
	"glDrawElementsBaseVertexOES",
	"glDrawElementsInstancedBaseVertexOES",
	"glDrawRangeElementsBaseVertexOES",
	"glMultiDrawElementsBaseVertexEXT",
};

static const char* s_GL_OES_geometry_shader[] =
{
	"glFramebufferTextureOES",
};

static const char* s_GL_OES_get_program_binary[] =
{
	"glGetProgramBinaryOES",
	"glProgramBinaryOES",
};

static const char* s_GL_OES_primitive_bounding_box[] =
{
	"glPrimitiveBoundingBoxOES",
};

static const char* s_GL_OES_sample_shading[] =
{
	"glMinSampleShadingOES",
};

static const char* s_GL_OES_tessellation_shader[] =
{
	"glPatchParameteriOES",
};

static const char* s_GL_OES_texture_3D[] =
{
	"glCompressedTexImage3DOES",
	"glCompressedTexSubImage3DOES",
	"glCopyTexSubImage3DOES",
	"glFramebufferTexture3DOES",
	"glTexImage3DOES",
	"glTexSubImage3DOES",
};

static const char* s_GL_OES_texture_border_clamp[] =
{
	"glGetSamplerParameterIivOES",
	"glGetSamplerParameterIuivOES",
	"glGetTexParameterIivOES",
	"glGetTexParameterIuivOES",
	"glSamplerParameterIivOES",
	"glSamplerParameterIuivOES",
	"glTexParameterIivOES",
	"glTexParameterIuivOES",
};

static const char* s_GL_OES_texture_buffer[] =
{
	"glTexBufferOES",
	"glTexBufferRangeOES",
};

static const char* s_GL_OES_texture_storage_multisample_2d_array[] =
{
	"glTexStorage3DMultisampleOES",
};

static const char* s_GL_OES_texture_view[] =
{
	"glTextureViewOES",
};

static const char* s_GL_OES_viewport_array[] =
{
	"glDepthRangeArrayfvOES",
	"glDepthRangeIndexedfOES",
	"glDisableiOES",
	"glEnableiOES",
	"glGetFloati_vOES",
	"glIsEnablediOES",
	"glScissorArrayvOES",
	"glScissorIndexedOES",
	"glScissorIndexedvOES",
	"glViewportArrayvOES",
	"glViewportIndexedfOES",
	"glViewportIndexedfvOES",
};

static const char* s_GL_OVR_multiview[] =
{
	"glFramebufferTextureMultiviewOVR",
};

static const char* s_GL_OVR_multiview_multisampled_render_to_texture[] =
{
	"glFramebufferTextureMultisampleMultiviewOVR",
};

static const char* s_GL_QCOM_alpha_test[] =
{
	"glAlphaFuncQCOM",
};

static const char* s_GL_QCOM_framebuffer_foveated[] =
{
	"glFramebufferFoveationConfigQCOM",
	"glFramebufferFoveationParametersQCOM",
};

static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] =
{
	"glFramebufferFetchBarrierQCOM",
};

static const struct
{
	const char*			name;
	const int			numFunctions;
	const char* const*	functions;
} s_extensions[] =
{
	{ "EGL_ANDROID_blob_cache",								DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache),							s_EGL_ANDROID_blob_cache							},
	{ "EGL_ANDROID_create_native_client_buffer",			DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer),			s_EGL_ANDROID_create_native_client_buffer			},
	{ "EGL_ANDROID_native_fence_sync",						DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync),					s_EGL_ANDROID_native_fence_sync						},
	{ "EGL_ANDROID_presentation_time",						DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time),					s_EGL_ANDROID_presentation_time						},
	{ "EGL_ANGLE_query_surface_pointer",					DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer),					s_EGL_ANGLE_query_surface_pointer					},
	{ "EGL_EXT_device_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base),								s_EGL_EXT_device_base								},
	{ "EGL_EXT_device_enumeration",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration),						s_EGL_EXT_device_enumeration						},
	{ "EGL_EXT_device_query",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query),								s_EGL_EXT_device_query								},
	{ "EGL_EXT_image_dma_buf_import_modifiers",				DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers),			s_EGL_EXT_image_dma_buf_import_modifiers			},
	{ "EGL_EXT_output_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base),								s_EGL_EXT_output_base								},
	{ "EGL_EXT_platform_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base),							s_EGL_EXT_platform_base								},
	{ "EGL_EXT_stream_consumer_egloutput",					DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput),				s_EGL_EXT_stream_consumer_egloutput					},
	{ "EGL_EXT_swap_buffers_with_damage",					DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage),					s_EGL_EXT_swap_buffers_with_damage					},
	{ "EGL_HI_clientpixmap",								DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap),								s_EGL_HI_clientpixmap								},
	{ "EGL_KHR_cl_event2",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2),								s_EGL_KHR_cl_event2									},
	{ "EGL_KHR_debug",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug),									s_EGL_KHR_debug										},
	{ "EGL_KHR_display_reference",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_display_reference),						s_EGL_KHR_display_reference							},
	{ "EGL_KHR_fence_sync",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync),								s_EGL_KHR_fence_sync								},
	{ "EGL_KHR_image",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_image),									s_EGL_KHR_image										},
	{ "EGL_KHR_image_base",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base),								s_EGL_KHR_image_base								},
	{ "EGL_KHR_lock_surface",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface),								s_EGL_KHR_lock_surface								},
	{ "EGL_KHR_lock_surface3",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3),							s_EGL_KHR_lock_surface3								},
	{ "EGL_KHR_partial_update",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update),							s_EGL_KHR_partial_update							},
	{ "EGL_KHR_reusable_sync",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync),							s_EGL_KHR_reusable_sync								},
	{ "EGL_KHR_stream",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream),									s_EGL_KHR_stream									},
	{ "EGL_KHR_stream_attrib",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib),							s_EGL_KHR_stream_attrib								},
	{ "EGL_KHR_stream_consumer_gltexture",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture),				s_EGL_KHR_stream_consumer_gltexture					},
	{ "EGL_KHR_stream_cross_process_fd",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd),					s_EGL_KHR_stream_cross_process_fd					},
	{ "EGL_KHR_stream_fifo",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo),								s_EGL_KHR_stream_fifo								},
	{ "EGL_KHR_stream_producer_eglsurface",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface),				s_EGL_KHR_stream_producer_eglsurface				},
	{ "EGL_KHR_swap_buffers_with_damage",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage),					s_EGL_KHR_swap_buffers_with_damage					},
	{ "EGL_KHR_wait_sync",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync),								s_EGL_KHR_wait_sync									},
	{ "EGL_MESA_drm_image",									DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image),								s_EGL_MESA_drm_image								},
	{ "EGL_MESA_image_dma_buf_export",						DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export),					s_EGL_MESA_image_dma_buf_export						},
	{ "EGL_NOK_swap_region",								DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region),								s_EGL_NOK_swap_region								},
	{ "EGL_NOK_swap_region2",								DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2),								s_EGL_NOK_swap_region2								},
	{ "EGL_NV_native_query",								DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query),								s_EGL_NV_native_query								},
	{ "EGL_NV_post_sub_buffer",								DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer),							s_EGL_NV_post_sub_buffer							},
	{ "EGL_NV_stream_consumer_gltexture_yuv",				DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv),				s_EGL_NV_stream_consumer_gltexture_yuv				},
	{ "EGL_NV_stream_metadata",								DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata),							s_EGL_NV_stream_metadata							},
	{ "EGL_NV_stream_reset",								DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset),								s_EGL_NV_stream_reset								},
	{ "EGL_NV_stream_sync",									DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync),								s_EGL_NV_stream_sync								},
	{ "EGL_NV_sync",										DE_LENGTH_OF_ARRAY(s_EGL_NV_sync),										s_EGL_NV_sync										},
	{ "EGL_NV_system_time",									DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time),								s_EGL_NV_system_time								},
	{ "EGL_EXT_compositor",									DE_LENGTH_OF_ARRAY(s_EGL_EXT_compositor),								s_EGL_EXT_compositor								},
	{ "GL_APPLE_copy_texture_levels",						DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels),						s_GL_APPLE_copy_texture_levels						},
	{ "GL_APPLE_framebuffer_multisample",					DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample),					s_GL_APPLE_framebuffer_multisample					},
	{ "GL_APPLE_sync",										DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync),									s_GL_APPLE_sync										},
	{ "GL_EXT_discard_framebuffer",							DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer),						s_GL_EXT_discard_framebuffer						},
	{ "GL_EXT_map_buffer_range",							DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range),							s_GL_EXT_map_buffer_range							},
	{ "GL_EXT_multi_draw_arrays",							DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays),							s_GL_EXT_multi_draw_arrays							},
	{ "GL_EXT_multisampled_render_to_texture",				DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture),			s_GL_EXT_multisampled_render_to_texture				},
	{ "GL_EXT_robustness",									DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness),								s_GL_EXT_robustness									},
	{ "GL_EXT_texture_storage",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage),							s_GL_EXT_texture_storage							},
	{ "GL_IMG_multisampled_render_to_texture",				DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture),			s_GL_IMG_multisampled_render_to_texture				},
	{ "GL_IMG_user_clip_plane",								DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane),							s_GL_IMG_user_clip_plane							},
	{ "GL_NV_fence",										DE_LENGTH_OF_ARRAY(s_GL_NV_fence),										s_GL_NV_fence										},
	{ "GL_OES_EGL_image",									DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image),									s_GL_OES_EGL_image									},
	{ "GL_OES_blend_equation_separate",						DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate),					s_GL_OES_blend_equation_separate					},
	{ "GL_OES_blend_func_separate",							DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate),						s_GL_OES_blend_func_separate						},
	{ "GL_OES_blend_subtract",								DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract),							s_GL_OES_blend_subtract								},
	{ "GL_OES_draw_texture",								DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture),								s_GL_OES_draw_texture								},
	{ "GL_OES_fixed_point",									DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point),								s_GL_OES_fixed_point								},
	{ "GL_OES_framebuffer_object",							DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object),						s_GL_OES_framebuffer_object							},
	{ "GL_OES_mapbuffer",									DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer),									s_GL_OES_mapbuffer									},
	{ "GL_OES_matrix_palette",								DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette),							s_GL_OES_matrix_palette								},
	{ "GL_OES_point_size_array",							DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array),							s_GL_OES_point_size_array							},
	{ "GL_OES_query_matrix",								DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix),								s_GL_OES_query_matrix								},
	{ "GL_OES_single_precision",							DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision),							s_GL_OES_single_precision							},
	{ "GL_OES_texture_cube_map",							DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map),							s_GL_OES_texture_cube_map							},
	{ "GL_OES_vertex_array_object",							DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object),						s_GL_OES_vertex_array_object						},
	{ "GL_QCOM_driver_control",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control),							s_GL_QCOM_driver_control							},
	{ "GL_QCOM_extended_get",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get),								s_GL_QCOM_extended_get								},
	{ "GL_QCOM_extended_get2",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2),							s_GL_QCOM_extended_get2								},
	{ "GL_QCOM_tiled_rendering",							DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering),							s_GL_QCOM_tiled_rendering							},
	{ "GL_AMD_performance_monitor",							DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor),						s_GL_AMD_performance_monitor						},
	{ "GL_ANGLE_framebuffer_blit",							DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit),						s_GL_ANGLE_framebuffer_blit							},
	{ "GL_ANGLE_framebuffer_multisample",					DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample),					s_GL_ANGLE_framebuffer_multisample					},
	{ "GL_ANGLE_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays),						s_GL_ANGLE_instanced_arrays							},
	{ "GL_ANGLE_translated_shader_source",					DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source),				s_GL_ANGLE_translated_shader_source					},
	{ "GL_EXT_base_instance",								DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance),								s_GL_EXT_base_instance								},
	{ "GL_EXT_blend_func_extended",							DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended),						s_GL_EXT_blend_func_extended						},
	{ "GL_EXT_buffer_storage",								DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage),							s_GL_EXT_buffer_storage								},
	{ "GL_EXT_clear_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_clear_texture),								s_GL_EXT_clear_texture								},
	{ "GL_EXT_copy_image",									DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image),								s_GL_EXT_copy_image									},
	{ "GL_EXT_debug_label",									DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label),								s_GL_EXT_debug_label								},
	{ "GL_EXT_debug_marker",								DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker),								s_GL_EXT_debug_marker								},
	{ "GL_EXT_disjoint_timer_query",						DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query),						s_GL_EXT_disjoint_timer_query						},
	{ "GL_EXT_draw_buffers",								DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers),								s_GL_EXT_draw_buffers								},
	{ "GL_EXT_draw_buffers_indexed",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed),						s_GL_EXT_draw_buffers_indexed						},
	{ "GL_EXT_draw_elements_base_vertex",					DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex),					s_GL_EXT_draw_elements_base_vertex					},
	{ "GL_EXT_draw_instanced",								DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced),							s_GL_EXT_draw_instanced								},
	{ "GL_EXT_draw_transform_feedback",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback),					s_GL_EXT_draw_transform_feedback					},
	{ "GL_EXT_external_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer),							s_GL_EXT_external_buffer							},
	{ "GL_EXT_geometry_shader",								DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader),							s_GL_EXT_geometry_shader							},
	{ "GL_EXT_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays),							s_GL_EXT_instanced_arrays							},
	{ "GL_EXT_memory_object",								DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object),								s_GL_EXT_memory_object								},
	{ "GL_EXT_memory_object_fd",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd),							s_GL_EXT_memory_object_fd							},
	{ "GL_EXT_memory_object_win32",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32),						s_GL_EXT_memory_object_win32						},
	{ "GL_EXT_multi_draw_indirect",							DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect),						s_GL_EXT_multi_draw_indirect						},
	{ "GL_EXT_multiview_draw_buffers",						DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),					s_GL_EXT_multiview_draw_buffers						},
	{ "GL_EXT_occlusion_query_boolean",						DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),					s_GL_EXT_occlusion_query_boolean					},
	{ "GL_EXT_polygon_offset_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp),						s_GL_EXT_polygon_offset_clamp						},
	{ "GL_EXT_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),					s_GL_EXT_primitive_bounding_box						},
	{ "GL_EXT_raster_multisample",							DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),						s_GL_EXT_raster_multisample							},
	{ "GL_EXT_semaphore",									DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore),									s_GL_EXT_semaphore									},
	{ "GL_EXT_semaphore_fd",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd),								s_GL_EXT_semaphore_fd								},
	{ "GL_EXT_semaphore_win32",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32),							s_GL_EXT_semaphore_win32							},
	{ "GL_EXT_separate_shader_objects",						DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),					s_GL_EXT_separate_shader_objects					},
	{ "GL_EXT_shader_pixel_local_storage2",					DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2),				s_GL_EXT_shader_pixel_local_storage2				},
	{ "GL_EXT_sparse_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),							s_GL_EXT_sparse_texture								},
	{ "GL_EXT_tessellation_shader",							DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader),						s_GL_EXT_tessellation_shader						},
	{ "GL_EXT_texture_border_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp),						s_GL_EXT_texture_border_clamp						},
	{ "GL_EXT_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),							s_GL_EXT_texture_buffer								},
	{ "GL_EXT_texture_filter_minmax",						DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax),						s_GL_EXT_texture_filter_minmax						},
	{ "GL_EXT_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),								s_GL_EXT_texture_view								},
	{ "GL_EXT_win32_keyed_mutex",							DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex),							s_GL_EXT_win32_keyed_mutex							},
	{ "GL_EXT_window_rectangles",							DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles),							s_GL_EXT_window_rectangles							},
	{ "GL_IMG_bindless_texture",							DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture),							s_GL_IMG_bindless_texture							},
	{ "GL_IMG_framebuffer_downsample",						DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample),					s_GL_IMG_framebuffer_downsample						},
	{ "GL_INTEL_framebuffer_CMAA",							DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA),						s_GL_INTEL_framebuffer_CMAA							},
	{ "GL_INTEL_performance_query",							DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query),						s_GL_INTEL_performance_query						},
	{ "GL_KHR_blend_equation_advanced",						DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced),					s_GL_KHR_blend_equation_advanced					},
	{ "GL_KHR_debug",										DE_LENGTH_OF_ARRAY(s_GL_KHR_debug),										s_GL_KHR_debug										},
	{ "GL_KHR_robustness",									DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness),								s_GL_KHR_robustness									},
	{ "GL_KHR_parallel_shader_compile",						DE_LENGTH_OF_ARRAY(s_GL_KHR_parallel_shader_compile),					s_GL_KHR_parallel_shader_compile					},
	{ "GL_NV_bindless_texture",								DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture),							s_GL_NV_bindless_texture							},
	{ "GL_NV_blend_equation_advanced",						DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced),					s_GL_NV_blend_equation_advanced						},
	{ "GL_NV_conditional_render",							DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render),							s_GL_NV_conditional_render							},
	{ "GL_NV_conservative_raster",							DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster),						s_GL_NV_conservative_raster							},
	{ "GL_NV_conservative_raster_pre_snap_triangles",		DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster_pre_snap_triangles),		s_GL_NV_conservative_raster_pre_snap_triangles		},
	{ "GL_NV_copy_buffer",									DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer),								s_GL_NV_copy_buffer									},
	{ "GL_NV_coverage_sample",								DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample),							s_GL_NV_coverage_sample								},
	{ "GL_NV_draw_buffers",									DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers),								s_GL_NV_draw_buffers								},
	{ "GL_NV_draw_instanced",								DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced),								s_GL_NV_draw_instanced								},
	{ "GL_NV_draw_vulkan_image",							DE_LENGTH_OF_ARRAY(s_GL_NV_draw_vulkan_image),							s_GL_NV_draw_vulkan_image							},
	{ "GL_NV_fragment_coverage_to_color",					DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color),					s_GL_NV_fragment_coverage_to_color					},
	{ "GL_NV_framebuffer_blit",								DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit),							s_GL_NV_framebuffer_blit							},
	{ "GL_NV_framebuffer_mixed_samples",					DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples),					s_GL_NV_framebuffer_mixed_samples					},
	{ "GL_NV_framebuffer_multisample",						DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample),					s_GL_NV_framebuffer_multisample						},
	{ "GL_NV_gpu_shader5",									DE_LENGTH_OF_ARRAY(s_GL_NV_gpu_shader5),								s_GL_NV_gpu_shader5									},
	{ "GL_NV_instanced_arrays",								DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays),							s_GL_NV_instanced_arrays							},
	{ "GL_NV_internalformat_sample_query",					DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query),				s_GL_NV_internalformat_sample_query					},
	{ "GL_NV_non_square_matrices",							DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices),						s_GL_NV_non_square_matrices							},
	{ "GL_NV_path_rendering",								DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering),								s_GL_NV_path_rendering								},
	{ "GL_NV_polygon_mode",									DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode),								s_GL_NV_polygon_mode								},
	{ "GL_NV_read_buffer",									DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer),								s_GL_NV_read_buffer									},
	{ "GL_NV_sample_locations",								DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations),							s_GL_NV_sample_locations							},
	{ "GL_NV_viewport_array",								DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array),								s_GL_NV_viewport_array								},
	{ "GL_NV_viewport_swizzle",								DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_swizzle),							s_GL_NV_viewport_swizzle							},
	{ "GL_OES_copy_image",									DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image),								s_GL_OES_copy_image									},
	{ "GL_OES_draw_buffers_indexed",						DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed),						s_GL_OES_draw_buffers_indexed						},
	{ "GL_OES_draw_elements_base_vertex",					DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex),					s_GL_OES_draw_elements_base_vertex					},
	{ "GL_OES_geometry_shader",								DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader),							s_GL_OES_geometry_shader							},
	{ "GL_OES_get_program_binary",							DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary),						s_GL_OES_get_program_binary							},
	{ "GL_OES_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box),					s_GL_OES_primitive_bounding_box						},
	{ "GL_OES_sample_shading",								DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading),							s_GL_OES_sample_shading								},
	{ "GL_OES_tessellation_shader",							DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader),						s_GL_OES_tessellation_shader						},
	{ "GL_OES_texture_3D",									DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D),								s_GL_OES_texture_3D									},
	{ "GL_OES_texture_border_clamp",						DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp),						s_GL_OES_texture_border_clamp						},
	{ "GL_OES_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer),							s_GL_OES_texture_buffer								},
	{ "GL_OES_texture_storage_multisample_2d_array",		DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array),		s_GL_OES_texture_storage_multisample_2d_array		},
	{ "GL_OES_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view),								s_GL_OES_texture_view								},
	{ "GL_OES_viewport_array",								DE_LENGTH_OF_ARRAY(s_GL_OES_viewport_array),							s_GL_OES_viewport_array								},
	{ "GL_OVR_multiview",									DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview),									s_GL_OVR_multiview									},
	{ "GL_OVR_multiview_multisampled_render_to_texture",	DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview_multisampled_render_to_texture),	s_GL_OVR_multiview_multisampled_render_to_texture	},
	{ "GL_QCOM_alpha_test",									DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),								s_GL_QCOM_alpha_test								},
	{ "GL_QCOM_framebuffer_foveated",						DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated),						s_GL_QCOM_framebuffer_foveated						},
	{ "GL_QCOM_shader_framebuffer_fetch_noncoherent",		DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent),		s_GL_QCOM_shader_framebuffer_fetch_noncoherent		},
};