xserver: Branch 'master' - 9 commits

Ian Romanick idr at kemper.freedesktop.org
Wed Aug 23 17:15:20 PDT 2006


 GL/glx/Makefile.am         |    3 
 GL/glx/g_disptab.c         |  325 -----
 GL/glx/g_disptab.h         |  100 -
 GL/glx/g_disptab_EXT.c     |   13 
 GL/glx/g_disptab_EXT.h     |    5 
 GL/glx/glxcmds.c           |  350 ++----
 GL/glx/glxcmdsswap.c       |  509 +-------
 GL/glx/glxext.c            |   39 
 GL/glx/glxext.h            |    4 
 GL/glx/glxscreens.c        |   24 
 GL/glx/glxserver.h         |    8 
 GL/glx/indirect_dispatch.h |  176 ++-
 GL/glx/indirect_table.c    | 1517 ++++++++++++++++++++++++++
 GL/glx/indirect_table.h    |  106 +
 GL/glx/indirect_util.c     |  112 +
 GL/glx/indirect_util.h     |   10 
 GL/glx/rensize.c           |    2 
 GL/glx/rensizetab.c        | 2552 ---------------------------------------------
 GL/glx/single2.c           |   10 
 GL/glx/single2swap.c       |   10 
 GL/glx/singlepix.c         |    5 
 GL/glx/singlepixswap.c     |    5 
 GL/glx/xfont.c             |    3 
 23 files changed, 2183 insertions(+), 3705 deletions(-)

New commits:
diff-tree b983773d446cef6a0948ca264ed48126e404ae9a (from parents)
Merge: 0623d3643fc28ebc514b2ca872c985d0cf0c753a d9a86566c21afd7985673f3ed851b055d9dac46f
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 17:16:50 2006 -0700

    Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver

diff-tree 0623d3643fc28ebc514b2ca872c985d0cf0c753a (from 5d2caacff570dd68bb3fb05e776e02515b2a9da0)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 17:16:02 2006 -0700

    Fix the sorting of the extension string.  Add a few extensions that
    are supported by the new code.  A few of these were actually supported
    before but weren't advertised.

diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c
index e388fce..865fcba 100644
--- a/GL/glx/glxscreens.c
+++ b/GL/glx/glxscreens.c
@@ -48,8 +48,11 @@
 const char GLServerVersion[] = "1.2";
 static const char GLServerExtensions[] = 
 			"GL_ARB_depth_texture "
+			"GL_ARB_draw_buffers "
 			"GL_ARB_imaging "
+			"GL_ARB_multisample "
 			"GL_ARB_multitexture "
+			"GL_ARB_occlusion_query "
 			"GL_ARB_point_parameters "
 			"GL_ARB_point_sprite "
 			"GL_ARB_shadow "
@@ -61,9 +64,9 @@ static const char GLServerExtensions[] =
 			"GL_ARB_texture_env_crossbar "
 			"GL_ARB_texture_env_dot3 "
 			"GL_ARB_texture_mirrored_repeat "
+			"GL_ARB_texture_non_power_of_two "
 			"GL_ARB_transpose_matrix "
 			"GL_ARB_window_pos "
-			"GL_ARB_texture_non_power_of_two "
 			"GL_EXT_abgr "
 			"GL_EXT_bgra "
  			"GL_EXT_blend_color "
@@ -75,8 +78,10 @@ static const char GLServerExtensions[] =
 			"GL_EXT_copy_texture "
 			"GL_EXT_draw_range_elements "
 			"GL_EXT_fog_coord "
+			"GL_EXT_framebuffe_object "
 			"GL_EXT_multi_draw_arrays "
 			"GL_EXT_packed_pixels "
+			"GL_EXT_point_parameters "
 			"GL_EXT_polygon_offset "
 			"GL_EXT_rescale_normal "
 			"GL_EXT_secondary_color "
@@ -93,29 +98,40 @@ static const char GLServerExtensions[] =
  			"GL_EXT_texture_env_dot3 "
 			"GL_EXT_texture_lod "
  			"GL_EXT_texture_lod_bias "
+ 			"GL_EXT_texture_mirror_clamp "
 			"GL_EXT_texture_object "
 			"GL_EXT_texture_rectangle "
 			"GL_EXT_vertex_array "
-			"GL_EXT_framebuffer_object "
 			"GL_APPLE_packed_pixels "
-			"GL_ATI_texture_mirror_once "
+			"GL_ATI_draw_buffers "
 			"GL_ATI_texture_env_combine3 "
+			"GL_ATI_texture_mirror_once "
  			"GL_HP_occlusion_test "
 			"GL_IBM_texture_mirrored_repeat "
+			"GL_INGR_blend_func_separate "
 			"GL_MESA_pack_invert "
 			"GL_MESA_ycbcr_texture "
 			"GL_NV_blend_square "
+			"GL_NV_depth_clamp "
+			"GL_NV_fog_distance "
+			"GL_NV_light_max_exponent "
+			"GL_NV_multisample_filter_hint "
 			"GL_NV_point_sprite "
 			"GL_NV_texgen_reflection "
-			"GL_NV_texture_rectangle "
 			"GL_NV_texture_env_combine4 "
+			"GL_NV_texture_expand_normal "
+			"GL_NV_texture_rectangle "
+			"GL_SGI_color_matrix "
 			"GL_SGIS_generate_mipmap "
+			"GL_SGIS_multisample "
+			"GL_SGIS_point_parameters "
 			"GL_SGIS_texture_border_clamp "
 			"GL_SGIS_texture_edge_clamp "
 			"GL_SGIS_texture_lod "
 			"GL_SGIX_depth_texture "
 			"GL_SGIX_shadow "
 			"GL_SGIX_shadow_ambient "
+			"GL_SUN_slice_accum "
 			;
 
 /*
diff-tree 5d2caacff570dd68bb3fb05e776e02515b2a9da0 (from 866bb3f34046045c9fa0744db1d76e035b3da9c7)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:47:00 2006 -0700

    Refector __glXDisp_Render and __glXDispSwap_Render to DoRender.
    Refector __glXDisp_RenderLarge and __glXDispSwap_RenderLarge to
    DoRenderLarge.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index e16087a..01e8ffa 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1717,10 +1717,7 @@ int __glXDisp_GetDrawableAttributes(__GL
 ** client library to send batches of GL rendering commands.
 */
 
-/*
-** Execute all the drawing commands in a request.
-*/
-int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
+int DoRender(__GLXclientState *cl, GLbyte *pc, int do_swap)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -1729,14 +1726,15 @@ int __glXDisp_Render(__GLXclientState *c
     CARD16 opcode;
     __GLXrenderHeader *hdr;
     __GLXcontext *glxc;
+    __GLX_DECLARE_SWAP_VARIABLES;
 
-    /*
-    ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXDisp_SwapRender().  Any changes made here should also be
-    ** duplicated there.
-    */
     
     req = (xGLXRenderReq *) pc;
+    if (do_swap) {
+	__GLX_SWAP_SHORT(&req->length);
+	__GLX_SWAP_INT(&req->contextTag);
+    }
+
     glxc = __glXForceCurrent(cl, req->contextTag, &error);
     if (!glxc) {
 	return error;
@@ -1756,6 +1754,10 @@ int __glXDisp_Render(__GLXclientState *c
 	** Also, each command must be word aligned.
 	*/
 	hdr = (__GLXrenderHeader *) pc;
+	if (do_swap) {
+	    __GLX_SWAP_SHORT(&hdr->length);
+	    __GLX_SWAP_SHORT(&hdr->opcode);
+	}
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
@@ -1764,7 +1766,7 @@ int __glXDisp_Render(__GLXclientState *c
 	*/
 	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
 	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, do_swap);
 
 	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
@@ -1773,7 +1775,7 @@ int __glXDisp_Render(__GLXclientState *c
 
         if (entry.varsize) {
             /* variable size command */
-            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, do_swap);
             if (extra < 0) {
                 extra = 0;
             }
@@ -1807,25 +1809,34 @@ int __glXDisp_Render(__GLXclientState *c
 }
 
 /*
-** Execute a large rendering request (one that spans multiple X requests).
+** Execute all the drawing commands in a request.
 */
-int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
+{
+    return DoRender(cl, pc, False);
+}
+
+int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
-    GLuint dataBytes;
+    size_t dataBytes;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
     CARD16 opcode;
+    __GLX_DECLARE_SWAP_VARIABLES;
 
-    /*
-    ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXDisp_SwapRenderLarge().  Any changes made here should also be
-    ** duplicated there.
-    */
     
     req = (xGLXRenderLargeReq *) pc;
+    if (do_swap) {
+	__GLX_SWAP_SHORT(&req->length);
+	__GLX_SWAP_INT(&req->contextTag);
+	__GLX_SWAP_INT(&req->dataBytes);
+	__GLX_SWAP_SHORT(&req->requestNumber);
+	__GLX_SWAP_SHORT(&req->requestTotal);
+    }
+
     glxc = __glXForceCurrent(cl, req->contextTag, &error);
     if (!glxc) {
 	/* Reset in case this isn't 1st request. */
@@ -1847,7 +1858,8 @@ int __glXDisp_RenderLarge(__GLXclientSta
     
     if (cl->largeCmdRequestsSoFar == 0) {
 	__GLXrenderSizeData entry;
-	int extra, cmdlen;
+	int extra;
+	size_t cmdlen;
 	int err;
 
 	/*
@@ -1860,6 +1872,10 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	}
 
 	hdr = (__GLXrenderLargeHeader *) pc;
+	if (do_swap) {
+	    __GLX_SWAP_INT(&hdr->length);
+	    __GLX_SWAP_INT(&hdr->opcode);
+	}
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
@@ -1878,7 +1894,7 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, do_swap);
 	    if (extra < 0) {
 		extra = 0;
 	    }
@@ -1897,10 +1913,9 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	*/
 	if (cl->largeCmdBufSize < cmdlen) {
 	    if (!cl->largeCmdBuf) {
-		cl->largeCmdBuf = (GLbyte *) xalloc((size_t)cmdlen);
+		cl->largeCmdBuf = (GLbyte *) xalloc(cmdlen);
 	    } else {
-		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, 
-						      (size_t)cmdlen);
+		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, cmdlen);
 	    }
 	    if (!cl->largeCmdBuf) {
 		return BadAlloc;
@@ -1970,13 +1985,16 @@ int __glXDisp_RenderLarge(__GLXclientSta
 		return __glXError(GLXBadLargeRequest);
 	    }
 	    hdr = (__GLXrenderLargeHeader *) cl->largeCmdBuf;
-	    opcode = hdr->opcode;
-
 	    /*
+	    ** The opcode and length field in the header had already been
+	    ** swapped when the first request was received.
+	    **
 	    ** Use the opcode to index into the procedure table.
 	    */
+	    opcode = hdr->opcode;
+
 	    proc = (__GLXdispatchRenderProcPtr)
-	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, do_swap);
 	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
@@ -2001,6 +2019,14 @@ int __glXDisp_RenderLarge(__GLXclientSta
     }
 }
 
+/*
+** Execute a large rendering request (one that spans multiple X requests).
+*/
+int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
+{
+    return DoRenderLarge(cl, pc, False);
+}
+
 extern RESTYPE __glXSwapBarrierRes;
 
 int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index ae6a9d1..551824c 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -641,91 +641,7 @@ void __glXSwapGetDrawableAttributesReply
 
 int __glXDispSwap_Render(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXRenderReq *req;
-    ClientPtr client= cl->client;
-    int left, cmdlen, error;
-    int commandsDone;
-    CARD16 opcode;
-    __GLXrenderHeader *hdr;
-    __GLXcontext *cx;
-    __GLX_DECLARE_SWAP_VARIABLES;
-
-    /*
-    ** NOTE: much of this code also appears in the nonswapping version of this
-    ** routine, __glXRender().  Any changes made here should also be
-    ** duplicated there.
-    */
-    
-    req = (xGLXRenderReq *) pc;
-    __GLX_SWAP_SHORT(&req->length);
-    __GLX_SWAP_INT(&req->contextTag);
-
-    cx = __glXForceCurrent(cl, req->contextTag, &error);
-    if (!cx) {
-	return error;
-    }
-
-    commandsDone = 0;
-    pc += sz_xGLXRenderReq;
-    left = (req->length << 2) - sz_xGLXRenderReq;
-    while (left > 0) {
-        __GLXrenderSizeData entry;
-        int extra;
-	__GLXdispatchRenderProcPtr proc;
-	int err;
-
-	/*
-	** Verify that the header length and the overall length agree.
-	** Also, each command must be word aligned.
-	*/
-	hdr = (__GLXrenderHeader *) pc;
-	__GLX_SWAP_SHORT(&hdr->length);
-	__GLX_SWAP_SHORT(&hdr->opcode);
-	cmdlen = hdr->length;
-	opcode = hdr->opcode;
-
-	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
-
-	if ((err < 0) || (proc == NULL)) {
-	    client->errorValue = commandsDone;
-	    return __glXError(GLXBadRenderRequest);
-	}
-
-        if (entry.varsize) {
-            /* variable size command */
-            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
-            if (extra < 0) {
-                extra = 0;
-            }
-            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
-                return BadLength;
-            }
-        } else {
-            /* constant size command */
-            if (cmdlen != __GLX_PAD(entry.bytes)) {
-                return BadLength;
-            }
-        }
-	if (left < cmdlen) {
-	    return BadLength;
-	}
-
-	/*
-	** Skip over the header and execute the command.  We allow the
-	** caller to trash the command memory.  This is useful especially
-	** for things that require double alignment - they can just shift
-	** the data towards lower memory (trashing the header) by 4 bytes
-	** and achieve the required alignment.
-	*/
-	(*proc)(pc + __GLX_RENDER_HDR_SIZE);
-	pc += cmdlen;
-	left -= cmdlen;
-	commandsDone++;
-    }
-    __GLX_NOTE_UNFLUSHED_CMDS(cx);
-    return Success;
+    return DoRender(cl, pc, True);
 }
 
 /*
@@ -733,203 +649,7 @@ int __glXDispSwap_Render(__GLXclientStat
 */
 int __glXDispSwap_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXRenderLargeReq *req;
-    ClientPtr client= cl->client;
-    size_t dataBytes;
-    __GLXrenderLargeHeader *hdr;
-    __GLXcontext *cx;
-    int error;
-    CARD16 opcode;
-    __GLX_DECLARE_SWAP_VARIABLES;
-
-    /*
-    ** NOTE: much of this code also appears in the nonswapping version of this
-    ** routine, __glXRenderLarge().  Any changes made here should also be
-    ** duplicated there.
-    */
-    
-    req = (xGLXRenderLargeReq *) pc;
-    __GLX_SWAP_SHORT(&req->length);
-    __GLX_SWAP_INT(&req->contextTag);
-    __GLX_SWAP_INT(&req->dataBytes);
-    __GLX_SWAP_SHORT(&req->requestNumber);
-    __GLX_SWAP_SHORT(&req->requestTotal);
-    cx = __glXForceCurrent(cl, req->contextTag, &error);
-    if (!cx) {
-	/* Reset in case this isn't 1st request. */
-	__glXResetLargeCommandStatus(cl);
-	return error;
-    }
-    dataBytes = req->dataBytes;
-
-    /*
-    ** Check the request length.
-    */
-    if ((req->length << 2) != __GLX_PAD(dataBytes) + sz_xGLXRenderLargeReq) {
-	client->errorValue = req->length;
-	/* Reset in case this isn't 1st request. */
-	__glXResetLargeCommandStatus(cl);
-	return BadLength;
-    }
-    pc += sz_xGLXRenderLargeReq;
-    
-    if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData entry;
-	int extra;
-	size_t cmdlen;
-	int err;
-
-	/*
-	** This is the first request of a multi request command.
-	** Make enough space in the buffer, then copy the entire request.
-	*/
-	if (req->requestNumber != 1) {
-	    client->errorValue = req->requestNumber;
-	    return __glXError(GLXBadLargeRequest);
-	}
-	hdr = (__GLXrenderLargeHeader *) pc;
-	__GLX_SWAP_INT(&hdr->length);
-	__GLX_SWAP_INT(&hdr->opcode);
-	cmdlen = hdr->length;
-	opcode = hdr->opcode;
-
-	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
-	if (err < 0) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
-	if (entry.varsize) {
-	    /*
-	    ** If it's a variable-size command (a command whose length must
-	    ** be computed from its parameters), all the parameters needed
-	    ** will be in the 1st request, so it's okay to do this.
-	    */
-	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
-	    if (extra < 0) {
-		extra = 0;
-	    }
-	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
-		return BadLength;
-	    }
-	} else {
-	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
-		return BadLength;
-	    }
-	}
-	/*
-	** Make enough space in the buffer, then copy the entire request.
-	*/
-	if (cl->largeCmdBufSize < cmdlen) {
-	    if (!cl->largeCmdBuf) {
-		cl->largeCmdBuf = (GLbyte *) xalloc(cmdlen);
-	    } else {
-		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, cmdlen);
-	    }
-	    if (!cl->largeCmdBuf) {
-		return BadAlloc;
-	    }
-	    cl->largeCmdBufSize = cmdlen;
-	}
-	memcpy(cl->largeCmdBuf, pc, dataBytes);
-
-	cl->largeCmdBytesSoFar = dataBytes;
-	cl->largeCmdBytesTotal = cmdlen;
-	cl->largeCmdRequestsSoFar = 1;
-	cl->largeCmdRequestsTotal = req->requestTotal;
-	return Success;
-	
-    } else {
-	/*
-	** We are receiving subsequent (i.e. not the first) requests of a
-	** multi request command.
-	*/
-
-	/*
-	** Check the request number and the total request count.
-	*/
-	if (req->requestNumber != cl->largeCmdRequestsSoFar + 1) {
-	    client->errorValue = req->requestNumber;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-	if (req->requestTotal != cl->largeCmdRequestsTotal) {
-	    client->errorValue = req->requestTotal;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-
-	/*
-	** Check that we didn't get too much data.
-	*/
-	if ((cl->largeCmdBytesSoFar + dataBytes) > cl->largeCmdBytesTotal) {
-	    client->errorValue = dataBytes;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-	memcpy(cl->largeCmdBuf + cl->largeCmdBytesSoFar, pc, dataBytes);
-	cl->largeCmdBytesSoFar += dataBytes;
-	cl->largeCmdRequestsSoFar++;
-
-	if (req->requestNumber == cl->largeCmdRequestsTotal) {
-	    __GLXdispatchRenderProcPtr proc;
-
-	    /*
-	    ** This is the last request; it must have enough bytes to complete
-	    ** the command.
-	    */
-	    /* NOTE: the two pad macros have been added below; they are needed
-	    ** because the client library pads the total byte count, but not
-	    ** the per-request byte counts.  The Protocol Encoding says the
-	    ** total byte count should not be padded, so a proposal will be 
-	    ** made to the ARB to relax the padding constraint on the total 
-	    ** byte count, thus preserving backward compatibility.  Meanwhile, 
-	    ** the padding done below fixes a bug that did not allow
-	    ** large commands of odd sizes to be accepted by the server.
-	    */
-	    if (__GLX_PAD(cl->largeCmdBytesSoFar) !=
-		__GLX_PAD(cl->largeCmdBytesTotal)) {
-		client->errorValue = dataBytes;
-		__glXResetLargeCommandStatus(cl);
-		return __glXError(GLXBadLargeRequest);
-	    }
-	    hdr = (__GLXrenderLargeHeader *) cl->largeCmdBuf;
-	    /*
-	    ** The opcode and length field in the header had already been
-	    ** swapped when the first request was received.
-	    */
-
-	    /*
-	    ** Use the opcode to index into the procedure table.
-	    */
-	    opcode = hdr->opcode;
-
-	    proc = (__GLXdispatchRenderProcPtr)
-	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
-	    if (proc == NULL) {
-		client->errorValue = opcode;
-		return __glXError(GLXBadLargeRequest);
-	    }
-
-	    /*
-	    ** Skip over the header and execute the command.
-	    */
-	    (*proc)(cl->largeCmdBuf + __GLX_RENDER_LARGE_HDR_SIZE);
-	    __GLX_NOTE_UNFLUSHED_CMDS(cx);
-
-	    /*
-	    ** Reset for the next RenderLarge series.
-	    */
-	    __glXResetLargeCommandStatus(cl);
-	} else {
-	    /*
-	    ** This is neither the first nor the last request.
-	    */
-	}
-	return Success;
-    }
+    return DoRenderLarge(cl, pc, True);
 }
 
 /************************************************************************/
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index b19a716..c494de4 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -89,6 +89,9 @@ extern int DoDestroyPixmap(__GLXclientSt
 
 extern int DoQueryContext(__GLXclientState *cl, GLXContextID gcId);
 
+extern int DoRender(__GLXclientState *cl, GLbyte *pc, int do_swap);
+extern int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap);
+
 extern void GlxExtensionInit(void);
 
 extern Bool __glXCoreType(void);
diff-tree 866bb3f34046045c9fa0744db1d76e035b3da9c7 (from f6fd7d8f8393f93705e76b2b2777a0d9bcafa991)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:41:53 2006 -0700

    Memo to myself: Whenever a Makefile.am changes, autogen.sh must be
    re-run.  This is especially true if the change is to remove a source
    file.
    
    Fix RenderLarge to actually use the new protocol decode tables.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index fdd36e2..e16087a 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1814,7 +1814,6 @@ int __glXDisp_RenderLarge(__GLXclientSta
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     GLuint dataBytes;
-    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
@@ -1873,13 +1872,6 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
-	if (proc == NULL) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
 	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
@@ -1956,6 +1948,8 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	cl->largeCmdRequestsSoFar++;
 
 	if (req->requestNumber == cl->largeCmdRequestsTotal) {
+	    __GLXdispatchRenderProcPtr proc;
+
 	    /*
 	    ** This is the last request; it must have enough bytes to complete
 	    ** the command.
@@ -1981,16 +1975,9 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    /*
 	    ** Use the opcode to index into the procedure table.
 	    */
-	    if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-		proc = __glXRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	    } else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-		opcode -= __GLX_MIN_RENDER_OPCODE_EXT;
-		proc = __glXRenderTable_EXT[opcode];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	    } else {
+	    proc = (__GLXdispatchRenderProcPtr)
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
 	    }
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 5dd98ca..ae6a9d1 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -736,7 +736,6 @@ int __glXDispSwap_RenderLarge(__GLXclien
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     size_t dataBytes;
-    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *cx;
     int error;
@@ -800,13 +799,6 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
-	if (proc == NULL) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
 	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
@@ -882,6 +874,8 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	cl->largeCmdRequestsSoFar++;
 
 	if (req->requestNumber == cl->largeCmdRequestsTotal) {
+	    __GLXdispatchRenderProcPtr proc;
+
 	    /*
 	    ** This is the last request; it must have enough bytes to complete
 	    ** the command.
@@ -911,16 +905,10 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	    ** Use the opcode to index into the procedure table.
 	    */
 	    opcode = hdr->opcode;
-	    if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-		proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	    } else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-		int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-		proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	    } else {
+
+	    proc = (__GLXdispatchRenderProcPtr)
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
+	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
 	    }
diff-tree f6fd7d8f8393f93705e76b2b2777a0d9bcafa991 (from 7ae82b5fc8721be78b43a322bbf2c46aac08b8cf)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:05:37 2006 -0700

    Convert protocol decode tabels for Render and RenderLarge to use nice,
    compact N-way search trees generated by scripts in Mesa.

diff --git a/GL/glx/Makefile.am b/GL/glx/Makefile.am
index 2bb6943..94f8fd6 100644
--- a/GL/glx/Makefile.am
+++ b/GL/glx/Makefile.am
@@ -70,7 +70,6 @@ libglx_la_SOURCES = \
         renderpix.c \
         renderpixswap.c \
         rensize.c \
-        rensizetab.c \
         single2.c \
         single2swap.c \
         singlepix.c \
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index b52528d..fdd36e2 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1746,9 +1746,10 @@ int __glXDisp_Render(__GLXclientState *c
     pc += sz_xGLXRenderReq;
     left = (req->length << 2) - sz_xGLXRenderReq;
     while (left > 0) {
-        __GLXrenderSizeData *entry;
+        __GLXrenderSizeData entry;
         int extra;
-	void (* proc)(GLbyte *);
+	__GLXdispatchRenderProcPtr proc;
+	int err;
 
 	/*
 	** Verify that the header length and the overall length agree.
@@ -1761,41 +1762,27 @@ int __glXDisp_Render(__GLXclientState *c
 	/*
 	** Check for core opcodes and grab entry data.
 	*/
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		    (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    entry = 
-		&__glXRenderSizeTable_EXT[opcode - 
-					 __GLX_MIN_RENDER_OPCODE_EXT];
-	    proc = __glXRenderTable_EXT[opcode - 
-				       __GLX_MIN_RENDER_OPCODE_EXT];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+
+	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
 	    return __glXError(GLXBadRenderRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = commandsDone;
-            return __glXError(GLXBadRenderRequest);
-        }
-        if (entry->varsize) {
+        if (entry.varsize) {
             /* variable size command */
-            extra = (*entry->varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
             if (extra < 0) {
                 extra = 0;
             }
-            if (cmdlen != __GLX_PAD(entry->bytes + extra)) {
+            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
                 return BadLength;
             }
         } else {
             /* constant size command */
-            if (cmdlen != __GLX_PAD(entry->bytes)) {
+            if (cmdlen != __GLX_PAD(entry.bytes)) {
                 return BadLength;
             }
         }
@@ -1827,7 +1814,7 @@ int __glXDisp_RenderLarge(__GLXclientSta
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     GLuint dataBytes;
-    void (*proc)(GLbyte *);
+    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
@@ -1860,8 +1847,10 @@ int __glXDisp_RenderLarge(__GLXclientSta
     pc += sz_xGLXRenderLargeReq;
     
     if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData *entry;
+	__GLXrenderSizeData entry;
 	int extra, cmdlen;
+	int err;
+
 	/*
 	** This is the first request of a multi request command.
 	** Make enough space in the buffer, then copy the entire request.
@@ -1878,42 +1867,36 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	/*
 	** Check for core opcodes and grab entry data.
 	*/
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    opcode -= __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[opcode];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	if (err < 0) {
 	    client->errorValue = opcode;
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = opcode;
-            return __glXError(GLXBadLargeRequest);
-        }
-	if (entry->varsize) {
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	if (proc == NULL) {
+	    client->errorValue = opcode;
+	    return __glXError(GLXBadLargeRequest);
+	}
+
+	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry->varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
 	    if (extra < 0) {
 		extra = 0;
 	    }
 	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4 + extra)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
 		return BadLength;
 	    }
 	} else {
 	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
 		return BadLength;
 	    }
 	}
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 78a26f5..5dd98ca 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -669,9 +669,10 @@ int __glXDispSwap_Render(__GLXclientStat
     pc += sz_xGLXRenderReq;
     left = (req->length << 2) - sz_xGLXRenderReq;
     while (left > 0) {
-        __GLXrenderSizeData *entry;
+        __GLXrenderSizeData entry;
         int extra;
-	void (* proc)(GLbyte *);
+	__GLXdispatchRenderProcPtr proc;
+	int err;
 
 	/*
 	** Verify that the header length and the overall length agree.
@@ -683,38 +684,27 @@ int __glXDispSwap_Render(__GLXclientStat
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[index];
-	    proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
+
+	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
 	    return __glXError(GLXBadRenderRequest);
 	}
-        if (!entry->bytes) {
-            /* unused opcode */
-	    client->errorValue = commandsDone;
-            return __glXError(GLXBadRenderRequest);
-        }
-        if (entry->varsize) {
+
+        if (entry.varsize) {
             /* variable size command */
-            extra = (*entry->varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
             if (extra < 0) {
                 extra = 0;
             }
-            if (cmdlen != __GLX_PAD(entry->bytes + extra)) {
+            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
                 return BadLength;
             }
         } else {
             /* constant size command */
-            if (cmdlen != __GLX_PAD(entry->bytes)) {
+            if (cmdlen != __GLX_PAD(entry.bytes)) {
                 return BadLength;
             }
         }
@@ -746,7 +736,7 @@ int __glXDispSwap_RenderLarge(__GLXclien
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     size_t dataBytes;
-    void (*proc)(GLbyte *);
+    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *cx;
     int error;
@@ -785,9 +775,11 @@ int __glXDispSwap_RenderLarge(__GLXclien
     pc += sz_xGLXRenderLargeReq;
     
     if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData *entry;
+	__GLXrenderSizeData entry;
 	int extra;
 	size_t cmdlen;
+	int err;
+
 	/*
 	** This is the first request of a multi request command.
 	** Make enough space in the buffer, then copy the entire request.
@@ -802,44 +794,36 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[index];
-	    proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	if (err < 0) {
 	    client->errorValue = opcode;
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = opcode;
-            return __glXError(GLXBadLargeRequest);
-        }
-	if (entry->varsize) {
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	if (proc == NULL) {
+	    client->errorValue = opcode;
+	    return __glXError(GLXBadLargeRequest);
+	}
+
+	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry->varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
 	    if (extra < 0) {
 		extra = 0;
 	    }
 	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4 + extra)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
 		return BadLength;
 	    }
 	} else {
 	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
 		return BadLength;
 	    }
 	}
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 387489a..a79520e 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -202,8 +202,6 @@ typedef struct {
     int bytes;
     gl_proto_size_func varsize;
 } __GLXrenderSizeData;
-extern __GLXrenderSizeData __glXRenderSizeTable[];
-extern __GLXrenderSizeData __glXRenderSizeTable_EXT[];
 
 /************************************************************************/
 
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index 2c88589..ec69234 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -74,7 +74,7 @@ static const int_fast16_t Single_dispatc
 
 };
 
-static const __GLXdispatchSingleProcPtr Single_function_table[112][2] = {
+static const void *Single_function_table[112][2] = {
     /* [  0] =     0 */ {NULL, NULL},
     /* [  1] =     1 */ {__glXDisp_Render, __glXDispSwap_Render},
     /* [  2] =     2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
@@ -198,6 +198,1014 @@ const struct __glXDispatchInfo Single_di
 };
 
 /*****************************************************************/
+/* tree depth = 8 */
+static const int_fast16_t Render_dispatch_tree[96] = {
+    /* [0] -> opcode range [0, 8192], node depth 1 */
+    2,
+    5,
+    31,
+    54,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 2048], node depth 2 */
+    1,
+    8,
+    EMPTY_LEAF,
+
+    /* [8] -> opcode range [0, 1024], node depth 3 */
+    1,
+    11,
+    EMPTY_LEAF,
+
+    /* [11] -> opcode range [0, 512], node depth 4 */
+    1,
+    14,
+    EMPTY_LEAF,
+
+    /* [14] -> opcode range [0, 256], node depth 5 */
+    4,
+    LEAF(0),
+    LEAF(16),
+    LEAF(32),
+    LEAF(48),
+    LEAF(64),
+    LEAF(80),
+    LEAF(96),
+    LEAF(112),
+    LEAF(128),
+    LEAF(144),
+    LEAF(160),
+    LEAF(176),
+    LEAF(192),
+    LEAF(208),
+    LEAF(224),
+    EMPTY_LEAF,
+
+    /* [31] -> opcode range [2048, 4096], node depth 2 */
+    1,
+    34,
+    EMPTY_LEAF,
+
+    /* [34] -> opcode range [2048, 3072], node depth 3 */
+    1,
+    37,
+    EMPTY_LEAF,
+
+    /* [37] -> opcode range [2048, 2560], node depth 4 */
+    1,
+    40,
+    EMPTY_LEAF,
+
+    /* [40] -> opcode range [2048, 2304], node depth 5 */
+    1,
+    43,
+    EMPTY_LEAF,
+
+    /* [43] -> opcode range [2048, 2176], node depth 6 */
+    1,
+    46,
+    EMPTY_LEAF,
+
+    /* [46] -> opcode range [2048, 2112], node depth 7 */
+    1,
+    49,
+    EMPTY_LEAF,
+
+    /* [49] -> opcode range [2048, 2080], node depth 8 */
+    2,
+    LEAF(240),
+    LEAF(248),
+    LEAF(256),
+    EMPTY_LEAF,
+
+    /* [54] -> opcode range [4096, 6144], node depth 2 */
+    1,
+    57,
+    EMPTY_LEAF,
+
+    /* [57] -> opcode range [4096, 5120], node depth 3 */
+    1,
+    60,
+    EMPTY_LEAF,
+
+    /* [60] -> opcode range [4096, 4608], node depth 4 */
+    1,
+    63,
+    EMPTY_LEAF,
+
+    /* [63] -> opcode range [4096, 4352], node depth 5 */
+    3,
+    LEAF(264),
+    72,
+    78,
+    LEAF(296),
+    81,
+    EMPTY_LEAF,
+    84,
+    90,
+
+    /* [72] -> opcode range [4128, 4160], node depth 6 */
+    1,
+    75,
+    EMPTY_LEAF,
+
+    /* [75] -> opcode range [4128, 4144], node depth 7 */
+    1,
+    LEAF(328),
+    EMPTY_LEAF,
+
+    /* [78] -> opcode range [4160, 4192], node depth 6 */
+    1,
+    EMPTY_LEAF,
+    LEAF(336),
+
+    /* [81] -> opcode range [4224, 4256], node depth 6 */
+    1,
+    LEAF(352),
+    EMPTY_LEAF,
+
+    /* [84] -> opcode range [4288, 4320], node depth 6 */
+    1,
+    EMPTY_LEAF,
+    87,
+
+    /* [87] -> opcode range [4304, 4320], node depth 7 */
+    1,
+    EMPTY_LEAF,
+    LEAF(368),
+
+    /* [90] -> opcode range [4320, 4352], node depth 6 */
+    1,
+    93,
+    EMPTY_LEAF,
+
+    /* [93] -> opcode range [4320, 4336], node depth 7 */
+    1,
+    LEAF(376),
+    EMPTY_LEAF,
+
+};
+
+static const void *Render_function_table[384][2] = {
+    /* [  0] =     0 */ {NULL, NULL},
+    /* [  1] =     1 */ {__glXDisp_CallList, __glXDispSwap_CallList},
+    /* [  2] =     2 */ {__glXDisp_CallLists, __glXDispSwap_CallLists},
+    /* [  3] =     3 */ {__glXDisp_ListBase, __glXDispSwap_ListBase},
+    /* [  4] =     4 */ {__glXDisp_Begin, __glXDispSwap_Begin},
+    /* [  5] =     5 */ {__glXDisp_Bitmap, __glXDispSwap_Bitmap},
+    /* [  6] =     6 */ {__glXDisp_Color3bv, __glXDispSwap_Color3bv},
+    /* [  7] =     7 */ {__glXDisp_Color3dv, __glXDispSwap_Color3dv},
+    /* [  8] =     8 */ {__glXDisp_Color3fv, __glXDispSwap_Color3fv},
+    /* [  9] =     9 */ {__glXDisp_Color3iv, __glXDispSwap_Color3iv},
+    /* [ 10] =    10 */ {__glXDisp_Color3sv, __glXDispSwap_Color3sv},
+    /* [ 11] =    11 */ {__glXDisp_Color3ubv, __glXDispSwap_Color3ubv},
+    /* [ 12] =    12 */ {__glXDisp_Color3uiv, __glXDispSwap_Color3uiv},
+    /* [ 13] =    13 */ {__glXDisp_Color3usv, __glXDispSwap_Color3usv},
+    /* [ 14] =    14 */ {__glXDisp_Color4bv, __glXDispSwap_Color4bv},
+    /* [ 15] =    15 */ {__glXDisp_Color4dv, __glXDispSwap_Color4dv},
+    /* [ 16] =    16 */ {__glXDisp_Color4fv, __glXDispSwap_Color4fv},
+    /* [ 17] =    17 */ {__glXDisp_Color4iv, __glXDispSwap_Color4iv},
+    /* [ 18] =    18 */ {__glXDisp_Color4sv, __glXDispSwap_Color4sv},
+    /* [ 19] =    19 */ {__glXDisp_Color4ubv, __glXDispSwap_Color4ubv},
+    /* [ 20] =    20 */ {__glXDisp_Color4uiv, __glXDispSwap_Color4uiv},
+    /* [ 21] =    21 */ {__glXDisp_Color4usv, __glXDispSwap_Color4usv},
+    /* [ 22] =    22 */ {__glXDisp_EdgeFlagv, __glXDispSwap_EdgeFlagv},
+    /* [ 23] =    23 */ {__glXDisp_End, __glXDispSwap_End},
+    /* [ 24] =    24 */ {__glXDisp_Indexdv, __glXDispSwap_Indexdv},
+    /* [ 25] =    25 */ {__glXDisp_Indexfv, __glXDispSwap_Indexfv},
+    /* [ 26] =    26 */ {__glXDisp_Indexiv, __glXDispSwap_Indexiv},
+    /* [ 27] =    27 */ {__glXDisp_Indexsv, __glXDispSwap_Indexsv},
+    /* [ 28] =    28 */ {__glXDisp_Normal3bv, __glXDispSwap_Normal3bv},
+    /* [ 29] =    29 */ {__glXDisp_Normal3dv, __glXDispSwap_Normal3dv},
+    /* [ 30] =    30 */ {__glXDisp_Normal3fv, __glXDispSwap_Normal3fv},
+    /* [ 31] =    31 */ {__glXDisp_Normal3iv, __glXDispSwap_Normal3iv},
+    /* [ 32] =    32 */ {__glXDisp_Normal3sv, __glXDispSwap_Normal3sv},
+    /* [ 33] =    33 */ {__glXDisp_RasterPos2dv, __glXDispSwap_RasterPos2dv},
+    /* [ 34] =    34 */ {__glXDisp_RasterPos2fv, __glXDispSwap_RasterPos2fv},
+    /* [ 35] =    35 */ {__glXDisp_RasterPos2iv, __glXDispSwap_RasterPos2iv},
+    /* [ 36] =    36 */ {__glXDisp_RasterPos2sv, __glXDispSwap_RasterPos2sv},
+    /* [ 37] =    37 */ {__glXDisp_RasterPos3dv, __glXDispSwap_RasterPos3dv},
+    /* [ 38] =    38 */ {__glXDisp_RasterPos3fv, __glXDispSwap_RasterPos3fv},
+    /* [ 39] =    39 */ {__glXDisp_RasterPos3iv, __glXDispSwap_RasterPos3iv},
+    /* [ 40] =    40 */ {__glXDisp_RasterPos3sv, __glXDispSwap_RasterPos3sv},
+    /* [ 41] =    41 */ {__glXDisp_RasterPos4dv, __glXDispSwap_RasterPos4dv},
+    /* [ 42] =    42 */ {__glXDisp_RasterPos4fv, __glXDispSwap_RasterPos4fv},
+    /* [ 43] =    43 */ {__glXDisp_RasterPos4iv, __glXDispSwap_RasterPos4iv},
+    /* [ 44] =    44 */ {__glXDisp_RasterPos4sv, __glXDispSwap_RasterPos4sv},
+    /* [ 45] =    45 */ {__glXDisp_Rectdv, __glXDispSwap_Rectdv},
+    /* [ 46] =    46 */ {__glXDisp_Rectfv, __glXDispSwap_Rectfv},
+    /* [ 47] =    47 */ {__glXDisp_Rectiv, __glXDispSwap_Rectiv},
+    /* [ 48] =    48 */ {__glXDisp_Rectsv, __glXDispSwap_Rectsv},
+    /* [ 49] =    49 */ {__glXDisp_TexCoord1dv, __glXDispSwap_TexCoord1dv},
+    /* [ 50] =    50 */ {__glXDisp_TexCoord1fv, __glXDispSwap_TexCoord1fv},
+    /* [ 51] =    51 */ {__glXDisp_TexCoord1iv, __glXDispSwap_TexCoord1iv},
+    /* [ 52] =    52 */ {__glXDisp_TexCoord1sv, __glXDispSwap_TexCoord1sv},
+    /* [ 53] =    53 */ {__glXDisp_TexCoord2dv, __glXDispSwap_TexCoord2dv},
+    /* [ 54] =    54 */ {__glXDisp_TexCoord2fv, __glXDispSwap_TexCoord2fv},
+    /* [ 55] =    55 */ {__glXDisp_TexCoord2iv, __glXDispSwap_TexCoord2iv},
+    /* [ 56] =    56 */ {__glXDisp_TexCoord2sv, __glXDispSwap_TexCoord2sv},
+    /* [ 57] =    57 */ {__glXDisp_TexCoord3dv, __glXDispSwap_TexCoord3dv},
+    /* [ 58] =    58 */ {__glXDisp_TexCoord3fv, __glXDispSwap_TexCoord3fv},
+    /* [ 59] =    59 */ {__glXDisp_TexCoord3iv, __glXDispSwap_TexCoord3iv},
+    /* [ 60] =    60 */ {__glXDisp_TexCoord3sv, __glXDispSwap_TexCoord3sv},
+    /* [ 61] =    61 */ {__glXDisp_TexCoord4dv, __glXDispSwap_TexCoord4dv},
+    /* [ 62] =    62 */ {__glXDisp_TexCoord4fv, __glXDispSwap_TexCoord4fv},
+    /* [ 63] =    63 */ {__glXDisp_TexCoord4iv, __glXDispSwap_TexCoord4iv},
+    /* [ 64] =    64 */ {__glXDisp_TexCoord4sv, __glXDispSwap_TexCoord4sv},
+    /* [ 65] =    65 */ {__glXDisp_Vertex2dv, __glXDispSwap_Vertex2dv},
+    /* [ 66] =    66 */ {__glXDisp_Vertex2fv, __glXDispSwap_Vertex2fv},
+    /* [ 67] =    67 */ {__glXDisp_Vertex2iv, __glXDispSwap_Vertex2iv},
+    /* [ 68] =    68 */ {__glXDisp_Vertex2sv, __glXDispSwap_Vertex2sv},
+    /* [ 69] =    69 */ {__glXDisp_Vertex3dv, __glXDispSwap_Vertex3dv},
+    /* [ 70] =    70 */ {__glXDisp_Vertex3fv, __glXDispSwap_Vertex3fv},
+    /* [ 71] =    71 */ {__glXDisp_Vertex3iv, __glXDispSwap_Vertex3iv},
+    /* [ 72] =    72 */ {__glXDisp_Vertex3sv, __glXDispSwap_Vertex3sv},
+    /* [ 73] =    73 */ {__glXDisp_Vertex4dv, __glXDispSwap_Vertex4dv},
+    /* [ 74] =    74 */ {__glXDisp_Vertex4fv, __glXDispSwap_Vertex4fv},
+    /* [ 75] =    75 */ {__glXDisp_Vertex4iv, __glXDispSwap_Vertex4iv},
+    /* [ 76] =    76 */ {__glXDisp_Vertex4sv, __glXDispSwap_Vertex4sv},
+    /* [ 77] =    77 */ {__glXDisp_ClipPlane, __glXDispSwap_ClipPlane},
+    /* [ 78] =    78 */ {__glXDisp_ColorMaterial, __glXDispSwap_ColorMaterial},
+    /* [ 79] =    79 */ {__glXDisp_CullFace, __glXDispSwap_CullFace},
+    /* [ 80] =    80 */ {__glXDisp_Fogf, __glXDispSwap_Fogf},
+    /* [ 81] =    81 */ {__glXDisp_Fogfv, __glXDispSwap_Fogfv},
+    /* [ 82] =    82 */ {__glXDisp_Fogi, __glXDispSwap_Fogi},
+    /* [ 83] =    83 */ {__glXDisp_Fogiv, __glXDispSwap_Fogiv},
+    /* [ 84] =    84 */ {__glXDisp_FrontFace, __glXDispSwap_FrontFace},
+    /* [ 85] =    85 */ {__glXDisp_Hint, __glXDispSwap_Hint},
+    /* [ 86] =    86 */ {__glXDisp_Lightf, __glXDispSwap_Lightf},
+    /* [ 87] =    87 */ {__glXDisp_Lightfv, __glXDispSwap_Lightfv},
+    /* [ 88] =    88 */ {__glXDisp_Lighti, __glXDispSwap_Lighti},
+    /* [ 89] =    89 */ {__glXDisp_Lightiv, __glXDispSwap_Lightiv},
+    /* [ 90] =    90 */ {__glXDisp_LightModelf, __glXDispSwap_LightModelf},
+    /* [ 91] =    91 */ {__glXDisp_LightModelfv, __glXDispSwap_LightModelfv},
+    /* [ 92] =    92 */ {__glXDisp_LightModeli, __glXDispSwap_LightModeli},
+    /* [ 93] =    93 */ {__glXDisp_LightModeliv, __glXDispSwap_LightModeliv},
+    /* [ 94] =    94 */ {__glXDisp_LineStipple, __glXDispSwap_LineStipple},
+    /* [ 95] =    95 */ {__glXDisp_LineWidth, __glXDispSwap_LineWidth},
+    /* [ 96] =    96 */ {__glXDisp_Materialf, __glXDispSwap_Materialf},
+    /* [ 97] =    97 */ {__glXDisp_Materialfv, __glXDispSwap_Materialfv},
+    /* [ 98] =    98 */ {__glXDisp_Materiali, __glXDispSwap_Materiali},
+    /* [ 99] =    99 */ {__glXDisp_Materialiv, __glXDispSwap_Materialiv},
+    /* [ 100] =   100 */ {__glXDisp_PointSize, __glXDispSwap_PointSize},
+    /* [ 101] =   101 */ {__glXDisp_PolygonMode, __glXDispSwap_PolygonMode},
+    /* [ 102] =   102 */ {__glXDisp_PolygonStipple, __glXDispSwap_PolygonStipple},
+    /* [ 103] =   103 */ {__glXDisp_Scissor, __glXDispSwap_Scissor},
+    /* [ 104] =   104 */ {__glXDisp_ShadeModel, __glXDispSwap_ShadeModel},
+    /* [ 105] =   105 */ {__glXDisp_TexParameterf, __glXDispSwap_TexParameterf},
+    /* [ 106] =   106 */ {__glXDisp_TexParameterfv, __glXDispSwap_TexParameterfv},
+    /* [ 107] =   107 */ {__glXDisp_TexParameteri, __glXDispSwap_TexParameteri},
+    /* [ 108] =   108 */ {__glXDisp_TexParameteriv, __glXDispSwap_TexParameteriv},
+    /* [ 109] =   109 */ {__glXDisp_TexImage1D, __glXDispSwap_TexImage1D},
+    /* [ 110] =   110 */ {__glXDisp_TexImage2D, __glXDispSwap_TexImage2D},
+    /* [ 111] =   111 */ {__glXDisp_TexEnvf, __glXDispSwap_TexEnvf},
+    /* [ 112] =   112 */ {__glXDisp_TexEnvfv, __glXDispSwap_TexEnvfv},
+    /* [ 113] =   113 */ {__glXDisp_TexEnvi, __glXDispSwap_TexEnvi},
+    /* [ 114] =   114 */ {__glXDisp_TexEnviv, __glXDispSwap_TexEnviv},
+    /* [ 115] =   115 */ {__glXDisp_TexGend, __glXDispSwap_TexGend},
+    /* [ 116] =   116 */ {__glXDisp_TexGendv, __glXDispSwap_TexGendv},
+    /* [ 117] =   117 */ {__glXDisp_TexGenf, __glXDispSwap_TexGenf},
+    /* [ 118] =   118 */ {__glXDisp_TexGenfv, __glXDispSwap_TexGenfv},
+    /* [ 119] =   119 */ {__glXDisp_TexGeni, __glXDispSwap_TexGeni},
+    /* [ 120] =   120 */ {__glXDisp_TexGeniv, __glXDispSwap_TexGeniv},
+    /* [ 121] =   121 */ {__glXDisp_InitNames, __glXDispSwap_InitNames},
+    /* [ 122] =   122 */ {__glXDisp_LoadName, __glXDispSwap_LoadName},
+    /* [ 123] =   123 */ {__glXDisp_PassThrough, __glXDispSwap_PassThrough},
+    /* [ 124] =   124 */ {__glXDisp_PopName, __glXDispSwap_PopName},
+    /* [ 125] =   125 */ {__glXDisp_PushName, __glXDispSwap_PushName},
+    /* [ 126] =   126 */ {__glXDisp_DrawBuffer, __glXDispSwap_DrawBuffer},
+    /* [ 127] =   127 */ {__glXDisp_Clear, __glXDispSwap_Clear},
+    /* [ 128] =   128 */ {__glXDisp_ClearAccum, __glXDispSwap_ClearAccum},
+    /* [ 129] =   129 */ {__glXDisp_ClearIndex, __glXDispSwap_ClearIndex},
+    /* [ 130] =   130 */ {__glXDisp_ClearColor, __glXDispSwap_ClearColor},
+    /* [ 131] =   131 */ {__glXDisp_ClearStencil, __glXDispSwap_ClearStencil},
+    /* [ 132] =   132 */ {__glXDisp_ClearDepth, __glXDispSwap_ClearDepth},
+    /* [ 133] =   133 */ {__glXDisp_StencilMask, __glXDispSwap_StencilMask},
+    /* [ 134] =   134 */ {__glXDisp_ColorMask, __glXDispSwap_ColorMask},
+    /* [ 135] =   135 */ {__glXDisp_DepthMask, __glXDispSwap_DepthMask},
+    /* [ 136] =   136 */ {__glXDisp_IndexMask, __glXDispSwap_IndexMask},
+    /* [ 137] =   137 */ {__glXDisp_Accum, __glXDispSwap_Accum},
+    /* [ 138] =   138 */ {__glXDisp_Disable, __glXDispSwap_Disable},
+    /* [ 139] =   139 */ {__glXDisp_Enable, __glXDispSwap_Enable},
+    /* [ 140] =   140 */ {NULL, NULL},
+    /* [ 141] =   141 */ {__glXDisp_PopAttrib, __glXDispSwap_PopAttrib},
+    /* [ 142] =   142 */ {__glXDisp_PushAttrib, __glXDispSwap_PushAttrib},
+    /* [ 143] =   143 */ {__glXDisp_Map1d, __glXDispSwap_Map1d},
+    /* [ 144] =   144 */ {__glXDisp_Map1f, __glXDispSwap_Map1f},
+    /* [ 145] =   145 */ {__glXDisp_Map2d, __glXDispSwap_Map2d},
+    /* [ 146] =   146 */ {__glXDisp_Map2f, __glXDispSwap_Map2f},
+    /* [ 147] =   147 */ {__glXDisp_MapGrid1d, __glXDispSwap_MapGrid1d},
+    /* [ 148] =   148 */ {__glXDisp_MapGrid1f, __glXDispSwap_MapGrid1f},
+    /* [ 149] =   149 */ {__glXDisp_MapGrid2d, __glXDispSwap_MapGrid2d},
+    /* [ 150] =   150 */ {__glXDisp_MapGrid2f, __glXDispSwap_MapGrid2f},
+    /* [ 151] =   151 */ {__glXDisp_EvalCoord1dv, __glXDispSwap_EvalCoord1dv},
+    /* [ 152] =   152 */ {__glXDisp_EvalCoord1fv, __glXDispSwap_EvalCoord1fv},
+    /* [ 153] =   153 */ {__glXDisp_EvalCoord2dv, __glXDispSwap_EvalCoord2dv},
+    /* [ 154] =   154 */ {__glXDisp_EvalCoord2fv, __glXDispSwap_EvalCoord2fv},
+    /* [ 155] =   155 */ {__glXDisp_EvalMesh1, __glXDispSwap_EvalMesh1},
+    /* [ 156] =   156 */ {__glXDisp_EvalPoint1, __glXDispSwap_EvalPoint1},
+    /* [ 157] =   157 */ {__glXDisp_EvalMesh2, __glXDispSwap_EvalMesh2},
+    /* [ 158] =   158 */ {__glXDisp_EvalPoint2, __glXDispSwap_EvalPoint2},
+    /* [ 159] =   159 */ {__glXDisp_AlphaFunc, __glXDispSwap_AlphaFunc},
+    /* [ 160] =   160 */ {__glXDisp_BlendFunc, __glXDispSwap_BlendFunc},
+    /* [ 161] =   161 */ {__glXDisp_LogicOp, __glXDispSwap_LogicOp},
+    /* [ 162] =   162 */ {__glXDisp_StencilFunc, __glXDispSwap_StencilFunc},
+    /* [ 163] =   163 */ {__glXDisp_StencilOp, __glXDispSwap_StencilOp},
+    /* [ 164] =   164 */ {__glXDisp_DepthFunc, __glXDispSwap_DepthFunc},
+    /* [ 165] =   165 */ {__glXDisp_PixelZoom, __glXDispSwap_PixelZoom},
+    /* [ 166] =   166 */ {__glXDisp_PixelTransferf, __glXDispSwap_PixelTransferf},
+    /* [ 167] =   167 */ {__glXDisp_PixelTransferi, __glXDispSwap_PixelTransferi},
+    /* [ 168] =   168 */ {__glXDisp_PixelMapfv, __glXDispSwap_PixelMapfv},
+    /* [ 169] =   169 */ {__glXDisp_PixelMapuiv, __glXDispSwap_PixelMapuiv},
+    /* [ 170] =   170 */ {__glXDisp_PixelMapusv, __glXDispSwap_PixelMapusv},
+    /* [ 171] =   171 */ {__glXDisp_ReadBuffer, __glXDispSwap_ReadBuffer},
+    /* [ 172] =   172 */ {__glXDisp_CopyPixels, __glXDispSwap_CopyPixels},
+    /* [ 173] =   173 */ {__glXDisp_DrawPixels, __glXDispSwap_DrawPixels},
+    /* [ 174] =   174 */ {__glXDisp_DepthRange, __glXDispSwap_DepthRange},
+    /* [ 175] =   175 */ {__glXDisp_Frustum, __glXDispSwap_Frustum},
+    /* [ 176] =   176 */ {__glXDisp_LoadIdentity, __glXDispSwap_LoadIdentity},
+    /* [ 177] =   177 */ {__glXDisp_LoadMatrixf, __glXDispSwap_LoadMatrixf},
+    /* [ 178] =   178 */ {__glXDisp_LoadMatrixd, __glXDispSwap_LoadMatrixd},
+    /* [ 179] =   179 */ {__glXDisp_MatrixMode, __glXDispSwap_MatrixMode},
+    /* [ 180] =   180 */ {__glXDisp_MultMatrixf, __glXDispSwap_MultMatrixf},
+    /* [ 181] =   181 */ {__glXDisp_MultMatrixd, __glXDispSwap_MultMatrixd},
+    /* [ 182] =   182 */ {__glXDisp_Ortho, __glXDispSwap_Ortho},
+    /* [ 183] =   183 */ {__glXDisp_PopMatrix, __glXDispSwap_PopMatrix},
+    /* [ 184] =   184 */ {__glXDisp_PushMatrix, __glXDispSwap_PushMatrix},
+    /* [ 185] =   185 */ {__glXDisp_Rotated, __glXDispSwap_Rotated},
+    /* [ 186] =   186 */ {__glXDisp_Rotatef, __glXDispSwap_Rotatef},
+    /* [ 187] =   187 */ {__glXDisp_Scaled, __glXDispSwap_Scaled},
+    /* [ 188] =   188 */ {__glXDisp_Scalef, __glXDispSwap_Scalef},
+    /* [ 189] =   189 */ {__glXDisp_Translated, __glXDispSwap_Translated},
+    /* [ 190] =   190 */ {__glXDisp_Translatef, __glXDispSwap_Translatef},
+    /* [ 191] =   191 */ {__glXDisp_Viewport, __glXDispSwap_Viewport},
+    /* [ 192] =   192 */ {__glXDisp_PolygonOffset, __glXDispSwap_PolygonOffset},
+    /* [ 193] =   193 */ {__glXDisp_DrawArrays, __glXDispSwap_DrawArrays},
+    /* [ 194] =   194 */ {__glXDisp_Indexubv, __glXDispSwap_Indexubv},
+    /* [ 195] =   195 */ {__glXDisp_ColorSubTable, __glXDispSwap_ColorSubTable},
+    /* [ 196] =   196 */ {__glXDisp_CopyColorSubTable, __glXDispSwap_CopyColorSubTable},
+    /* [ 197] =   197 */ {__glXDisp_ActiveTextureARB, __glXDispSwap_ActiveTextureARB},
+    /* [ 198] =   198 */ {__glXDisp_MultiTexCoord1dvARB, __glXDispSwap_MultiTexCoord1dvARB},
+    /* [ 199] =   199 */ {__glXDisp_MultiTexCoord1fvARB, __glXDispSwap_MultiTexCoord1fvARB},
+    /* [ 200] =   200 */ {__glXDisp_MultiTexCoord1ivARB, __glXDispSwap_MultiTexCoord1ivARB},
+    /* [ 201] =   201 */ {__glXDisp_MultiTexCoord1svARB, __glXDispSwap_MultiTexCoord1svARB},
+    /* [ 202] =   202 */ {__glXDisp_MultiTexCoord2dvARB, __glXDispSwap_MultiTexCoord2dvARB},
+    /* [ 203] =   203 */ {__glXDisp_MultiTexCoord2fvARB, __glXDispSwap_MultiTexCoord2fvARB},
+    /* [ 204] =   204 */ {__glXDisp_MultiTexCoord2ivARB, __glXDispSwap_MultiTexCoord2ivARB},
+    /* [ 205] =   205 */ {__glXDisp_MultiTexCoord2svARB, __glXDispSwap_MultiTexCoord2svARB},
+    /* [ 206] =   206 */ {__glXDisp_MultiTexCoord3dvARB, __glXDispSwap_MultiTexCoord3dvARB},
+    /* [ 207] =   207 */ {__glXDisp_MultiTexCoord3fvARB, __glXDispSwap_MultiTexCoord3fvARB},
+    /* [ 208] =   208 */ {__glXDisp_MultiTexCoord3ivARB, __glXDispSwap_MultiTexCoord3ivARB},
+    /* [ 209] =   209 */ {__glXDisp_MultiTexCoord3svARB, __glXDispSwap_MultiTexCoord3svARB},
+    /* [ 210] =   210 */ {__glXDisp_MultiTexCoord4dvARB, __glXDispSwap_MultiTexCoord4dvARB},
+    /* [ 211] =   211 */ {__glXDisp_MultiTexCoord4fvARB, __glXDispSwap_MultiTexCoord4fvARB},
+    /* [ 212] =   212 */ {__glXDisp_MultiTexCoord4ivARB, __glXDispSwap_MultiTexCoord4ivARB},
+    /* [ 213] =   213 */ {__glXDisp_MultiTexCoord4svARB, __glXDispSwap_MultiTexCoord4svARB},
+    /* [ 214] =   214 */ {__glXDisp_CompressedTexImage1DARB, __glXDispSwap_CompressedTexImage1DARB},
+    /* [ 215] =   215 */ {__glXDisp_CompressedTexImage2DARB, __glXDispSwap_CompressedTexImage2DARB},
+    /* [ 216] =   216 */ {__glXDisp_CompressedTexImage3DARB, __glXDispSwap_CompressedTexImage3DARB},
+    /* [ 217] =   217 */ {__glXDisp_CompressedTexSubImage1DARB, __glXDispSwap_CompressedTexSubImage1DARB},
+    /* [ 218] =   218 */ {__glXDisp_CompressedTexSubImage2DARB, __glXDispSwap_CompressedTexSubImage2DARB},
+    /* [ 219] =   219 */ {__glXDisp_CompressedTexSubImage3DARB, __glXDispSwap_CompressedTexSubImage3DARB},
+    /* [ 220] =   220 */ {NULL, NULL},
+    /* [ 221] =   221 */ {NULL, NULL},
+    /* [ 222] =   222 */ {NULL, NULL},
+    /* [ 223] =   223 */ {NULL, NULL},
+    /* [ 224] =   224 */ {NULL, NULL},
+    /* [ 225] =   225 */ {NULL, NULL},
+    /* [ 226] =   226 */ {NULL, NULL},
+    /* [ 227] =   227 */ {NULL, NULL},
+    /* [ 228] =   228 */ {NULL, NULL},
+    /* [ 229] =   229 */ {__glXDisp_SampleCoverageARB, __glXDispSwap_SampleCoverageARB},
+    /* [ 230] =   230 */ {__glXDisp_WindowPos3fvMESA, __glXDispSwap_WindowPos3fvMESA},
+    /* [ 231] =   231 */ {__glXDisp_BeginQueryARB, __glXDispSwap_BeginQueryARB},
+    /* [ 232] =   232 */ {__glXDisp_EndQueryARB, __glXDispSwap_EndQueryARB},
+    /* [ 233] =   233 */ {__glXDisp_DrawBuffersARB, __glXDispSwap_DrawBuffersARB},
+    /* [ 234] =   234 */ {NULL, NULL},
+    /* [ 235] =   235 */ {NULL, NULL},
+    /* [ 236] =   236 */ {NULL, NULL},
+    /* [ 237] =   237 */ {NULL, NULL},
+    /* [ 238] =   238 */ {NULL, NULL},
+    /* [ 239] =   239 */ {NULL, NULL},
+    /* [ 240] =  2048 */ {__glXDisp_SampleMaskSGIS, __glXDispSwap_SampleMaskSGIS},
+    /* [ 241] =  2049 */ {__glXDisp_SamplePatternSGIS, __glXDispSwap_SamplePatternSGIS},
+    /* [ 242] =  2050 */ {NULL, NULL},
+    /* [ 243] =  2051 */ {NULL, NULL},
+    /* [ 244] =  2052 */ {NULL, NULL},
+    /* [ 245] =  2053 */ {__glXDisp_ColorTable, __glXDispSwap_ColorTable},
+    /* [ 246] =  2054 */ {__glXDisp_ColorTableParameterfv, __glXDispSwap_ColorTableParameterfv},
+    /* [ 247] =  2055 */ {__glXDisp_ColorTableParameteriv, __glXDispSwap_ColorTableParameteriv},
+    /* [ 248] =  2056 */ {__glXDisp_CopyColorTable, __glXDispSwap_CopyColorTable},
+    /* [ 249] =  2057 */ {NULL, NULL},
+    /* [ 250] =  2058 */ {NULL, NULL},
+    /* [ 251] =  2059 */ {NULL, NULL},
+    /* [ 252] =  2060 */ {NULL, NULL},
+    /* [ 253] =  2061 */ {NULL, NULL},
+    /* [ 254] =  2062 */ {NULL, NULL},
+    /* [ 255] =  2063 */ {NULL, NULL},
+    /* [ 256] =  2064 */ {NULL, NULL},
+    /* [ 257] =  2065 */ {__glXDisp_PointParameterfEXT, __glXDispSwap_PointParameterfEXT},
+    /* [ 258] =  2066 */ {__glXDisp_PointParameterfvEXT, __glXDispSwap_PointParameterfvEXT},
+    /* [ 259] =  2067 */ {NULL, NULL},
+    /* [ 260] =  2068 */ {NULL, NULL},
+    /* [ 261] =  2069 */ {NULL, NULL},
+    /* [ 262] =  2070 */ {NULL, NULL},
+    /* [ 263] =  2071 */ {NULL, NULL},
+    /* [ 264] =  4096 */ {__glXDisp_BlendColor, __glXDispSwap_BlendColor},
+    /* [ 265] =  4097 */ {__glXDisp_BlendEquation, __glXDispSwap_BlendEquation},
+    /* [ 266] =  4098 */ {NULL, NULL},
+    /* [ 267] =  4099 */ {__glXDisp_TexSubImage1D, __glXDispSwap_TexSubImage1D},
+    /* [ 268] =  4100 */ {__glXDisp_TexSubImage2D, __glXDispSwap_TexSubImage2D},
+    /* [ 269] =  4101 */ {__glXDisp_ConvolutionFilter1D, __glXDispSwap_ConvolutionFilter1D},
+    /* [ 270] =  4102 */ {__glXDisp_ConvolutionFilter2D, __glXDispSwap_ConvolutionFilter2D},
+    /* [ 271] =  4103 */ {__glXDisp_ConvolutionParameterf, __glXDispSwap_ConvolutionParameterf},
+    /* [ 272] =  4104 */ {__glXDisp_ConvolutionParameterfv, __glXDispSwap_ConvolutionParameterfv},
+    /* [ 273] =  4105 */ {__glXDisp_ConvolutionParameteri, __glXDispSwap_ConvolutionParameteri},
+    /* [ 274] =  4106 */ {__glXDisp_ConvolutionParameteriv, __glXDispSwap_ConvolutionParameteriv},
+    /* [ 275] =  4107 */ {__glXDisp_CopyConvolutionFilter1D, __glXDispSwap_CopyConvolutionFilter1D},
+    /* [ 276] =  4108 */ {__glXDisp_CopyConvolutionFilter2D, __glXDispSwap_CopyConvolutionFilter2D},
+    /* [ 277] =  4109 */ {__glXDisp_SeparableFilter2D, __glXDispSwap_SeparableFilter2D},
+    /* [ 278] =  4110 */ {__glXDisp_Histogram, __glXDispSwap_Histogram},
+    /* [ 279] =  4111 */ {__glXDisp_Minmax, __glXDispSwap_Minmax},
+    /* [ 280] =  4112 */ {__glXDisp_ResetHistogram, __glXDispSwap_ResetHistogram},
+    /* [ 281] =  4113 */ {__glXDisp_ResetMinmax, __glXDispSwap_ResetMinmax},
+    /* [ 282] =  4114 */ {__glXDisp_TexImage3D, __glXDispSwap_TexImage3D},
+    /* [ 283] =  4115 */ {__glXDisp_TexSubImage3D, __glXDispSwap_TexSubImage3D},
+    /* [ 284] =  4116 */ {NULL, NULL},
+    /* [ 285] =  4117 */ {__glXDisp_BindTexture, __glXDispSwap_BindTexture},
+    /* [ 286] =  4118 */ {__glXDisp_PrioritizeTextures, __glXDispSwap_PrioritizeTextures},
+    /* [ 287] =  4119 */ {__glXDisp_CopyTexImage1D, __glXDispSwap_CopyTexImage1D},
+    /* [ 288] =  4120 */ {__glXDisp_CopyTexImage2D, __glXDispSwap_CopyTexImage2D},
+    /* [ 289] =  4121 */ {__glXDisp_CopyTexSubImage1D, __glXDispSwap_CopyTexSubImage1D},
+    /* [ 290] =  4122 */ {__glXDisp_CopyTexSubImage2D, __glXDispSwap_CopyTexSubImage2D},
+    /* [ 291] =  4123 */ {__glXDisp_CopyTexSubImage3D, __glXDispSwap_CopyTexSubImage3D},
+    /* [ 292] =  4124 */ {__glXDisp_FogCoordfvEXT, __glXDispSwap_FogCoordfvEXT},
+    /* [ 293] =  4125 */ {__glXDisp_FogCoorddvEXT, __glXDispSwap_FogCoorddvEXT},
+    /* [ 294] =  4126 */ {__glXDisp_SecondaryColor3bvEXT, __glXDispSwap_SecondaryColor3bvEXT},
+    /* [ 295] =  4127 */ {__glXDisp_SecondaryColor3svEXT, __glXDispSwap_SecondaryColor3svEXT},
+    /* [ 296] =  4192 */ {__glXDisp_VertexAttrib4svARB, __glXDispSwap_VertexAttrib4svARB},
+    /* [ 297] =  4193 */ {__glXDisp_VertexAttrib1fvARB, __glXDispSwap_VertexAttrib1fvARB},
+    /* [ 298] =  4194 */ {__glXDisp_VertexAttrib2fvARB, __glXDispSwap_VertexAttrib2fvARB},
+    /* [ 299] =  4195 */ {__glXDisp_VertexAttrib3fvNV, __glXDispSwap_VertexAttrib3fvNV},
+    /* [ 300] =  4196 */ {__glXDisp_VertexAttrib4fvARB, __glXDispSwap_VertexAttrib4fvARB},
+    /* [ 301] =  4197 */ {__glXDisp_VertexAttrib1dvARB, __glXDispSwap_VertexAttrib1dvARB},
+    /* [ 302] =  4198 */ {__glXDisp_VertexAttrib2dvARB, __glXDispSwap_VertexAttrib2dvARB},
+    /* [ 303] =  4199 */ {__glXDisp_VertexAttrib3dvNV, __glXDispSwap_VertexAttrib3dvNV},
+    /* [ 304] =  4200 */ {__glXDisp_VertexAttrib4dvNV, __glXDispSwap_VertexAttrib4dvNV},
+    /* [ 305] =  4201 */ {__glXDisp_VertexAttrib4NubvARB, __glXDispSwap_VertexAttrib4NubvARB},
+    /* [ 306] =  4202 */ {__glXDisp_VertexAttribs1svNV, __glXDispSwap_VertexAttribs1svNV},
+    /* [ 307] =  4203 */ {__glXDisp_VertexAttribs2svNV, __glXDispSwap_VertexAttribs2svNV},
+    /* [ 308] =  4204 */ {__glXDisp_VertexAttribs3svNV, __glXDispSwap_VertexAttribs3svNV},
+    /* [ 309] =  4205 */ {__glXDisp_VertexAttribs4svNV, __glXDispSwap_VertexAttribs4svNV},
+    /* [ 310] =  4206 */ {__glXDisp_VertexAttribs1fvNV, __glXDispSwap_VertexAttribs1fvNV},
+    /* [ 311] =  4207 */ {__glXDisp_VertexAttribs2fvNV, __glXDispSwap_VertexAttribs2fvNV},
+    /* [ 312] =  4208 */ {__glXDisp_VertexAttribs3fvNV, __glXDispSwap_VertexAttribs3fvNV},
+    /* [ 313] =  4209 */ {__glXDisp_VertexAttribs4fvNV, __glXDispSwap_VertexAttribs4fvNV},
+    /* [ 314] =  4210 */ {__glXDisp_VertexAttribs1dvNV, __glXDispSwap_VertexAttribs1dvNV},
+    /* [ 315] =  4211 */ {__glXDisp_VertexAttribs2dvNV, __glXDispSwap_VertexAttribs2dvNV},
+    /* [ 316] =  4212 */ {__glXDisp_VertexAttribs3dvNV, __glXDispSwap_VertexAttribs3dvNV},
+    /* [ 317] =  4213 */ {__glXDisp_VertexAttribs4dvNV, __glXDispSwap_VertexAttribs4dvNV},
+    /* [ 318] =  4214 */ {__glXDisp_VertexAttribs4ubvNV, __glXDispSwap_VertexAttribs4ubvNV},
+    /* [ 319] =  4215 */ {__glXDisp_ProgramLocalParameter4fvARB, __glXDispSwap_ProgramLocalParameter4fvARB},
+    /* [ 320] =  4216 */ {__glXDisp_ProgramLocalParameter4dvARB, __glXDispSwap_ProgramLocalParameter4dvARB},
+    /* [ 321] =  4217 */ {__glXDisp_ProgramStringARB, __glXDispSwap_ProgramStringARB},
+    /* [ 322] =  4218 */ {__glXDisp_ProgramNamedParameter4fvNV, __glXDispSwap_ProgramNamedParameter4fvNV},
+    /* [ 323] =  4219 */ {__glXDisp_ProgramNamedParameter4dvNV, __glXDispSwap_ProgramNamedParameter4dvNV},
+    /* [ 324] =  4220 */ {__glXDisp_ActiveStencilFaceEXT, __glXDispSwap_ActiveStencilFaceEXT},
+    /* [ 325] =  4221 */ {__glXDisp_PointParameteriNV, __glXDispSwap_PointParameteriNV},
+    /* [ 326] =  4222 */ {__glXDisp_PointParameterivNV, __glXDispSwap_PointParameterivNV},
+    /* [ 327] =  4223 */ {NULL, NULL},
+    /* [ 328] =  4128 */ {__glXDisp_SecondaryColor3ivEXT, __glXDispSwap_SecondaryColor3ivEXT},
+    /* [ 329] =  4129 */ {__glXDisp_SecondaryColor3fvEXT, __glXDispSwap_SecondaryColor3fvEXT},
+    /* [ 330] =  4130 */ {__glXDisp_SecondaryColor3dvEXT, __glXDispSwap_SecondaryColor3dvEXT},
+    /* [ 331] =  4131 */ {__glXDisp_SecondaryColor3ubvEXT, __glXDispSwap_SecondaryColor3ubvEXT},
+    /* [ 332] =  4132 */ {__glXDisp_SecondaryColor3usvEXT, __glXDispSwap_SecondaryColor3usvEXT},
+    /* [ 333] =  4133 */ {__glXDisp_SecondaryColor3uivEXT, __glXDispSwap_SecondaryColor3uivEXT},
+    /* [ 334] =  4134 */ {__glXDisp_BlendFuncSeparateEXT, __glXDispSwap_BlendFuncSeparateEXT},
+    /* [ 335] =  4135 */ {NULL, NULL},
+    /* [ 336] =  4176 */ {NULL, NULL},
+    /* [ 337] =  4177 */ {NULL, NULL},
+    /* [ 338] =  4178 */ {NULL, NULL},
+    /* [ 339] =  4179 */ {NULL, NULL},
+    /* [ 340] =  4180 */ {__glXDisp_BindProgramNV, __glXDispSwap_BindProgramNV},
+    /* [ 341] =  4181 */ {__glXDisp_ExecuteProgramNV, __glXDispSwap_ExecuteProgramNV},
+    /* [ 342] =  4182 */ {__glXDisp_RequestResidentProgramsNV, __glXDispSwap_RequestResidentProgramsNV},
+    /* [ 343] =  4183 */ {__glXDisp_LoadProgramNV, __glXDispSwap_LoadProgramNV},
+    /* [ 344] =  4184 */ {__glXDisp_ProgramParameter4fvNV, __glXDispSwap_ProgramParameter4fvNV},
+    /* [ 345] =  4185 */ {__glXDisp_ProgramParameter4dvNV, __glXDispSwap_ProgramParameter4dvNV},
+    /* [ 346] =  4186 */ {__glXDisp_ProgramParameters4fvNV, __glXDispSwap_ProgramParameters4fvNV},
+    /* [ 347] =  4187 */ {__glXDisp_ProgramParameters4dvNV, __glXDispSwap_ProgramParameters4dvNV},
+    /* [ 348] =  4188 */ {__glXDisp_TrackMatrixNV, __glXDispSwap_TrackMatrixNV},
+    /* [ 349] =  4189 */ {__glXDisp_VertexAttrib1svNV, __glXDispSwap_VertexAttrib1svNV},
+    /* [ 350] =  4190 */ {__glXDisp_VertexAttrib2svARB, __glXDispSwap_VertexAttrib2svARB},
+    /* [ 351] =  4191 */ {__glXDisp_VertexAttrib3svNV, __glXDispSwap_VertexAttrib3svNV},
+    /* [ 352] =  4224 */ {NULL, NULL},
+    /* [ 353] =  4225 */ {NULL, NULL},
+    /* [ 354] =  4226 */ {NULL, NULL},
+    /* [ 355] =  4227 */ {NULL, NULL},
+    /* [ 356] =  4228 */ {NULL, NULL},
+    /* [ 357] =  4229 */ {NULL, NULL},
+    /* [ 358] =  4230 */ {__glXDisp_VertexAttrib4bvARB, __glXDispSwap_VertexAttrib4bvARB},
+    /* [ 359] =  4231 */ {__glXDisp_VertexAttrib4ivARB, __glXDispSwap_VertexAttrib4ivARB},
+    /* [ 360] =  4232 */ {__glXDisp_VertexAttrib4ubvARB, __glXDispSwap_VertexAttrib4ubvARB},
+    /* [ 361] =  4233 */ {__glXDisp_VertexAttrib4usvARB, __glXDispSwap_VertexAttrib4usvARB},
+    /* [ 362] =  4234 */ {__glXDisp_VertexAttrib4uivARB, __glXDispSwap_VertexAttrib4uivARB},
+    /* [ 363] =  4235 */ {__glXDisp_VertexAttrib4NbvARB, __glXDispSwap_VertexAttrib4NbvARB},
+    /* [ 364] =  4236 */ {__glXDisp_VertexAttrib4NsvARB, __glXDispSwap_VertexAttrib4NsvARB},
+    /* [ 365] =  4237 */ {__glXDisp_VertexAttrib4NivARB, __glXDispSwap_VertexAttrib4NivARB},
+    /* [ 366] =  4238 */ {__glXDisp_VertexAttrib4NusvARB, __glXDispSwap_VertexAttrib4NusvARB},
+    /* [ 367] =  4239 */ {__glXDisp_VertexAttrib4NuivARB, __glXDispSwap_VertexAttrib4NuivARB},
+    /* [ 368] =  4312 */ {NULL, NULL},
+    /* [ 369] =  4313 */ {NULL, NULL},
+    /* [ 370] =  4314 */ {NULL, NULL},
+    /* [ 371] =  4315 */ {NULL, NULL},
+    /* [ 372] =  4316 */ {__glXDisp_BindRenderbufferEXT, __glXDispSwap_BindRenderbufferEXT},
+    /* [ 373] =  4317 */ {__glXDisp_DeleteRenderbuffersEXT, __glXDispSwap_DeleteRenderbuffersEXT},
+    /* [ 374] =  4318 */ {__glXDisp_RenderbufferStorageEXT, __glXDispSwap_RenderbufferStorageEXT},
+    /* [ 375] =  4319 */ {__glXDisp_BindFramebufferEXT, __glXDispSwap_BindFramebufferEXT},
+    /* [ 376] =  4320 */ {__glXDisp_DeleteFramebuffersEXT, __glXDispSwap_DeleteFramebuffersEXT},
+    /* [ 377] =  4321 */ {__glXDisp_FramebufferTexture1DEXT, __glXDispSwap_FramebufferTexture1DEXT},
+    /* [ 378] =  4322 */ {__glXDisp_FramebufferTexture2DEXT, __glXDispSwap_FramebufferTexture2DEXT},
+    /* [ 379] =  4323 */ {__glXDisp_FramebufferTexture3DEXT, __glXDispSwap_FramebufferTexture3DEXT},
+    /* [ 380] =  4324 */ {__glXDisp_FramebufferRenderbufferEXT, __glXDispSwap_FramebufferRenderbufferEXT},
+    /* [ 381] =  4325 */ {__glXDisp_GenerateMipmapEXT, __glXDispSwap_GenerateMipmapEXT},
+    /* [ 382] =  4326 */ {NULL, NULL},
+    /* [ 383] =  4327 */ {NULL, NULL},
+};
+
+static const int_fast16_t Render_size_table[384][2] = {
+    /* [  0] =     0 */ {  0, ~0},
+    /* [  1] =     1 */ {  8, ~0},
+    /* [  2] =     2 */ { 12,  0},
+    /* [  3] =     3 */ {  8, ~0},
+    /* [  4] =     4 */ {  8, ~0},
+    /* [  5] =     5 */ { 48,  1},
+    /* [  6] =     6 */ {  8, ~0},
+    /* [  7] =     7 */ { 28, ~0},
+    /* [  8] =     8 */ { 16, ~0},
+    /* [  9] =     9 */ { 16, ~0},
+    /* [ 10] =    10 */ { 12, ~0},
+    /* [ 11] =    11 */ {  8, ~0},
+    /* [ 12] =    12 */ { 16, ~0},
+    /* [ 13] =    13 */ { 12, ~0},
+    /* [ 14] =    14 */ {  8, ~0},
+    /* [ 15] =    15 */ { 36, ~0},
+    /* [ 16] =    16 */ { 20, ~0},
+    /* [ 17] =    17 */ { 20, ~0},
+    /* [ 18] =    18 */ { 12, ~0},
+    /* [ 19] =    19 */ {  8, ~0},
+    /* [ 20] =    20 */ { 20, ~0},
+    /* [ 21] =    21 */ { 12, ~0},
+    /* [ 22] =    22 */ {  8, ~0},
+    /* [ 23] =    23 */ {  4, ~0},
+    /* [ 24] =    24 */ { 12, ~0},
+    /* [ 25] =    25 */ {  8, ~0},
+    /* [ 26] =    26 */ {  8, ~0},
+    /* [ 27] =    27 */ {  8, ~0},
+    /* [ 28] =    28 */ {  8, ~0},
+    /* [ 29] =    29 */ { 28, ~0},
+    /* [ 30] =    30 */ { 16, ~0},
+    /* [ 31] =    31 */ { 16, ~0},
+    /* [ 32] =    32 */ { 12, ~0},
+    /* [ 33] =    33 */ { 20, ~0},
+    /* [ 34] =    34 */ { 12, ~0},
+    /* [ 35] =    35 */ { 12, ~0},
+    /* [ 36] =    36 */ {  8, ~0},
+    /* [ 37] =    37 */ { 28, ~0},
+    /* [ 38] =    38 */ { 16, ~0},
+    /* [ 39] =    39 */ { 16, ~0},
+    /* [ 40] =    40 */ { 12, ~0},
+    /* [ 41] =    41 */ { 36, ~0},
+    /* [ 42] =    42 */ { 20, ~0},
+    /* [ 43] =    43 */ { 20, ~0},
+    /* [ 44] =    44 */ { 12, ~0},
+    /* [ 45] =    45 */ { 36, ~0},
+    /* [ 46] =    46 */ { 20, ~0},
+    /* [ 47] =    47 */ { 20, ~0},
+    /* [ 48] =    48 */ { 12, ~0},
+    /* [ 49] =    49 */ { 12, ~0},
+    /* [ 50] =    50 */ {  8, ~0},
+    /* [ 51] =    51 */ {  8, ~0},
+    /* [ 52] =    52 */ {  8, ~0},
+    /* [ 53] =    53 */ { 20, ~0},
+    /* [ 54] =    54 */ { 12, ~0},
+    /* [ 55] =    55 */ { 12, ~0},
+    /* [ 56] =    56 */ {  8, ~0},
+    /* [ 57] =    57 */ { 28, ~0},
+    /* [ 58] =    58 */ { 16, ~0},
+    /* [ 59] =    59 */ { 16, ~0},
+    /* [ 60] =    60 */ { 12, ~0},
+    /* [ 61] =    61 */ { 36, ~0},
+    /* [ 62] =    62 */ { 20, ~0},
+    /* [ 63] =    63 */ { 20, ~0},
+    /* [ 64] =    64 */ { 12, ~0},
+    /* [ 65] =    65 */ { 20, ~0},
+    /* [ 66] =    66 */ { 12, ~0},
+    /* [ 67] =    67 */ { 12, ~0},
+    /* [ 68] =    68 */ {  8, ~0},
+    /* [ 69] =    69 */ { 28, ~0},
+    /* [ 70] =    70 */ { 16, ~0},
+    /* [ 71] =    71 */ { 16, ~0},
+    /* [ 72] =    72 */ { 12, ~0},
+    /* [ 73] =    73 */ { 36, ~0},
+    /* [ 74] =    74 */ { 20, ~0},
+    /* [ 75] =    75 */ { 20, ~0},
+    /* [ 76] =    76 */ { 12, ~0},
+    /* [ 77] =    77 */ { 40, ~0},
+    /* [ 78] =    78 */ { 12, ~0},
+    /* [ 79] =    79 */ {  8, ~0},
+    /* [ 80] =    80 */ { 12, ~0},
+    /* [ 81] =    81 */ {  8,  2},
+    /* [ 82] =    82 */ { 12, ~0},
+    /* [ 83] =    83 */ {  8,  3},
+    /* [ 84] =    84 */ {  8, ~0},
+    /* [ 85] =    85 */ { 12, ~0},
+    /* [ 86] =    86 */ { 16, ~0},
+    /* [ 87] =    87 */ { 12,  4},
+    /* [ 88] =    88 */ { 16, ~0},
+    /* [ 89] =    89 */ { 12,  5},
+    /* [ 90] =    90 */ { 12, ~0},
+    /* [ 91] =    91 */ {  8,  6},
+    /* [ 92] =    92 */ { 12, ~0},
+    /* [ 93] =    93 */ {  8,  7},
+    /* [ 94] =    94 */ { 12, ~0},
+    /* [ 95] =    95 */ {  8, ~0},
+    /* [ 96] =    96 */ { 16, ~0},
+    /* [ 97] =    97 */ { 12,  8},
+    /* [ 98] =    98 */ { 16, ~0},
+    /* [ 99] =    99 */ { 12,  9},
+    /* [100] =   100 */ {  8, ~0},
+    /* [101] =   101 */ { 12, ~0},
+    /* [102] =   102 */ { 24, 10},
+    /* [103] =   103 */ { 20, ~0},
+    /* [104] =   104 */ {  8, ~0},
+    /* [105] =   105 */ { 16, ~0},
+    /* [106] =   106 */ { 12, 11},
+    /* [107] =   107 */ { 16, ~0},
+    /* [108] =   108 */ { 12, 12},
+    /* [109] =   109 */ { 56, 13},
+    /* [110] =   110 */ { 56, 14},
+    /* [111] =   111 */ { 16, ~0},
+    /* [112] =   112 */ { 12, 15},
+    /* [113] =   113 */ { 16, ~0},
+    /* [114] =   114 */ { 12, 16},
+    /* [115] =   115 */ { 20, ~0},
+    /* [116] =   116 */ { 12, 17},
+    /* [117] =   117 */ { 16, ~0},
+    /* [118] =   118 */ { 12, 18},
+    /* [119] =   119 */ { 16, ~0},
+    /* [120] =   120 */ { 12, 19},
+    /* [121] =   121 */ {  4, ~0},
+    /* [122] =   122 */ {  8, ~0},
+    /* [123] =   123 */ {  8, ~0},
+    /* [124] =   124 */ {  4, ~0},
+    /* [125] =   125 */ {  8, ~0},
+    /* [126] =   126 */ {  8, ~0},
+    /* [127] =   127 */ {  8, ~0},
+    /* [128] =   128 */ { 20, ~0},
+    /* [129] =   129 */ {  8, ~0},
+    /* [130] =   130 */ { 20, ~0},
+    /* [131] =   131 */ {  8, ~0},
+    /* [132] =   132 */ { 12, ~0},
+    /* [133] =   133 */ {  8, ~0},
+    /* [134] =   134 */ {  8, ~0},
+    /* [135] =   135 */ {  8, ~0},
+    /* [136] =   136 */ {  8, ~0},
+    /* [137] =   137 */ { 12, ~0},
+    /* [138] =   138 */ {  8, ~0},
+    /* [139] =   139 */ {  8, ~0},
+    /* [140] =   140 */ {  0, ~0},
+    /* [141] =   141 */ {  4, ~0},
+    /* [142] =   142 */ {  8, ~0},
+    /* [143] =   143 */ { 40, 20},
+    /* [144] =   144 */ { 28, 21},
+    /* [145] =   145 */ { 64, 22},
+    /* [146] =   146 */ { 44, 23},
+    /* [147] =   147 */ { 24, ~0},
+    /* [148] =   148 */ { 16, ~0},
+    /* [149] =   149 */ { 44, ~0},
+    /* [150] =   150 */ { 28, ~0},
+    /* [151] =   151 */ { 12, ~0},
+    /* [152] =   152 */ {  8, ~0},
+    /* [153] =   153 */ { 20, ~0},
+    /* [154] =   154 */ { 12, ~0},
+    /* [155] =   155 */ { 16, ~0},
+    /* [156] =   156 */ {  8, ~0},
+    /* [157] =   157 */ { 24, ~0},
+    /* [158] =   158 */ { 12, ~0},
+    /* [159] =   159 */ { 12, ~0},
+    /* [160] =   160 */ { 12, ~0},
+    /* [161] =   161 */ {  8, ~0},
+    /* [162] =   162 */ { 16, ~0},
+    /* [163] =   163 */ { 16, ~0},
+    /* [164] =   164 */ {  8, ~0},
+    /* [165] =   165 */ { 12, ~0},
+    /* [166] =   166 */ { 12, ~0},
+    /* [167] =   167 */ { 12, ~0},
+    /* [168] =   168 */ { 12, 24},
+    /* [169] =   169 */ { 12, 25},
+    /* [170] =   170 */ { 12, 26},
+    /* [171] =   171 */ {  8, ~0},
+    /* [172] =   172 */ { 24, ~0},
+    /* [173] =   173 */ { 40, 27},
+    /* [174] =   174 */ { 20, ~0},
+    /* [175] =   175 */ { 52, ~0},
+    /* [176] =   176 */ {  4, ~0},
+    /* [177] =   177 */ { 68, ~0},
+    /* [178] =   178 */ {132, ~0},
+    /* [179] =   179 */ {  8, ~0},
+    /* [180] =   180 */ { 68, ~0},
+    /* [181] =   181 */ {132, ~0},
+    /* [182] =   182 */ { 52, ~0},
+    /* [183] =   183 */ {  4, ~0},
+    /* [184] =   184 */ {  4, ~0},
+    /* [185] =   185 */ { 36, ~0},
+    /* [186] =   186 */ { 20, ~0},
+    /* [187] =   187 */ { 28, ~0},
+    /* [188] =   188 */ { 16, ~0},
+    /* [189] =   189 */ { 28, ~0},
+    /* [190] =   190 */ { 16, ~0},
+    /* [191] =   191 */ { 20, ~0},
+    /* [192] =   192 */ { 12, ~0},
+    /* [193] =   193 */ { 16, 28},
+    /* [194] =   194 */ {  8, ~0},
+    /* [195] =   195 */ { 44, 29},
+    /* [196] =   196 */ { 24, ~0},
+    /* [197] =   197 */ {  8, ~0},
+    /* [198] =   198 */ { 16, ~0},
+    /* [199] =   199 */ { 12, ~0},
+    /* [200] =   200 */ { 12, ~0},
+    /* [201] =   201 */ { 12, ~0},
+    /* [202] =   202 */ { 24, ~0},
+    /* [203] =   203 */ { 16, ~0},
+    /* [204] =   204 */ { 16, ~0},
+    /* [205] =   205 */ { 12, ~0},
+    /* [206] =   206 */ { 32, ~0},
+    /* [207] =   207 */ { 20, ~0},
+    /* [208] =   208 */ { 20, ~0},
+    /* [209] =   209 */ { 16, ~0},
+    /* [210] =   210 */ { 40, ~0},
+    /* [211] =   211 */ { 24, ~0},
+    /* [212] =   212 */ { 24, ~0},
+    /* [213] =   213 */ { 16, ~0},
+    /* [214] =   214 */ { 28, 30},
+    /* [215] =   215 */ { 32, 31},
+    /* [216] =   216 */ { 36, 32},
+    /* [217] =   217 */ { 28, 33},
+    /* [218] =   218 */ { 36, 34},
+    /* [219] =   219 */ { 44, 35},
+    /* [220] =   220 */ {  0, ~0},
+    /* [221] =   221 */ {  0, ~0},
+    /* [222] =   222 */ {  0, ~0},
+    /* [223] =   223 */ {  0, ~0},
+    /* [224] =   224 */ {  0, ~0},
+    /* [225] =   225 */ {  0, ~0},
+    /* [226] =   226 */ {  0, ~0},
+    /* [227] =   227 */ {  0, ~0},
+    /* [228] =   228 */ {  0, ~0},
+    /* [229] =   229 */ { 12, ~0},
+    /* [230] =   230 */ { 16, ~0},
+    /* [231] =   231 */ { 12, ~0},
+    /* [232] =   232 */ {  8, ~0},
+    /* [233] =   233 */ {  8, 36},
+    /* [234] =   234 */ {  0, ~0},
+    /* [235] =   235 */ {  0, ~0},
+    /* [236] =   236 */ {  0, ~0},
+    /* [237] =   237 */ {  0, ~0},
+    /* [238] =   238 */ {  0, ~0},
+    /* [239] =   239 */ {  0, ~0},
+    /* [240] =  2048 */ { 12, ~0},
+    /* [241] =  2049 */ {  8, ~0},
+    /* [242] =  2050 */ {  0, ~0},
+    /* [243] =  2051 */ {  0, ~0},
+    /* [244] =  2052 */ {  0, ~0},
+    /* [245] =  2053 */ { 44, 37},
+    /* [246] =  2054 */ { 12, 38},
+    /* [247] =  2055 */ { 12, 39},
+    /* [248] =  2056 */ { 24, ~0},
+    /* [249] =  2057 */ {  0, ~0},
+    /* [250] =  2058 */ {  0, ~0},
+    /* [251] =  2059 */ {  0, ~0},
+    /* [252] =  2060 */ {  0, ~0},
+    /* [253] =  2061 */ {  0, ~0},
+    /* [254] =  2062 */ {  0, ~0},
+    /* [255] =  2063 */ {  0, ~0},
+    /* [256] =  2064 */ {  0, ~0},
+    /* [257] =  2065 */ { 12, ~0},
+    /* [258] =  2066 */ {  8, 40},
+    /* [259] =  2067 */ {  0, ~0},
+    /* [260] =  2068 */ {  0, ~0},
+    /* [261] =  2069 */ {  0, ~0},
+    /* [262] =  2070 */ {  0, ~0},
+    /* [263] =  2071 */ {  0, ~0},
+    /* [264] =  4096 */ { 20, ~0},
+    /* [265] =  4097 */ {  8, ~0},
+    /* [266] =  4098 */ {  0, ~0},
+    /* [267] =  4099 */ { 60, 41},
+    /* [268] =  4100 */ { 60, 42},
+    /* [269] =  4101 */ { 48, 43},
+    /* [270] =  4102 */ { 48, 44},
+    /* [271] =  4103 */ { 16, ~0},
+    /* [272] =  4104 */ { 12, 45},
+    /* [273] =  4105 */ { 16, ~0},
+    /* [274] =  4106 */ { 12, 46},
+    /* [275] =  4107 */ { 24, ~0},
+    /* [276] =  4108 */ { 28, ~0},
+    /* [277] =  4109 */ { 32, 47},
+    /* [278] =  4110 */ { 20, ~0},
+    /* [279] =  4111 */ { 16, ~0},
+    /* [280] =  4112 */ {  8, ~0},
+    /* [281] =  4113 */ {  8, ~0},
+    /* [282] =  4114 */ { 84, 48},
+    /* [283] =  4115 */ { 92, 49},
+    /* [284] =  4116 */ {  0, ~0},
+    /* [285] =  4117 */ { 12, ~0},
+    /* [286] =  4118 */ {  8, 50},
+    /* [287] =  4119 */ { 32, ~0},
+    /* [288] =  4120 */ { 36, ~0},
+    /* [289] =  4121 */ { 28, ~0},
+    /* [290] =  4122 */ { 36, ~0},
+    /* [291] =  4123 */ { 40, ~0},
+    /* [292] =  4124 */ {  8, ~0},
+    /* [293] =  4125 */ { 12, ~0},
+    /* [294] =  4126 */ {  8, ~0},
+    /* [295] =  4127 */ { 12, ~0},
+    /* [296] =  4192 */ { 16, ~0},
+    /* [297] =  4193 */ { 12, ~0},
+    /* [298] =  4194 */ { 16, ~0},
+    /* [299] =  4195 */ { 20, ~0},
+    /* [300] =  4196 */ { 24, ~0},
+    /* [301] =  4197 */ { 16, ~0},
+    /* [302] =  4198 */ { 24, ~0},
+    /* [303] =  4199 */ { 32, ~0},
+    /* [304] =  4200 */ { 40, ~0},
+    /* [305] =  4201 */ { 12, ~0},
+    /* [306] =  4202 */ { 12, 51},
+    /* [307] =  4203 */ { 12, 52},
+    /* [308] =  4204 */ { 12, 53},
+    /* [309] =  4205 */ { 12, 54},
+    /* [310] =  4206 */ { 12, 55},
+    /* [311] =  4207 */ { 12, 56},
+    /* [312] =  4208 */ { 12, 57},
+    /* [313] =  4209 */ { 12, 58},
+    /* [314] =  4210 */ { 12, 59},
+    /* [315] =  4211 */ { 12, 60},
+    /* [316] =  4212 */ { 12, 61},
+    /* [317] =  4213 */ { 12, 62},
+    /* [318] =  4214 */ { 12, 63},
+    /* [319] =  4215 */ { 28, ~0},
+    /* [320] =  4216 */ { 44, ~0},
+    /* [321] =  4217 */ { 16, 64},
+    /* [322] =  4218 */ { 28, 65},
+    /* [323] =  4219 */ { 44, 66},
+    /* [324] =  4220 */ {  8, ~0},
+    /* [325] =  4221 */ { 12, ~0},
+    /* [326] =  4222 */ {  8, 67},
+    /* [327] =  4223 */ {  0, ~0},
+    /* [328] =  4128 */ { 16, ~0},
+    /* [329] =  4129 */ { 16, ~0},
+    /* [330] =  4130 */ { 28, ~0},
+    /* [331] =  4131 */ {  8, ~0},
+    /* [332] =  4132 */ { 12, ~0},
+    /* [333] =  4133 */ { 16, ~0},
+    /* [334] =  4134 */ { 20, ~0},
+    /* [335] =  4135 */ {  0, ~0},
+    /* [336] =  4176 */ {  0, ~0},
+    /* [337] =  4177 */ {  0, ~0},
+    /* [338] =  4178 */ {  0, ~0},
+    /* [339] =  4179 */ {  0, ~0},
+    /* [340] =  4180 */ { 12, ~0},
+    /* [341] =  4181 */ { 28, ~0},
+    /* [342] =  4182 */ {  8, 68},
+    /* [343] =  4183 */ { 16, 69},
+    /* [344] =  4184 */ { 28, ~0},
+    /* [345] =  4185 */ { 44, ~0},
+    /* [346] =  4186 */ { 16, 70},
+    /* [347] =  4187 */ { 16, 71},
+    /* [348] =  4188 */ { 20, ~0},
+    /* [349] =  4189 */ { 12, ~0},
+    /* [350] =  4190 */ { 12, ~0},
+    /* [351] =  4191 */ { 16, ~0},
+    /* [352] =  4224 */ {  0, ~0},
+    /* [353] =  4225 */ {  0, ~0},
+    /* [354] =  4226 */ {  0, ~0},
+    /* [355] =  4227 */ {  0, ~0},
+    /* [356] =  4228 */ {  0, ~0},
+    /* [357] =  4229 */ {  0, ~0},
+    /* [358] =  4230 */ { 12, ~0},
+    /* [359] =  4231 */ { 24, ~0},
+    /* [360] =  4232 */ { 12, ~0},
+    /* [361] =  4233 */ { 16, ~0},
+    /* [362] =  4234 */ { 24, ~0},
+    /* [363] =  4235 */ { 12, ~0},
+    /* [364] =  4236 */ { 16, ~0},
+    /* [365] =  4237 */ { 24, ~0},
+    /* [366] =  4238 */ { 16, ~0},
+    /* [367] =  4239 */ { 24, ~0},
+    /* [368] =  4312 */ {  0, ~0},
+    /* [369] =  4313 */ {  0, ~0},
+    /* [370] =  4314 */ {  0, ~0},
+    /* [371] =  4315 */ {  0, ~0},
+    /* [372] =  4316 */ { 12, ~0},
+    /* [373] =  4317 */ {  8, 72},
+    /* [374] =  4318 */ { 20, ~0},
+    /* [375] =  4319 */ { 12, ~0},
+    /* [376] =  4320 */ {  8, 73},
+    /* [377] =  4321 */ { 24, ~0},
+    /* [378] =  4322 */ { 24, ~0},
+    /* [379] =  4323 */ { 28, ~0},
+    /* [380] =  4324 */ { 20, ~0},
+    /* [381] =  4325 */ {  8, ~0},
+    /* [382] =  4326 */ {  0, ~0},
+    /* [383] =  4327 */ {  0, ~0},
+};
+
+static const gl_proto_size_func Render_size_func_table[74] = {
+   __glXCallListsReqSize,
+   __glXBitmapReqSize,
+   __glXFogfvReqSize,
+   __glXFogivReqSize,
+   __glXLightfvReqSize,
+   __glXLightivReqSize,
+   __glXLightModelfvReqSize,
+   __glXLightModelivReqSize,
+   __glXMaterialfvReqSize,
+   __glXMaterialivReqSize,
+   __glXPolygonStippleReqSize,
+   __glXTexParameterfvReqSize,
+   __glXTexParameterivReqSize,
+   __glXTexImage1DReqSize,
+   __glXTexImage2DReqSize,
+   __glXTexEnvfvReqSize,
+   __glXTexEnvivReqSize,
+   __glXTexGendvReqSize,
+   __glXTexGenfvReqSize,
+   __glXTexGenivReqSize,
+   __glXMap1dReqSize,
+   __glXMap1fReqSize,
+   __glXMap2dReqSize,
+   __glXMap2fReqSize,
+   __glXPixelMapfvReqSize,
+   __glXPixelMapuivReqSize,
+   __glXPixelMapusvReqSize,
+   __glXDrawPixelsReqSize,
+   __glXDrawArraysReqSize,
+   __glXColorSubTableReqSize,
+   __glXCompressedTexImage1DARBReqSize,
+   __glXCompressedTexImage2DARBReqSize,
+   __glXCompressedTexImage3DARBReqSize,
+   __glXCompressedTexSubImage1DARBReqSize,
+   __glXCompressedTexSubImage2DARBReqSize,
+   __glXCompressedTexSubImage3DARBReqSize,
+   __glXDrawBuffersARBReqSize,
+   __glXColorTableReqSize,
+   __glXColorTableParameterfvReqSize,
+   __glXColorTableParameterivReqSize,
+   __glXPointParameterfvEXTReqSize,
+   __glXTexSubImage1DReqSize,
+   __glXTexSubImage2DReqSize,
+   __glXConvolutionFilter1DReqSize,
+   __glXConvolutionFilter2DReqSize,
+   __glXConvolutionParameterfvReqSize,
+   __glXConvolutionParameterivReqSize,
+   __glXSeparableFilter2DReqSize,
+   __glXTexImage3DReqSize,
+   __glXTexSubImage3DReqSize,
+   __glXPrioritizeTexturesReqSize,
+   __glXVertexAttribs1svNVReqSize,
+   __glXVertexAttribs2svNVReqSize,
+   __glXVertexAttribs3svNVReqSize,
+   __glXVertexAttribs4svNVReqSize,
+   __glXVertexAttribs1fvNVReqSize,
+   __glXVertexAttribs2fvNVReqSize,
+   __glXVertexAttribs3fvNVReqSize,
+   __glXVertexAttribs4fvNVReqSize,
+   __glXVertexAttribs1dvNVReqSize,
+   __glXVertexAttribs2dvNVReqSize,
+   __glXVertexAttribs3dvNVReqSize,
+   __glXVertexAttribs4dvNVReqSize,
+   __glXVertexAttribs4ubvNVReqSize,
+   __glXProgramStringARBReqSize,
+   __glXProgramNamedParameter4fvNVReqSize,
+   __glXProgramNamedParameter4dvNVReqSize,
+   __glXPointParameterivNVReqSize,
+   __glXRequestResidentProgramsNVReqSize,
+   __glXLoadProgramNVReqSize,
+   __glXProgramParameters4fvNVReqSize,
+   __glXProgramParameters4dvNVReqSize,
+   __glXDeleteRenderbuffersEXTReqSize,
+   __glXDeleteFramebuffersEXTReqSize,
+};
+
+const struct __glXDispatchInfo Render_dispatch_info = {
+    13,
+    Render_dispatch_tree,
+    Render_function_table,
+    Render_size_table,
+    Render_size_func_table
+};
+
+/*****************************************************************/
 /* tree depth = 13 */
 static const int_fast16_t VendorPriv_dispatch_tree[138] = {
     /* [0] -> opcode range [0, 131072], node depth 1 */
@@ -424,7 +1432,7 @@ static const int_fast16_t VendorPriv_dis
 
 };
 
-static const __GLXdispatchVendorPrivProcPtr VendorPriv_function_table[72][2] = {
+static const void *VendorPriv_function_table[72][2] = {
     /* [  0] =     8 */ {NULL, NULL},
     /* [  1] =     9 */ {NULL, NULL},
     /* [  2] =    10 */ {NULL, NULL},
diff --git a/GL/glx/indirect_util.c b/GL/glx/indirect_util.c
index 3964cd5..93f1484 100644
--- a/GL/glx/indirect_util.c
+++ b/GL/glx/indirect_util.c
@@ -289,7 +289,7 @@ __glXGetProtocolDecodeFunction(const str
 
     return (func_index < 0) 
 	? NULL 
-	: dispatch_info->dispatch_functions[func_index][swapped_version];
+	: (void *) dispatch_info->dispatch_functions[func_index][swapped_version];
 }
 
 
@@ -300,13 +300,14 @@ __glXGetProtocolSizeData(const struct __
     if (dispatch_info->size_table != NULL) {
 	const int func_index = get_decode_index(dispatch_info, opcode);
 
-	if (func_index >= 0) {
+	if ((func_index >= 0) 
+	    && (dispatch_info->size_table[func_index][0] != 0)) {
 	    const int var_offset = 
 		dispatch_info->size_table[func_index][1];
 
 	    data->bytes = dispatch_info->size_table[func_index][0];
 	    data->varsize = (var_offset != ~0)
-		? dispatch_info->size_table[func_index]
+		? dispatch_info->size_func_table[var_offset]
 		: NULL;
 
 	    return 0;
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
deleted file mode 100644
index 22dfc49..0000000
--- a/GL/glx/rensizetab.c
+++ /dev/null
@@ -1,2552 +0,0 @@
-/*
-** License Applicability. Except to the extent portions of this file are
-** made subject to an alternative license as permitted in the SGI Free
-** Software License B, Version 1.1 (the "License"), the contents of this
-** file are subject only to the provisions of the License. You may not use
-** this file except in compliance with the License. You may obtain a copy
-** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
-** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
-** 
-** http://oss.sgi.com/projects/FreeB
-** 
-** Note that, as provided in the License, the Software is distributed on an
-** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
-** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-** 
-** Original Code. The Original Code is: OpenGL Sample Implementation,
-** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
-** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
-** Copyright in any portions created by third parties is as indicated
-** elsewhere herein. All Rights Reserved.
-** 
-** Additional Notice Provisions: The application programming interfaces
-** established by SGI in conjunction with the Original Code are The
-** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
-** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
-** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
-** Window System(R) (Version 1.3), released October 19, 1998. This software
-** was created using the OpenGL(R) version 1.2.1 Sample Implementation
-** published by SGI, but has not been independently verified as being
-** compliant with the OpenGL(R) version 1.2.1 Specification.
-**
-*/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include "glxserver.h"
-#include "indirect_reqsize.h"
-#include "g_disptab_EXT.h"
-
-__GLXrenderSizeData __glXRenderSizeTable[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
-	/* no such opcode      */       {   0,  0                         },
-	/* CallList            */	{   8, 	0                         },
-	/* CallLists           */	{  12, 	__glXCallListsReqSize     },
-	/* ListBase            */	{   8, 	0                         },
-	/* Begin               */	{   8, 	0                         },
-	/* Bitmap              */	{  48, 	__glXBitmapReqSize        },
-	/* Color3bv            */	{   8, 	0                         },
-	/* Color3dv            */	{  28, 	0                         },
-	/* Color3fv            */	{  16, 	0                         },
-	/* Color3iv            */	{  16, 	0                         },
-	/* Color3sv            */	{  12, 	0                         },
-	/* Color3ubv           */	{   8, 	0                         },
-	/* Color3uiv           */	{  16, 	0                         },
-	/* Color3usv           */	{  12, 	0                         },
-	/* Color4bv            */	{   8, 	0                         },
-	/* Color4dv            */	{  36, 	0                         },
-	/* Color4fv            */	{  20, 	0                         },
-	/* Color4iv            */	{  20, 	0                         },
-	/* Color4sv            */	{  12, 	0                         },
-	/* Color4ubv           */	{   8, 	0                         },
-	/* Color4uiv           */	{  20, 	0                         },
-	/* Color4usv           */	{  12, 	0                         },
-	/* EdgeFlagv           */	{   8, 	0                         },
-	/* End                 */	{   4, 	0                         },
-	/* Indexdv             */	{  12, 	0                         },
-	/* Indexfv             */	{   8, 	0                         },
-	/* Indexiv             */	{   8, 	0                         },
-	/* Indexsv             */	{   8, 	0                         },
-	/* Normal3bv           */	{   8, 	0                         },
-	/* Normal3dv           */	{  28, 	0                         },
-	/* Normal3fv           */	{  16, 	0                         },
-	/* Normal3iv           */	{  16, 	0                         },
-	/* Normal3sv           */	{  12, 	0                         },
-	/* RasterPos2dv        */	{  20, 	0                         },
-	/* RasterPos2fv        */	{  12, 	0                         },
-	/* RasterPos2iv        */	{  12, 	0                         },
-	/* RasterPos2sv        */	{   8, 	0                         },
-	/* RasterPos3dv        */	{  28, 	0                         },
-	/* RasterPos3fv        */	{  16, 	0                         },
-	/* RasterPos3iv        */	{  16, 	0                         },
-	/* RasterPos3sv        */	{  12, 	0                         },
-	/* RasterPos4dv        */	{  36, 	0                         },
-	/* RasterPos4fv        */	{  20, 	0                         },
-	/* RasterPos4iv        */	{  20, 	0                         },
-	/* RasterPos4sv        */	{  12, 	0                         },
-	/* Rectdv              */	{  36, 	0                         },
-	/* Rectfv              */	{  20, 	0                         },
-	/* Rectiv              */	{  20, 	0                         },
-	/* Rectsv              */	{  12, 	0                         },
-	/* TexCoord1dv         */	{  12, 	0                         },
-	/* TexCoord1fv         */	{   8, 	0                         },
-	/* TexCoord1iv         */	{   8, 	0                         },
-	/* TexCoord1sv         */	{   8, 	0                         },
-	/* TexCoord2dv         */	{  20, 	0                         },
-	/* TexCoord2fv         */	{  12, 	0                         },
-	/* TexCoord2iv         */	{  12, 	0                         },
-	/* TexCoord2sv         */	{   8, 	0                         },
-	/* TexCoord3dv         */	{  28, 	0                         },
-	/* TexCoord3fv         */	{  16, 	0                         },
-	/* TexCoord3iv         */	{  16, 	0                         },
-	/* TexCoord3sv         */	{  12, 	0                         },
-	/* TexCoord4dv         */	{  36, 	0                         },
-	/* TexCoord4fv         */	{  20, 	0                         },
-	/* TexCoord4iv         */	{  20, 	0                         },
-	/* TexCoord4sv         */	{  12, 	0                         },
-	/* Vertex2dv           */	{  20, 	0                         },
-	/* Vertex2fv           */	{  12, 	0                         },
-	/* Vertex2iv           */	{  12, 	0                         },
-	/* Vertex2sv           */	{   8, 	0                         },
-	/* Vertex3dv           */	{  28, 	0                         },
-	/* Vertex3fv           */	{  16, 	0                         },
-	/* Vertex3iv           */	{  16, 	0                         },
-	/* Vertex3sv           */	{  12, 	0                         },
-	/* Vertex4dv           */	{  36, 	0                         },
-	/* Vertex4fv           */	{  20, 	0                         },
-	/* Vertex4iv           */	{  20, 	0                         },
-	/* Vertex4sv           */	{  12, 	0                         },
-	/* ClipPlane           */	{  40, 	0                         },
-	/* ColorMaterial       */	{  12, 	0                         },
-	/* CullFace            */	{   8, 	0                         },
-	/* Fogf                */	{  12, 	0                         },
-	/* Fogfv               */	{   8, 	__glXFogfvReqSize         },
-	/* Fogi                */	{  12, 	0                         },
-	/* Fogiv               */	{   8, 	__glXFogivReqSize         },
-	/* FrontFace           */	{   8, 	0                         },
-	/* Hint                */	{  12, 	0                         },
-	/* Lightf              */	{  16, 	0                         },
-	/* Lightfv             */	{  12, 	__glXLightfvReqSize       },
-	/* Lighti              */	{  16, 	0                         },
-	/* Lightiv             */	{  12, 	__glXLightivReqSize       },
-	/* LightModelf         */	{  12, 	0                         },
-	/* LightModelfv        */	{   8, 	__glXLightModelfvReqSize  },
-	/* LightModeli         */	{  12, 	0                         },
-	/* LightModeliv        */	{   8, 	__glXLightModelivReqSize  },
-	/* LineStipple         */	{  12, 	0                         },
-	/* LineWidth           */	{   8, 	0                         },
-	/* Materialf           */	{  16, 	0                         },
-	/* Materialfv          */	{  12, 	__glXMaterialfvReqSize    },
-	/* Materiali           */	{  16, 	0                         },
-	/* Materialiv          */	{  12, 	__glXMaterialivReqSize    },
-	/* PointSize           */	{   8, 	0                         },
-	/* PolygonMode         */	{  12, 	0                         },
-	/* PolygonStipple      */	{ 152, 	0                         },
-	/* Scissor             */	{  20, 	0                         },
-	/* ShadeModel          */	{   8, 	0                         },
-	/* TexParameterf       */	{  16, 	0                         },
-	/* TexParameterfv      */	{  12, 	__glXTexParameterfvReqSize },
-	/* TexParameteri       */	{  16, 	0                         },
-	/* TexParameteriv      */	{  12, 	__glXTexParameterivReqSize },
-	/* TexImage1D          */	{  56, 	__glXTexImage1DReqSize    },
-	/* TexImage2D          */	{  56, 	__glXTexImage2DReqSize    },
-	/* TexEnvf             */	{  16, 	0                         },
-	/* TexEnvfv            */	{  12, 	__glXTexEnvfvReqSize      },
-	/* TexEnvi             */	{  16, 	0                         },
-	/* TexEnviv            */	{  12, 	__glXTexEnvivReqSize      },
-	/* TexGend             */	{  20, 	0                         },
-	/* TexGendv            */	{  12, 	__glXTexGendvReqSize      },
-	/* TexGenf             */	{  16, 	0                         },
-	/* TexGenfv            */	{  12, 	__glXTexGenfvReqSize      },
-	/* TexGeni             */	{  16, 	0                         },
-	/* TexGeniv            */	{  12, 	__glXTexGenivReqSize      },
-	/* InitNames           */	{   4, 	0                         },
-	/* LoadName            */	{   8, 	0                         },
-	/* PassThrough         */	{   8, 	0                         },
-	/* PopName             */	{   4, 	0                         },
-	/* PushName            */	{   8, 	0                         },
-	/* DrawBuffer          */	{   8, 	0                         },
-	/* Clear               */	{   8, 	0                         },
-	/* ClearAccum          */	{  20, 	0                         },
-	/* ClearIndex          */	{   8, 	0                         },
-	/* ClearColor          */	{  20, 	0                         },
-	/* ClearStencil        */	{   8, 	0                         },
-	/* ClearDepth          */	{  12, 	0                         },
-	/* StencilMask         */	{   8, 	0                         },
-	/* ColorMask           */	{   8, 	0                         },
-	/* DepthMask           */	{   8, 	0                         },
-	/* IndexMask           */	{   8, 	0                         },
-	/* Accum               */	{  12, 	0                         },
-	/* Disable             */	{   8, 	0                         },
-	/* Enable              */	{   8, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* PopAttrib           */	{   4, 	0                         },
-	/* PushAttrib          */	{   8, 	0                         },
-	/* Map1d               */	{  28, 	__glXMap1dReqSize         },
-	/* Map1f               */	{  20, 	__glXMap1fReqSize         },
-	/* Map2d               */	{  48, 	__glXMap2dReqSize         },
-	/* Map2f               */	{  32, 	__glXMap2fReqSize         },
-	/* MapGrid1d           */	{  24, 	0                         },
-	/* MapGrid1f           */	{  16, 	0                         },
-	/* MapGrid2d           */	{  44, 	0                         },
-	/* MapGrid2f           */	{  28, 	0                         },
-	/* EvalCoord1dv        */	{  12, 	0                         },
-	/* EvalCoord1fv        */	{   8, 	0                         },
-	/* EvalCoord2dv        */	{  20, 	0                         },
-	/* EvalCoord2fv        */	{  12, 	0                         },
-	/* EvalMesh1           */	{  16, 	0                         },
-	/* EvalPoint1          */	{   8, 	0                         },
-	/* EvalMesh2           */	{  24, 	0                         },
-	/* EvalPoint2          */	{  12, 	0                         },
-	/* AlphaFunc           */	{  12, 	0                         },
-	/* BlendFunc           */	{  12, 	0                         },
-	/* LogicOp             */	{   8, 	0                         },
-	/* StencilFunc         */	{  16, 	0                         },
-	/* StencilOp           */	{  16, 	0                         },
-	/* DepthFunc           */	{   8, 	0                         },
-	/* PixelZoom           */	{  12, 	0                         },
-	/* PixelTransferf      */	{  12, 	0                         },
-	/* PixelTransferi      */	{  12, 	0                         },
-	/* PixelMapfv          */	{  12, 	__glXPixelMapfvReqSize    },
-	/* PixelMapuiv         */	{  12, 	__glXPixelMapuivReqSize   },
-	/* PixelMapusv         */	{  12, 	__glXPixelMapusvReqSize   },
-	/* ReadBuffer          */	{   8, 	0                         },
-	/* CopyPixels          */	{  24, 	0                         },
-	/* DrawPixels          */	{  40, 	__glXDrawPixelsReqSize    },
-	/* DepthRange          */	{  20, 	0                         },
-	/* Frustum             */	{  52, 	0                         },
-	/* LoadIdentity        */	{   4, 	0                         },
-	/* LoadMatrixf         */	{  68, 	0                         },
-	/* LoadMatrixd         */	{ 132, 	0                         },
-	/* MatrixMode          */	{   8, 	0                         },
-	/* MultMatrixf         */	{  68, 	0                         },
-	/* MultMatrixd         */	{ 132, 	0                         },
-	/* Ortho               */	{  52, 	0                         },
-	/* PopMatrix           */	{   4, 	0                         },
-	/* PushMatrix          */	{   4, 	0                         },
-	/* Rotated             */	{  36, 	0                         },
-	/* Rotatef             */	{  20, 	0                         },
-	/* Scaled              */	{  28, 	0                         },
-	/* Scalef              */	{  16, 	0                         },
-	/* Translated          */	{  28, 	0                         },
-	/* Translatef          */	{  16, 	0                         },
-	/* Viewport            */	{  20, 	0                         },
-	/* PolygonOffset       */	{  12, 	0                         },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
-	/* Indexubv            */	{  8, 	0                         },
-	/* ColorSubTable       */       {  44,  __glXColorSubTableReqSize },
-	/* CopyColorSubTable   */       {  24,  0                         },
-	/* ActiveTextureARB    */       {  8,   0                         },
-	/* MultiTexCoord1dvARB */       {  16,  0                         },
-	/* MultiTexCoord1fvARB */       {  12,  0                         },
-	/* MultiTexCoord1ivARB */       {  12,  0                         },
-	/* MultiTexCoord1svARB */       {  12,  0                         },
-	/* MultiTexCoord2dvARB */       {  24,  0                         },
-	/* MultiTexCoord2fvARB */       {  16,  0                         },
-	/* MultiTexCoord2ivARB */       {  16,  0                         },
-	/* MultiTexCoord2svARB */       {  12,  0                         },
-	/* MultiTexCoord3dvARB */       {  32,  0                         },
-	/* MultiTexCoord3fvARB */       {  20,  0                         },
-	/* MultiTexCoord3ivARB */       {  20,  0                         },
-	/* MultiTexCoord3svARB */       {  16,  0                         },
-	/* MultiTexCoord4dvARB */       {  40,  0                         },
-	/* MultiTexCoord4fvARB */       {  24,  0                         },
-	/* MultiTexCoord4ivARB */       {  24,  0                         },
-	/* MultiTexCoord4svARB   213 */ {  16,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode        220 */ {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* WindowPos3fvMESA      230 */ {  16,  0                         },
-};
-__GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
-	/* ColorTable          2053 */  {  44,  __glXColorTableReqSize    },
-	/* ColorTableParameterfv */     {  12,  __glXColorTableParameterfvReqSize         },
-	/* ColorTableParameteriv */     {  12,  __glXColorTableParameterivReqSize         },
-	/* CopyColorTable      */       {  24,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* PointParameterfEXT   2065 */ {  12,  0                         },
-	/* PointParameterfvEXT  2066 */ {   8,  __glXPointParameterfvEXTReqSize },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* BlendColor          */       {  20,  0                         },
-	/* BlendEquation       */       {   8,  0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* TexSubImage1D       */       {  60,  __glXTexSubImage1DReqSize },
-	/* TexSubImage2D       */       {  60,  __glXTexSubImage2DReqSize },
-	/* ConvolutionFilter1D */       {  48,  __glXConvolutionFilter1DReqSize },
-	/* ConvolutionFilter2D     */   {  48,  __glXConvolutionFilter2DReqSize },
-	/* ConvolutionParameterf   */   {  16,  0                         },
-	/* ConvolutionParameterfv  */   {  12,  __glXConvolutionParameterfvReqSize },
-	/* ConvolutionParameteri   */   {  16,  0                         },
-	/* ConvolutionParameteriv  */   {  12,  __glXConvolutionParameterivReqSize },
-	/* CopyConvolutionFilter1D */   {  24,                            },
-	/* CopyConvolutionFilter2D */   {  28,                            },
-	/* SeparableFilter2D   */       {  48,  __glXSeparableFilter2DReqSize },
-	/* Histogram           */       {  20,                            },
-	/* Minmax              */       {  16,                            },
-	/* ResetHistogram      */       {  8,                             },
-	/* ResetMinmax         */       {  8,                             },
-	/* TexImage3D          */       {  84,  __glXTexImage3DReqSize    },
-	/* TexSubImage3D       */       {  92,  __glXTexSubImage3DReqSize },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
-	/* BindTexture         */	{  12, 	0                         },
-	/* PrioritizeTextures  */	{   8, 	__glXPrioritizeTexturesReqSize },
-	/* CopyTexImage1D      */	{  32, 	0 },
-	/* CopyTexImage2D      */	{  36, 	0 },
-	/* CopyTexSubImage1D   */	{  28, 	0 },
-	/* CopyTexSubImage2D   */	{  36, 	0 },
-	/* CopyTexSubImage3D    4123 */ {  40,  0 },
-	/* FogCoordfv           4124 */	{   8, 	0 },
-	/* FogCoorddv           4125 */	{  12, 	0 },
-	/* SecondaryColor3bv    4126 */	{   8, 	0 },
-	/* SecondaryColor3sv    4127 */	{  12, 	0 },
-	/* SecondaryColor3iv    4128 */	{  16, 	0 },
-	/* SecondaryColor3fv    4129 */	{  16, 	0 },
-	/* SecondaryColor3dv    4130 */	{  28, 	0 },
-	/* SecondaryColor3ubv   4131 */	{   8, 	0 },
-	/* SecondaryColor3usv   4132 */	{  12, 	0 },
-	/* SecondaryColor3uiv   4133 */	{  16, 	0 },
-	/* BlendFuncSeparate    4134 */	{  20, 	0 },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* ActiveStencilFaceEXT 4220 */ {   8,  0 },
-	/* PointParameteriNV    4221 */	{  12, 	0 },
-	/* PointParameterivNV   4222 */	{   8, 	__glXPointParameterivNVReqSize },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-
-	/* BindRenderbufferEXT */	{  12, 	0                         },
-	/* DeleteRenderbuffersEXT */	{   8, 	__glXDeleteRenderbuffersEXTReqSize },
-	/* RenderbufferStorageEXT */	{  20, 	0                         },
-	/* BindFramebufferEXT */	{  12, 	0                         },
-	/* DeleteFramebuffersEXT */	{   8, 	__glXDeleteFramebuffersEXTReqSize },
-	/* FramebufferTexture1DEXT */	{  24, 	0                         },
-	/* FramebufferTexture2DEXT */	{  24, 	0                         },
-	/* FramebufferTexture3DEXT */	{  28, 	0                         },
-	/* FramebufferRenderbufferTexture3DEXT */ { 20, 0                 },
-	/* GenerateMipmapEXT */		{  8, 	0                         }
-};
diff-tree 7ae82b5fc8721be78b43a322bbf2c46aac08b8cf (from 39a620d17809dc71fb5ad61a955fe3c442f90a05)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:00:48 2006 -0700

    Fix __glXDispatchInfo::dispatch_functions and
    __glXDispatchInfo::size_table.  dispatch_functions had the const in
    the wrong place, and size_table was declared as an array of two
    pointers to int_fast16_t instead of a pointer to an array of 2
    int_fast16_t.  cdecl to the rescue!

diff --git a/GL/glx/indirect_table.h b/GL/glx/indirect_table.h
index a2562a0..4af1ccb 100644
--- a/GL/glx/indirect_table.h
+++ b/GL/glx/indirect_table.h
@@ -53,7 +53,7 @@ struct __glXDispatchInfo {
      * is the non-byte-swapped version, and the second element is the
      * byte-swapped version.
      */
-    void * const (*dispatch_functions)[2];
+    const void *(*dispatch_functions)[2];
 
     /**
      * Pointer to size validation data.  This table is indexed with the same
@@ -70,7 +70,7 @@ struct __glXDispatchInfo {
      * If size checking is not to be performed on this type of protocol
      * data, this pointer will be \c NULL.
      */
-    const int_fast16_t * size_table[2];
+    const int_fast16_t (*size_table)[2];
 
     /**
      * Array of functions used to calculate the variable-size portion of
@@ -81,7 +81,7 @@ struct __glXDispatchInfo {
      * If size checking is not to be performed on this type of protocol
      * data, this pointer will be \c NULL.
      */
-    const gl_proto_size_func * size_func_table;
+    const gl_proto_size_func *size_func_table;
 };
 
 /**
diff-tree 39a620d17809dc71fb5ad61a955fe3c442f90a05 (from 86406455f0e5fc977431948611e9bb5fda1e1d46)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 14:24:34 2006 -0700

    Rename __glXDrawArraysSize to __glXDrawArraysReqSize.  This makes its
    name match the pattern of all the other functions in
    __glXRenderSizeTable.

diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index ce91ce3..387489a 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -254,6 +254,6 @@ extern int __glXImageSize(GLenum format,
     GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
     GLint alignment);
 
-extern int __glXDrawArraysSize(const GLbyte *pc, Bool swap);
+extern int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
 
 #endif /* !__GLX_server_h__ */
diff --git a/GL/glx/rensize.c b/GL/glx/rensize.c
index 47d6989..c69619a 100644
--- a/GL/glx/rensize.c
+++ b/GL/glx/rensize.c
@@ -323,7 +323,7 @@ int __glXTypeSize(GLenum enm)
   }
 }
 
-int __glXDrawArraysSize( const GLbyte *pc, Bool swap )
+int __glXDrawArraysReqSize( const GLbyte *pc, Bool swap )
 {
     __GLXdispatchDrawArraysHeader *hdr = (__GLXdispatchDrawArraysHeader *) pc;
     __GLXdispatchDrawArraysComponentHeader *compHeader;
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
index b9768a5..22dfc49 100644
--- a/GL/glx/rensizetab.c
+++ b/GL/glx/rensizetab.c
@@ -235,7 +235,7 @@ __GLXrenderSizeData __glXRenderSizeTable
 	/* Translatef          */	{  16, 	0                         },
 	/* Viewport            */	{  20, 	0                         },
 	/* PolygonOffset       */	{  12, 	0                         },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysSize       },
+	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
 	/* Indexubv            */	{  8, 	0                         },
 	/* ColorSubTable       */       {  44,  __glXColorSubTableReqSize },
 	/* CopyColorSubTable   */       {  24,  0                         },
@@ -2338,7 +2338,7 @@ __GLXrenderSizeData __glXRenderSizeTable
 	/* ResetMinmax         */       {  8,                             },
 	/* TexImage3D          */       {  84,  __glXTexImage3DReqSize    },
 	/* TexSubImage3D       */       {  92,  __glXTexSubImage3DReqSize },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysSize       },
+	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
 	/* BindTexture         */	{  12, 	0                         },
 	/* PrioritizeTextures  */	{   8, 	__glXPrioritizeTexturesReqSize },
 	/* CopyTexImage1D      */	{  32, 	0 },
diff-tree 86406455f0e5fc977431948611e9bb5fda1e1d46 (from d7a7f12361d31001bbd9394a57de029ef0b934b8)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 13:30:59 2006 -0700

    Re-generated files after a fix to glX_API.xml (in Mesa).

diff --git a/GL/glx/indirect_dispatch.h b/GL/glx/indirect_dispatch.h
index 07bc97b..e2c0c41 100644
--- a/GL/glx/indirect_dispatch.h
+++ b/GL/glx/indirect_dispatch.h
@@ -345,6 +345,8 @@ extern HIDDEN int __glXDisp_CreateContex
 extern HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture3DEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendEquation(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetError(struct __GLXclientStateRec *, GLbyte *);
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index da5fb6b..2c88589 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -483,7 +483,7 @@ static const __GLXdispatchVendorPrivProc
     /* [ 55] =  1431 */ {NULL, NULL},
     /* [ 56] =  5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
     /* [ 57] =  5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
-    /* [ 58] =  5154 */ {NULL, NULL},
+    /* [ 58] =  5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
     /* [ 59] =  5155 */ {NULL, NULL},
     /* [ 60] =  5156 */ {NULL, NULL},
     /* [ 61] =  5157 */ {NULL, NULL},
diff-tree d7a7f12361d31001bbd9394a57de029ef0b934b8 (from db82e12fac5eaa16a39fc1bd0bc31ad95089dc95)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 13:30:13 2006 -0700

    Convert protocol decode tables for Single, VendorPrivate, and
    VendorPrivateWithReply message to use nice, compact N-way search trees
    generated by scripts in Mesa.
    
    The Render protocol decode tables are next...

diff --git a/GL/glx/Makefile.am b/GL/glx/Makefile.am
index 1d4a986..2bb6943 100644
--- a/GL/glx/Makefile.am
+++ b/GL/glx/Makefile.am
@@ -61,6 +61,8 @@ libglx_la_SOURCES = \
         indirect_reqsize.h \
         indirect_size_get.c \
         indirect_size_get.h \
+        indirect_table.c \
+        indirect_table.h \
         indirect_util.c \
         indirect_util.h \
         render2.c \
diff --git a/GL/glx/g_disptab.c b/GL/glx/g_disptab.c
index 8e33626..6019301 100644
--- a/GL/glx/g_disptab.c
+++ b/GL/glx/g_disptab.c
@@ -37,169 +37,6 @@
 #include "g_disptab.h"
 #include "indirect_dispatch.h"
 
-__GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
-	__glXNoSuchSingleOpcode,
-	__glXRender,
-	__glXRenderLarge,
-	__glXCreateContext,
-	__glXDestroyContext,
-	__glXMakeCurrent,
-	__glXIsDirect,
-	__glXQueryVersion,
-	__glXWaitGL,				/* 0x08 */
-	__glXWaitX,
-	__glXCopyContext,
-	__glXSwapBuffers,
-	__glXUseXFont,
-	__glXCreateGLXPixmap,
-	__glXGetVisualConfigs,
-	__glXDestroyGLXPixmap,
-	__glXVendorPrivate,			/* 0x10 */
-	__glXVendorPrivateWithReply,
-	__glXQueryExtensionsString,
-	__glXQueryServerString,
-	__glXClientInfo,
-	__glXGetFBConfigs,
-	__glXCreatePixmap,
-	__glXDestroyPixmap,
-	__glXCreateNewContext,			/* 0x18 */
-	__glXQueryContext,
-	__glXMakeContextCurrent,
-	__glXCreatePbuffer,
-	__glXDestroyPbuffer,
-	__glXGetDrawableAttributes,
-	__glXChangeDrawableAttributes,
-	__glXCreateWindow,
-	__glXDestroyWindow,			/* 0x20 */
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXDisp_NewList,
-	__glXDisp_EndList,
-	__glXDisp_DeleteLists,
-	__glXDisp_GenLists,
-	__glXDisp_FeedbackBuffer,
-	__glXDisp_SelectBuffer,
-	__glXDisp_RenderMode,
-	__glXDisp_Finish,
-	__glXDisp_PixelStoref,
-	__glXDisp_PixelStorei,
-	__glXDisp_ReadPixels,
-	__glXDisp_GetBooleanv,
-	__glXDisp_GetClipPlane,
-	__glXDisp_GetDoublev,
-	__glXDisp_GetError,
-	__glXDisp_GetFloatv,
-	__glXDisp_GetIntegerv,
-	__glXDisp_GetLightfv,
-	__glXDisp_GetLightiv,
-	__glXDisp_GetMapdv,
-	__glXDisp_GetMapfv,
-	__glXDisp_GetMapiv,
-	__glXDisp_GetMaterialfv,
-	__glXDisp_GetMaterialiv,
-	__glXDisp_GetPixelMapfv,
-	__glXDisp_GetPixelMapuiv,
-	__glXDisp_GetPixelMapusv,
-	__glXDisp_GetPolygonStipple,
-	__glXDisp_GetString,
-	__glXDisp_GetTexEnvfv,
-	__glXDisp_GetTexEnviv,
-	__glXDisp_GetTexGendv,
-	__glXDisp_GetTexGenfv,
-	__glXDisp_GetTexGeniv,
-	__glXDisp_GetTexImage,
-	__glXDisp_GetTexParameterfv,
-	__glXDisp_GetTexParameteriv,
-	__glXDisp_GetTexLevelParameterfv,
-	__glXDisp_GetTexLevelParameteriv,
-	__glXDisp_IsEnabled,
-	__glXDisp_IsList,
-	__glXDisp_Flush,
-	__glXDisp_AreTexturesResident,
-	__glXDisp_DeleteTextures,
-	__glXDisp_GenTextures,
-	__glXDisp_IsTexture,
-	__glXDisp_GetColorTable,
-	__glXDisp_GetColorTableParameterfv,
-	__glXDisp_GetColorTableParameteriv,
-	__glXDisp_GetConvolutionFilter,
-	__glXDisp_GetConvolutionParameterfv,
-	__glXDisp_GetConvolutionParameteriv,
-	__glXDisp_GetSeparableFilter,
-	__glXDisp_GetHistogram,
-	__glXDisp_GetHistogramParameterfv,
-	__glXDisp_GetHistogramParameteriv,
-	__glXDisp_GetMinmax,
-	__glXDisp_GetMinmaxParameterfv,
-	__glXDisp_GetMinmaxParameteriv,
-};
-
 __GLXdispatchRenderProcPtr __glXRenderTable[] = {
 	__glXNoSuchRenderOpcode,
 	__glXDisp_CallList,
@@ -438,168 +275,6 @@ __GLXdispatchRenderProcPtr __glXRenderTa
 #endif
 };
 
-__GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
-	__glXNoSuchSingleOpcode,
-	__glXSwapRender,
-	__glXSwapRenderLarge,
-	__glXSwapCreateContext,
-	__glXSwapDestroyContext,
-	__glXSwapMakeCurrent,
-	__glXSwapIsDirect,
-	__glXSwapQueryVersion,
-	__glXSwapWaitGL,			/* 0x08 */
-	__glXSwapWaitX,
-	__glXSwapCopyContext,
-	__glXSwapSwapBuffers,
-	__glXSwapUseXFont,
-	__glXSwapCreateGLXPixmap,
-	__glXSwapGetVisualConfigs,
-	__glXSwapDestroyGLXPixmap,
-	__glXSwapVendorPrivate,			/* 0x10 */
-	__glXSwapVendorPrivateWithReply,
-	__glXSwapQueryExtensionsString,
-	__glXSwapQueryServerString,
-	__glXSwapClientInfo,
-	__glXSwapGetFBConfigs,
-	__glXSwapCreatePixmap,
-	__glXSwapDestroyPixmap,
-	__glXSwapCreateNewContext,		/* 0x18 */
-	__glXSwapQueryContext,
-	__glXSwapMakeContextCurrent,
-	__glXSwapCreatePbuffer,
-	__glXSwapDestroyPbuffer,
-	__glXSwapGetDrawableAttributes,
-	__glXSwapChangeDrawableAttributes,
-	__glXSwapCreateWindow,
-	__glXSwapDestroyWindow,			/* 0x20 */
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXDispSwap_NewList,
-	__glXDispSwap_EndList,
-	__glXDispSwap_DeleteLists,
-	__glXDispSwap_GenLists,
-	__glXDispSwap_FeedbackBuffer,
-	__glXDispSwap_SelectBuffer,
-	__glXDispSwap_RenderMode,
-	__glXDispSwap_Finish,
-	__glXDispSwap_PixelStoref,
-	__glXDispSwap_PixelStorei,
-	__glXDispSwap_ReadPixels,
-	__glXDispSwap_GetBooleanv,
-	__glXDispSwap_GetClipPlane,
-	__glXDispSwap_GetDoublev,
-	__glXDispSwap_GetError,
-	__glXDispSwap_GetFloatv,
-	__glXDispSwap_GetIntegerv,
-	__glXDispSwap_GetLightfv,
-	__glXDispSwap_GetLightiv,
-	__glXDispSwap_GetMapdv,
-	__glXDispSwap_GetMapfv,
-	__glXDispSwap_GetMapiv,
-	__glXDispSwap_GetMaterialfv,
-	__glXDispSwap_GetMaterialiv,
-	__glXDispSwap_GetPixelMapfv,
-	__glXDispSwap_GetPixelMapuiv,
-	__glXDispSwap_GetPixelMapusv,
-	__glXDispSwap_GetPolygonStipple,
-	__glXDispSwap_GetString,
-	__glXDispSwap_GetTexEnvfv,
-	__glXDispSwap_GetTexEnviv,
-	__glXDispSwap_GetTexGendv,
-	__glXDispSwap_GetTexGenfv,
-	__glXDispSwap_GetTexGeniv,
-	__glXDispSwap_GetTexImage,
-	__glXDispSwap_GetTexParameterfv,
-	__glXDispSwap_GetTexParameteriv,
-	__glXDispSwap_GetTexLevelParameterfv,
-	__glXDispSwap_GetTexLevelParameteriv,
-	__glXDispSwap_IsEnabled,
-	__glXDispSwap_IsList,
-	__glXDispSwap_Flush,
-	__glXDispSwap_AreTexturesResident,
-	__glXDispSwap_DeleteTextures,
-	__glXDispSwap_GenTextures,
-	__glXDispSwap_IsTexture,
-	__glXDispSwap_GetColorTable,
-	__glXDispSwap_GetColorTableParameterfv,
-	__glXDispSwap_GetColorTableParameteriv,
-	__glXDispSwap_GetConvolutionFilter,
-	__glXDispSwap_GetConvolutionParameterfv,
-	__glXDispSwap_GetConvolutionParameteriv,
-	__glXDispSwap_GetSeparableFilter,
-	__glXDispSwap_GetHistogram,
-	__glXDispSwap_GetHistogramParameterfv,
-	__glXDispSwap_GetHistogramParameteriv,
-	__glXDispSwap_GetMinmax,
-	__glXDispSwap_GetMinmaxParameterfv,
-	__glXDispSwap_GetMinmaxParameteriv,
-};
 
 __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE] = {
 	__glXNoSuchRenderOpcode,
diff --git a/GL/glx/g_disptab.h b/GL/glx/g_disptab.h
index 4a1c5e9..5ee242f 100644
--- a/GL/glx/g_disptab.h
+++ b/GL/glx/g_disptab.h
@@ -34,97 +34,33 @@
 ** version 1.2.1 Specification.
 */
 
-extern int __glXRender(__GLXclientState*, GLbyte*);
-extern int __glXRenderLarge(__GLXclientState*, GLbyte*);
-extern int __glXCreateContext(__GLXclientState*, GLbyte*);
-extern int __glXDestroyContext(__GLXclientState*, GLbyte*);
-extern int __glXMakeCurrent(__GLXclientState*, GLbyte*);
-extern int __glXIsDirect(__GLXclientState*, GLbyte*);
-extern int __glXQueryVersion(__GLXclientState*, GLbyte*);
-extern int __glXWaitGL(__GLXclientState*, GLbyte*);
-extern int __glXWaitX(__GLXclientState*, GLbyte*);
-extern int __glXCopyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
-extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
-extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
-extern int __glXUseXFont(__GLXclientState*, GLbyte*);
-extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXGetVisualConfigs(__GLXclientState*, GLbyte*);
-extern int __glXDestroyGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXVendorPrivate(__GLXclientState*, GLbyte*);
-extern int __glXVendorPrivateWithReply(__GLXclientState*, GLbyte*);
-extern int __glXQueryExtensionsString(__GLXclientState*, GLbyte*);
-extern int __glXQueryServerString(__GLXclientState*, GLbyte*);
-extern int __glXClientInfo(__GLXclientState*, GLbyte*);
-extern int __glXMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXGetFBConfigs(__GLXclientState*, GLbyte*);
-extern int __glXCreatePixmap(__GLXclientState*, GLbyte*);
-extern int __glXDestroyPixmap(__GLXclientState*, GLbyte*);
-extern int __glXCreateNewContext(__GLXclientState*, GLbyte*);
-extern int __glXQueryContext(__GLXclientState*, GLbyte*);
-extern int __glXMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXCreatePbuffer(__GLXclientState*, GLbyte*);
-extern int __glXDestroyPbuffer(__GLXclientState*, GLbyte*);
-extern int __glXGetDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXChangeDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXCreateWindow(__GLXclientState*, GLbyte*);
-extern int __glXDestroyWindow(__GLXclientState*, GLbyte*);
-
-extern int __glXSwapRender(__GLXclientState*, GLbyte*);
-extern int __glXSwapRenderLarge(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapIsDirect(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryVersion(__GLXclientState*, GLbyte*);
-extern int __glXSwapWaitGL(__GLXclientState*, GLbyte*);
-extern int __glXSwapWaitX(__GLXclientState*, GLbyte*);
-extern int __glXSwapCopyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
-extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetVisualConfigs(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapVendorPrivate(__GLXclientState*, GLbyte*);
-extern int __glXSwapVendorPrivateWithReply(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryExtensionsString(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryServerString(__GLXclientState*, GLbyte*);
-extern int __glXSwapClientInfo(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetFBConfigs(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreatePixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateNewContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreatePbuffer(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyPbuffer(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXSwapChangeDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateWindow(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyWindow(__GLXclientState*, GLbyte*);
+extern int __glXDisp_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+
+extern int __glXDispSwap_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+
 
 
 #define __GLX_MIN_GLXCMD_OPCODE 1
 #define __GLX_MAX_GLXCMD_OPCODE 20
 #define __GLX_MIN_RENDER_OPCODE 1
-/*#define __GLX_MAX_RENDER_OPCODE 213*/
 #define __GLX_MAX_RENDER_OPCODE 230
-#define __GLX_MIN_SINGLE_OPCODE 1
-#define __GLX_MAX_SINGLE_OPCODE 159
-#define __GLX_SINGLE_TABLE_SIZE 160
-/*#define __GLX_RENDER_TABLE_SIZE 214*/
 #define __GLX_RENDER_TABLE_SIZE 231
 extern __GLXdispatchRenderProcPtr __glXRenderTable[__GLX_RENDER_TABLE_SIZE];
-extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
 extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];
-extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE];
 
 /* Copied from mesa src/glx/x11/glxcmds.c
  *
diff --git a/GL/glx/g_disptab_EXT.c b/GL/glx/g_disptab_EXT.c
index 087fb24..9c171ac 100644
--- a/GL/glx/g_disptab_EXT.c
+++ b/GL/glx/g_disptab_EXT.c
@@ -2338,12 +2338,6 @@ __GLXdispatchRenderProcPtr __glXRenderTa
 	__glXDisp_FramebufferRenderbufferEXT, /* 4324 */
 	__glXDisp_GenerateMipmapEXT /* 4325 */
 };
-__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
-	__glXDisp_AreTexturesResidentEXT, /* 11 */
-	__glXDisp_DeleteTextures, /* 12 */
-	__glXDisp_GenTexturesEXT, /* 13 */
-	__glXDisp_IsTextureEXT, /* 14 */
-};
 
 
 __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
@@ -4647,10 +4641,3 @@ __GLXdispatchRenderProcPtr __glXSwapRend
 	__glXDispSwap_FramebufferRenderbufferEXT, /* 4324 */
 	__glXDispSwap_GenerateMipmapEXT /* 4325 */
 };
-__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
-	__glXDispSwap_AreTexturesResidentEXT, /* 11 */
-	__glXDispSwap_DeleteTextures, /* 12 */
-	__glXDispSwap_GenTexturesEXT, /* 13 */
-	__glXDispSwap_IsTextureEXT, /* 14 */
-};
-
diff --git a/GL/glx/g_disptab_EXT.h b/GL/glx/g_disptab_EXT.h
index 62a7517..0b59171 100644
--- a/GL/glx/g_disptab_EXT.h
+++ b/GL/glx/g_disptab_EXT.h
@@ -36,12 +36,7 @@
 
 #define __GLX_MIN_RENDER_OPCODE_EXT 2053
 #define __GLX_MAX_RENDER_OPCODE_EXT 4325
-#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
-#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
-#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)
 #define __GLX_RENDER_TABLE_SIZE_EXT (__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1)
 extern __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];
-extern __GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_VENDPRIV_TABLE_SIZE_EXT];
 extern __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];
-extern __GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_VENDPRIV_TABLE_SIZE_EXT];
 #endif /* _GLX_g_disptab_EXT_h_ */
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index f0a6474..b52528d 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -57,6 +57,8 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "indirect_dispatch.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
 /************************************************************************/
 
@@ -66,18 +68,6 @@ GlxSetRenderTables (struct _glapi_table 
     _glapi_set_dispatch (table);
 }
 
-static int __glXGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
-
-static int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXQueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxQueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxDestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
-static int __glxQueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-
 
 /************************************************************************/
 
@@ -254,7 +244,7 @@ int DoCreateContext(__GLXclientState *cl
 }
 
 
-int __glXCreateContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextReq *req = (xGLXCreateContextReq *) pc;
     return DoCreateContext( cl, req->context, req->shareList, req->visual,
@@ -262,7 +252,7 @@ int __glXCreateContext(__GLXclientState 
 }
 
 
-int __glXCreateNewContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateNewContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateNewContextReq *req = (xGLXCreateNewContextReq *) pc;
     return DoCreateContext( cl, req->context, req->shareList, req->fbconfig,
@@ -270,7 +260,7 @@ int __glXCreateNewContext(__GLXclientSta
 }
 
 
-int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextWithConfigSGIXReq *req = 
 	(xGLXCreateContextWithConfigSGIXReq *) pc;
@@ -281,7 +271,7 @@ int __glXCreateContextWithConfigSGIX(__G
 /*
 ** Destroy a GL context as an X resource.
 */
-int __glXDestroyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyContext(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXDestroyContextReq *req = (xGLXDestroyContextReq *) pc;
@@ -399,7 +389,7 @@ static void StartUsingContext(__GLXclien
 ** Make an OpenGL context and drawable current.
 */
 
-int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
 
@@ -407,7 +397,7 @@ int __glXMakeCurrent(__GLXclientState *c
 			  req->context, req->oldContextTag );
 }
 
-int __glXMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
 
@@ -415,7 +405,7 @@ int __glXMakeContextCurrent(__GLXclientS
 			  req->context, req->oldContextTag );
 }
 
-int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
 
@@ -750,7 +740,7 @@ int DoMakeCurrent( __GLXclientState *cl,
     return Success;
 }
 
-int __glXIsDirect(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_IsDirect(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXIsDirectReq *req = (xGLXIsDirectReq *) pc;
@@ -780,7 +770,7 @@ int __glXIsDirect(__GLXclientState *cl, 
     return Success;
 }
 
-int __glXQueryVersion(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryVersionReq *req = (xGLXQueryVersionReq *) pc;
@@ -811,7 +801,7 @@ int __glXQueryVersion(__GLXclientState *
     return Success;
 }
 
-int __glXWaitGL(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_WaitGL(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitGLReq *req = (xGLXWaitGLReq *)pc;
     int error;
@@ -823,7 +813,7 @@ int __glXWaitGL(__GLXclientState *cl, GL
     return Success;
 }
 
-int __glXWaitX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_WaitX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitXReq *req = (xGLXWaitXReq *)pc;
     int error;
@@ -840,7 +830,7 @@ int __glXWaitX(__GLXclientState *cl, GLb
     return Success;
 }
 
-int __glXCopyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CopyContext(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXCopyContextReq *req = (xGLXCopyContextReq *) pc;
@@ -1011,7 +1001,7 @@ int DoGetVisualConfigs(__GLXclientState 
     return Success;
 }
 
-int __glXGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetVisualConfigsReq *req = (xGLXGetVisualConfigsReq *) pc;
     return DoGetVisualConfigs( cl, req->screen, GL_FALSE );
@@ -1187,14 +1177,14 @@ int DoGetFBConfigs(__GLXclientState *cl,
 }
 
 
-int __glXGetFBConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetFBConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsReq *req = (xGLXGetFBConfigsReq *) pc;
     return DoGetFBConfigs( cl, req->screen, GL_FALSE );
 }
 
 
-int __glXGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsSGIXReq *req = (xGLXGetFBConfigsSGIXReq *) pc;
     return DoGetFBConfigs( cl, req->screen, GL_FALSE );
@@ -1290,21 +1280,21 @@ int DoCreateGLXPixmap(__GLXclientState *
     return Success;
 }
 
-int __glXCreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapReq *req = (xGLXCreateGLXPixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->visual, req->screen,
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXCreatePixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePixmapReq *req = (xGLXCreatePixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapWithConfigSGIXReq *req = 
 	(xGLXCreateGLXPixmapWithConfigSGIXReq *) pc;
@@ -1329,21 +1319,21 @@ int DoDestroyPixmap(__GLXclientState *cl
     return Success;
 }
 
-int __glXDestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
 
     return DoDestroyPixmap(cl, req->glxpixmap);
 }
 
-int __glXDestroyPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPixmapReq *req = (xGLXDestroyPixmapReq *) pc;
 
     return DoDestroyPixmap(cl, req->glxpixmap);
 }
 
-int __glXCreatePbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreatePbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePbufferReq *req = (xGLXCreatePbufferReq *) pc;
 
@@ -1352,7 +1342,7 @@ int __glXCreatePbuffer(__GLXclientState 
     return BadRequest;
 }
 
-int __glXDestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) pc;
 
@@ -1361,7 +1351,7 @@ int __glXDestroyPbuffer(__GLXclientState
     return BadRequest;
 }
 
-int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXChangeDrawableAttributesReq *req =
 	(xGLXChangeDrawableAttributesReq *) pc;
@@ -1371,7 +1361,7 @@ int __glXChangeDrawableAttributes(__GLXc
     return BadRequest;
 }
 
-int __glXCreateWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateWindowReq *req = (xGLXCreateWindowReq *) pc;
     ClientPtr client = cl->client;
@@ -1403,7 +1393,7 @@ int __glXCreateWindow(__GLXclientState *
     return Success;
 }
 
-int __glXDestroyWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyWindowReq *req = (xGLXDestroyWindowReq *) pc;
     ClientPtr client = cl->client;
@@ -1428,7 +1418,7 @@ int __glXDestroyWindow(__GLXclientState 
 ** this time that is of value.  Consequently, this code must be
 ** implemented by somebody other than SGI.
 */
-int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_SwapBuffers(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
@@ -1518,21 +1508,21 @@ int DoQueryContext(__GLXclientState *cl,
     return Success;
 }
 
-int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextInfoEXTReq *req = (xGLXQueryContextInfoEXTReq *) pc;
 
     return DoQueryContext(cl, req->context);
 }
 
-int __glXQueryContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextReq *req = (xGLXQueryContextReq *) pc;
 
     return DoQueryContext(cl, req->context);
 }
 
-int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_BindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     ClientPtr		 client = cl->client;
@@ -1568,7 +1558,7 @@ int __glXBindTexImageEXT(__GLXclientStat
 						    pGlxPixmap);
 }
 
-int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     ClientPtr		 client = cl->client;
@@ -1601,7 +1591,7 @@ int __glXReleaseTexImageEXT(__GLXclientS
 						       pGlxPixmap);
 }
 
-int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXContextTag         tag = req->contextTag;
@@ -1701,7 +1691,7 @@ DoGetDrawableAttributes(__GLXclientState
     return Success;
 }
 
-int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
     CARD32 *data;
@@ -1713,7 +1703,7 @@ int __glXGetDrawableAttributesSGIX(__GLX
     return DoGetDrawableAttributes(cl, drawable);
 }
 
-int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetDrawableAttributesReq *req = (xGLXGetDrawableAttributesReq *)pc;
 
@@ -1730,7 +1720,7 @@ int __glXGetDrawableAttributes(__GLXclie
 /*
 ** Execute all the drawing commands in a request.
 */
-int __glXRender(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -1742,7 +1732,7 @@ int __glXRender(__GLXclientState *cl, GL
 
     /*
     ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXSwapRender().  Any changes made here should also be
+    ** routine, __glXDisp_SwapRender().  Any changes made here should also be
     ** duplicated there.
     */
     
@@ -1832,7 +1822,7 @@ int __glXRender(__GLXclientState *cl, GL
 /*
 ** Execute a large rendering request (one that spans multiple X requests).
 */
-int __glXRenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
@@ -1845,7 +1835,7 @@ int __glXRenderLarge(__GLXclientState *c
 
     /*
     ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXSwapRenderLarge().  Any changes made here should also be
+    ** routine, __glXDisp_SwapRenderLarge().  Any changes made here should also be
     ** duplicated there.
     */
     
@@ -2043,7 +2033,7 @@ int __glXRenderLarge(__GLXclientState *c
 
 extern RESTYPE __glXSwapBarrierRes;
 
-static int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXBindSwapBarrierSGIXReq *req = (xGLXBindSwapBarrierSGIXReq *) pc;
@@ -2073,7 +2063,7 @@ static int __glXBindSwapBarrierSGIX(__GL
 }
 
 
-static int __glXQueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryMaxSwapBarriersSGIXReq *req =
@@ -2104,7 +2094,7 @@ static int __glXQueryMaxSwapBarriersSGIX
 
 #define GLX_BAD_HYPERPIPE_SGIX 92
 
-static int __glxQueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryHyperpipeNetworkSGIXReq * req = (xGLXQueryHyperpipeNetworkSGIXReq *) pc;
@@ -2144,7 +2134,7 @@ static int __glxQueryHyperpipeNetworkSGI
     return Success;
 }
 
-static int __glxDestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXDestroyHyperpipeConfigSGIXReq * req =
@@ -2179,7 +2169,7 @@ static int __glxDestroyHyperpipeConfigSG
     return Success;
 }
 
-static int __glxQueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryHyperpipeConfigSGIXReq * req =
@@ -2223,7 +2213,7 @@ static int __glxQueryHyperpipeConfigSGIX
     return Success;
 }
 
-static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXHyperpipeConfigSGIXReq * req =
@@ -2274,40 +2264,21 @@ static int __glxHyperpipeConfigSGIX(__GL
 ** allocating the entry points in the dispatch table.
 */
 
-int __glXVendorPrivate(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_VendorPrivate(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXVendorPrivateReq *req;
-    GLint vendorcode;
+    xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
+    GLint vendorcode = req->vendorCode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
-    req = (xGLXVendorPrivateReq *) pc;
-    vendorcode = req->vendorCode;
 
-#ifndef __DARWIN__
-    switch( vendorcode ) {
-    case X_GLvop_SampleMaskSGIS:
-	CALL_SampleMaskSGIS( GET_DISPATCH(),
-			     (*(GLfloat *)(pc + 4), *(GLboolean *)(pc + 8)) );
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 0);
+    if (proc != NULL) {
+	(*proc)(cl, (GLbyte*)req);
 	return Success;
-    case X_GLvop_SamplePatternSGIS:
-	CALL_SamplePatternSGIS( GET_DISPATCH(),	(*(GLenum *)(pc + 4)) );
-	return Success;
-    case X_GLXvop_BindSwapBarrierSGIX:
-        return __glXBindSwapBarrierSGIX(cl, pc);
-    case X_GLXvop_BindTexImageEXT:
-	return __glXBindTexImageEXT(cl, pc);
-    case X_GLXvop_ReleaseTexImageEXT:
-	return __glXReleaseTexImageEXT(cl, pc);
-    case X_GLXvop_CopySubBufferMESA:
-	return __glXCopySubBufferMESA(cl, pc);
     }
-#endif
 
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])
-							(cl, (GLbyte*)req);
-	return Success;
-    }
     /*
     ** This sample implemention does not support any private requests.
     */
@@ -2315,67 +2286,25 @@ int __glXVendorPrivate(__GLXclientState 
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_VendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXVendorPrivateWithReplyReq *req;
-    GLint vendorcode;
+    xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
+    GLint vendorcode = req->vendorCode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
-    req = (xGLXVendorPrivateWithReplyReq *) pc;
-    vendorcode = req->vendorCode;
 
-    switch (vendorcode) {
-      case X_GLXvop_QueryContextInfoEXT:
-	return __glXQueryContextInfoEXT(cl, pc);
-      case X_GLXvop_MakeCurrentReadSGI:
-	return __glXMakeCurrentReadSGI(cl, pc);
-      case X_GLXvop_QueryMaxSwapBarriersSGIX:
-        return __glXQueryMaxSwapBarriersSGIX(cl, pc);
-      case X_GLXvop_QueryHyperpipeNetworkSGIX:
-        return __glxQueryHyperpipeNetworkSGIX(cl, pc);
-      case X_GLXvop_QueryHyperpipeConfigSGIX:
-        return __glxQueryHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_DestroyHyperpipeConfigSGIX:
-        return __glxDestroyHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_HyperpipeConfigSGIX:
-        return __glxHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_GetFBConfigsSGIX:
-	return __glXGetFBConfigsSGIX(cl, pc);
-      case X_GLXvop_CreateContextWithConfigSGIX:
-	return __glXCreateContextWithConfigSGIX(cl, pc);
-      case X_GLXvop_CreateGLXPixmapWithConfigSGIX:
-	return __glXCreateGLXPixmapWithConfigSGIX(cl, pc);
-      case X_GLXvop_GetDrawableAttributesSGIX:
-	return __glXGetDrawableAttributesSGIX(cl, pc);
-      case X_GLvop_IsRenderbufferEXT:
-	return __glXDisp_IsRenderbufferEXT(cl, pc);
-      case X_GLvop_GenRenderbuffersEXT:
-	return __glXDisp_GenRenderbuffersEXT(cl, pc);
-      case X_GLvop_GetRenderbufferParameterivEXT:
-	return __glXDisp_GetRenderbufferParameterivEXT(cl, pc);
-      case X_GLvop_IsFramebufferEXT:
-	return __glXDisp_IsFramebufferEXT(cl, pc);
-      case X_GLvop_GenFramebuffersEXT:
-	return __glXDisp_GenFramebuffersEXT(cl, pc);
-      case X_GLvop_CheckFramebufferStatusEXT:
-	return __glXDisp_CheckFramebufferStatusEXT(cl, pc);
-      case X_GLvop_GetFramebufferAttachmentParameterivEXT:
-	return __glXDisp_GetFramebufferAttachmentParameterivEXT(cl, pc);
-      default:
-	break;
-    }
-
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	return 
-	(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])
-							(cl, (GLbyte*)req);
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 0);
+    if (proc != NULL) {
+	return (*proc)(cl, (GLbyte*)req);
     }
 
     cl->client->errorValue = vendorcode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXQueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryExtensionsStringReq *req = (xGLXQueryExtensionsStringReq *) pc;
@@ -2420,7 +2349,7 @@ int __glXQueryExtensionsString(__GLXclie
     return Success;
 }
 
-int __glXQueryServerString(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryServerStringReq *req = (xGLXQueryServerStringReq *) pc;
@@ -2478,7 +2407,7 @@ int __glXQueryServerString(__GLXclientSt
     return Success;
 }
 
-int __glXClientInfo(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ClientInfo(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXClientInfoReq *req = (xGLXClientInfoReq *) pc;
     const char *buf;
@@ -2492,4 +2421,3 @@ int __glXClientInfo(__GLXclientState *cl
 
     return Success;
 }
-
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index bb86243..78a26f5 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -54,11 +54,9 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "indirect_dispatch.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
-static int __glXSwapGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
 
 /************************************************************************/
 
@@ -69,7 +67,7 @@ static int __glXSwapMakeCurrentReadSGI(_
 ** it is called at the end of the unswapped routine.
 */
 
-int __glXSwapCreateContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextReq *req = (xGLXCreateContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -84,7 +82,7 @@ int __glXSwapCreateContext(__GLXclientSt
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapCreateNewContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateNewContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateNewContextReq *req = (xGLXCreateNewContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -100,7 +98,7 @@ int __glXSwapCreateNewContext(__GLXclien
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextWithConfigSGIXReq *req =
 	(xGLXCreateContextWithConfigSGIXReq *) pc;
@@ -117,7 +115,7 @@ int __glXSwapCreateContextWithConfigSGIX
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapDestroyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyContextReq *req = (xGLXDestroyContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -125,10 +123,10 @@ int __glXSwapDestroyContext(__GLXclientS
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXDestroyContext(cl, pc);
+    return __glXDisp_DestroyContext(cl, pc);
 }
 
-int __glXSwapMakeCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -142,7 +140,7 @@ int __glXSwapMakeCurrent(__GLXclientStat
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -157,7 +155,7 @@ int __glXSwapMakeContextCurrent(__GLXcli
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -172,7 +170,7 @@ int __glXSwapMakeCurrentReadSGI(__GLXcli
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapIsDirect(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_IsDirect(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXIsDirectReq *req = (xGLXIsDirectReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -180,10 +178,10 @@ int __glXSwapIsDirect(__GLXclientState *
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXIsDirect(cl, pc);
+    return __glXDisp_IsDirect(cl, pc);
 }
 
-int __glXSwapQueryVersion(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryVersion(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryVersionReq *req = (xGLXQueryVersionReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -192,10 +190,10 @@ int __glXSwapQueryVersion(__GLXclientSta
     __GLX_SWAP_INT(&req->majorVersion);
     __GLX_SWAP_INT(&req->minorVersion);
 
-    return __glXQueryVersion(cl, pc);
+    return __glXDisp_QueryVersion(cl, pc);
 }
 
-int __glXSwapWaitGL(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_WaitGL(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitGLReq *req = (xGLXWaitGLReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -203,10 +201,10 @@ int __glXSwapWaitGL(__GLXclientState *cl
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->contextTag);
 
-    return __glXWaitGL(cl, pc);
+    return __glXDisp_WaitGL(cl, pc);
 }
 
-int __glXSwapWaitX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_WaitX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitXReq *req = (xGLXWaitXReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -214,10 +212,10 @@ int __glXSwapWaitX(__GLXclientState *cl,
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->contextTag);
 
-    return __glXWaitX(cl, pc);
+    return __glXDisp_WaitX(cl, pc);
 }
 
-int __glXSwapCopyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CopyContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCopyContextReq *req = (xGLXCopyContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -227,10 +225,10 @@ int __glXSwapCopyContext(__GLXclientStat
     __GLX_SWAP_INT(&req->dest);
     __GLX_SWAP_INT(&req->mask);
 
-    return __glXCopyContext(cl, pc);
+    return __glXDisp_CopyContext(cl, pc);
 }
 
-int __glXSwapGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetVisualConfigsReq *req = (xGLXGetVisualConfigsReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -239,7 +237,7 @@ int __glXSwapGetVisualConfigs(__GLXclien
     return DoGetVisualConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapGetFBConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetFBConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsReq *req = (xGLXGetFBConfigsReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -248,7 +246,7 @@ int __glXSwapGetFBConfigs(__GLXclientSta
     return DoGetFBConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsSGIXReq *req = (xGLXGetFBConfigsSGIXReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -257,7 +255,7 @@ int __glXSwapGetFBConfigsSGIX(__GLXclien
     return DoGetFBConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapCreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapReq *req = (xGLXCreateGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -272,7 +270,7 @@ int __glXSwapCreateGLXPixmap(__GLXclient
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapCreatePixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePixmapReq *req = (xGLXCreatePixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -287,7 +285,7 @@ int __glXSwapCreatePixmap(__GLXclientSta
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapWithConfigSGIXReq *req = 
 	(xGLXCreateGLXPixmapWithConfigSGIXReq *) pc;
@@ -303,7 +301,7 @@ int __glXSwapCreateGLXPixmapWithConfigSG
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapDestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -311,10 +309,10 @@ int __glXSwapDestroyGLXPixmap(__GLXclien
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->glxpixmap);
 
-    return __glXDestroyGLXPixmap(cl, pc);
+    return __glXDisp_DestroyGLXPixmap(cl, pc);
 }
 
-int __glXSwapDestroyPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -322,10 +320,10 @@ int __glXSwapDestroyPixmap(__GLXclientSt
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->glxpixmap);
 
-    return __glXDestroyGLXPixmap(cl, pc);
+    return __glXDisp_DestroyGLXPixmap(cl, pc);
 }
 
-int __glXSwapQueryContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextReq *req = (xGLXQueryContextReq *) pc;    
 
@@ -334,7 +332,7 @@ int __glXSwapQueryContext(__GLXclientSta
     return BadRequest;    
 }
 
-int __glXSwapCreatePbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreatePbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePbufferReq *req = (xGLXCreatePbufferReq *) pc;    
 
@@ -343,14 +341,14 @@ int __glXSwapCreatePbuffer(__GLXclientSt
     return BadRequest;    
 }
 
-int __glXSwapDestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) req;
 
     return BadRequest;
 }
 
-int __glXSwapChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXChangeDrawableAttributesReq *req =
 	(xGLXChangeDrawableAttributesReq *) req;
@@ -358,7 +356,7 @@ int __glXSwapChangeDrawableAttributes(__
     return BadRequest;
 }
 
-int __glXSwapCreateWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateWindowReq *req = (xGLXCreateWindowReq *) pc;
 
@@ -367,7 +365,7 @@ int __glXSwapCreateWindow(__GLXclientSta
     return BadRequest;
 }
 
-int __glXSwapDestroyWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyWindowReq *req = (xGLXDestroyWindowReq *) pc;
 
@@ -376,7 +374,7 @@ int __glXSwapDestroyWindow(__GLXclientSt
     return BadRequest;
 }
 
-int __glXSwapSwapBuffers(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_SwapBuffers(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -385,10 +383,10 @@ int __glXSwapSwapBuffers(__GLXclientStat
     __GLX_SWAP_INT(&req->contextTag);
     __GLX_SWAP_INT(&req->drawable);
 
-    return __glXSwapBuffers(cl, pc);
+    return __glXDisp_SwapBuffers(cl, pc);
 }
 
-int __glXSwapUseXFont(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_UseXFont(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXUseXFontReq *req = (xGLXUseXFontReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -400,11 +398,11 @@ int __glXSwapUseXFont(__GLXclientState *
     __GLX_SWAP_INT(&req->count);
     __GLX_SWAP_INT(&req->listBase);
 
-    return __glXUseXFont(cl, pc);
+    return __glXDisp_UseXFont(cl, pc);
 }
 
 
-int __glXSwapQueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryExtensionsStringReq *req = (xGLXQueryExtensionsStringReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -412,10 +410,10 @@ int __glXSwapQueryExtensionsString(__GLX
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->screen);
 
-    return __glXQueryExtensionsString(cl, pc);
+    return __glXDisp_QueryExtensionsString(cl, pc);
 }
 
-int __glXSwapQueryServerString(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryServerString(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryServerStringReq *req = (xGLXQueryServerStringReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -424,10 +422,10 @@ int __glXSwapQueryServerString(__GLXclie
     __GLX_SWAP_INT(&req->screen);
     __GLX_SWAP_INT(&req->name);
 
-    return __glXQueryServerString(cl, pc);
+    return __glXDisp_QueryServerString(cl, pc);
 }
 
-int __glXSwapClientInfo(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ClientInfo(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXClientInfoReq *req = (xGLXClientInfoReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -437,10 +435,10 @@ int __glXSwapClientInfo(__GLXclientState
     __GLX_SWAP_INT(&req->minor);
     __GLX_SWAP_INT(&req->numbytes);
 
-    return __glXClientInfo(cl, pc);
+    return __glXDisp_ClientInfo(cl, pc);
 }
 
-int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextInfoEXTReq *req = (xGLXQueryContextInfoEXTReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -448,10 +446,10 @@ int __glXSwapQueryContextInfoEXT(__GLXcl
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXQueryContextInfoEXT(cl, pc);
+    return __glXDisp_QueryContextInfoEXT(cl, pc);
 }
 
-int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_BindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -469,10 +467,10 @@ int __glXSwapBindTexImageEXT(__GLXclient
     __GLX_SWAP_INT(drawId);
     __GLX_SWAP_INT(buffer);
 
-    return __glXBindTexImageEXT(cl, (GLbyte *)pc);
+    return __glXDisp_BindTexImageEXT(cl, (GLbyte *)pc);
 }
 
-int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -490,10 +488,10 @@ int __glXSwapReleaseTexImageEXT(__GLXcli
     __GLX_SWAP_INT(drawId);
     __GLX_SWAP_INT(buffer);
 
-    return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
+    return __glXDisp_ReleaseTexImageEXT(cl, (GLbyte *)pc);
 }
 
-int __glXSwapCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -514,11 +512,11 @@ int __glXSwapCopySubBufferMESA(__GLXclie
     __GLX_SWAP_INT(pc + 12);
     __GLX_SWAP_INT(pc + 16);
 
-    return __glXCopySubBufferMESA(cl, pc);
+    return __glXDisp_CopySubBufferMESA(cl, pc);
 
 }
 
-int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
     CARD32 *data;
@@ -530,10 +528,10 @@ int __glXSwapGetDrawableAttributesSGIX(_
     __GLX_SWAP_INT(&req->contextTag);
     __GLX_SWAP_INT(data);
 
-    return __glXGetDrawableAttributesSGIX(cl, pc);
+    return __glXDisp_GetDrawableAttributesSGIX(cl, pc);
 }
 
-int __glXSwapGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetDrawableAttributesReq *req = (xGLXGetDrawableAttributesReq *)pc;
     
@@ -542,7 +540,7 @@ int __glXSwapGetDrawableAttributes(__GLX
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->drawable);
 
-    return __glXGetDrawableAttributes(cl, pc);
+    return __glXDisp_GetDrawableAttributes(cl, pc);
 }
 
 
@@ -641,7 +639,7 @@ void __glXSwapGetDrawableAttributesReply
 ** client library to send batches of GL rendering commands.
 */
 
-int __glXSwapRender(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_Render(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -743,7 +741,7 @@ int __glXSwapRender(__GLXclientState *cl
 /*
 ** Execute a large rendering request (one that spans multiple X requests).
 */
-int __glXSwapRenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
@@ -969,10 +967,11 @@ int __glXSwapRenderLarge(__GLXclientStat
 ** allocating these entry points in the dispatch table.
 */
 
-int __glXSwapVendorPrivate(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_VendorPrivate(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req;
     GLint vendorcode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
     __GLX_DECLARE_SWAP_VARIABLES;
 
@@ -982,41 +981,24 @@ int __glXSwapVendorPrivate(__GLXclientSt
 
     vendorcode = req->vendorCode;
 
-#ifndef __DARWIN__
-    switch( vendorcode ) {
-    case X_GLvop_SampleMaskSGIS:
-	__GLX_SWAP_FLOAT(pc + 4);
-	__GLX_SWAP_INT(pc + 8);
-	CALL_SampleMaskSGIS( GET_DISPATCH(),
-			     (*(GLfloat *)(pc + 4), *(GLboolean *)(pc + 8)) );
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 1);
+    if (proc != NULL) {
+	(*proc)(cl, (GLbyte*)req);
 	return Success;
-    case X_GLvop_SamplePatternSGIS:
-	__GLX_SWAP_INT(pc + 4);
-	CALL_SamplePatternSGIS( GET_DISPATCH(), (*(GLenum *)(pc + 4)) );
-	return Success;
-    case X_GLXvop_BindTexImageEXT:
-	return __glXSwapBindTexImageEXT(cl, pc);
-    case X_GLXvop_ReleaseTexImageEXT:
-	return __glXSwapReleaseTexImageEXT(cl, pc);
-    case X_GLXvop_CopySubBufferMESA:
-	return __glXSwapCopySubBufferMESA(cl, pc);
     }
-#endif
-
 
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	(*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);
-	return Success;
-    }
     cl->client->errorValue = req->vendorCode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXSwapVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
+
+int __glXDispSwap_VendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req;
     GLint vendorcode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
     __GLX_DECLARE_SWAP_VARIABLES;
 
@@ -1026,42 +1008,13 @@ int __glXSwapVendorPrivateWithReply(__GL
 
     vendorcode = req->vendorCode;
 
-    switch (vendorcode) {
-      case X_GLXvop_QueryContextInfoEXT:
-	return __glXSwapQueryContextInfoEXT(cl, pc);
-      case X_GLXvop_MakeCurrentReadSGI:
-	return __glXSwapMakeCurrentReadSGI(cl, pc);
-      case X_GLXvop_GetFBConfigsSGIX:
-	return __glXSwapGetFBConfigsSGIX(cl, pc);
-      case X_GLXvop_CreateContextWithConfigSGIX:
-	return __glXSwapCreateContextWithConfigSGIX(cl, pc);
-      case X_GLXvop_CreateGLXPixmapWithConfigSGIX:
-	return __glXSwapCreateGLXPixmapWithConfigSGIX(cl, pc);
-      case X_GLXvop_GetDrawableAttributesSGIX:
-	return __glXSwapGetDrawableAttributesSGIX(cl, pc);
-      case X_GLvop_IsRenderbufferEXT:
-	return __glXDispSwap_IsRenderbufferEXT(cl, pc);
-      case X_GLvop_GenRenderbuffersEXT:
-	return __glXDispSwap_GenRenderbuffersEXT(cl, pc);
-      case X_GLvop_GetRenderbufferParameterivEXT:
-	return __glXDispSwap_GetRenderbufferParameterivEXT(cl, pc);
-      case X_GLvop_IsFramebufferEXT:
-	return __glXDispSwap_IsFramebufferEXT(cl, pc);
-      case X_GLvop_GenFramebuffersEXT:
-	return __glXDispSwap_GenFramebuffersEXT(cl, pc);
-      case X_GLvop_CheckFramebufferStatusEXT:
-	return __glXDispSwap_CheckFramebufferStatusEXT(cl, pc);
-      case X_GLvop_GetFramebufferAttachmentParameterivEXT:
-	return __glXDispSwap_GetFramebufferAttachmentParameterivEXT(cl, pc);
-      default:
-	break;
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 1);
+    if (proc != NULL) {
+	return (*proc)(cl, (GLbyte*)req);
     }
 
-
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	return (*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);
-    }
     cl->client->errorValue = req->vendorCode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index 8bbb83f..5600d17 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -32,6 +32,8 @@
 #include "unpack.h"
 #include "glxutil.h"
 #include "glxext.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
 /*
 ** The last context used by the server.  It is the context that is current
@@ -452,7 +454,7 @@ static int __glXDispatch(ClientPtr clien
 {
     REQUEST(xGLXSingleReq);
     CARD8 opcode;
-    int (*proc)(__GLXclientState *cl, GLbyte *pc);
+    __GLXdispatchSingleProcPtr proc;
     __GLXclientState *cl;
     int retval;
 
@@ -482,13 +484,6 @@ static int __glXDispatch(ClientPtr clien
     }
 
     /*
-    ** Check for valid opcode.
-    */
-    if (opcode >= __GLX_SINGLE_TABLE_SIZE) {
-	return BadRequest;
-    }
-
-    /*
     ** If we're expecting a glXRenderLarge request, this better be one.
     */
     if ((cl->largeCmdRequestsSoFar != 0) && (opcode != X_GLXRenderLarge)) {
@@ -499,29 +494,27 @@ static int __glXDispatch(ClientPtr clien
     /*
     ** Use the opcode to index into the procedure table.
     */
-    if (client->swapped)
-	proc = __glXSwapSingleTable[opcode];
-    else
-	proc = __glXSingleTable[opcode];
-
-    __glXleaveServer();
+    proc = (__GLXdispatchSingleProcPtr) __glXGetProtocolDecodeFunction(& Single_dispatch_info,
+								       opcode,
+								       client->swapped);
+    if (proc != NULL) {
+	__glXleaveServer();
 
-    inDispatch = True;
+	inDispatch = True;
 
-    retval = proc(cl, (GLbyte *) stuff);
+	retval = (*proc)(cl, (GLbyte *) stuff);
 
-    inDispatch = False;
+	inDispatch = False;
 
-    __glXenterServer();
+	__glXenterServer();
+    }
+    else {
+	retval = BadRequest;
+    }
 
     return retval;
 }
 
-int __glXNoSuchSingleOpcode(__GLXclientState *cl, GLbyte *pc)
-{
-    return BadRequest;
-}
-
 void __glXNoSuchRenderOpcode(GLbyte *pc)
 {
     return;
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index f48f331..b19a716 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -67,7 +67,6 @@ extern GLboolean __glXFreeContext(__GLXc
 extern void __glXFlushContextCache(void);
 
 extern void __glXNoSuchRenderOpcode(GLbyte*);
-extern int __glXNoSuchSingleOpcode(__GLXclientState*, GLbyte*);
 extern void __glXErrorCallBack(__GLinterface *gc, GLenum code);
 extern void __glXClearErrorOccured(void);
 extern GLboolean __glXErrorOccured(void);
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 8ece1e2..ce91ce3 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -196,9 +196,11 @@ extern __GLXprocPtr __glXProcTable[];
 /*
  * Tables for computing the size of each rendering command.
  */
+typedef int (*gl_proto_size_func)(const GLbyte *, Bool);
+
 typedef struct {
     int bytes;
-    int (*varsize)(const GLbyte *pc, Bool swap);
+    gl_proto_size_func varsize;
 } __GLXrenderSizeData;
 extern __GLXrenderSizeData __glXRenderSizeTable[];
 extern __GLXrenderSizeData __glXRenderSizeTable_EXT[];
diff --git a/GL/glx/indirect_dispatch.h b/GL/glx/indirect_dispatch.h
index 950d484..07bc97b 100644
--- a/GL/glx/indirect_dispatch.h
+++ b/GL/glx/indirect_dispatch.h
@@ -67,6 +67,8 @@ extern HIDDEN void __glXDisp_Histogram(G
 extern HIDDEN void __glXDispSwap_Histogram(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PolygonStipple(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PolygonStipple(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetPixelMapfv(struct __GLXclientStateRec *, GLbyte *);
@@ -79,16 +81,26 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_EvalCoord2fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EvalCoord2fv(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexubv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexubv(GLbyte * pc);
+extern HIDDEN int __glXDisp_Render(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_Render(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetQueryivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetQueryivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexImage3D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexImage3D(GLbyte * pc);
+extern HIDDEN int __glXDisp_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color3ubv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3ubv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetQueryObjectivARB(struct __GLXclientStateRec *, GLbyte *);
@@ -105,16 +117,18 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3bv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3bv(GLbyte * pc);
-extern HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
+extern HIDDEN int __glXDisp_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Vertex3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyConvolutionFilter1D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendColor(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendColor(GLbyte * pc);
-extern HIDDEN void __glXDisp_CallLists(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
+extern HIDDEN void __glXDisp_Scalef(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PassThrough(GLbyte * pc);
@@ -123,8 +137,10 @@ extern HIDDEN void __glXDisp_Viewport(GL
 extern HIDDEN void __glXDispSwap_Viewport(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NusvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4NusvARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
+extern HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
 extern HIDDEN void __glXDisp_ResetHistogram(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ResetHistogram(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramNamedParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
@@ -145,10 +161,14 @@ extern HIDDEN int __glXDisp_GetConvoluti
 extern HIDDEN int __glXDispSwap_GetConvolutionParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Vertex2dv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex2dv(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord1fvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord3iv(GLbyte * pc);
+extern HIDDEN int __glXDisp_CopyContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CopyContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PointSize(GLbyte * pc);
@@ -161,36 +181,40 @@ extern HIDDEN void __glXDisp_Vertex4sv(G
 extern HIDDEN void __glXDispSwap_Vertex4sv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnvi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvi(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttribs3dvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc);
+extern HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Scaled(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Scaled(GLbyte * pc);
-extern HIDDEN void __glXDisp_Scalef(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
+extern HIDDEN void __glXDisp_CallLists(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
 extern HIDDEN void __glXDisp_AlphaFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_AlphaFunc(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord2iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord2iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CompressedTexImage1DARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CompressedTexImage1DARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_Rotated(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
 extern HIDDEN int __glXDisp_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_EdgeFlagv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EdgeFlagv(GLbyte * pc);
-extern HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
+extern HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexParameterf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameterf(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexParameteri(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameteri(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_DrawPixels(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DrawPixels(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord2svARB(GLbyte * pc);
@@ -215,8 +239,6 @@ extern HIDDEN void __glXDisp_Color4usv(G
 extern HIDDEN void __glXDispSwap_Color4usv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Fogi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Fogi(GLbyte * pc);
-extern HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelMapfv(GLbyte * pc);
@@ -229,8 +251,6 @@ extern HIDDEN int __glXDisp_AreTexturesR
 extern HIDDEN int __glXDispSwap_AreTexturesResident(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_IsRenderbufferEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_IsRenderbufferEXT(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PointParameterfvEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PointParameterfvEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color3bv(GLbyte * pc);
@@ -291,8 +311,14 @@ extern HIDDEN int __glXDisp_CheckFramebu
 extern HIDDEN int __glXDispSwap_CheckFramebufferStatusEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetVertexAttribivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribivARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Normal3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4ivARB(GLbyte * pc);
@@ -305,6 +331,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexSubImage2D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexSubImage2D(GLbyte * pc);
 extern HIDDEN void __glXDisp_DeleteRenderbuffersEXT(GLbyte * pc);
@@ -313,6 +341,8 @@ extern HIDDEN void __glXDisp_TexGenfv(GL
 extern HIDDEN void __glXDispSwap_TexGenfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4bvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4bvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
@@ -337,6 +367,8 @@ extern HIDDEN void __glXDisp_EndQueryARB
 extern HIDDEN void __glXDispSwap_EndQueryARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_DepthMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DepthMask(GLbyte * pc);
+extern HIDDEN void __glXDisp_Rotated(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_StencilOp(GLbyte * pc);
@@ -345,6 +377,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord3svARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnvfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvfv(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_LoadMatrixf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_LoadMatrixf(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color4bv(GLbyte * pc);
@@ -361,6 +395,8 @@ extern HIDDEN void __glXDisp_LogicOp(GLb
 extern HIDDEN void __glXDispSwap_LogicOp(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord4fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord4fv(GLbyte * pc);
+extern HIDDEN int __glXDisp_WaitX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_WaitX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttrib2dvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_FramebufferRenderbufferEXT(GLbyte * pc);
@@ -371,6 +407,8 @@ extern HIDDEN int __glXDisp_GenTextures(
 extern HIDDEN int __glXDispSwap_GenTextures(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture1DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture1DEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramParameter4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramParameter4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos2sv(GLbyte * pc);
@@ -383,6 +421,8 @@ extern HIDDEN void __glXDisp_TexCoord2fv
 extern HIDDEN void __glXDispSwap_TexCoord2fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord1sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord1sv(GLbyte * pc);
+extern HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
 extern HIDDEN void __glXDisp_DepthFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DepthFunc(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelMapusv(GLbyte * pc);
@@ -391,6 +431,8 @@ extern HIDDEN void __glXDisp_PointParame
 extern HIDDEN void __glXDispSwap_PointParameterivNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendFunc(GLbyte * pc);
+extern HIDDEN int __glXDisp_WaitGL(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_WaitGL(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord3dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord3dvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_ProgramNamedParameter4dvNV(GLbyte * pc);
@@ -407,22 +449,26 @@ extern HIDDEN void __glXDisp_PushAttrib(
 extern HIDDEN void __glXDispSwap_PushAttrib(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4usvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4usvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_WindowPos3fvMESA(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_WindowPos3fvMESA(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib1svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_RasterPos3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyTexSubImage3D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyTexSubImage3D(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexiv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexiv(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_CopyColorTable(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyColorTable(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetHistogramParameterfv(struct __GLXclientStateRec *, GLbyte *);
@@ -431,8 +477,12 @@ extern HIDDEN void __glXDisp_Frustum(GLb
 extern HIDDEN void __glXDispSwap_Frustum(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexEnvf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvf(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord3ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord3ivARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib1dvARB(GLbyte * pc);
@@ -443,16 +493,18 @@ extern HIDDEN int __glXDisp_GetTexLevelP
 extern HIDDEN int __glXDispSwap_GetTexLevelParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ClearAccum(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ClearAccum(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetVertexAttribfvARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribfvARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SecondaryColor3ivEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SecondaryColor3ivEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord4iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord4iv(GLbyte * pc);
-extern HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
 extern HIDDEN void __glXDisp_SampleMaskSGIS(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SampleMaskSGIS(GLbyte * pc);
+extern HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4ubvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4ubvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyTexImage2D(GLbyte * pc);
@@ -467,6 +519,8 @@ extern HIDDEN void __glXDisp_Color4fv(GL
 extern HIDDEN void __glXDispSwap_Color4fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord4ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord4ivARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Lightiv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Lightiv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetQueryObjectuivARB(struct __GLXclientStateRec *, GLbyte *);
@@ -479,8 +533,6 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib2dvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs2svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc);
-extern HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_Rectdv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Rectdv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NivARB(GLbyte * pc);
@@ -495,8 +547,8 @@ extern HIDDEN void __glXDisp_CompressedT
 extern HIDDEN void __glXDispSwap_CompressedTexSubImage1DARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexGeni(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexGeni(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexGenf(GLbyte * pc);
@@ -513,6 +565,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NuivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4NuivARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color4sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color4sv(GLbyte * pc);
 extern HIDDEN int __glXDisp_IsProgramNV(struct __GLXclientStateRec *, GLbyte *);
@@ -531,14 +585,18 @@ extern HIDDEN int __glXDisp_DeleteQuerie
 extern HIDDEN int __glXDispSwap_DeleteQueriesARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SamplePatternSGIS(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SamplePatternSGIS(GLbyte * pc);
 extern HIDDEN int __glXDisp_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
 extern HIDDEN int __glXDisp_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_EvalCoord2dv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EvalCoord2dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib3svARB(GLbyte * pc);
@@ -563,10 +621,12 @@ extern HIDDEN void __glXDisp_TexImage1D(
 extern HIDDEN void __glXDispSwap_TexImage1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_FrontFace(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FrontFace(GLbyte * pc);
-extern HIDDEN void __glXDisp_SecondaryColor3ubvEXT(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_SecondaryColor3ubvEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttrib4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4dvARB(GLbyte * pc);
+extern HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
 extern HIDDEN void __glXDisp_ExecuteProgramNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ExecuteProgramNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3dv(GLbyte * pc);
@@ -585,6 +645,8 @@ extern HIDDEN int __glXDisp_GetFramebuff
 extern HIDDEN int __glXDispSwap_GetFramebufferAttachmentParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord4dvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultMatrixd(GLbyte * pc);
@@ -603,6 +665,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_ClearColor(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ClearColor(GLbyte * pc);
+extern HIDDEN int __glXDisp_IsDirect(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_IsDirect(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_DeleteFramebuffersEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DeleteFramebuffersEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnviv(GLbyte * pc);
@@ -633,6 +697,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SeparableFilter2D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SeparableFilter2D(GLbyte * pc);
 extern HIDDEN void __glXDisp_Map1d(GLbyte * pc);
@@ -647,6 +713,8 @@ extern HIDDEN void __glXDisp_ProgramPara
 extern HIDDEN void __glXDispSwap_ProgramParameters4fvNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_PixelTransferf(GLbyte * pc);
@@ -661,12 +729,10 @@ extern HIDDEN void __glXDisp_TexCoord1dv
 extern HIDDEN void __glXDispSwap_TexCoord1dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelTransferi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PixelTransferi(GLbyte * pc);
-extern HIDDEN int __glXDisp_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_SecondaryColor3ubvEXT(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_SecondaryColor3ubvEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib3fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc);
-extern HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_Clear(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Clear(GLbyte * pc);
 extern HIDDEN void __glXDisp_ReadBuffer(GLbyte * pc);
@@ -681,8 +747,10 @@ extern HIDDEN void __glXDisp_Convolution
 extern HIDDEN void __glXDispSwap_ConvolutionParameterf(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
+extern HIDDEN int __glXDisp_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_CallList(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs2fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Rectiv(GLbyte * pc);
@@ -697,6 +765,8 @@ extern HIDDEN void __glXDisp_BindRenderb
 extern HIDDEN void __glXDispSwap_BindRenderbufferEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_Vertex3sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex3sv(GLbyte * pc);
+extern HIDDEN int __glXDisp_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_DeleteProgramsNV(struct __GLXclientStateRec *, GLbyte *);
@@ -711,6 +781,8 @@ extern HIDDEN int __glXDisp_GetProgramSt
 extern HIDDEN int __glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_LineWidth(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_LineWidth(GLbyte * pc);
+extern HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexGendv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexGendv(GLbyte * pc);
 extern HIDDEN void __glXDisp_ResetMinmax(GLbyte * pc);
@@ -723,8 +795,10 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_CallList(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
+extern HIDDEN int __glXDisp_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
 extern HIDDEN void __glXDisp_Materialfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Materialfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord3fv(GLbyte * pc);
@@ -735,8 +809,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord1ivARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord2ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord2ivARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3iv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramLocalParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
@@ -759,16 +833,18 @@ extern HIDDEN void __glXDisp_PopMatrix(G
 extern HIDDEN void __glXDispSwap_PopMatrix(GLbyte * pc);
 extern HIDDEN int __glXDisp_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Map2d(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Map2d(GLbyte * pc);
 extern HIDDEN void __glXDisp_Map2f(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Map2f(GLbyte * pc);
 extern HIDDEN void __glXDisp_ProgramStringARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramStringARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetTexGenfv(struct __GLXclientStateRec *, GLbyte *);
@@ -799,6 +875,8 @@ extern HIDDEN void __glXDisp_Translatef(
 extern HIDDEN void __glXDispSwap_Translatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_StencilMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_StencilMask(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_IsList(struct __GLXclientStateRec *, GLbyte *);
@@ -813,8 +891,8 @@ extern HIDDEN void __glXDisp_CopyTexSubI
 extern HIDDEN void __glXDispSwap_CopyTexSubImage1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_CullFace(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CullFace(GLbyte * pc);
-extern HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttribs3svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_StencilFunc(GLbyte * pc);
@@ -837,6 +915,8 @@ extern HIDDEN int __glXDisp_GetPixelMapu
 extern HIDDEN int __glXDispSwap_GetPixelMapuiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexfv(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SecondaryColor3svEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SecondaryColor3svEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_IndexMask(GLbyte * pc);
@@ -885,8 +965,8 @@ extern HIDDEN void __glXDisp_TexCoord4dv
 extern HIDDEN void __glXDispSwap_TexCoord4dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Begin(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Begin(GLbyte * pc);
-extern HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
+extern HIDDEN int __glXDisp_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Rectfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Rectfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_LightModelf(GLbyte * pc);
@@ -901,16 +981,14 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetRenderbufferParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetRenderbufferParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
+extern HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ColorMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ColorMask(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos4iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos4iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Enable(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Enable(GLbyte * pc);
-extern HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs4svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMinmaxParameterfv(struct __GLXclientStateRec *, GLbyte *);
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
new file mode 100644
index 0000000..da5fb6b
--- /dev/null
+++ b/GL/glx/indirect_table.c
@@ -0,0 +1,509 @@
+/* DO NOT EDIT - This file generated automatically by glX_server_table.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2005, 2006
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+ * IBM,
+ * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <inttypes.h>
+#include "glxserver.h"
+#include "glxext.h"
+#include "indirect_dispatch.h"
+#include "indirect_reqsize.h"
+#include "g_disptab.h"
+#include "indirect_table.h"
+
+/*****************************************************************/
+/* tree depth = 3 */
+static const int_fast16_t Single_dispatch_tree[24] = {
+    /* [0] -> opcode range [0, 256], node depth 1 */
+    2,
+    5,
+    13,
+    16,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 64], node depth 2 */
+    2,
+    LEAF(0),
+    LEAF(16),
+    10,
+    EMPTY_LEAF,
+
+    /* [10] -> opcode range [32, 48], node depth 3 */
+    1,
+    LEAF(32),
+    EMPTY_LEAF,
+
+    /* [13] -> opcode range [64, 128], node depth 2 */
+    1,
+    EMPTY_LEAF,
+    LEAF(40),
+
+    /* [16] -> opcode range [128, 192], node depth 2 */
+    2,
+    LEAF(72),
+    LEAF(88),
+    21,
+    EMPTY_LEAF,
+
+    /* [21] -> opcode range [160, 176], node depth 3 */
+    1,
+    LEAF(104),
+    EMPTY_LEAF,
+
+};
+
+static const __GLXdispatchSingleProcPtr Single_function_table[112][2] = {
+    /* [  0] =     0 */ {NULL, NULL},
+    /* [  1] =     1 */ {__glXDisp_Render, __glXDispSwap_Render},
+    /* [  2] =     2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
+    /* [  3] =     3 */ {__glXDisp_CreateContext, __glXDispSwap_CreateContext},
+    /* [  4] =     4 */ {__glXDisp_DestroyContext, __glXDispSwap_DestroyContext},
+    /* [  5] =     5 */ {__glXDisp_MakeCurrent, __glXDispSwap_MakeCurrent},
+    /* [  6] =     6 */ {__glXDisp_IsDirect, __glXDispSwap_IsDirect},
+    /* [  7] =     7 */ {__glXDisp_QueryVersion, __glXDispSwap_QueryVersion},
+    /* [  8] =     8 */ {__glXDisp_WaitGL, __glXDispSwap_WaitGL},
+    /* [  9] =     9 */ {__glXDisp_WaitX, __glXDispSwap_WaitX},
+    /* [ 10] =    10 */ {__glXDisp_CopyContext, __glXDispSwap_CopyContext},
+    /* [ 11] =    11 */ {__glXDisp_SwapBuffers, __glXDispSwap_SwapBuffers},
+    /* [ 12] =    12 */ {__glXDisp_UseXFont, __glXDispSwap_UseXFont},
+    /* [ 13] =    13 */ {__glXDisp_CreateGLXPixmap, __glXDispSwap_CreateGLXPixmap},
+    /* [ 14] =    14 */ {__glXDisp_GetVisualConfigs, __glXDispSwap_GetVisualConfigs},
+    /* [ 15] =    15 */ {__glXDisp_DestroyGLXPixmap, __glXDispSwap_DestroyGLXPixmap},
+    /* [ 16] =    16 */ {__glXDisp_VendorPrivate, __glXDispSwap_VendorPrivate},
+    /* [ 17] =    17 */ {__glXDisp_VendorPrivateWithReply, __glXDispSwap_VendorPrivateWithReply},
+    /* [ 18] =    18 */ {__glXDisp_QueryExtensionsString, __glXDispSwap_QueryExtensionsString},
+    /* [ 19] =    19 */ {__glXDisp_QueryServerString, __glXDispSwap_QueryServerString},
+    /* [ 20] =    20 */ {__glXDisp_ClientInfo, __glXDispSwap_ClientInfo},
+    /* [ 21] =    21 */ {__glXDisp_GetFBConfigs, __glXDispSwap_GetFBConfigs},
+    /* [ 22] =    22 */ {__glXDisp_CreatePixmap, __glXDispSwap_CreatePixmap},
+    /* [ 23] =    23 */ {__glXDisp_DestroyPixmap, __glXDispSwap_DestroyPixmap},
+    /* [ 24] =    24 */ {__glXDisp_CreateNewContext, __glXDispSwap_CreateNewContext},
+    /* [ 25] =    25 */ {__glXDisp_QueryContext, __glXDispSwap_QueryContext},
+    /* [ 26] =    26 */ {__glXDisp_MakeContextCurrent, __glXDispSwap_MakeContextCurrent},
+    /* [ 27] =    27 */ {__glXDisp_CreatePbuffer, __glXDispSwap_CreatePbuffer},
+    /* [ 28] =    28 */ {__glXDisp_DestroyPbuffer, __glXDispSwap_DestroyPbuffer},
+    /* [ 29] =    29 */ {__glXDisp_GetDrawableAttributes, __glXDispSwap_GetDrawableAttributes},
+    /* [ 30] =    30 */ {__glXDisp_ChangeDrawableAttributes, __glXDispSwap_ChangeDrawableAttributes},
+    /* [ 31] =    31 */ {__glXDisp_CreateWindow, __glXDispSwap_CreateWindow},
+    /* [ 32] =    32 */ {__glXDisp_DestroyWindow, __glXDispSwap_DestroyWindow},
+    /* [ 33] =    33 */ {NULL, NULL},
+    /* [ 34] =    34 */ {NULL, NULL},
+    /* [ 35] =    35 */ {NULL, NULL},
+    /* [ 36] =    36 */ {NULL, NULL},
+    /* [ 37] =    37 */ {NULL, NULL},
+    /* [ 38] =    38 */ {NULL, NULL},
+    /* [ 39] =    39 */ {NULL, NULL},
+    /* [ 40] =    96 */ {NULL, NULL},
+    /* [ 41] =    97 */ {NULL, NULL},
+    /* [ 42] =    98 */ {NULL, NULL},
+    /* [ 43] =    99 */ {NULL, NULL},
+    /* [ 44] =   100 */ {NULL, NULL},
+    /* [ 45] =   101 */ {__glXDisp_NewList, __glXDispSwap_NewList},
+    /* [ 46] =   102 */ {__glXDisp_EndList, __glXDispSwap_EndList},
+    /* [ 47] =   103 */ {__glXDisp_DeleteLists, __glXDispSwap_DeleteLists},
+    /* [ 48] =   104 */ {__glXDisp_GenLists, __glXDispSwap_GenLists},
+    /* [ 49] =   105 */ {__glXDisp_FeedbackBuffer, __glXDispSwap_FeedbackBuffer},
+    /* [ 50] =   106 */ {__glXDisp_SelectBuffer, __glXDispSwap_SelectBuffer},
+    /* [ 51] =   107 */ {__glXDisp_RenderMode, __glXDispSwap_RenderMode},
+    /* [ 52] =   108 */ {__glXDisp_Finish, __glXDispSwap_Finish},
+    /* [ 53] =   109 */ {__glXDisp_PixelStoref, __glXDispSwap_PixelStoref},
+    /* [ 54] =   110 */ {__glXDisp_PixelStorei, __glXDispSwap_PixelStorei},
+    /* [ 55] =   111 */ {__glXDisp_ReadPixels, __glXDispSwap_ReadPixels},
+    /* [ 56] =   112 */ {__glXDisp_GetBooleanv, __glXDispSwap_GetBooleanv},
+    /* [ 57] =   113 */ {__glXDisp_GetClipPlane, __glXDispSwap_GetClipPlane},
+    /* [ 58] =   114 */ {__glXDisp_GetDoublev, __glXDispSwap_GetDoublev},
+    /* [ 59] =   115 */ {__glXDisp_GetError, __glXDispSwap_GetError},
+    /* [ 60] =   116 */ {__glXDisp_GetFloatv, __glXDispSwap_GetFloatv},
+    /* [ 61] =   117 */ {__glXDisp_GetIntegerv, __glXDispSwap_GetIntegerv},
+    /* [ 62] =   118 */ {__glXDisp_GetLightfv, __glXDispSwap_GetLightfv},
+    /* [ 63] =   119 */ {__glXDisp_GetLightiv, __glXDispSwap_GetLightiv},
+    /* [ 64] =   120 */ {__glXDisp_GetMapdv, __glXDispSwap_GetMapdv},
+    /* [ 65] =   121 */ {__glXDisp_GetMapfv, __glXDispSwap_GetMapfv},
+    /* [ 66] =   122 */ {__glXDisp_GetMapiv, __glXDispSwap_GetMapiv},
+    /* [ 67] =   123 */ {__glXDisp_GetMaterialfv, __glXDispSwap_GetMaterialfv},
+    /* [ 68] =   124 */ {__glXDisp_GetMaterialiv, __glXDispSwap_GetMaterialiv},
+    /* [ 69] =   125 */ {__glXDisp_GetPixelMapfv, __glXDispSwap_GetPixelMapfv},
+    /* [ 70] =   126 */ {__glXDisp_GetPixelMapuiv, __glXDispSwap_GetPixelMapuiv},
+    /* [ 71] =   127 */ {__glXDisp_GetPixelMapusv, __glXDispSwap_GetPixelMapusv},
+    /* [ 72] =   128 */ {__glXDisp_GetPolygonStipple, __glXDispSwap_GetPolygonStipple},
+    /* [ 73] =   129 */ {__glXDisp_GetString, __glXDispSwap_GetString},
+    /* [ 74] =   130 */ {__glXDisp_GetTexEnvfv, __glXDispSwap_GetTexEnvfv},
+    /* [ 75] =   131 */ {__glXDisp_GetTexEnviv, __glXDispSwap_GetTexEnviv},
+    /* [ 76] =   132 */ {__glXDisp_GetTexGendv, __glXDispSwap_GetTexGendv},
+    /* [ 77] =   133 */ {__glXDisp_GetTexGenfv, __glXDispSwap_GetTexGenfv},
+    /* [ 78] =   134 */ {__glXDisp_GetTexGeniv, __glXDispSwap_GetTexGeniv},
+    /* [ 79] =   135 */ {__glXDisp_GetTexImage, __glXDispSwap_GetTexImage},
+    /* [ 80] =   136 */ {__glXDisp_GetTexParameterfv, __glXDispSwap_GetTexParameterfv},
+    /* [ 81] =   137 */ {__glXDisp_GetTexParameteriv, __glXDispSwap_GetTexParameteriv},
+    /* [ 82] =   138 */ {__glXDisp_GetTexLevelParameterfv, __glXDispSwap_GetTexLevelParameterfv},
+    /* [ 83] =   139 */ {__glXDisp_GetTexLevelParameteriv, __glXDispSwap_GetTexLevelParameteriv},
+    /* [ 84] =   140 */ {__glXDisp_IsEnabled, __glXDispSwap_IsEnabled},
+    /* [ 85] =   141 */ {__glXDisp_IsList, __glXDispSwap_IsList},
+    /* [ 86] =   142 */ {__glXDisp_Flush, __glXDispSwap_Flush},
+    /* [ 87] =   143 */ {__glXDisp_AreTexturesResident, __glXDispSwap_AreTexturesResident},
+    /* [ 88] =   144 */ {NULL, NULL},
+    /* [ 89] =   145 */ {__glXDisp_GenTextures, __glXDispSwap_GenTextures},
+    /* [ 90] =   146 */ {__glXDisp_IsTexture, __glXDispSwap_IsTexture},
+    /* [ 91] =   147 */ {__glXDisp_GetColorTable, __glXDispSwap_GetColorTable},
+    /* [ 92] =   148 */ {__glXDisp_GetColorTableParameterfv, __glXDispSwap_GetColorTableParameterfv},
+    /* [ 93] =   149 */ {__glXDisp_GetColorTableParameteriv, __glXDispSwap_GetColorTableParameteriv},
+    /* [ 94] =   150 */ {__glXDisp_GetConvolutionFilter, __glXDispSwap_GetConvolutionFilter},
+    /* [ 95] =   151 */ {__glXDisp_GetConvolutionParameterfv, __glXDispSwap_GetConvolutionParameterfv},
+    /* [ 96] =   152 */ {__glXDisp_GetConvolutionParameteriv, __glXDispSwap_GetConvolutionParameteriv},
+    /* [ 97] =   153 */ {__glXDisp_GetSeparableFilter, __glXDispSwap_GetSeparableFilter},
+    /* [ 98] =   154 */ {__glXDisp_GetHistogram, __glXDispSwap_GetHistogram},
+    /* [ 99] =   155 */ {__glXDisp_GetHistogramParameterfv, __glXDispSwap_GetHistogramParameterfv},
+    /* [ 100] =   156 */ {__glXDisp_GetHistogramParameteriv, __glXDispSwap_GetHistogramParameteriv},
+    /* [ 101] =   157 */ {__glXDisp_GetMinmax, __glXDispSwap_GetMinmax},
+    /* [ 102] =   158 */ {__glXDisp_GetMinmaxParameterfv, __glXDispSwap_GetMinmaxParameterfv},
+    /* [ 103] =   159 */ {__glXDisp_GetMinmaxParameteriv, __glXDispSwap_GetMinmaxParameteriv},
+    /* [ 104] =   160 */ {__glXDisp_GetCompressedTexImageARB, __glXDispSwap_GetCompressedTexImageARB},
+    /* [ 105] =   161 */ {__glXDisp_DeleteQueriesARB, __glXDispSwap_DeleteQueriesARB},
+    /* [ 106] =   162 */ {__glXDisp_GenQueriesARB, __glXDispSwap_GenQueriesARB},
+    /* [ 107] =   163 */ {__glXDisp_IsQueryARB, __glXDispSwap_IsQueryARB},
+    /* [ 108] =   164 */ {__glXDisp_GetQueryivARB, __glXDispSwap_GetQueryivARB},
+    /* [ 109] =   165 */ {__glXDisp_GetQueryObjectivARB, __glXDispSwap_GetQueryObjectivARB},
+    /* [ 110] =   166 */ {__glXDisp_GetQueryObjectuivARB, __glXDispSwap_GetQueryObjectuivARB},
+    /* [ 111] =   167 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo Single_dispatch_info = {
+    8,
+    Single_dispatch_tree,
+    Single_function_table,
+    NULL,
+    NULL
+};
+
+/*****************************************************************/
+/* tree depth = 13 */
+static const int_fast16_t VendorPriv_dispatch_tree[138] = {
+    /* [0] -> opcode range [0, 131072], node depth 1 */
+    2,
+    5,
+    EMPTY_LEAF,
+    102,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 32768], node depth 2 */
+    1,
+    8,
+    EMPTY_LEAF,
+
+    /* [8] -> opcode range [0, 16384], node depth 3 */
+    1,
+    11,
+    EMPTY_LEAF,
+
+    /* [11] -> opcode range [0, 8192], node depth 4 */
+    2,
+    16,
+    EMPTY_LEAF,
+    78,
+    EMPTY_LEAF,
+
+    /* [16] -> opcode range [0, 2048], node depth 5 */
+    2,
+    21,
+    EMPTY_LEAF,
+    39,
+    EMPTY_LEAF,
+
+    /* [21] -> opcode range [0, 512], node depth 6 */
+    1,
+    24,
+    EMPTY_LEAF,
+
+    /* [24] -> opcode range [0, 256], node depth 7 */
+    1,
+    27,
+    EMPTY_LEAF,
+
+    /* [27] -> opcode range [0, 128], node depth 8 */
+    1,
+    30,
+    EMPTY_LEAF,
+
+    /* [30] -> opcode range [0, 64], node depth 9 */
+    1,
+    33,
+    EMPTY_LEAF,
+
+    /* [33] -> opcode range [0, 32], node depth 10 */
+    1,
+    36,
+    EMPTY_LEAF,
+
+    /* [36] -> opcode range [0, 16], node depth 11 */
+    1,
+    EMPTY_LEAF,
+    LEAF(0),
+
+    /* [39] -> opcode range [1024, 1536], node depth 6 */
+    2,
+    44,
+    EMPTY_LEAF,
+    56,
+    67,
+
+    /* [44] -> opcode range [1024, 1152], node depth 7 */
+    1,
+    47,
+    EMPTY_LEAF,
+
+    /* [47] -> opcode range [1024, 1088], node depth 8 */
+    1,
+    50,
+    EMPTY_LEAF,
+
+    /* [50] -> opcode range [1024, 1056], node depth 9 */
+    1,
+    53,
+    EMPTY_LEAF,
+
+    /* [53] -> opcode range [1024, 1040], node depth 10 */
+    1,
+    LEAF(8),
+    EMPTY_LEAF,
+
+    /* [56] -> opcode range [1280, 1408], node depth 7 */
+    1,
+    59,
+    EMPTY_LEAF,
+
+    /* [59] -> opcode range [1280, 1344], node depth 8 */
+    1,
+    62,
+    EMPTY_LEAF,
+
+    /* [62] -> opcode range [1280, 1312], node depth 9 */
+    2,
+    EMPTY_LEAF,
+    LEAF(16),
+    LEAF(24),
+    LEAF(32),
+
+    /* [67] -> opcode range [1408, 1536], node depth 7 */
+    1,
+    70,
+    EMPTY_LEAF,
+
+    /* [70] -> opcode range [1408, 1472], node depth 8 */
+    1,
+    73,
+    EMPTY_LEAF,
+
+    /* [73] -> opcode range [1408, 1440], node depth 9 */
+    2,
+    EMPTY_LEAF,
+    LEAF(40),
+    LEAF(48),
+    EMPTY_LEAF,
+
+    /* [78] -> opcode range [4096, 6144], node depth 5 */
+    1,
+    EMPTY_LEAF,
+    81,
+
+    /* [81] -> opcode range [5120, 6144], node depth 6 */
+    1,
+    84,
+    EMPTY_LEAF,
+
+    /* [84] -> opcode range [5120, 5632], node depth 7 */
+    1,
+    87,
+    EMPTY_LEAF,
+
+    /* [87] -> opcode range [5120, 5376], node depth 8 */
+    1,
+    90,
+    EMPTY_LEAF,
+
+    /* [90] -> opcode range [5120, 5248], node depth 9 */
+    1,
+    93,
+    EMPTY_LEAF,
+
+    /* [93] -> opcode range [5120, 5184], node depth 10 */
+    1,
+    EMPTY_LEAF,
+    96,
+
+    /* [96] -> opcode range [5152, 5184], node depth 11 */
+    1,
+    99,
+    EMPTY_LEAF,
+
+    /* [99] -> opcode range [5152, 5168], node depth 12 */
+    1,
+    LEAF(56),
+    EMPTY_LEAF,
+
+    /* [102] -> opcode range [65536, 98304], node depth 2 */
+    1,
+    105,
+    EMPTY_LEAF,
+
+    /* [105] -> opcode range [65536, 81920], node depth 3 */
+    1,
+    108,
+    EMPTY_LEAF,
+
+    /* [108] -> opcode range [65536, 73728], node depth 4 */
+    1,
+    111,
+    EMPTY_LEAF,
+
+    /* [111] -> opcode range [65536, 69632], node depth 5 */
+    1,
+    114,
+    EMPTY_LEAF,
+
+    /* [114] -> opcode range [65536, 67584], node depth 6 */
+    1,
+    117,
+    EMPTY_LEAF,
+
+    /* [117] -> opcode range [65536, 66560], node depth 7 */
+    1,
+    120,
+    EMPTY_LEAF,
+
+    /* [120] -> opcode range [65536, 66048], node depth 8 */
+    1,
+    123,
+    EMPTY_LEAF,
+
+    /* [123] -> opcode range [65536, 65792], node depth 9 */
+    1,
+    126,
+    EMPTY_LEAF,
+
+    /* [126] -> opcode range [65536, 65664], node depth 10 */
+    1,
+    129,
+    EMPTY_LEAF,
+
+    /* [129] -> opcode range [65536, 65600], node depth 11 */
+    1,
+    132,
+    EMPTY_LEAF,
+
+    /* [132] -> opcode range [65536, 65568], node depth 12 */
+    1,
+    135,
+    EMPTY_LEAF,
+
+    /* [135] -> opcode range [65536, 65552], node depth 13 */
+    1,
+    LEAF(64),
+    EMPTY_LEAF,
+
+};
+
+static const __GLXdispatchVendorPrivProcPtr VendorPriv_function_table[72][2] = {
+    /* [  0] =     8 */ {NULL, NULL},
+    /* [  1] =     9 */ {NULL, NULL},
+    /* [  2] =    10 */ {NULL, NULL},
+    /* [  3] =    11 */ {__glXDisp_AreTexturesResidentEXT, __glXDispSwap_AreTexturesResidentEXT},
+    /* [  4] =    12 */ {__glXDisp_DeleteTextures, __glXDispSwap_DeleteTextures},
+    /* [  5] =    13 */ {__glXDisp_GenTexturesEXT, __glXDispSwap_GenTexturesEXT},
+    /* [  6] =    14 */ {__glXDisp_IsTextureEXT, __glXDispSwap_IsTextureEXT},
+    /* [  7] =    15 */ {NULL, NULL},
+    /* [  8] =  1024 */ {__glXDisp_QueryContextInfoEXT, __glXDispSwap_QueryContextInfoEXT},
+    /* [  9] =  1025 */ {NULL, NULL},
+    /* [ 10] =  1026 */ {NULL, NULL},
+    /* [ 11] =  1027 */ {NULL, NULL},
+    /* [ 12] =  1028 */ {NULL, NULL},
+    /* [ 13] =  1029 */ {NULL, NULL},
+    /* [ 14] =  1030 */ {NULL, NULL},
+    /* [ 15] =  1031 */ {NULL, NULL},
+    /* [ 16] =  1288 */ {NULL, NULL},
+    /* [ 17] =  1289 */ {NULL, NULL},
+    /* [ 18] =  1290 */ {NULL, NULL},
+    /* [ 19] =  1291 */ {NULL, NULL},
+    /* [ 20] =  1292 */ {NULL, NULL},
+    /* [ 21] =  1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
+    /* [ 22] =  1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
+    /* [ 23] =  1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
+    /* [ 24] =  1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
+    /* [ 25] =  1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
+    /* [ 26] =  1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
+    /* [ 27] =  1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
+    /* [ 28] =  1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
+    /* [ 29] =  1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
+    /* [ 30] =  1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
+    /* [ 31] =  1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
+    /* [ 32] =  1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
+    /* [ 33] =  1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
+    /* [ 34] =  1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
+    /* [ 35] =  1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
+    /* [ 36] =  1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
+    /* [ 37] =  1309 */ {NULL, NULL},
+    /* [ 38] =  1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
+    /* [ 39] =  1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
+    /* [ 40] =  1416 */ {NULL, NULL},
+    /* [ 41] =  1417 */ {NULL, NULL},
+    /* [ 42] =  1418 */ {NULL, NULL},
+    /* [ 43] =  1419 */ {NULL, NULL},
+    /* [ 44] =  1420 */ {NULL, NULL},
+    /* [ 45] =  1421 */ {NULL, NULL},
+    /* [ 46] =  1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
+    /* [ 47] =  1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
+    /* [ 48] =  1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
+    /* [ 49] =  1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
+    /* [ 50] =  1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
+    /* [ 51] =  1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
+    /* [ 52] =  1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
+    /* [ 53] =  1429 */ {NULL, NULL},
+    /* [ 54] =  1430 */ {NULL, NULL},
+    /* [ 55] =  1431 */ {NULL, NULL},
+    /* [ 56] =  5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
+    /* [ 57] =  5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
+    /* [ 58] =  5154 */ {NULL, NULL},
+    /* [ 59] =  5155 */ {NULL, NULL},
+    /* [ 60] =  5156 */ {NULL, NULL},
+    /* [ 61] =  5157 */ {NULL, NULL},
+    /* [ 62] =  5158 */ {NULL, NULL},
+    /* [ 63] =  5159 */ {NULL, NULL},
+    /* [ 64] = 65536 */ {NULL, NULL},
+    /* [ 65] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
+    /* [ 66] = 65538 */ {NULL, NULL},
+    /* [ 67] = 65539 */ {NULL, NULL},
+    /* [ 68] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
+    /* [ 69] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
+    /* [ 70] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
+    /* [ 71] = 65543 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo VendorPriv_dispatch_info = {
+    17,
+    VendorPriv_dispatch_tree,
+    VendorPriv_function_table,
+    NULL,
+    NULL
+};
+
diff --git a/GL/glx/indirect_table.h b/GL/glx/indirect_table.h
new file mode 100644
index 0000000..a2562a0
--- /dev/null
+++ b/GL/glx/indirect_table.h
@@ -0,0 +1,106 @@
+/*
+ * (C) Copyright IBM Corporation 2005, 2006
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+ * IBM,
+ * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * \file indirect_table.h
+ *
+ * \author Ian Romanick <idr at us.ibm.com>
+ */
+
+#ifndef INDIRECT_TABLE_H
+#define INDIRECT_TABLE_H
+
+#include <inttypes.h>
+
+/**
+ */
+struct __glXDispatchInfo {
+    /**
+     * Number of significant bits in the protocol opcode.  Opcodes with values
+     * larger than ((1 << bits) - 1) are invalid.
+     */
+    unsigned bits;
+
+    /**
+     */
+    const int_fast16_t * dispatch_tree;
+    
+    /**
+     * Array of protocol decode and dispatch functions index by the opcode
+     * search tree (i.e., \c dispatch_tree).  The first element in each pair
+     * is the non-byte-swapped version, and the second element is the
+     * byte-swapped version.
+     */
+    void * const (*dispatch_functions)[2];
+
+    /**
+     * Pointer to size validation data.  This table is indexed with the same
+     * value as ::dispatch_functions.
+     *
+     * The first element in the pair is the size, in bytes, of the fixed-size
+     * portion of the protocol.
+     *
+     * For opcodes that have a variable-size portion, the second value is an
+     * index in \c size_func_table to calculate that size.  If there is no
+     * variable-size portion, this index will be ~0.
+     *
+     * \note
+     * If size checking is not to be performed on this type of protocol
+     * data, this pointer will be \c NULL.
+     */
+    const int_fast16_t * size_table[2];
+
+    /**
+     * Array of functions used to calculate the variable-size portion of
+     * protocol messages.  Indexed by the second element of the entries
+     * in \c ::size_table.
+     *
+     * \note
+     * If size checking is not to be performed on this type of protocol
+     * data, this pointer will be \c NULL.
+     */
+    const gl_proto_size_func * size_func_table;
+};
+
+/**
+ * Sentinel value for an empty leaf in the \c dispatch_tree.
+ */
+#define EMPTY_LEAF         INT_FAST16_MIN
+
+/**
+ * Declare the index \c x as a leaf index.
+ */
+#define LEAF(x)            -x
+
+/**
+ * Determine if an index is a leaf index.
+ */
+#define IS_LEAF_INDEX(x)   ((x) <= 0)
+
+extern const struct __glXDispatchInfo Single_dispatch_info;
+extern const struct __glXDispatchInfo Render_dispatch_info;
+extern const struct __glXDispatchInfo VendorPriv_dispatch_info;
+
+#endif /* INDIRECT_TABLE_H */
diff --git a/GL/glx/indirect_util.c b/GL/glx/indirect_util.c
index bab0226..3964cd5 100644
--- a/GL/glx/indirect_util.c
+++ b/GL/glx/indirect_util.c
@@ -52,6 +52,7 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "glxext.h"
+#include "indirect_table.h"
 #include "indirect_util.h"
 
 
@@ -204,3 +205,113 @@ __glXSendReplySwap( ClientPtr client, co
         WriteToClient( client, reply_ints * 4, (char *) data );
     }
 }
+
+
+static int
+get_decode_index(const struct __glXDispatchInfo *dispatch_info,
+		 unsigned opcode)
+{
+    int remaining_bits;
+    int next_remain;
+    const int_fast16_t * const tree = dispatch_info->dispatch_tree;
+    int_fast16_t index;
+
+
+    remaining_bits = dispatch_info->bits;
+    if (opcode >= (1U << remaining_bits)) {
+	return -1;
+    }
+    
+    index = 0;
+    for (/* empty */; remaining_bits > 0; remaining_bits = next_remain) {
+	unsigned mask;
+	unsigned child_index;
+
+
+	/* Calculate the slice of bits used by this node.
+	 * 
+	 * If remaining_bits = 8 and tree[index] = 3, the mask of just the
+	 * remaining bits is 0x00ff and the mask for the remaining bits after
+	 * this node is 0x001f.  By taking 0x00ff & ~0x001f, we get 0x00e0.
+	 * This masks the 3 bits that we would want for this node.
+	 */
+
+	next_remain = remaining_bits - tree[index];
+	mask = ((1 << remaining_bits) - 1) &
+	  ~((1 << next_remain) - 1);
+
+
+	/* Using the mask, calculate the index of the opcode in the node.
+	 * With that index, fetch the index of the next node.
+	 */
+
+	child_index = (opcode & mask) >> next_remain;
+	index = tree[index + 1 + child_index];
+
+
+	/* If the next node is an empty leaf, the opcode is for a non-existant
+	 * function.  We're done.
+	 *
+	 * If the next node is a non-empty leaf, look up the function pointer
+	 * and return it.
+	 */
+
+	if (index == EMPTY_LEAF) {
+	    return -1;
+	}
+	else if (IS_LEAF_INDEX(index)) {
+	    unsigned func_index;
+
+
+	    /* The value stored in the tree for a leaf node is the base of
+	     * the function pointers for that leaf node.  The offset for the
+	     * function for a particular opcode is the remaining bits in the
+	     * opcode.
+	     */
+
+	    func_index = -index;
+	    func_index += opcode & ((1 << next_remain) - 1);
+	    return func_index;
+	}
+    }
+
+    /* We should *never* get here!!!
+     */
+    return -1;
+}
+
+
+void *
+__glXGetProtocolDecodeFunction(const struct __glXDispatchInfo *dispatch_info,
+			       int opcode, int swapped_version)
+{
+    const int func_index = get_decode_index(dispatch_info, opcode);
+
+    return (func_index < 0) 
+	? NULL 
+	: dispatch_info->dispatch_functions[func_index][swapped_version];
+}
+
+
+int
+__glXGetProtocolSizeData(const struct __glXDispatchInfo *dispatch_info,
+			 int opcode, __GLXrenderSizeData *data)
+{
+    if (dispatch_info->size_table != NULL) {
+	const int func_index = get_decode_index(dispatch_info, opcode);
+
+	if (func_index >= 0) {
+	    const int var_offset = 
+		dispatch_info->size_table[func_index][1];
+
+	    data->bytes = dispatch_info->size_table[func_index][0];
+	    data->varsize = (var_offset != ~0)
+		? dispatch_info->size_table[func_index]
+		: NULL;
+
+	    return 0;
+	}
+    }
+
+    return -1;
+}
diff --git a/GL/glx/indirect_util.h b/GL/glx/indirect_util.h
index 3abe81f..b00727a 100644
--- a/GL/glx/indirect_util.h
+++ b/GL/glx/indirect_util.h
@@ -40,4 +40,14 @@ extern void __glXSendReplySwap( ClientPt
     size_t elements, size_t element_size, GLboolean always_array,
     CARD32 retval );
 
+struct __glXDispatchInfo;
+
+extern void *__glXGetProtocolDecodeFunction(
+    const struct __glXDispatchInfo *dispatch_info, int opcode,
+    int swapped_version);
+
+extern int __glXGetProtocolSizeData(
+    const struct __glXDispatchInfo *dispatch_info, int opcode,
+    __GLXrenderSizeData *data);
+
 #endif /* __GLX_INDIRECT_UTIL_H__ */
diff --git a/GL/glx/single2.c b/GL/glx/single2.c
index 3387af2..357cd31 100644
--- a/GL/glx/single2.c
+++ b/GL/glx/single2.c
@@ -392,3 +392,13 @@ int __glXDisp_GetString(__GLXclientState
 {
     return DoGetString(cl, pc, GL_FALSE);
 }
+
+int __glXDisp_GetProgramStringARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
+
+int __glXDisp_GetProgramStringNV(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/single2swap.c b/GL/glx/single2swap.c
index 41a42bb..6d5e5ce 100644
--- a/GL/glx/single2swap.c
+++ b/GL/glx/single2swap.c
@@ -270,3 +270,13 @@ int __glXDispSwap_GetString(__GLXclientS
 {
     return DoGetString(cl, pc, GL_TRUE);
 }
+
+int __glXDispSwap_GetProgramStringARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
+
+int __glXDispSwap_GetProgramStringNV(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/singlepix.c b/GL/glx/singlepix.c
index ae64db4..10a16b1 100644
--- a/GL/glx/singlepix.c
+++ b/GL/glx/singlepix.c
@@ -462,3 +462,8 @@ int __glXDisp_GetColorTable(__GLXclientS
 
     return Success;
 }
+
+int __glXDisp_GetCompressedTexImageARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/singlepixswap.c b/GL/glx/singlepixswap.c
index 59d1a69..b22dc5f 100644
--- a/GL/glx/singlepixswap.c
+++ b/GL/glx/singlepixswap.c
@@ -517,3 +517,8 @@ int __glXDispSwap_GetColorTable(__GLXcli
 
     return Success;
 }
+
+int __glXDispSwap_GetCompressedTexImageARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/xfont.c b/GL/glx/xfont.c
index 89ff95b..b24c77d 100644
--- a/GL/glx/xfont.c
+++ b/GL/glx/xfont.c
@@ -47,6 +47,7 @@
 #include "glapi.h"
 #include "glthread.h"
 #include "dispatch.h"
+#include "indirect_dispatch.h"
 #include <GL/gl.h>
 #include <pixmapstr.h>
 #include <windowstr.h>
@@ -156,7 +157,7 @@ MakeBitmapsFromFont(FontPtr pFont, int f
 
 /************************************************************************/
 
-int __glXUseXFont(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_UseXFont(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXUseXFontReq *req;



More information about the xorg-commit mailing list