Browse Source

Added support for using the GPU renderer as an offscreen renderer

SDL_CreateGPURenderer() now allows passing in an existing GPU device and passing in a NULL window to create an offscreen renderer.

Also renamed SDL_SetRenderGPUState() to SDL_SetGPURenderState().
Sam Lantinga 1 week ago
parent
commit
a864dcac25

+ 34 - 20
include/SDL3/SDL_render.h

@@ -74,6 +74,13 @@ extern "C" {
  */
 #define SDL_SOFTWARE_RENDERER   "software"
 
+/**
+ * The name of the GPU renderer.
+ *
+ * \since This macro is available since SDL 3.4.0.
+ */
+#define SDL_GPU_RENDERER        "gpu"
+
 /**
  * Vertex structure.
  *
@@ -285,6 +292,7 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window
  *
  * With the SDL GPU renderer (since SDL 3.4.0):
  *
+ * - `SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER`: the device to use with the renderer, optional.
  * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN`: the app is able to
  *   provide SPIR-V shaders to SDL_GPURenderState, optional.
  * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN`: the app is able to
@@ -328,6 +336,7 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_
 #define SDL_PROP_RENDERER_CREATE_SURFACE_POINTER                            "SDL.renderer.create.surface"
 #define SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER                   "SDL.renderer.create.output_colorspace"
 #define SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER                       "SDL.renderer.create.present_vsync"
+#define SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER                         "SDL.renderer.create.gpu.device"
 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN                  "SDL.renderer.create.gpu.shaders_spirv"
 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN                   "SDL.renderer.create.gpu.shaders_dxil"
 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN                    "SDL.renderer.create.gpu.shaders_msl"
@@ -339,35 +348,40 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_
 #define SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER   "SDL.renderer.create.vulkan.present_queue_family_index"
 
 /**
- * Create a 2D GPU rendering context for a window, with support for the
- * specified shader format.
+ * Create a 2D GPU rendering context.
  *
- * This is a convenience function to create a SDL GPU backed renderer,
- * intended to be used with SDL_GPURenderState. The resulting renderer will
- * support shaders in one of the specified shader formats.
+ * The GPU device to use is passed in as a parameter. If this is NULL, then a device will be created normally and can be retrieved using SDL_GetGPURendererDevice().
  *
- * If no available GPU driver supports any of the specified shader formats,
- * this function will fail.
+ * The window to use is passed in as a parameter. If this is NULL, then this will become an offscreen renderer. In that case, you should call SDL_SetRenderTarget() to setup rendering to a texture, and then call SDL_RenderPresent() normally to complete drawing a frame.
  *
- * \param window the window where rendering is displayed.
- * \param format_flags a bitflag indicating which shader formats the app is
- *                     able to provide.
- * \param device a pointer filled with the associated GPU device, or NULL on
- *               error.
+ * \param device the GPU device to use with the renderer, or NULL to create a device.
+ * \param window the window where rendering is displayed, or NULL to create an offscreen renderer.
  * \returns a valid rendering context or NULL if there was an error; call
  *          SDL_GetError() for more information.
  *
- * \threadsafety This function should only be called on the main thread.
+ * \threadsafety If this function is called with a valid GPU device, it should be called on the thread that created the device. If this function is called with a valid window, it should be called on the thread that created the window.
  *
  * \since This function is available since SDL 3.4.0.
  *
  * \sa SDL_CreateRendererWithProperties
- * \sa SDL_GetGPUShaderFormats
+ * \sa SDL_GetGPURendererDevice
  * \sa SDL_CreateGPUShader
  * \sa SDL_CreateGPURenderState
- * \sa SDL_SetRenderGPUState
+ * \sa SDL_SetGPURenderState
  */
-extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateGPURenderer(SDL_Window *window, SDL_GPUShaderFormat format_flags, SDL_GPUDevice **device);
+extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateGPURenderer(SDL_GPUDevice *device, SDL_Window *window);
+
+/**
+ * Return the GPU device used by a renderer.
+ *
+ * \param renderer the rendering context.
+ * \returns the GPU device used by the renderer, or NULL if the renderer is not a GPU renderer; call SDL_GetError() for more information.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ *
+ * \since This function is available since SDL 3.4.0.
+ */
+extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_GetGPURendererDevice(SDL_Renderer *renderer);
 
 /**
  * Create a 2D software rendering context for a surface.
@@ -382,7 +396,7 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateGPURenderer(SDL_Window *win
  * \returns a valid rendering context or NULL if there was an error; call
  *          SDL_GetError() for more information.
  *
- * \threadsafety This function should only be called on the main thread.
+ * \threadsafety It is safe to call this function from any thread.
  *
  * \since This function is available since SDL 3.2.0.
  *
@@ -2888,7 +2902,7 @@ typedef struct SDL_GPURenderStateCreateInfo
  *
  * \sa SDL_CreateGPURenderState
  * \sa SDL_SetGPURenderStateFragmentUniforms
- * \sa SDL_SetRenderGPUState
+ * \sa SDL_SetGPURenderState
  * \sa SDL_DestroyGPURenderState
  */
 typedef struct SDL_GPURenderState SDL_GPURenderState;
@@ -2907,7 +2921,7 @@ typedef struct SDL_GPURenderState SDL_GPURenderState;
  * \since This function is available since SDL 3.4.0.
  *
  * \sa SDL_SetGPURenderStateFragmentUniforms
- * \sa SDL_SetRenderGPUState
+ * \sa SDL_SetGPURenderState
  * \sa SDL_DestroyGPURenderState
  */
 extern SDL_DECLSPEC SDL_GPURenderState * SDLCALL SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateCreateInfo *createinfo);
@@ -2948,7 +2962,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderStateFragmentUniforms(SDL_GPURe
  *
  * \since This function is available since SDL 3.4.0.
  */
-extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderGPUState(SDL_Renderer *renderer, SDL_GPURenderState *state);
+extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderState(SDL_Renderer *renderer, SDL_GPURenderState *state);
 
 /**
  * Destroy custom GPU render state.

+ 2 - 1
src/dynapi/SDL_dynapi.sym

@@ -1240,7 +1240,7 @@ SDL3_0.0.0 {
     SDL_GetDefaultTextureScaleMode;
     SDL_CreateGPURenderState;
     SDL_SetGPURenderStateFragmentUniforms;
-    SDL_SetRenderGPUState;
+    SDL_SetGPURenderState;
     SDL_DestroyGPURenderState;
     SDL_SetWindowProgressState;
     SDL_SetWindowProgressValue;
@@ -1259,6 +1259,7 @@ SDL3_0.0.0 {
     SDL_GetGPUTextureFormatFromPixelFormat;
     SDL_SetTexturePalette;
     SDL_GetTexturePalette;
+    SDL_GetGPURendererDevice;
     # extra symbols go here (don't modify this line)
   local: *;
 };

+ 2 - 1
src/dynapi/SDL_dynapi_overrides.h

@@ -1265,7 +1265,7 @@
 #define SDL_GetDefaultTextureScaleMode SDL_GetDefaultTextureScaleMode_REAL
 #define SDL_CreateGPURenderState SDL_CreateGPURenderState_REAL
 #define SDL_SetGPURenderStateFragmentUniforms SDL_SetGPURenderStateFragmentUniforms_REAL
-#define SDL_SetRenderGPUState SDL_SetRenderGPUState_REAL
+#define SDL_SetGPURenderState SDL_SetGPURenderState_REAL
 #define SDL_DestroyGPURenderState SDL_DestroyGPURenderState_REAL
 #define SDL_SetWindowProgressState SDL_SetWindowProgressState_REAL
 #define SDL_SetWindowProgressValue SDL_SetWindowProgressValue_REAL
@@ -1285,3 +1285,4 @@
 #define JNI_OnLoad JNI_OnLoad_REAL
 #define SDL_SetTexturePalette SDL_SetTexturePalette_REAL
 #define SDL_GetTexturePalette SDL_GetTexturePalette_REAL
+#define SDL_GetGPURendererDevice SDL_GetGPURendererDevice_REAL

+ 3 - 2
src/dynapi/SDL_dynapi_procs.h

@@ -1273,7 +1273,7 @@ SDL_DYNAPI_PROC(bool,SDL_SetDefaultTextureScaleMode,(SDL_Renderer *a,SDL_ScaleMo
 SDL_DYNAPI_PROC(bool,SDL_GetDefaultTextureScaleMode,(SDL_Renderer *a,SDL_ScaleMode *b),(a,b),return)
 SDL_DYNAPI_PROC(SDL_GPURenderState*,SDL_CreateGPURenderState,(SDL_Renderer *a,SDL_GPURenderStateCreateInfo *b),(a,b),return)
 SDL_DYNAPI_PROC(bool,SDL_SetGPURenderStateFragmentUniforms,(SDL_GPURenderState *a,Uint32 b,const void *c,Uint32 d),(a,b,c,d),return)
-SDL_DYNAPI_PROC(bool,SDL_SetRenderGPUState,(SDL_Renderer *a,SDL_GPURenderState *b),(a,b),return)
+SDL_DYNAPI_PROC(bool,SDL_SetGPURenderState,(SDL_Renderer *a,SDL_GPURenderState *b),(a,b),return)
 SDL_DYNAPI_PROC(void,SDL_DestroyGPURenderState,(SDL_GPURenderState *a),(a),)
 SDL_DYNAPI_PROC(bool,SDL_SetWindowProgressState,(SDL_Window *a,SDL_ProgressState b),(a,b),return)
 SDL_DYNAPI_PROC(bool,SDL_SetWindowProgressValue,(SDL_Window *a,float b),(a,b),return)
@@ -1282,7 +1282,7 @@ SDL_DYNAPI_PROC(float,SDL_GetWindowProgressValue,(SDL_Window *a),(a),return)
 SDL_DYNAPI_PROC(bool,SDL_SetRenderTextureAddressMode,(SDL_Renderer *a,SDL_TextureAddressMode b,SDL_TextureAddressMode c),(a,b,c),return)
 SDL_DYNAPI_PROC(bool,SDL_GetRenderTextureAddressMode,(SDL_Renderer *a,SDL_TextureAddressMode *b,SDL_TextureAddressMode *c),(a,b,c),return)
 SDL_DYNAPI_PROC(SDL_PropertiesID,SDL_GetGPUDeviceProperties,(SDL_GPUDevice *a),(a),return)
-SDL_DYNAPI_PROC(SDL_Renderer*,SDL_CreateGPURenderer,(SDL_Window *a,SDL_GPUShaderFormat b,SDL_GPUDevice **c),(a,b,c),return)
+SDL_DYNAPI_PROC(SDL_Renderer*,SDL_CreateGPURenderer,(SDL_GPUDevice *a,SDL_Window *b),(a,b),return)
 SDL_DYNAPI_PROC(bool,SDL_PutAudioStreamPlanarData,(SDL_AudioStream *a,const void * const*b,int c,int d),(a,b,c,d),return)
 SDL_DYNAPI_PROC(int,SDL_GetEventDescription,(const SDL_Event *a,char *b,int c),(a,b,c),return)
 SDL_DYNAPI_PROC(bool,SDL_PutAudioStreamDataNoCopy,(SDL_AudioStream *a,const void *b,int c,SDL_AudioStreamDataCompleteCallback d,void *e),(a,b,c,d,e),return)
@@ -1293,3 +1293,4 @@ SDL_DYNAPI_PROC(SDL_GPUTextureFormat,SDL_GetGPUTextureFormatFromPixelFormat,(SDL
 SDL_DYNAPI_PROC(Sint32,JNI_OnLoad,(JavaVM *a, void *b),(a,b),return)
 SDL_DYNAPI_PROC(bool,SDL_SetTexturePalette,(SDL_Texture *a,SDL_Palette *b),(a,b),return)
 SDL_DYNAPI_PROC(SDL_Palette*,SDL_GetTexturePalette,(SDL_Texture *a),(a),return)
+SDL_DYNAPI_PROC(SDL_GPUDevice*,SDL_GetGPURendererDevice,(SDL_Renderer *a),(a),return)

+ 30 - 25
src/render/SDL_render.c

@@ -1047,11 +1047,17 @@ SDL_Renderer *SDL_CreateRendererWithProperties(SDL_PropertiesID props)
     const char *hint;
     SDL_PropertiesID new_props;
 
-    CHECK_PARAM((!window && !surface) || (window && surface)) {
+    // The GPU renderer is the only one that can be created without a window or surface
+    CHECK_PARAM(!window && !surface && (!driver_name || SDL_strcmp(driver_name, SDL_GPU_RENDERER) != 0)) {
         SDL_InvalidParamError("window");
         return NULL;
     }
 
+    CHECK_PARAM(window && surface) {
+        SDL_SetError("A renderer can't target both a window and surface");
+        return NULL;
+    }
+
     CHECK_PARAM(window && SDL_WindowHasSurface(window)) {
         SDL_SetError("Surface already associated with window");
         return NULL;
@@ -1269,37 +1275,32 @@ SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, const char *name)
     return renderer;
 }
 
-SDL_Renderer *SDL_CreateGPURenderer(SDL_Window *window, SDL_GPUShaderFormat format_flags, SDL_GPUDevice **device)
+SDL_Renderer *SDL_CreateGPURenderer(SDL_GPUDevice *device, SDL_Window *window)
 {
-    CHECK_PARAM(!device) {
-        SDL_InvalidParamError("device");
-        return NULL;
-    }
-
-    *device = NULL;
     SDL_Renderer *renderer;
 
     SDL_PropertiesID props = SDL_CreateProperties();
+    SDL_SetPointerProperty(props, SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER, device);
     SDL_SetPointerProperty(props, SDL_PROP_RENDERER_CREATE_WINDOW_POINTER, window);
-    if (format_flags & SDL_GPU_SHADERFORMAT_SPIRV) {
-        SDL_SetBooleanProperty(props, SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN, true);
-    }
-    if (format_flags & SDL_GPU_SHADERFORMAT_DXIL) {
-        SDL_SetBooleanProperty(props, SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN, true);
-    }
-    if (format_flags & SDL_GPU_SHADERFORMAT_MSL) {
-        SDL_SetBooleanProperty(props, SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN, true);
-    }
-    SDL_SetStringProperty(props, SDL_PROP_RENDERER_CREATE_NAME_STRING, "gpu");
+    SDL_SetStringProperty(props, SDL_PROP_RENDERER_CREATE_NAME_STRING, SDL_GPU_RENDERER);
 
     renderer = SDL_CreateRendererWithProperties(props);
-    if (renderer) {
-        *device = (SDL_GPUDevice *)SDL_GetPointerProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_GPU_DEVICE_POINTER, NULL);
-    }
     SDL_DestroyProperties(props);
     return renderer;
 }
 
+SDL_GPUDevice *SDL_GetGPURendererDevice(SDL_Renderer *renderer)
+{
+    CHECK_RENDERER_MAGIC(renderer, NULL);
+
+    SDL_GPUDevice *device = SDL_GetPointerProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_GPU_DEVICE_POINTER, NULL);
+    if (!device) {
+        SDL_SetError("Renderer isn't a GPU renderer");
+        return NULL;
+    }
+    return device;
+}
+
 SDL_Renderer *SDL_CreateSoftwareRenderer(SDL_Surface *surface)
 {
 #ifdef SDL_VIDEO_RENDER_SW
@@ -1365,8 +1366,8 @@ bool SDL_GetRenderOutputSize(SDL_Renderer *renderer, int *w, int *h)
     } else if (renderer->window) {
         return SDL_GetWindowSizeInPixels(renderer->window, w, h);
     } else {
-        SDL_assert(!"This should never happen");
-        return SDL_SetError("Renderer doesn't support querying output size");
+        // We don't have any output size, this might be an offscreen-only renderer
+        return true;
     }
 }
 
@@ -5548,7 +5549,11 @@ bool SDL_RenderPresent(SDL_Renderer *renderer)
     CHECK_RENDERER_MAGIC(renderer, false);
 
     CHECK_PARAM(renderer->target) {
-        return SDL_SetError("You can't present on a render target");
+        if (!renderer->window && SDL_strcmp(renderer->name, SDL_GPU_RENDERER) == 0) {
+            // We're an offscreen renderer, we must submit the command queue
+        } else {
+            return SDL_SetError("You can't present on a render target");
+        }
     }
 
     if (renderer->transparent_window) {
@@ -6218,7 +6223,7 @@ bool SDL_SetGPURenderStateFragmentUniforms(SDL_GPURenderState *state, Uint32 slo
     return true;
 }
 
-bool SDL_SetRenderGPUState(SDL_Renderer *renderer, SDL_GPURenderState *state)
+bool SDL_SetGPURenderState(SDL_Renderer *renderer, SDL_GPURenderState *state)
 {
     CHECK_RENDERER_MAGIC(renderer, false);
 

+ 103 - 82
src/render/gpu/SDL_render_gpu.c

@@ -83,6 +83,7 @@ static const float INPUTTYPE_HDR10 = 3;
 
 typedef struct GPU_RenderData
 {
+    bool external_device;
     SDL_GPUDevice *device;
     GPU_Shaders shaders;
     GPU_PipelineCache pipeline_cache;
@@ -1415,34 +1416,37 @@ static bool GPU_RenderPresent(SDL_Renderer *renderer)
 {
     GPU_RenderData *data = (GPU_RenderData *)renderer->internal;
 
-    SDL_GPUTexture *swapchain;
-    Uint32 swapchain_texture_width, swapchain_texture_height;
-    bool result = SDL_WaitAndAcquireGPUSwapchainTexture(data->state.command_buffer, renderer->window, &swapchain, &swapchain_texture_width, &swapchain_texture_height);
+    if (renderer->window) {
+        SDL_GPUTexture *swapchain;
+        Uint32 swapchain_texture_width, swapchain_texture_height;
+        bool result = SDL_WaitAndAcquireGPUSwapchainTexture(data->state.command_buffer, renderer->window, &swapchain, &swapchain_texture_width, &swapchain_texture_height);
 
-    if (!result) {
-        SDL_LogError(SDL_LOG_CATEGORY_RENDER, "Failed to acquire swapchain texture: %s", SDL_GetError());
-    }
+        if (!result) {
+            SDL_LogError(SDL_LOG_CATEGORY_RENDER, "Failed to acquire swapchain texture: %s", SDL_GetError());
+        }
 
-    if (swapchain != NULL) {
-        SDL_GPUBlitInfo blit_info;
-        SDL_zero(blit_info);
+        if (swapchain != NULL) {
+            SDL_GPUBlitInfo blit_info;
+            SDL_zero(blit_info);
 
-        blit_info.source.texture = data->backbuffer.texture;
-        blit_info.source.w = data->backbuffer.width;
-        blit_info.source.h = data->backbuffer.height;
-        blit_info.destination.texture = swapchain;
-        blit_info.destination.w = swapchain_texture_width;
-        blit_info.destination.h = swapchain_texture_height;
-        blit_info.load_op = SDL_GPU_LOADOP_DONT_CARE;
-        blit_info.filter = SDL_GPU_FILTER_LINEAR;
+            blit_info.source.texture = data->backbuffer.texture;
+            blit_info.source.w = data->backbuffer.width;
+            blit_info.source.h = data->backbuffer.height;
+            blit_info.destination.texture = swapchain;
+            blit_info.destination.w = swapchain_texture_width;
+            blit_info.destination.h = swapchain_texture_height;
+            blit_info.load_op = SDL_GPU_LOADOP_DONT_CARE;
+            blit_info.filter = SDL_GPU_FILTER_LINEAR;
 
-        SDL_BlitGPUTexture(data->state.command_buffer, &blit_info);
+            SDL_BlitGPUTexture(data->state.command_buffer, &blit_info);
 
-        SDL_SubmitGPUCommandBuffer(data->state.command_buffer);
+            SDL_SubmitGPUCommandBuffer(data->state.command_buffer);
 
-        if (swapchain_texture_width != data->backbuffer.width || swapchain_texture_height != data->backbuffer.height) {
-            SDL_ReleaseGPUTexture(data->device, data->backbuffer.texture);
-            CreateBackbuffer(data, swapchain_texture_width, swapchain_texture_height, SDL_GetGPUSwapchainTextureFormat(data->device, renderer->window));
+            if (swapchain_texture_width != data->backbuffer.width || swapchain_texture_height != data->backbuffer.height) {
+                CreateBackbuffer(data, swapchain_texture_width, swapchain_texture_height, SDL_GetGPUSwapchainTextureFormat(data->device, renderer->window));
+            }
+        } else {
+            SDL_SubmitGPUCommandBuffer(data->state.command_buffer);
         }
     } else {
         SDL_SubmitGPUCommandBuffer(data->state.command_buffer);
@@ -1486,7 +1490,7 @@ static void GPU_DestroyRenderer(SDL_Renderer *renderer)
     }
 
     if (data->state.command_buffer) {
-        SDL_SubmitGPUCommandBuffer(data->state.command_buffer);
+        SDL_CancelGPUCommandBuffer(data->state.command_buffer);
         data->state.command_buffer = NULL;
     }
 
@@ -1509,7 +1513,9 @@ static void GPU_DestroyRenderer(SDL_Renderer *renderer)
 
     if (data->device) {
         GPU_ReleaseShaders(&data->shaders, data->device);
-        SDL_DestroyGPUDevice(data->device);
+        if (!data->external_device) {
+            SDL_DestroyGPUDevice(data->device);
+        }
     }
 
     SDL_free(data);
@@ -1551,6 +1557,14 @@ static bool GPU_SetVSync(SDL_Renderer *renderer, const int vsync)
     GPU_RenderData *data = (GPU_RenderData *)renderer->internal;
     SDL_GPUPresentMode mode = SDL_GPU_PRESENTMODE_VSYNC;
 
+    if (!renderer->window) {
+        if (!vsync) {
+            return true;
+        } else {
+            return SDL_Unsupported();
+        }
+    }
+
     if (!ChoosePresentMode(data->device, renderer->window, vsync, &mode)) {
         return false;
     }
@@ -1575,8 +1589,8 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
     SDL_SetupRendererColorspace(renderer, create_props);
 
     if (renderer->output_colorspace != SDL_COLORSPACE_SRGB &&
-        renderer->output_colorspace != SDL_COLORSPACE_SRGB_LINEAR &&
-        renderer->output_colorspace != SDL_COLORSPACE_HDR10) {
+        renderer->output_colorspace != SDL_COLORSPACE_SRGB_LINEAR
+        /*&& renderer->output_colorspace != SDL_COLORSPACE_HDR10*/) {
         return SDL_SetError("Unsupported output colorspace");
     }
 
@@ -1614,40 +1628,45 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
     renderer->window = window;
     renderer->name = GPU_RenderDriver.name;
 
-    bool debug = SDL_GetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN, false);
-    bool lowpower = SDL_GetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN, false);
+    data->device = SDL_GetPointerProperty(create_props, SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER, NULL);
+    if (data->device) {
+        data->external_device = true;
+    } else {
+        bool debug = SDL_GetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN, false);
+        bool lowpower = SDL_GetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN, false);
 
-    // Prefer environment variables/hints if they exist, otherwise defer to properties
-    debug = SDL_GetHintBoolean(SDL_HINT_RENDER_GPU_DEBUG, debug);
-    lowpower = SDL_GetHintBoolean(SDL_HINT_RENDER_GPU_LOW_POWER, lowpower);
+        // Prefer environment variables/hints if they exist, otherwise defer to properties
+        debug = SDL_GetHintBoolean(SDL_HINT_RENDER_GPU_DEBUG, debug);
+        lowpower = SDL_GetHintBoolean(SDL_HINT_RENDER_GPU_LOW_POWER, lowpower);
 
-    SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN, debug);
-    SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN, lowpower);
+        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN, debug);
+        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN, lowpower);
 
-    // Set hints for the greatest hardware compatibility
-    // This property allows using the renderer on Intel Haswell and Broadwell GPUs.
-    if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN)) {
-        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN, true);
-    }
-    // These properties allow using the renderer on more Android devices.
-    if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN)) {
-        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN, false);
-    }
-    if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN)) {
-        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN, false);
-    }
-    if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN)) {
-        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN, false);
-    }
-    if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN)) {
-        SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN, false);
-    }
+        // Set hints for the greatest hardware compatibility
+        // This property allows using the renderer on Intel Haswell and Broadwell GPUs.
+        if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN)) {
+            SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN, true);
+        }
+        // These properties allow using the renderer on more Android devices.
+        if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN)) {
+            SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN, false);
+        }
+        if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN)) {
+            SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN, false);
+        }
+        if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN)) {
+            SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN, false);
+        }
+        if (!SDL_HasProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN)) {
+            SDL_SetBooleanProperty(create_props, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN, false);
+        }
 
-    GPU_FillSupportedShaderFormats(create_props);
-    data->device = SDL_CreateGPUDeviceWithProperties(create_props);
+        GPU_FillSupportedShaderFormats(create_props);
+        data->device = SDL_CreateGPUDeviceWithProperties(create_props);
 
-    if (!data->device) {
-        return false;
+        if (!data->device) {
+            return false;
+        }
     }
 
     if (!GPU_InitShaders(&data->shaders, data->device)) {
@@ -1663,30 +1682,39 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
         return false;
     }
 
-    if (!SDL_ClaimWindowForGPUDevice(data->device, window)) {
-        return false;
-    }
+    if (window) {
+        if (!SDL_ClaimWindowForGPUDevice(data->device, window)) {
+            return false;
+        }
 
-    switch (renderer->output_colorspace) {
-    case SDL_COLORSPACE_SRGB_LINEAR:
-        data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR;
-        break;
-    case SDL_COLORSPACE_HDR10:
-        data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084;
-        break;
-    case SDL_COLORSPACE_SRGB:
-    default:
-        data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_SDR;
-        break;
-    }
-    data->swapchain.present_mode = SDL_GPU_PRESENTMODE_VSYNC;
+        switch (renderer->output_colorspace) {
+        case SDL_COLORSPACE_SRGB_LINEAR:
+            data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR;
+            break;
+        case SDL_COLORSPACE_HDR10:
+            data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084;
+            break;
+        case SDL_COLORSPACE_SRGB:
+        default:
+            data->swapchain.composition = SDL_GPU_SWAPCHAINCOMPOSITION_SDR;
+            break;
+        }
+        data->swapchain.present_mode = SDL_GPU_PRESENTMODE_VSYNC;
 
-    int vsync = (int)SDL_GetNumberProperty(create_props, SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER, 0);
-    ChoosePresentMode(data->device, window, vsync, &data->swapchain.present_mode);
+        int vsync = (int)SDL_GetNumberProperty(create_props, SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER, 0);
+        ChoosePresentMode(data->device, window, vsync, &data->swapchain.present_mode);
 
-    SDL_SetGPUSwapchainParameters(data->device, window, data->swapchain.composition, data->swapchain.present_mode);
+        SDL_SetGPUSwapchainParameters(data->device, window, data->swapchain.composition, data->swapchain.present_mode);
 
-    SDL_SetGPUAllowedFramesInFlight(data->device, 1);
+        SDL_SetGPUAllowedFramesInFlight(data->device, 1);
+
+        int w, h;
+        SDL_GetWindowSizeInPixels(window, &w, &h);
+
+        if (!CreateBackbuffer(data, w, h, SDL_GetGPUSwapchainTextureFormat(data->device, window))) {
+            return false;
+        }
+    }
 
     SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32);
     SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
@@ -1711,13 +1739,6 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
     data->state.viewport.max_depth = 1;
     data->state.command_buffer = SDL_AcquireGPUCommandBuffer(data->device);
 
-    int w, h;
-    SDL_GetWindowSizeInPixels(window, &w, &h);
-
-    if (!CreateBackbuffer(data, w, h, SDL_GetGPUSwapchainTextureFormat(data->device, window))) {
-        return false;
-    }
-
     SDL_SetPointerProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_GPU_DEVICE_POINTER, data->device);
 
     return true;

+ 1 - 1
test/CMakeLists.txt

@@ -359,7 +359,7 @@ add_sdl_test_executable(testgeometry TESTUTILS SOURCES testgeometry.c)
 add_sdl_test_executable(testgl SOURCES testgl.c)
 add_sdl_test_executable(testgles SOURCES testgles.c)
 add_sdl_test_executable(testgpu_simple_clear SOURCES testgpu_simple_clear.c)
-add_sdl_test_executable(testgpu_spinning_cube SOURCES testgpu_spinning_cube.c)
+add_sdl_test_executable(testgpu_spinning_cube SOURCES testgpu_spinning_cube.c ${icon_bmp_header} DEPENDS generate-icon_bmp_header)
 add_sdl_test_executable(testgpurender_effects MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testgpurender_effects.c)
 add_sdl_test_executable(testgpurender_msdf MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testgpurender_msdf.c)
 if(ANDROID)

+ 25 - 94
test/testgpu/build-shaders.sh

@@ -1,94 +1,25 @@
-# Rebuilds the shaders needed for the GPU cube test.
-# For SPIR-V: requires glslangValidator and spirv-cross, which can be obtained from the LunarG Vulkan SDK.
-# For DXBC compilation: requires FXC, which is part of the Windows SDK.
-# For DXIL compilation, requires DXC, which can be obtained via the Windows SDK or via here: https://github.com/microsoft/DirectXShaderCompiler/releases
-# For Metal compilation: requires Xcode
-
-# On Windows, run this via Git Bash.
-# To add the Windows SDK (FXC/DXC) to your path, run the command:
-#   `export PATH=$PATH:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/x.x.x.x/x64/`
-
-export MSYS_NO_PATHCONV=1
-
-# SPIR-V
-glslangValidator cube.glsl -V -S vert -o cube.vert.spv --quiet -DVERTEX
-glslangValidator cube.glsl -V -S frag -o cube.frag.spv --quiet
-xxd -i cube.vert.spv | perl -w -p -e 's/\Aunsigned /const unsigned /;' > cube.vert.h
-xxd -i cube.frag.spv | perl -w -p -e 's/\Aunsigned /const unsigned /;' > cube.frag.h
-cat cube.vert.h cube.frag.h > testgpu_spirv.h
-rm -f cube.vert.h cube.frag.h cube.vert.spv cube.frag.spv
-
-# Platform-specific compilation
-if [[ "$OSTYPE" == "darwin"* ]]; then
-
-    # FIXME: Needs to be updated!
-
-    # Xcode
-    generate_shaders()
-    {
-        fileplatform=$1
-        compileplatform=$2
-        sdkplatform=$3
-        minversion=$4
-
-        xcrun -sdk $sdkplatform metal -c -std=$compileplatform-metal1.1 -m$sdkplatform-version-min=$minversion -Wall -O3 -DVERTEX=1 -o ./cube.vert.air ./cube.metal || exit $?
-        xcrun -sdk $sdkplatform metal -c -std=$compileplatform-metal1.1 -m$sdkplatform-version-min=$minversion -Wall -O3 -o ./cube.frag.air ./cube.metal || exit $?
-
-        xcrun -sdk $sdkplatform metallib -o cube.vert.metallib cube.vert.air || exit $?
-        xcrun -sdk $sdkplatform metallib -o cube.frag.metallib cube.frag.air || exit $?
-
-        xxd -i cube.vert.metallib | perl -w -p -e 's/\Aunsigned /const unsigned /;' >./cube.vert_$fileplatform.h
-        xxd -i cube.frag.metallib | perl -w -p -e 's/\Aunsigned /const unsigned /;' >./cube.frag_$fileplatform.h
-
-        rm -f cube.vert.air cube.vert.metallib
-        rm -f cube.frag.air cube.frag.metallib
-    }
-
-    generate_shaders macos macos macosx 10.11
-    generate_shaders ios ios iphoneos 8.0
-    generate_shaders iphonesimulator ios iphonesimulator 8.0
-    generate_shaders tvos ios appletvos 9.0
-    generate_shaders tvsimulator ios appletvsimulator 9.0
-
-    # Bundle together one mega-header
-    rm -f testgpu_metallib.h
-    echo "#if defined(SDL_PLATFORM_IOS)" >> testgpu_metallib.h
-        echo "#if TARGET_OS_SIMULATOR" >> testgpu_metallib.h
-            cat cube.vert_iphonesimulator.h >> testgpu_metallib.h
-            cat cube.frag_iphonesimulator.h >> testgpu_metallib.h
-        echo "#else" >> testgpu_metallib.h
-            cat cube.vert_ios.h >> testgpu_metallib.h
-            cat cube.frag_ios.h >> testgpu_metallib.h
-        echo "#endif" >> testgpu_metallib.h
-    echo "#elif defined(SDL_PLATFORM_TVOS)" >> testgpu_metallib.h
-        echo "#if TARGET_OS_SIMULATOR" >> testgpu_metallib.h
-            cat cube.vert_tvsimulator.h >> testgpu_metallib.h
-            cat cube.frag_tvsimulator.h >> testgpu_metallib.h
-        echo "#else" >> testgpu_metallib.h
-            cat cube.vert_tvos.h >> testgpu_metallib.h
-            cat cube.frag_tvos.h >> testgpu_metallib.h
-        echo "#endif" >> testgpu_metallib.h
-    echo "#else" >> testgpu_metallib.h
-        cat cube.vert_macos.h >> testgpu_metallib.h
-        cat cube.frag_macos.h >> testgpu_metallib.h
-    echo "#endif" >> testgpu_metallib.h
-
-    # Clean up
-    rm -f cube.vert_macos.h cube.frag_macos.h
-    rm -f cube.vert_iphonesimulator.h cube.frag_iphonesimulator.h
-    rm -f cube.vert_tvsimulator.h cube.frag_tvsimulator.h
-    rm -f cube.vert_ios.h cube.frag_ios.h
-    rm -f cube.vert_tvos.h cube.frag_tvos.h
-
-elif [[ "$OSTYPE" == "cygwin"* ]] || [[ "$OSTYPE" == "msys"* ]]; then
-
-    # DXC
-    dxc cube.hlsl /E VSMain /T vs_6_0 /Fh cube.vert.h
-    dxc cube.hlsl /E PSMain /T ps_6_0 /Fh cube.frag.h
-
-    cat cube.vert.h | perl -w -p -e 's/BYTE/unsigned char/;s/g_VSMain/D3D12_CubeVert/;' > cube.vert.temp.h
-    cat cube.frag.h | perl -w -p -e 's/BYTE/unsigned char/;s/g_PSMain/D3D12_CubeFrag/;' > cube.frag.temp.h
-    cat cube.vert.temp.h cube.frag.temp.h > testgpu_dxil.h
-    rm -f cube.vert.h cube.frag.h cube.vert.temp.h cube.frag.temp.h
-
-fi
+#!/usr/bin/env bash
+
+set -e
+
+make-header() {
+    xxd -i "$1" | sed \
+        -e 's/^unsigned /const unsigned /g' \
+        -e 's,^const,static const,' \
+        > "$1.h"
+}
+
+# Requires shadercross CLI installed from SDL_shadercross
+for filename in *.hlsl; do
+    if [ -f "$filename" ]; then
+        echo "$filename"
+        shadercross "$filename" -o "${filename/.hlsl/.spv}"
+        make-header "${filename/.hlsl/.spv}"
+        shadercross "$filename" -o "${filename/.hlsl/.msl}"
+        make-header "${filename/.hlsl/.msl}"
+        shadercross "$filename" -o "${filename/.hlsl/.dxil}"
+        make-header "${filename/.hlsl/.dxil}"
+    fi
+done
+
+rm -f *.spv *.msl *.dxil

+ 238 - 0
test/testgpu/cube.frag.dxil.h

@@ -0,0 +1,238 @@
+static const unsigned char cube_frag_dxil[] = {
+  0x44, 0x58, 0x42, 0x43, 0x22, 0x83, 0x29, 0x5c, 0x68, 0x9b, 0xf1, 0x0d,
+  0x9d, 0x30, 0x30, 0x3c, 0x40, 0x0e, 0xef, 0x82, 0x01, 0x00, 0x00, 0x00,
+  0x04, 0x0b, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00,
+  0x58, 0x01, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0x28, 0x06, 0x00, 0x00,
+  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
+  0x00, 0x00, 0x00, 0x00, 0x4f, 0x53, 0x47, 0x31, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65,
+  0x74, 0x00, 0x00, 0x00, 0x50, 0x53, 0x56, 0x30, 0x8c, 0x00, 0x00, 0x00,
+  0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52,
+  0x44, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x44, 0x00, 0x03, 0x02, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x44, 0x10,
+  0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54,
+  0xac, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00,
+  0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x94, 0x04, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00,
+  0x22, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49,
+  0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
+  0x1e, 0x04, 0x8b, 0x62, 0x80, 0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42,
+  0x84, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x42, 0x88,
+  0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42,
+  0xe4, 0x48, 0x0e, 0x90, 0x11, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c,
+  0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x21, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
+  0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20,
+  0x01, 0x00, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x82, 0x60, 0x42, 0x20, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x32, 0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04,
+  0x13, 0x22, 0xa4, 0x84, 0x04, 0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14,
+  0x12, 0x4c, 0x88, 0x8c, 0x0b, 0x84, 0x84, 0x4c, 0x10, 0x30, 0x23, 0x00,
+  0x25, 0x00, 0x8a, 0x19, 0x80, 0x39, 0x02, 0x30, 0x98, 0x23, 0x40, 0x8a,
+  0x31, 0x44, 0x54, 0x44, 0x56, 0x0c, 0x20, 0xa2, 0x1a, 0xc2, 0x81, 0x80,
+  0x34, 0x20, 0x00, 0x00, 0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87,
+  0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50,
+  0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30,
+  0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0,
+  0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20,
+  0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0,
+  0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90,
+  0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10,
+  0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20,
+  0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0,
+  0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60,
+  0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86,
+  0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xc8, 0x02, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
+  0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xa2,
+  0x12, 0x18, 0x01, 0x28, 0x86, 0x32, 0x28, 0x8f, 0x92, 0x28, 0x04, 0xaa,
+  0x92, 0x18, 0x01, 0x28, 0x82, 0x42, 0x28, 0x10, 0xda, 0xb1, 0x0c, 0x82,
+  0x08, 0x04, 0x02, 0x01, 0x79, 0x18, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
+  0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0x44, 0x8f, 0x0c, 0x6f, 0xec,
+  0xed, 0x4d, 0x0c, 0x24, 0xc6, 0x05, 0xc7, 0x45, 0xa6, 0x06, 0xa6, 0xc6,
+  0x45, 0x06, 0x07, 0x04, 0x25, 0xa7, 0xcc, 0x4c, 0x4c, 0xcc, 0x66, 0x6c,
+  0x46, 0x26, 0x65, 0x43, 0x10, 0x4c, 0x10, 0x88, 0x61, 0x82, 0x40, 0x10,
+  0x1b, 0x84, 0x81, 0xd8, 0x20, 0x10, 0x04, 0x05, 0xb8, 0xb9, 0x09, 0x02,
+  0x51, 0x6c, 0x18, 0x0e, 0x84, 0x98, 0x20, 0x08, 0xc0, 0x06, 0x60, 0xc3,
+  0x40, 0x2c, 0xcb, 0x86, 0x80, 0xd9, 0x30, 0x0c, 0x4a, 0x33, 0x41, 0x58,
+  0x9e, 0x0d, 0xc1, 0x43, 0xa2, 0x2d, 0x2c, 0xcd, 0x8d, 0x08, 0x55, 0x11,
+  0xd6, 0xd0, 0xd3, 0x93, 0x14, 0xd1, 0x04, 0xa1, 0x50, 0x26, 0x08, 0xc5,
+  0xb2, 0x21, 0x20, 0x26, 0x08, 0x05, 0x33, 0x41, 0x28, 0x9a, 0x09, 0x02,
+  0x61, 0x4c, 0x10, 0x88, 0x63, 0x83, 0x80, 0x65, 0x1b, 0x16, 0x42, 0x9a,
+  0xa8, 0xca, 0x1a, 0x2e, 0x82, 0xd2, 0x36, 0x04, 0x1b, 0x93, 0x29, 0xab,
+  0x2f, 0xaa, 0x30, 0xb9, 0xb3, 0x32, 0xba, 0x09, 0x42, 0xe1, 0x6c, 0x58,
+  0x88, 0x6e, 0xf2, 0x2a, 0x6a, 0xb8, 0x08, 0x4a, 0xdb, 0x10, 0x7c, 0x1b,
+  0x06, 0x0e, 0x0c, 0x80, 0x0d, 0x85, 0x12, 0x85, 0x01, 0x00, 0xb0, 0x48,
+  0x73, 0x9b, 0xa3, 0x9b, 0x9b, 0x20, 0x10, 0x08, 0x8d, 0xb9, 0xb4, 0xb3,
+  0x2f, 0x36, 0xb2, 0x09, 0x02, 0x91, 0xd0, 0x98, 0x4b, 0x3b, 0xfb, 0x9a,
+  0xa3, 0xdb, 0x60, 0x8c, 0x01, 0x19, 0x94, 0x81, 0x19, 0x9c, 0x81, 0x19,
+  0x54, 0x61, 0x63, 0xb3, 0x6b, 0x73, 0x49, 0x23, 0x2b, 0x73, 0xa3, 0x9b,
+  0x12, 0x04, 0x55, 0xc8, 0xf0, 0x5c, 0xec, 0xca, 0xe4, 0xe6, 0xd2, 0xde,
+  0xdc, 0xa6, 0x04, 0x44, 0x13, 0x32, 0x3c, 0x17, 0xbb, 0x30, 0x36, 0xbb,
+  0x32, 0xb9, 0x29, 0x41, 0x51, 0x87, 0x0c, 0xcf, 0x65, 0x0e, 0x2d, 0x8c,
+  0xac, 0x4c, 0xae, 0xe9, 0x8d, 0xac, 0x8c, 0x6d, 0x4a, 0x80, 0x54, 0x22,
+  0xc3, 0x73, 0xa1, 0xcb, 0x83, 0x2b, 0x0b, 0x72, 0x73, 0x7b, 0xa3, 0x0b,
+  0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0x9b, 0x12, 0x34, 0x75, 0xc8, 0xf0, 0x5c,
+  0xec, 0xd2, 0xca, 0xee, 0x92, 0xc8, 0xa6, 0xe8, 0xc2, 0xe8, 0xca, 0xa6,
+  0x04, 0x4f, 0x1d, 0x32, 0x3c, 0x97, 0x32, 0x37, 0x3a, 0xb9, 0x3c, 0xa8,
+  0xb7, 0x34, 0x37, 0xba, 0xb9, 0x29, 0x41, 0x18, 0x74, 0x21, 0xc3, 0x73,
+  0x19, 0x7b, 0xab, 0x73, 0xa3, 0x2b, 0x93, 0x9b, 0x9b, 0x12, 0x9c, 0x01,
+  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+  0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88,
+  0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73,
+  0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e,
+  0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
+  0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8,
+  0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b,
+  0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76,
+  0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
+  0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e,
+  0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61,
+  0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4,
+  0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
+  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37,
+  0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76,
+  0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71,
+  0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
+  0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1,
+  0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61,
+  0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90,
+  0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
+  0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc,
+  0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8,
+  0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b,
+  0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
+  0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e,
+  0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c,
+  0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b,
+  0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x00,
+  0x04, 0x03, 0x20, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x48, 0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x1c, 0x7c, 0xd7, 0x34, 0x1f, 0x6e, 0x13, 0xad, 0x41, 0x1b, 0x61, 0x87,
+  0x0c, 0x13, 0x10, 0xdc, 0x44, 0x58, 0x49, 0x4c, 0xd4, 0x04, 0x00, 0x00,
+  0x60, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c,
+  0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xbc, 0x04, 0x00, 0x00,
+  0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00,
+  0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39,
+  0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
+  0x80, 0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14,
+  0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x42, 0x88, 0x48, 0x90, 0x14, 0x20,
+  0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90,
+  0x11, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a,
+  0x04, 0x21, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d,
+  0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20, 0x01, 0x00, 0x00, 0x00,
+  0x49, 0x18, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42,
+  0x20, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x32, 0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84,
+  0x04, 0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c,
+  0x0b, 0x84, 0x84, 0x4c, 0x10, 0x30, 0x23, 0x00, 0x25, 0x00, 0x8a, 0x19,
+  0x80, 0x39, 0x02, 0x30, 0x98, 0x23, 0x40, 0x8a, 0x31, 0x44, 0x54, 0x44,
+  0x56, 0x0c, 0x20, 0xa2, 0x1a, 0xc2, 0x81, 0x80, 0x34, 0x20, 0x00, 0x00,
+  0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79,
+  0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e,
+  0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
+  0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e,
+  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
+  0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
+  0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x01,
+  0x0b, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90,
+  0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xa2, 0x12, 0x18, 0x01, 0x28,
+  0x89, 0x62, 0x28, 0x83, 0xf2, 0xa0, 0x2a, 0x89, 0x11, 0x80, 0x22, 0x28,
+  0x84, 0x02, 0xa1, 0x1d, 0xcb, 0x20, 0x88, 0x40, 0x20, 0x10, 0x00, 0x00,
+  0x79, 0x18, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90,
+  0x46, 0x02, 0x13, 0x44, 0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24,
+  0xc6, 0x05, 0xc7, 0x45, 0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04,
+  0x25, 0xa7, 0xcc, 0x4c, 0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43,
+  0x10, 0x4c, 0x10, 0x88, 0x61, 0x82, 0x40, 0x10, 0x1b, 0x84, 0x81, 0x98,
+  0x20, 0x10, 0xc5, 0x06, 0x61, 0x30, 0x28, 0xc0, 0xcd, 0x4d, 0x10, 0x08,
+  0x63, 0xc3, 0x80, 0x24, 0xc4, 0x04, 0x61, 0x71, 0x36, 0x04, 0xcb, 0x04,
+  0x41, 0x00, 0x48, 0xb4, 0x85, 0xa5, 0xb9, 0x11, 0xa1, 0x2a, 0xc2, 0x1a,
+  0x7a, 0x7a, 0x92, 0x22, 0x9a, 0x20, 0x14, 0xc9, 0x04, 0xa1, 0x50, 0x36,
+  0x04, 0xc4, 0x04, 0xa1, 0x58, 0x26, 0x08, 0x05, 0x33, 0x41, 0x20, 0x8e,
+  0x09, 0x02, 0x81, 0x6c, 0x10, 0x2a, 0x6b, 0xc3, 0x42, 0x3c, 0x50, 0x24,
+  0x4d, 0x03, 0x45, 0x44, 0xd7, 0x86, 0x00, 0x63, 0x32, 0x65, 0xf5, 0x45,
+  0x15, 0x26, 0x77, 0x56, 0x46, 0x37, 0x41, 0x28, 0x9a, 0x0d, 0x0b, 0xa1,
+  0x41, 0x9b, 0x14, 0x0d, 0x14, 0x11, 0x5d, 0x1b, 0x02, 0x6e, 0xc3, 0x90,
+  0x75, 0xc0, 0x86, 0xa2, 0x71, 0x3c, 0x00, 0xa8, 0xc2, 0xc6, 0x66, 0xd7,
+  0xe6, 0x92, 0x46, 0x56, 0xe6, 0x46, 0x37, 0x25, 0x08, 0xaa, 0x90, 0xe1,
+  0xb9, 0xd8, 0x95, 0xc9, 0xcd, 0xa5, 0xbd, 0xb9, 0x4d, 0x09, 0x88, 0x26,
+  0x64, 0x78, 0x2e, 0x76, 0x61, 0x6c, 0x76, 0x65, 0x72, 0x53, 0x02, 0xa3,
+  0x0e, 0x19, 0x9e, 0xcb, 0x1c, 0x5a, 0x18, 0x59, 0x99, 0x5c, 0xd3, 0x1b,
+  0x59, 0x19, 0xdb, 0x94, 0x20, 0xa9, 0x43, 0x86, 0xe7, 0x62, 0x97, 0x56,
+  0x76, 0x97, 0x44, 0x36, 0x45, 0x17, 0x46, 0x57, 0x36, 0x25, 0x58, 0xea,
+  0x90, 0xe1, 0xb9, 0x94, 0xb9, 0xd1, 0xc9, 0xe5, 0x41, 0xbd, 0xa5, 0xb9,
+  0xd1, 0xcd, 0x4d, 0x09, 0x3c, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66,
+  0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07,
+  0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
+  0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce,
+  0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b,
+  0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c,
+  0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
+  0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11,
+  0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0,
+  0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8,
+  0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
+  0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b,
+  0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87,
+  0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07,
+  0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
+  0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81,
+  0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30,
+  0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
+  0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
+  0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39,
+  0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b,
+  0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b,
+  0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87,
+  0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87,
+  0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40,
+  0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2,
+  0x00, 0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70,
+  0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4,
+  0x17, 0xb7, 0x6d, 0x00, 0x04, 0x03, 0x20, 0x0d, 0x00, 0x00, 0x00, 0x00,
+  0x61, 0x20, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c,
+  0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x44, 0x85, 0x30, 0x03,
+  0x50, 0x0a, 0x54, 0x25, 0x50, 0x06, 0x00, 0x00, 0x23, 0x06, 0x09, 0x00,
+  0x82, 0x60, 0x60, 0x4c, 0x05, 0x04, 0x29, 0xc4, 0x88, 0x41, 0x02, 0x80,
+  0x20, 0x18, 0x18, 0x94, 0x11, 0x45, 0x43, 0x31, 0x62, 0x90, 0x00, 0x20,
+  0x08, 0x06, 0x46, 0x75, 0x48, 0xd2, 0x62, 0x8c, 0x18, 0x24, 0x00, 0x08,
+  0x82, 0x81, 0x61, 0x21, 0xd3, 0x44, 0x1c, 0x23, 0x06, 0x09, 0x00, 0x82,
+  0x60, 0x80, 0x58, 0x07, 0x45, 0x39, 0xc4, 0x88, 0x41, 0x02, 0x80, 0x20,
+  0x18, 0x20, 0xd6, 0x41, 0x51, 0xc6, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08,
+  0x06, 0x88, 0x75, 0x50, 0x54, 0x23, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82,
+  0x01, 0x62, 0x1d, 0x14, 0x55, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static const unsigned int cube_frag_dxil_len = 2820;

+ 17 - 0
test/testgpu/cube.frag.hlsl

@@ -0,0 +1,17 @@
+
+struct VSInput
+{
+    float3 Position : TEXCOORD0;
+    float3 Color : TEXCOORD1;
+};
+
+struct VSOutput
+{
+    float4 Color : TEXCOORD0;
+    float4 Position : SV_Position;
+};
+
+float4 main(VSOutput input) : SV_Target0
+{
+    return input.Color;
+}

+ 33 - 0
test/testgpu/cube.frag.msl.h

@@ -0,0 +1,33 @@
+static const unsigned char cube_frag_msl[] = {
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65,
+  0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a,
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69,
+  0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a,
+  0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+  0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a,
+  0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30,
+  0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66,
+  0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61,
+  0x72, 0x5f, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x30,
+  0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d,
+  0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63,
+  0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x69, 0x6e, 0x0a, 0x7b,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20,
+  0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28,
+  0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b,
+  0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d,
+  0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x61, 0x69,
+  0x6e, 0x30, 0x28, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x69, 0x6e, 0x20,
+  0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69,
+  0x6e, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d,
+  0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74,
+  0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f,
+  0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x53,
+  0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x30, 0x20, 0x3d, 0x20,
+  0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45,
+  0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b,
+  0x0a, 0x7d, 0x0a, 0x0a
+};
+static const unsigned int cube_frag_msl_len = 352;

+ 34 - 0
test/testgpu/cube.frag.spv.h

@@ -0,0 +1,34 @@
+static const unsigned char cube_frag_spv[] = {
+  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54,
+  0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30, 0x00, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e,
+  0x76, 0x61, 0x72, 0x2e, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65,
+  0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x21, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
+};
+static const unsigned int cube_frag_spv_len = 372;

+ 0 - 31
test/testgpu/cube.glsl

@@ -1,31 +0,0 @@
-#version 450
-
-#ifdef VERTEX
-
-layout (location = 0) in vec3 in_position;
-layout (location = 1) in vec3 in_color;
-
-layout (location = 0) out vec4 out_color;
-
-layout (set = 1, binding = 0) uniform UBO
-{
-    mat4x4 modelViewProj;
-};
-
-void main()
-{
-    out_color = vec4(in_color, 1.0);
-    gl_Position = modelViewProj * vec4(in_position, 1.0);
-}
-
-#else
-
-layout (location = 0) in vec4 in_color;
-layout (location = 0) out vec4 out_color;
-
-void main()
-{
-    out_color = in_color;
-}
-
-#endif

+ 0 - 31
test/testgpu/cube.hlsl

@@ -1,31 +0,0 @@
-#define REG(reg, space) register(reg, space)
-
-cbuffer UBO : REG(b0, space1)
-{
-    float4x4 ModelViewProj;
-};
-
-struct VSInput
-{
-    float3 Position : TEXCOORD0;
-    float3 Color : TEXCOORD1;
-};
-
-struct VSOutput
-{
-    float4 Color : TEXCOORD0;
-    float4 Position : SV_Position;
-};
-
-VSOutput VSMain(VSInput input)
-{
-    VSOutput output;
-    output.Color = float4(input.Color, 1.0f);
-    output.Position = mul(ModelViewProj, float4(input.Position, 1.0f));
-    return output;
-}
-
-float4 PSMain(VSOutput input) : SV_Target0
-{
-    return input.Color;
-}

+ 13 - 0
test/testgpu/cube.hlsli

@@ -0,0 +1,13 @@
+
+struct VSInput
+{
+    float3 Position : TEXCOORD0;
+    float3 Color : TEXCOORD1;
+};
+
+struct VSOutput
+{
+    float4 Color : TEXCOORD0;
+    float4 Position : SV_Position;
+};
+

+ 0 - 38
test/testgpu/cube.metal

@@ -1,38 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-struct VSOutput
-{
-    float4 color [[user(locn0)]];
-    float4 position [[position]];
-};
-
-#ifdef VERTEX
-
-struct UBO
-{
-    float4x4 modelViewProj;
-};
-
-struct VSInput
-{
-    float3 position [[attribute(0)]];
-    float3 color [[attribute(1)]];
-};
-
-vertex VSOutput vs_main(VSInput input [[stage_in]], constant UBO& ubo [[buffer(0)]])
-{
-    VSOutput output;
-    output.color = float4(input.color, 1.0);
-    output.position = ubo.modelViewProj * float4(input.position, 1.0);
-    return output;
-}
-
-#else
-
-fragment float4 fs_main(VSOutput input [[stage_in]])
-{
-    return input.color;
-}
-
-#endif

+ 339 - 0
test/testgpu/cube.vert.dxil.h

@@ -0,0 +1,339 @@
+static const unsigned char cube_vert_dxil[] = {
+  0x44, 0x58, 0x42, 0x43, 0xd3, 0xc0, 0x5c, 0x09, 0x5b, 0x8a, 0xca, 0xcc,
+  0x95, 0x44, 0x40, 0x5f, 0xd8, 0x21, 0xf2, 0xba, 0x01, 0x00, 0x00, 0x00,
+  0xb8, 0x0f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00,
+  0x08, 0x02, 0x00, 0x00, 0x38, 0x08, 0x00, 0x00, 0x54, 0x08, 0x00, 0x00,
+  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x54, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x00, 0x00, 0x00,
+  0x4f, 0x53, 0x47, 0x31, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58, 0x43,
+  0x4f, 0x4f, 0x52, 0x44, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x6f, 0x73, 0x69,
+  0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x50, 0x53, 0x56, 0x30,
+  0xf0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
+  0x02, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x54, 0x45,
+  0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x43, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x43, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x44, 0x00,
+  0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x01, 0x44, 0x03, 0x03, 0x04, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
+  0xf0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54, 0x28, 0x06, 0x00, 0x00,
+  0x60, 0x00, 0x01, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c,
+  0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00,
+  0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00,
+  0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39,
+  0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
+  0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
+  0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20,
+  0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90,
+  0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a,
+  0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d,
+  0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20, 0x6d, 0x30, 0x86, 0xff,
+  0xff, 0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00, 0x49, 0x18, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06,
+  0x00, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84,
+  0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c,
+  0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x68, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66,
+  0x00, 0xe6, 0x08, 0xc0, 0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14,
+  0x42, 0xa6, 0x18, 0x80, 0x10, 0x52, 0x06, 0xa1, 0xa3, 0x86, 0xcb, 0x9f,
+  0xb0, 0x87, 0x90, 0x7c, 0x6e, 0xa3, 0x8a, 0x95, 0x98, 0xfc, 0xe2, 0xb6,
+  0x11, 0x31, 0xc6, 0x18, 0x54, 0xee, 0x19, 0x2e, 0x7f, 0xc2, 0x1e, 0x42,
+  0xf2, 0x43, 0xa0, 0x19, 0x16, 0x02, 0x05, 0xab, 0x10, 0x8a, 0x30, 0x42,
+  0xad, 0x14, 0x83, 0x8c, 0x31, 0xe8, 0xcd, 0x11, 0x04, 0xc5, 0x60, 0xa4,
+  0x10, 0x12, 0x49, 0x0e, 0x04, 0x0c, 0x23, 0x10, 0x43, 0x12, 0xd4, 0x9b,
+  0x0e, 0x47, 0x9a, 0x16, 0x00, 0x73, 0xa8, 0xc9, 0x9f, 0xb0, 0x87, 0xf8,
+  0xdd, 0x0d, 0x45, 0x81, 0xa5, 0x9b, 0x09, 0x04, 0x00, 0x00, 0x00, 0x00,
+  0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79,
+  0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e,
+  0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
+  0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e,
+  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
+  0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
+  0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x34,
+  0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4,
+  0x79, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+  0xc8, 0x23, 0x01, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x40, 0x16, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
+  0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22,
+  0x25, 0x30, 0x02, 0x50, 0x0c, 0x05, 0x18, 0x50, 0x04, 0x85, 0x50, 0x06,
+  0xe5, 0x50, 0x12, 0xe5, 0x51, 0x10, 0x85, 0x46, 0xa5, 0x24, 0x46, 0x00,
+  0xca, 0xa0, 0x08, 0x0a, 0x81, 0xee, 0x0c, 0x00, 0xe1, 0x19, 0x00, 0xca,
+  0x63, 0x25, 0x07, 0x02, 0x1f, 0xf0, 0x01, 0x1f, 0x40, 0x20, 0x10, 0x00,
+  0x79, 0x18, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90,
+  0x46, 0x02, 0x13, 0x44, 0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24,
+  0xc6, 0x05, 0xc7, 0x45, 0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04,
+  0x25, 0xa7, 0xcc, 0x4c, 0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43,
+  0x10, 0x4c, 0x10, 0x08, 0x63, 0x82, 0x40, 0x1c, 0x1b, 0x84, 0x81, 0xd8,
+  0x20, 0x10, 0x04, 0x05, 0xbb, 0xb9, 0x09, 0x02, 0x81, 0x6c, 0x18, 0x0e,
+  0x84, 0x98, 0x20, 0x60, 0x18, 0x11, 0xba, 0x3c, 0xb8, 0xb2, 0xaf, 0x2a,
+  0xa1, 0xa7, 0x09, 0x02, 0x91, 0x6c, 0x40, 0x08, 0x65, 0x19, 0x88, 0x81,
+  0x01, 0x36, 0x04, 0xcd, 0x06, 0x02, 0x00, 0x1c, 0x60, 0x82, 0x70, 0x5d,
+  0x8c, 0xaa, 0x84, 0x9e, 0xbe, 0x9a, 0xde, 0xc8, 0xca, 0xd8, 0xac, 0xd2,
+  0xca, 0xee, 0xa0, 0xe4, 0xde, 0xd4, 0x26, 0x08, 0x84, 0x32, 0x41, 0x20,
+  0x96, 0x0d, 0xc3, 0x34, 0x49, 0x13, 0x04, 0x82, 0x99, 0x20, 0x10, 0xcd,
+  0x04, 0x81, 0x70, 0x36, 0x20, 0x48, 0x24, 0x51, 0x15, 0x61, 0x5d, 0x1b,
+  0x04, 0x06, 0xdb, 0x30, 0x10, 0x50, 0x36, 0x41, 0x10, 0x80, 0x0d, 0xc0,
+  0x86, 0x81, 0xe0, 0xb8, 0x0d, 0x41, 0xb7, 0x61, 0x18, 0x36, 0x6f, 0x82,
+  0x90, 0x65, 0x1b, 0x02, 0x30, 0x20, 0xd1, 0x16, 0x96, 0xe6, 0x46, 0x84,
+  0xaa, 0x08, 0x6b, 0xe8, 0xe9, 0x49, 0x8a, 0x68, 0x82, 0x50, 0x48, 0x13,
+  0x84, 0x62, 0xda, 0x10, 0x10, 0x13, 0x84, 0x82, 0xda, 0x20, 0x54, 0xd6,
+  0x86, 0x85, 0x18, 0x03, 0x32, 0x28, 0x03, 0x33, 0x28, 0x83, 0xe1, 0x0c,
+  0x88, 0x32, 0x40, 0x83, 0x0d, 0xc1, 0xb0, 0x61, 0x19, 0xc6, 0x80, 0x0c,
+  0xca, 0x40, 0x0d, 0xca, 0x60, 0x38, 0x83, 0xa1, 0x0c, 0xd0, 0x60, 0x83,
+  0x90, 0x06, 0x6b, 0x30, 0x41, 0x28, 0xaa, 0x09, 0x42, 0x61, 0x4d, 0x10,
+  0x88, 0x67, 0x83, 0x50, 0xbd, 0xc1, 0x86, 0x85, 0x18, 0x03, 0x32, 0x28,
+  0x03, 0x33, 0x68, 0x83, 0xc1, 0x0d, 0x88, 0x32, 0x80, 0x03, 0x2e, 0x53,
+  0x56, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0x96,
+  0x41, 0x0e, 0xc8, 0xe0, 0x0c, 0xcc, 0xc0, 0x0d, 0x06, 0x37, 0x18, 0xca,
+  0x00, 0x0e, 0x36, 0x08, 0x71, 0x30, 0x07, 0x1b, 0x06, 0x36, 0xa0, 0x03,
+  0x60, 0x43, 0xb1, 0x89, 0x41, 0x1d, 0x3c, 0x00, 0x0d, 0x33, 0xb6, 0xb7,
+  0x30, 0xba, 0xb9, 0x09, 0x02, 0x01, 0xb1, 0x48, 0x73, 0x9b, 0xa3, 0x9b,
+  0x9b, 0x20, 0x10, 0x11, 0x8d, 0xb9, 0xb4, 0xb3, 0x2f, 0x36, 0x32, 0x1a,
+  0x73, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x1b, 0x90, 0x3b, 0xc0, 0x83, 0x3c,
+  0xd0, 0x83, 0x3d, 0x40, 0xf8, 0x00, 0x0f, 0xaa, 0xb0, 0xb1, 0xd9, 0xb5,
+  0xb9, 0xa4, 0x91, 0x95, 0xb9, 0xd1, 0x4d, 0x09, 0x82, 0x2a, 0x64, 0x78,
+  0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x02, 0xa2, 0x09,
+  0x19, 0x9e, 0x8b, 0x5d, 0x18, 0x9b, 0x5d, 0x99, 0xdc, 0x94, 0xa0, 0xa8,
+  0x43, 0x86, 0xe7, 0x32, 0x87, 0x16, 0x46, 0x56, 0x26, 0xd7, 0xf4, 0x46,
+  0x56, 0xc6, 0x36, 0x25, 0x40, 0xca, 0x90, 0xe1, 0xb9, 0xc8, 0x95, 0xcd,
+  0xbd, 0xd5, 0xc9, 0x8d, 0x95, 0xcd, 0x4d, 0x09, 0x9c, 0x4a, 0x64, 0x78,
+  0x2e, 0x74, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x73, 0x53, 0x84, 0xcc, 0xab, 0x43, 0x86, 0xe7, 0x62,
+  0x97, 0x56, 0x76, 0x97, 0x44, 0x36, 0x45, 0x17, 0x46, 0x57, 0x36, 0x25,
+  0x00, 0x83, 0x3a, 0x64, 0x78, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50,
+  0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x82, 0x3a, 0xe8, 0x42, 0x86, 0xe7,
+  0x32, 0xf6, 0x56, 0xe7, 0x46, 0x57, 0x26, 0x37, 0x37, 0x25, 0xe0, 0x03,
+  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+  0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88,
+  0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73,
+  0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e,
+  0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
+  0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8,
+  0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b,
+  0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76,
+  0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
+  0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e,
+  0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61,
+  0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4,
+  0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
+  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37,
+  0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76,
+  0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71,
+  0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
+  0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1,
+  0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61,
+  0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90,
+  0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
+  0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc,
+  0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8,
+  0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b,
+  0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
+  0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e,
+  0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+  0x36, 0xb0, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10, 0x50, 0x45, 0x41, 0x44,
+  0xa5, 0x03, 0x0c, 0x25, 0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x05,
+  0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x0b, 0x11, 0x01, 0x4c, 0x44, 0x08, 0x34,
+  0xc3, 0x42, 0x58, 0xc0, 0x34, 0x5c, 0xbe, 0xf3, 0xf8, 0x8b, 0x03, 0x0c,
+  0x62, 0xf3, 0x50, 0x93, 0x5f, 0xdc, 0xb6, 0x09, 0x54, 0xc3, 0xe5, 0x3b,
+  0x8f, 0x2f, 0x4d, 0x4e, 0x44, 0xa0, 0xd4, 0xf4, 0x50, 0x93, 0x5f, 0xdc,
+  0xb6, 0x11, 0x48, 0xc3, 0xe5, 0x3b, 0x8f, 0x3f, 0x11, 0xd1, 0x84, 0x00,
+  0x11, 0xe6, 0x17, 0xb7, 0x6d, 0x00, 0x04, 0x03, 0x20, 0x0d, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x48, 0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xdd, 0x6f, 0xe6, 0xd1, 0x4d, 0x0e, 0xe1, 0x57,
+  0xfa, 0x4f, 0xcb, 0xf3, 0xa9, 0x31, 0xd8, 0xed, 0x44, 0x58, 0x49, 0x4c,
+  0x5c, 0x07, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0xd7, 0x01, 0x00, 0x00,
+  0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x44, 0x07, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00,
+  0xce, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49,
+  0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
+  0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42,
+  0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88,
+  0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42,
+  0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c,
+  0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
+  0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20,
+  0x6d, 0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00,
+  0x49, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42,
+  0x20, 0x4c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00,
+  0x24, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04,
+  0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14,
+  0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x68, 0x23, 0x00,
+  0x25, 0x00, 0x14, 0x66, 0x00, 0xe6, 0x08, 0xc0, 0x60, 0x8e, 0x00, 0x29,
+  0xc6, 0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80, 0x10, 0x52, 0x06, 0xa1,
+  0xa3, 0x86, 0xcb, 0x9f, 0xb0, 0x87, 0x90, 0x7c, 0x6e, 0xa3, 0x8a, 0x95,
+  0x98, 0xfc, 0xe2, 0xb6, 0x11, 0x31, 0xc6, 0x18, 0x54, 0xee, 0x19, 0x2e,
+  0x7f, 0xc2, 0x1e, 0x42, 0xf2, 0x43, 0xa0, 0x19, 0x16, 0x02, 0x05, 0xab,
+  0x10, 0x8a, 0x30, 0x42, 0xad, 0x14, 0x83, 0x8c, 0x31, 0xe8, 0xcd, 0x11,
+  0x04, 0xc5, 0x60, 0xa4, 0x10, 0x12, 0x49, 0x0e, 0x04, 0x0c, 0x23, 0x10,
+  0x43, 0x12, 0xd4, 0x9b, 0x0e, 0x47, 0x9a, 0x16, 0x00, 0x73, 0xa8, 0xc9,
+  0x9f, 0xb0, 0x87, 0xf8, 0xdd, 0x0d, 0x45, 0x81, 0xa5, 0x9b, 0x09, 0x04,
+  0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87,
+  0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50,
+  0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30,
+  0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0,
+  0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20,
+  0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0,
+  0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90,
+  0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10,
+  0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20,
+  0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0,
+  0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60,
+  0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86,
+  0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x18, 0xf2, 0x34, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x30, 0xe4, 0x79, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x60, 0xc8, 0x23, 0x01, 0x01, 0x30, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x40, 0x16, 0x08, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x32, 0x1e, 0x98, 0x14, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47,
+  0xc6, 0x04, 0x43, 0x22, 0x25, 0x30, 0x02, 0x50, 0x12, 0xc5, 0x50, 0x80,
+  0x01, 0x65, 0x50, 0x0e, 0xe5, 0x41, 0xa5, 0x24, 0x46, 0x00, 0xca, 0xa0,
+  0x08, 0x0a, 0x81, 0xf0, 0x0c, 0x00, 0xe5, 0xb1, 0x92, 0x03, 0x81, 0x0f,
+  0xf8, 0x80, 0x0f, 0x20, 0x10, 0x08, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x56, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0x44,
+  0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24, 0xc6, 0x05, 0xc7, 0x45,
+  0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04, 0x25, 0xa7, 0xcc, 0x4c,
+  0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43, 0x10, 0x4c, 0x10, 0x08,
+  0x63, 0x82, 0x40, 0x1c, 0x1b, 0x84, 0x81, 0x98, 0x20, 0x10, 0xc8, 0x06,
+  0x61, 0x30, 0x28, 0xd8, 0xcd, 0x4d, 0x10, 0x88, 0x64, 0xc3, 0x80, 0x24,
+  0xc4, 0x04, 0x01, 0x9b, 0x08, 0x4c, 0x10, 0x08, 0x65, 0x03, 0x42, 0x2c,
+  0xcc, 0x40, 0x0c, 0x0d, 0xb0, 0x21, 0x70, 0x36, 0x10, 0x00, 0xf0, 0x00,
+  0x13, 0x84, 0x8c, 0xda, 0x10, 0x44, 0x13, 0x04, 0x01, 0x20, 0xd1, 0x16,
+  0x96, 0xe6, 0x46, 0x84, 0xaa, 0x08, 0x6b, 0xe8, 0xe9, 0x49, 0x8a, 0x68,
+  0x82, 0x50, 0x38, 0x13, 0x84, 0xe2, 0xd9, 0x10, 0x10, 0x13, 0x84, 0x02,
+  0x9a, 0x20, 0x10, 0xcb, 0x04, 0x81, 0x60, 0x36, 0x08, 0xda, 0xb6, 0x61,
+  0x21, 0x2a, 0xeb, 0xc2, 0xae, 0x21, 0x23, 0x2e, 0x6e, 0x43, 0x30, 0x6c,
+  0x58, 0x86, 0xca, 0xba, 0xbc, 0x6b, 0xc8, 0x86, 0x8b, 0xdb, 0x20, 0x74,
+  0xdf, 0x04, 0xa1, 0x88, 0x26, 0x08, 0x85, 0x34, 0x41, 0x20, 0x9a, 0x0d,
+  0x82, 0x36, 0x06, 0x1b, 0x16, 0xa2, 0xb2, 0x2e, 0x2c, 0x0c, 0x06, 0x31,
+  0x20, 0x2e, 0x32, 0xe0, 0x32, 0x65, 0xf5, 0x05, 0xf5, 0x36, 0x97, 0x46,
+  0x97, 0xf6, 0xe6, 0xb6, 0x61, 0x19, 0xcc, 0xc0, 0xca, 0x30, 0x31, 0x18,
+  0xc4, 0x60, 0xb8, 0xc8, 0x60, 0x83, 0x50, 0x06, 0x67, 0xb0, 0x61, 0x00,
+  0x03, 0x34, 0x00, 0x36, 0x14, 0x13, 0x95, 0x06, 0x10, 0x50, 0x85, 0x8d,
+  0xcd, 0xae, 0xcd, 0x25, 0x8d, 0xac, 0xcc, 0x8d, 0x6e, 0x4a, 0x10, 0x54,
+  0x21, 0xc3, 0x73, 0xb1, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73, 0x9b, 0x12,
+  0x10, 0x4d, 0xc8, 0xf0, 0x5c, 0xec, 0xc2, 0xd8, 0xec, 0xca, 0xe4, 0xa6,
+  0x04, 0x46, 0x1d, 0x32, 0x3c, 0x97, 0x39, 0xb4, 0x30, 0xb2, 0x32, 0xb9,
+  0xa6, 0x37, 0xb2, 0x32, 0xb6, 0x29, 0x41, 0x52, 0x86, 0x0c, 0xcf, 0x45,
+  0xae, 0x6c, 0xee, 0xad, 0x4e, 0x6e, 0xac, 0x6c, 0x6e, 0x4a, 0xf0, 0xd4,
+  0x21, 0xc3, 0x73, 0xb1, 0x4b, 0x2b, 0xbb, 0x4b, 0x22, 0x9b, 0xa2, 0x0b,
+  0xa3, 0x2b, 0x9b, 0x12, 0x44, 0x75, 0xc8, 0xf0, 0x5c, 0xca, 0xdc, 0xe8,
+  0xe4, 0xf2, 0xa0, 0xde, 0xd2, 0xdc, 0xe8, 0xe6, 0xa6, 0x04, 0x69, 0x00,
+  0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c,
+  0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3,
+  0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6,
+  0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e,
+  0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43,
+  0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03,
+  0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48,
+  0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20,
+  0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e,
+  0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d,
+  0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89,
+  0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83,
+  0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68,
+  0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90,
+  0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78,
+  0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98,
+  0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5,
+  0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c,
+  0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c,
+  0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43,
+  0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43,
+  0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82,
+  0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70,
+  0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60,
+  0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4,
+  0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00,
+  0x71, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x36, 0xb0, 0x0d, 0x97,
+  0xef, 0x3c, 0xbe, 0x10, 0x50, 0x45, 0x41, 0x44, 0xa5, 0x03, 0x0c, 0x25,
+  0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x05, 0xd2, 0x70, 0xf9, 0xce,
+  0xe3, 0x0b, 0x11, 0x01, 0x4c, 0x44, 0x08, 0x34, 0xc3, 0x42, 0x58, 0xc0,
+  0x34, 0x5c, 0xbe, 0xf3, 0xf8, 0x8b, 0x03, 0x0c, 0x62, 0xf3, 0x50, 0x93,
+  0x5f, 0xdc, 0xb6, 0x09, 0x54, 0xc3, 0xe5, 0x3b, 0x8f, 0x2f, 0x4d, 0x4e,
+  0x44, 0xa0, 0xd4, 0xf4, 0x50, 0x93, 0x5f, 0xdc, 0xb6, 0x11, 0x48, 0xc3,
+  0xe5, 0x3b, 0x8f, 0x3f, 0x11, 0xd1, 0x84, 0x00, 0x11, 0xe6, 0x17, 0xb7,
+  0x6d, 0x00, 0x04, 0x03, 0x20, 0x0d, 0x00, 0x00, 0x61, 0x20, 0x00, 0x00,
+  0x7a, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x14, 0x47, 0x00, 0x88, 0x14, 0x57, 0x29, 0x14,
+  0xc2, 0x0c, 0x40, 0xd9, 0x95, 0x5c, 0x11, 0x50, 0x29, 0x01, 0x1a, 0x63,
+  0x04, 0x20, 0x08, 0x82, 0xf8, 0x07, 0x00, 0x00, 0x23, 0x06, 0x09, 0x00,
+  0x82, 0x60, 0x20, 0x69, 0x84, 0x83, 0x61, 0xca, 0x88, 0x41, 0x02, 0x80,
+  0x20, 0x18, 0x18, 0x1f, 0xa2, 0x65, 0xd1, 0x31, 0x62, 0x90, 0x00, 0x20,
+  0x08, 0x06, 0x06, 0x18, 0x24, 0x9b, 0x46, 0x20, 0x23, 0x06, 0x09, 0x00,
+  0x82, 0x60, 0x60, 0x84, 0x81, 0xc2, 0x6d, 0x51, 0x32, 0x62, 0x90, 0x00,
+  0x20, 0x08, 0x06, 0x86, 0x18, 0x2c, 0x1c, 0x47, 0x29, 0x23, 0x06, 0x09,
+  0x00, 0x82, 0x60, 0x60, 0x8c, 0x01, 0xd3, 0x75, 0xc7, 0x32, 0x62, 0x90,
+  0x00, 0x20, 0x08, 0x06, 0x06, 0x19, 0x34, 0x9e, 0x47, 0x31, 0x23, 0x06,
+  0x07, 0x00, 0x82, 0x60, 0xd0, 0x8c, 0x01, 0x73, 0x7c, 0xa3, 0x09, 0x01,
+  0x30, 0x9a, 0x20, 0x04, 0xa3, 0x09, 0x83, 0x30, 0x9a, 0x40, 0x0c, 0x23,
+  0x06, 0x07, 0x00, 0x82, 0x60, 0xd0, 0xa0, 0x41, 0xc4, 0x94, 0xc1, 0x68,
+  0x42, 0x00, 0x8c, 0x26, 0x08, 0xc1, 0x68, 0xc2, 0x20, 0x8c, 0x26, 0x10,
+  0xc3, 0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x34, 0x6d, 0x60, 0x45, 0xd4,
+  0x68, 0x42, 0x00, 0x8c, 0x26, 0x08, 0xc1, 0x68, 0xc2, 0x20, 0x8c, 0x26,
+  0x10, 0xc3, 0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x34, 0x72, 0xb0, 0x59,
+  0x6a, 0x30, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x42, 0x30, 0x9a, 0x30, 0x08,
+  0xa3, 0x09, 0xc4, 0x60, 0xd3, 0x25, 0x9f, 0x11, 0x03, 0x04, 0x00, 0x41,
+  0x30, 0x78, 0xee, 0xa0, 0x0c, 0x9e, 0x2b, 0x18, 0x31, 0x40, 0x00, 0x10,
+  0x04, 0x83, 0x07, 0x0f, 0xcc, 0x60, 0xb9, 0x02, 0x0b, 0x0e, 0xe8, 0x98,
+  0xb5, 0xc9, 0x67, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0x9e, 0x3d, 0x48,
+  0x03, 0x69, 0x0b, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0xe0, 0xe1, 0x03,
+  0x35, 0x70, 0xb6, 0xc0, 0x02, 0x05, 0x3a, 0x96, 0x7d, 0xf2, 0x19, 0x31,
+  0x40, 0x00, 0x10, 0x04, 0x83, 0xe7, 0x0f, 0xda, 0xa0, 0xfa, 0x82, 0x11,
+  0x03, 0x04, 0x00, 0x41, 0x30, 0x78, 0x40, 0xc1, 0x0d, 0xa2, 0x2f, 0xb0,
+  0xa0, 0x81, 0x8e, 0x71, 0x63, 0x20, 0x9f, 0x11, 0x03, 0x04, 0x00, 0x41,
+  0x30, 0x78, 0x46, 0x21, 0x0e, 0xb0, 0x31, 0x08, 0x46, 0x0c, 0x10, 0x00,
+  0x04, 0xc1, 0xe0, 0x21, 0x05, 0x39, 0xa0, 0xc6, 0x20, 0xb0, 0x00, 0x82,
+  0xce, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0xa8, 0x30, 0x07, 0xa3,
+  0x30, 0x0a, 0x7b, 0xa0, 0x06, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x80,
+  0xa0, 0xc2, 0x1c, 0x8c, 0xc2, 0x28, 0xb4, 0x41, 0x1a, 0x8c, 0x18, 0x24,
+  0x00, 0x08, 0x82, 0x01, 0x82, 0x0a, 0x73, 0x30, 0x0a, 0xa3, 0x90, 0x07,
+  0x68, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x08, 0x2a, 0xcc, 0xc1,
+  0x28, 0x8c, 0x82, 0x1e, 0xb0, 0xc1, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18,
+  0x20, 0xa8, 0x30, 0x07, 0xa4, 0x30, 0x0a, 0x7b, 0xd0, 0x8c, 0x18, 0x24,
+  0x00, 0x08, 0x82, 0x01, 0x82, 0x0a, 0x73, 0x40, 0x0a, 0xa3, 0xd0, 0x06,
+  0xc9, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0xa8, 0x30, 0x07, 0xa4,
+  0x30, 0x0a, 0x79, 0x50, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x82,
+  0x0a, 0x73, 0x40, 0x0a, 0xa3, 0xa0, 0x07, 0x01, 0x02, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00
+};
+static const unsigned int cube_vert_dxil_len = 4024;

+ 15 - 0
test/testgpu/cube.vert.hlsl

@@ -0,0 +1,15 @@
+
+#include "cube.hlsli"
+
+cbuffer UBO : register(b0, space1)
+{
+    float4x4 ModelViewProj;
+};
+
+VSOutput main(VSInput input)
+{
+    VSOutput output;
+    output.Color = float4(input.Color, 1.0f);
+    output.Position = mul(ModelViewProj, float4(input.Position, 1.0f));
+    return output;
+}

+ 54 - 0
test/testgpu/cube.vert.msl.h

@@ -0,0 +1,54 @@
+static const unsigned char cube_vert_msl[] = {
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65,
+  0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a,
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69,
+  0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a,
+  0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+  0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a,
+  0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x5f,
+  0x55, 0x42, 0x4f, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c,
+  0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
+  0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x7d, 0x3b,
+  0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69,
+  0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x6f, 0x75, 0x74, 0x5f,
+  0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
+  0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63,
+  0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66,
+  0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73,
+  0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69,
+  0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a,
+  0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30,
+  0x5f, 0x69, 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c,
+  0x6f, 0x61, 0x74, 0x33, 0x20, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f,
+  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30, 0x20, 0x5b, 0x5b,
+  0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x30, 0x29,
+  0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61,
+  0x74, 0x33, 0x20, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45,
+  0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x20, 0x5b, 0x5b, 0x61, 0x74,
+  0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d,
+  0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78,
+  0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6d,
+  0x61, 0x69, 0x6e, 0x30, 0x28, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x69,
+  0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65,
+  0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74,
+  0x61, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x42, 0x4f,
+  0x26, 0x20, 0x55, 0x42, 0x4f, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66,
+  0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20,
+  0x20, 0x20, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74,
+  0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20,
+  0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76,
+  0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30,
+  0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x69, 0x6e,
+  0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43,
+  0x4f, 0x4f, 0x52, 0x44, 0x31, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f,
+  0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x55,
+  0x42, 0x4f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77,
+  0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
+  0x34, 0x28, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f,
+  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30, 0x2c, 0x20, 0x31,
+  0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+  0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a
+};
+static const unsigned int cube_vert_msl_len = 612;

+ 88 - 0
test/testgpu/cube.vert.spv.h

@@ -0,0 +1,88 @@
+static const unsigned char cube_vert_spv[] = {
+  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00,
+  0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x58, 0x02, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x74, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x42, 0x4f, 0x00, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f,
+  0x6a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x55, 0x42, 0x4f, 0x00, 0x05, 0x00, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54,
+  0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x00, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e,
+  0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
+  0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f,
+  0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x21, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x36, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+  0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x07, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x21, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
+  0x1d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
+};
+static const unsigned int cube_vert_spv_len = 1020;

+ 307 - 0
test/testgpu/overlay.frag.dxil.h

@@ -0,0 +1,307 @@
+static const unsigned char overlay_frag_dxil[] = {
+  0x44, 0x58, 0x42, 0x43, 0xfb, 0xe6, 0xe5, 0x0e, 0x78, 0x7d, 0xaf, 0x1f,
+  0x01, 0x17, 0x30, 0x61, 0x3b, 0xd6, 0x3e, 0x20, 0x01, 0x00, 0x00, 0x00,
+  0x40, 0x0e, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00,
+  0x8c, 0x01, 0x00, 0x00, 0xb8, 0x07, 0x00, 0x00, 0xd4, 0x07, 0x00, 0x00,
+  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
+  0x00, 0x00, 0x00, 0x00, 0x4f, 0x53, 0x47, 0x31, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65,
+  0x74, 0x00, 0x00, 0x00, 0x50, 0x53, 0x56, 0x30, 0xc0, 0x00, 0x00, 0x00,
+  0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58,
+  0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x42, 0x00,
+  0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x44, 0x10, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x53, 0x54, 0x41, 0x54, 0x24, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
+  0x89, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde,
+  0x21, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91,
+  0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c,
+  0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02,
+  0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b,
+  0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5,
+  0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50,
+  0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06,
+  0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff,
+  0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff,
+  0xff, 0xff, 0x03, 0x20, 0x6d, 0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f,
+  0x00, 0x09, 0xa8, 0x00, 0x49, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00,
+  0x89, 0x20, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09,
+  0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3,
+  0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c,
+  0x10, 0x68, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66, 0x00, 0xe6, 0x08, 0xc0,
+  0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80,
+  0x10, 0x52, 0x06, 0xa1, 0x9b, 0x86, 0xcb, 0x9f, 0xb0, 0x87, 0x90, 0xfc,
+  0x95, 0x90, 0x56, 0x62, 0xf2, 0x8b, 0xdb, 0x46, 0xc5, 0x18, 0x63, 0x10,
+  0x2a, 0xf7, 0x0c, 0x97, 0x3f, 0x61, 0x0f, 0x21, 0xf9, 0x21, 0xd0, 0x0c,
+  0x0b, 0x81, 0x82, 0x55, 0x18, 0x45, 0x18, 0x1b, 0x63, 0x0c, 0x42, 0xc8,
+  0xa0, 0x36, 0x47, 0x10, 0x14, 0x83, 0x91, 0x42, 0xc8, 0x23, 0x38, 0x10,
+  0x30, 0x8c, 0x40, 0x0c, 0x33, 0xb5, 0xc1, 0x38, 0xb0, 0x43, 0x38, 0xcc,
+  0xc3, 0x3c, 0xb8, 0x01, 0x2d, 0x94, 0x03, 0x3e, 0xd0, 0x43, 0x3d, 0xc8,
+  0x43, 0x39, 0xc8, 0x01, 0x29, 0xf0, 0x81, 0x3d, 0x94, 0xc3, 0x38, 0xd0,
+  0xc3, 0x3b, 0xc8, 0x03, 0x1f, 0x98, 0x03, 0x3b, 0xbc, 0x43, 0x38, 0xd0,
+  0x03, 0x1b, 0x80, 0x01, 0x1d, 0xf8, 0x01, 0x18, 0xf8, 0x81, 0x1e, 0xe8,
+  0x41, 0x3b, 0xa4, 0x03, 0x3c, 0xcc, 0xc3, 0x2f, 0xd0, 0x43, 0x3e, 0xc0,
+  0x43, 0x39, 0xa0, 0x80, 0xcc, 0x24, 0x06, 0xe3, 0xc0, 0x0e, 0xe1, 0x30,
+  0x0f, 0xf3, 0xe0, 0x06, 0xb4, 0x50, 0x0e, 0xf8, 0x40, 0x0f, 0xf5, 0x20,
+  0x0f, 0xe5, 0x20, 0x07, 0xa4, 0xc0, 0x07, 0xf6, 0x50, 0x0e, 0xe3, 0x40,
+  0x0f, 0xef, 0x20, 0x0f, 0x7c, 0x60, 0x0e, 0xec, 0xf0, 0x0e, 0xe1, 0x40,
+  0x0f, 0x6c, 0x00, 0x06, 0x74, 0xe0, 0x07, 0x60, 0xe0, 0x07, 0x48, 0x98,
+  0x94, 0xea, 0x4d, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xb3, 0x00, 0xf3, 0x2c,
+  0x44, 0xc4, 0x4e, 0xc0, 0x44, 0xa0, 0x80, 0xd0, 0x4d, 0x02, 0x02, 0x00,
+  0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79,
+  0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e,
+  0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
+  0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e,
+  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
+  0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
+  0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x34,
+  0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4,
+  0x81, 0x80, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x0b, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
+  0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22,
+  0x25, 0x30, 0x02, 0x50, 0x0c, 0x45, 0x50, 0x12, 0x65, 0x50, 0x1e, 0xc5,
+  0x51, 0x08, 0x54, 0x4a, 0x62, 0x04, 0xa0, 0x08, 0x0a, 0xa4, 0x10, 0xc8,
+  0xce, 0x00, 0x10, 0x9e, 0x01, 0xa0, 0x3c, 0x16, 0x21, 0x10, 0xcf, 0x03,
+  0x79, 0x18, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90,
+  0x46, 0x02, 0x13, 0x44, 0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24,
+  0xc6, 0x05, 0xc7, 0x45, 0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04,
+  0x25, 0xa7, 0xcc, 0x4c, 0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43,
+  0x10, 0x4c, 0x10, 0x88, 0x62, 0x82, 0x40, 0x18, 0x1b, 0x84, 0x81, 0xd8,
+  0x20, 0x10, 0x04, 0x05, 0xb8, 0xb9, 0x09, 0x02, 0x71, 0x6c, 0x18, 0x0e,
+  0x84, 0x98, 0x20, 0x58, 0x13, 0x05, 0x3a, 0x98, 0x09, 0x02, 0x81, 0x4c,
+  0x10, 0x88, 0x64, 0x83, 0x40, 0x34, 0x1b, 0x12, 0x42, 0x59, 0x18, 0x62,
+  0x60, 0x08, 0x67, 0x43, 0xf0, 0x4c, 0x10, 0x30, 0x8a, 0xc2, 0x1c, 0xcc,
+  0x06, 0x84, 0x88, 0x24, 0x86, 0x18, 0x08, 0x60, 0x43, 0x30, 0x6d, 0x20,
+  0x20, 0x00, 0xa0, 0x26, 0x08, 0x02, 0xb0, 0x01, 0xd8, 0x30, 0x10, 0xd7,
+  0xb5, 0x21, 0xc0, 0x36, 0x0c, 0x83, 0x95, 0x4d, 0x10, 0xb2, 0x6a, 0x43,
+  0xb0, 0x91, 0x68, 0x0b, 0x4b, 0x73, 0x23, 0x42, 0x55, 0x84, 0x35, 0xf4,
+  0xf4, 0x24, 0x45, 0x34, 0x41, 0x28, 0x9c, 0x09, 0x42, 0xf1, 0x6c, 0x08,
+  0x88, 0x09, 0x42, 0x01, 0x4d, 0x10, 0x08, 0x65, 0x83, 0x30, 0x06, 0x63,
+  0xb0, 0x61, 0x21, 0xbc, 0x0f, 0x0c, 0xc2, 0x40, 0x0c, 0x06, 0x31, 0x20,
+  0xc0, 0x80, 0x0c, 0x36, 0x04, 0x65, 0xc0, 0x64, 0xca, 0xea, 0x8b, 0x2a,
+  0x4c, 0xee, 0xac, 0x8c, 0x6e, 0x82, 0x50, 0x44, 0x13, 0x84, 0x42, 0x9a,
+  0x20, 0x10, 0xcb, 0x06, 0x61, 0x0c, 0xd4, 0x60, 0xc3, 0x42, 0x9c, 0xc1,
+  0x87, 0x06, 0x61, 0x00, 0x06, 0x43, 0x1a, 0x10, 0x60, 0xb0, 0x06, 0x1b,
+  0x02, 0x36, 0xd8, 0x30, 0x98, 0x41, 0x1b, 0x00, 0x1b, 0x0a, 0xab, 0x73,
+  0x83, 0x0a, 0x60, 0x91, 0xe6, 0x36, 0x47, 0x37, 0x37, 0x41, 0x20, 0x18,
+  0x1a, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x64, 0x34, 0xe6, 0xd2, 0xce, 0xbe,
+  0xe6, 0xe8, 0x26, 0x08, 0x44, 0x43, 0x84, 0xae, 0x0c, 0xef, 0xcb, 0xed,
+  0x4d, 0xae, 0x6d, 0x03, 0x02, 0x07, 0x71, 0x20, 0x07, 0xcc, 0x1c, 0xd0,
+  0x41, 0x1d, 0x0c, 0x55, 0xd8, 0xd8, 0xec, 0xda, 0x5c, 0xd2, 0xc8, 0xca,
+  0xdc, 0xe8, 0xa6, 0x04, 0x41, 0x15, 0x32, 0x3c, 0x17, 0xbb, 0x32, 0xb9,
+  0xb9, 0xb4, 0x37, 0xb7, 0x29, 0x01, 0xd1, 0x84, 0x0c, 0xcf, 0xc5, 0x2e,
+  0x8c, 0xcd, 0xae, 0x4c, 0x6e, 0x4a, 0x50, 0xd4, 0x21, 0xc3, 0x73, 0x99,
+  0x43, 0x0b, 0x23, 0x2b, 0x93, 0x6b, 0x7a, 0x23, 0x2b, 0x63, 0x9b, 0x12,
+  0x20, 0x65, 0xc8, 0xf0, 0x5c, 0xe4, 0xca, 0xe6, 0xde, 0xea, 0xe4, 0xc6,
+  0xca, 0xe6, 0xa6, 0x04, 0x54, 0x25, 0x32, 0x3c, 0x17, 0xba, 0x3c, 0xb8,
+  0xb2, 0x20, 0x37, 0xb7, 0x37, 0xba, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0xb9,
+  0x29, 0x41, 0x56, 0x87, 0x0c, 0xcf, 0xc5, 0x2e, 0xad, 0xec, 0x2e, 0x89,
+  0x6c, 0x8a, 0x2e, 0x8c, 0xae, 0x6c, 0x4a, 0xb0, 0xd5, 0x21, 0xc3, 0x73,
+  0x29, 0x73, 0xa3, 0x93, 0xcb, 0x83, 0x7a, 0x4b, 0x73, 0xa3, 0x9b, 0x9b,
+  0x12, 0xb8, 0x41, 0x17, 0x32, 0x3c, 0x97, 0xb1, 0xb7, 0x3a, 0x37, 0xba,
+  0x32, 0xb9, 0xb9, 0x29, 0x41, 0x1d, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66,
+  0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07,
+  0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
+  0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce,
+  0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b,
+  0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c,
+  0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
+  0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11,
+  0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0,
+  0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8,
+  0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
+  0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b,
+  0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87,
+  0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07,
+  0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
+  0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81,
+  0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30,
+  0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
+  0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
+  0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39,
+  0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b,
+  0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b,
+  0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87,
+  0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87,
+  0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40,
+  0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
+  0x12, 0x00, 0x00, 0x00, 0x46, 0x20, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10,
+  0x11, 0xc0, 0x44, 0x84, 0x40, 0x33, 0x2c, 0x84, 0x05, 0x4c, 0xc3, 0xe5,
+  0x3b, 0x8f, 0xbf, 0x38, 0xc0, 0x20, 0x36, 0x0f, 0x35, 0xf9, 0xc5, 0x6d,
+  0xdb, 0x00, 0x34, 0x5c, 0xbe, 0xf3, 0xf8, 0x12, 0xc0, 0x3c, 0x0b, 0xe1,
+  0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13,
+  0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x00, 0x04, 0x03,
+  0x20, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x41, 0x53, 0x48,
+  0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x5f, 0x0e, 0xa3,
+  0x9f, 0x25, 0x2a, 0x15, 0xe6, 0xbf, 0x13, 0x2a, 0x77, 0x7a, 0x8a, 0x67,
+  0x44, 0x58, 0x49, 0x4c, 0x64, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
+  0x99, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x4c, 0x06, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde,
+  0x21, 0x0c, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91,
+  0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c,
+  0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02,
+  0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b,
+  0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5,
+  0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50,
+  0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06,
+  0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff,
+  0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff,
+  0xff, 0xff, 0x03, 0x20, 0x6d, 0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f,
+  0x00, 0x09, 0xa8, 0x00, 0x49, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00,
+  0x89, 0x20, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09,
+  0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3,
+  0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c,
+  0x10, 0x68, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66, 0x00, 0xe6, 0x08, 0xc0,
+  0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80,
+  0x10, 0x52, 0x06, 0xa1, 0x9b, 0x86, 0xcb, 0x9f, 0xb0, 0x87, 0x90, 0xfc,
+  0x95, 0x90, 0x56, 0x62, 0xf2, 0x8b, 0xdb, 0x46, 0xc5, 0x18, 0x63, 0x10,
+  0x2a, 0xf7, 0x0c, 0x97, 0x3f, 0x61, 0x0f, 0x21, 0xf9, 0x21, 0xd0, 0x0c,
+  0x0b, 0x81, 0x82, 0x55, 0x18, 0x45, 0x18, 0x1b, 0x63, 0x0c, 0x42, 0xc8,
+  0xa0, 0x36, 0x47, 0x10, 0x14, 0x83, 0x91, 0x42, 0xc8, 0x23, 0x38, 0x10,
+  0x30, 0x8c, 0x40, 0x0c, 0x33, 0xb5, 0xc1, 0x38, 0xb0, 0x43, 0x38, 0xcc,
+  0xc3, 0x3c, 0xb8, 0x01, 0x2d, 0x94, 0x03, 0x3e, 0xd0, 0x43, 0x3d, 0xc8,
+  0x43, 0x39, 0xc8, 0x01, 0x29, 0xf0, 0x81, 0x3d, 0x94, 0xc3, 0x38, 0xd0,
+  0xc3, 0x3b, 0xc8, 0x03, 0x1f, 0x98, 0x03, 0x3b, 0xbc, 0x43, 0x38, 0xd0,
+  0x03, 0x1b, 0x80, 0x01, 0x1d, 0xf8, 0x01, 0x18, 0xf8, 0x81, 0x1e, 0xe8,
+  0x41, 0x3b, 0xa4, 0x03, 0x3c, 0xcc, 0xc3, 0x2f, 0xd0, 0x43, 0x3e, 0xc0,
+  0x43, 0x39, 0xa0, 0x80, 0xcc, 0x24, 0x06, 0xe3, 0xc0, 0x0e, 0xe1, 0x30,
+  0x0f, 0xf3, 0xe0, 0x06, 0xb4, 0x50, 0x0e, 0xf8, 0x40, 0x0f, 0xf5, 0x20,
+  0x0f, 0xe5, 0x20, 0x07, 0xa4, 0xc0, 0x07, 0xf6, 0x50, 0x0e, 0xe3, 0x40,
+  0x0f, 0xef, 0x20, 0x0f, 0x7c, 0x60, 0x0e, 0xec, 0xf0, 0x0e, 0xe1, 0x40,
+  0x0f, 0x6c, 0x00, 0x06, 0x74, 0xe0, 0x07, 0x60, 0xe0, 0x07, 0x48, 0x98,
+  0x94, 0xea, 0x4d, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xb3, 0x00, 0xf3, 0x2c,
+  0x44, 0xc4, 0x4e, 0xc0, 0x44, 0xa0, 0x80, 0xd0, 0x4d, 0x02, 0x02, 0x00,
+  0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79,
+  0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e,
+  0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
+  0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e,
+  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
+  0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
+  0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x34,
+  0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4,
+  0x81, 0x80, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x0b, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
+  0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22,
+  0x25, 0x30, 0x02, 0x50, 0x12, 0xc5, 0x50, 0x04, 0x65, 0x50, 0x1e, 0x54,
+  0x4a, 0x62, 0x04, 0xa0, 0x08, 0x0a, 0xa4, 0x10, 0xc8, 0xce, 0x00, 0x10,
+  0x9e, 0x01, 0xa0, 0x3c, 0x16, 0x21, 0x10, 0xcf, 0x03, 0x00, 0x00, 0x00,
+  0x79, 0x18, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90,
+  0x46, 0x02, 0x13, 0x44, 0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24,
+  0xc6, 0x05, 0xc7, 0x45, 0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04,
+  0x25, 0xa7, 0xcc, 0x4c, 0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43,
+  0x10, 0x4c, 0x10, 0x88, 0x62, 0x82, 0x40, 0x18, 0x1b, 0x84, 0x81, 0x98,
+  0x20, 0x10, 0xc7, 0x06, 0x61, 0x30, 0x28, 0xc0, 0xcd, 0x4d, 0x10, 0x08,
+  0x64, 0xc3, 0x80, 0x24, 0xc4, 0x04, 0xc1, 0x8a, 0x08, 0x4c, 0x10, 0x88,
+  0x64, 0x83, 0x40, 0x18, 0x1b, 0x12, 0x62, 0x61, 0x1a, 0x62, 0x68, 0x08,
+  0x67, 0x43, 0xf0, 0x4c, 0x10, 0x30, 0x69, 0x03, 0x42, 0x44, 0x4c, 0x43,
+  0x0c, 0x04, 0xb0, 0x21, 0x90, 0x36, 0x10, 0x10, 0x00, 0x4c, 0x13, 0x84,
+  0x6c, 0xda, 0x10, 0x54, 0x13, 0x04, 0x01, 0x20, 0xd1, 0x16, 0x96, 0xe6,
+  0x46, 0x84, 0xaa, 0x08, 0x6b, 0xe8, 0xe9, 0x49, 0x8a, 0x68, 0x82, 0x50,
+  0x30, 0x13, 0x84, 0xa2, 0xd9, 0x10, 0x10, 0x13, 0x84, 0xc2, 0x99, 0x20,
+  0x10, 0xca, 0x06, 0xc1, 0xf3, 0x36, 0x2c, 0x44, 0xa6, 0x6d, 0x5c, 0x37,
+  0x74, 0xc4, 0xf6, 0x6d, 0x08, 0xc0, 0x80, 0xc9, 0x94, 0xd5, 0x17, 0x55,
+  0x98, 0xdc, 0x59, 0x19, 0xdd, 0x04, 0xa1, 0x78, 0x26, 0x08, 0x05, 0x34,
+  0x41, 0x20, 0x96, 0x0d, 0x82, 0x57, 0x06, 0x1b, 0x16, 0x42, 0x0c, 0xb4,
+  0x31, 0xe0, 0xb6, 0x81, 0x0c, 0x88, 0xcd, 0x0c, 0x36, 0x04, 0x67, 0xb0,
+  0x61, 0x08, 0x03, 0x34, 0x00, 0x36, 0x14, 0x17, 0x96, 0x06, 0x14, 0x50,
+  0x85, 0x8d, 0xcd, 0xae, 0xcd, 0x25, 0x8d, 0xac, 0xcc, 0x8d, 0x6e, 0x4a,
+  0x10, 0x54, 0x21, 0xc3, 0x73, 0xb1, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73,
+  0x9b, 0x12, 0x10, 0x4d, 0xc8, 0xf0, 0x5c, 0xec, 0xc2, 0xd8, 0xec, 0xca,
+  0xe4, 0xa6, 0x04, 0x46, 0x1d, 0x32, 0x3c, 0x97, 0x39, 0xb4, 0x30, 0xb2,
+  0x32, 0xb9, 0xa6, 0x37, 0xb2, 0x32, 0xb6, 0x29, 0x41, 0x52, 0x86, 0x0c,
+  0xcf, 0x45, 0xae, 0x6c, 0xee, 0xad, 0x4e, 0x6e, 0xac, 0x6c, 0x6e, 0x4a,
+  0x30, 0xd5, 0x21, 0xc3, 0x73, 0xb1, 0x4b, 0x2b, 0xbb, 0x4b, 0x22, 0x9b,
+  0xa2, 0x0b, 0xa3, 0x2b, 0x9b, 0x12, 0x54, 0x75, 0xc8, 0xf0, 0x5c, 0xca,
+  0xdc, 0xe8, 0xe4, 0xf2, 0xa0, 0xde, 0xd2, 0xdc, 0xe8, 0xe6, 0xa6, 0x04,
+  0x69, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+  0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88,
+  0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73,
+  0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e,
+  0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
+  0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8,
+  0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b,
+  0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76,
+  0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
+  0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e,
+  0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61,
+  0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4,
+  0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
+  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37,
+  0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76,
+  0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71,
+  0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
+  0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1,
+  0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61,
+  0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90,
+  0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
+  0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc,
+  0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8,
+  0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b,
+  0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
+  0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e,
+  0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x46, 0x20, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10, 0x11, 0xc0, 0x44, 0x84,
+  0x40, 0x33, 0x2c, 0x84, 0x05, 0x4c, 0xc3, 0xe5, 0x3b, 0x8f, 0xbf, 0x38,
+  0xc0, 0x20, 0x36, 0x0f, 0x35, 0xf9, 0xc5, 0x6d, 0xdb, 0x00, 0x34, 0x5c,
+  0xbe, 0xf3, 0xf8, 0x12, 0xc0, 0x3c, 0x0b, 0xe1, 0x17, 0xb7, 0x6d, 0x02,
+  0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d,
+  0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x00, 0x04, 0x03, 0x20, 0x0d, 0x00, 0x00,
+  0x61, 0x20, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c,
+  0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x46, 0x00, 0x88,
+  0x94, 0xc2, 0x0c, 0x40, 0xc9, 0x15, 0x42, 0xe1, 0x51, 0x29, 0x83, 0x12,
+  0xa0, 0x31, 0x03, 0x00, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x00, 0x65,
+  0x06, 0x74, 0x5d, 0xc9, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x40, 0xda,
+  0x41, 0x60, 0x98, 0x32, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x86, 0x77,
+  0x64, 0x99, 0x94, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0xf1, 0x21,
+  0x9a, 0x56, 0x28, 0x23, 0x06, 0x0f, 0x00, 0x82, 0x60, 0xd0, 0x78, 0x08,
+  0x31, 0x08, 0x41, 0x51, 0x6c, 0xdb, 0x52, 0x8c, 0x26, 0x04, 0xc0, 0x68,
+  0x82, 0x10, 0x8c, 0x26, 0x0c, 0xc2, 0x68, 0x02, 0x31, 0x8c, 0x18, 0x24,
+  0x00, 0x08, 0x82, 0x01, 0x42, 0x06, 0x11, 0x18, 0x80, 0x41, 0x46, 0x8c,
+  0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x42, 0x06, 0x11, 0x18, 0x80, 0xc1,
+  0x32, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x42, 0x06, 0x11, 0x18,
+  0x80, 0x01, 0x26, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x42, 0x06,
+  0x11, 0x18, 0x80, 0x01, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static const unsigned int overlay_frag_dxil_len = 3648;

+ 10 - 0
test/testgpu/overlay.frag.hlsl

@@ -0,0 +1,10 @@
+
+#include "overlay.hlsli"
+
+Texture2D<float4> t0 : register(t0, space2);
+SamplerState s0 : register(s0, space2);
+
+float4 main(VSOutput input) : SV_Target0
+{
+    return t0.Sample(s0, input.uv);
+}

+ 39 - 0
test/testgpu/overlay.frag.msl.h

@@ -0,0 +1,39 @@
+static const unsigned char overlay_frag_msl[] = {
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65,
+  0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a,
+  0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69,
+  0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a,
+  0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+  0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a,
+  0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30,
+  0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66,
+  0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61,
+  0x72, 0x5f, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x30,
+  0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d,
+  0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63,
+  0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x69, 0x6e, 0x0a, 0x7b,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x20,
+  0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28,
+  0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b,
+  0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d,
+  0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x61, 0x69,
+  0x6e, 0x30, 0x28, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x69, 0x6e, 0x20,
+  0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69,
+  0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65,
+  0x32, 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x74, 0x30,
+  0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30,
+  0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72,
+  0x20, 0x73, 0x30, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
+  0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20,
+  0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61,
+  0x72, 0x5f, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x30,
+  0x20, 0x3d, 0x20, 0x74, 0x30, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
+  0x28, 0x73, 0x30, 0x2c, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76,
+  0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30,
+  0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
+  0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a
+};
+static const unsigned int overlay_frag_msl_len = 430;

+ 66 - 0
test/testgpu/overlay.frag.spv.h

@@ -0,0 +1,66 @@
+static const unsigned char overlay_frag_spv[] = {
+  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00,
+  0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x32, 0x64, 0x2e,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x73, 0x61, 0x6d,
+  0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54,
+  0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x30, 0x00, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e,
+  0x76, 0x61, 0x72, 0x2e, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65,
+  0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x73, 0x61, 0x6d,
+  0x70, 0x6c, 0x65, 0x64, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+  0x19, 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x17, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x56, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x57, 0x00, 0x06, 0x00,
+  0x0e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
+  0x38, 0x00, 0x01, 0x00
+};
+static const unsigned int overlay_frag_spv_len = 748;

+ 5 - 0
test/testgpu/overlay.hlsli

@@ -0,0 +1,5 @@
+struct VSOutput
+{
+    float2 uv : TEXCOORD0;
+    float4 pos : SV_Position;
+};

+ 288 - 0
test/testgpu/overlay.vert.dxil.h

@@ -0,0 +1,288 @@
+static const unsigned char overlay_vert_dxil[] = {
+  0x44, 0x58, 0x42, 0x43, 0x83, 0xe4, 0x8c, 0xc4, 0xe4, 0xba, 0x9c, 0xa4,
+  0xbf, 0xfe, 0x52, 0x59, 0x4c, 0x50, 0xbb, 0xec, 0x01, 0x00, 0x00, 0x00,
+  0x54, 0x0d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
+  0x94, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1c, 0x07, 0x00, 0x00,
+  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65,
+  0x78, 0x49, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x31, 0x60, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x53, 0x56, 0x5f,
+  0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x50, 0x53, 0x56, 0x30, 0x9c, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x6d, 0x61,
+  0x69, 0x6e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x41, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x03, 0x02, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x44, 0x03,
+  0x03, 0x04, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54,
+  0x64, 0x05, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x59, 0x01, 0x00, 0x00,
+  0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x4c, 0x05, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00,
+  0x50, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49,
+  0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
+  0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42,
+  0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88,
+  0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42,
+  0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c,
+  0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
+  0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20,
+  0x01, 0x00, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x82, 0x60, 0x42, 0x20, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04,
+  0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14,
+  0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x40, 0x73, 0x04,
+  0x60, 0x90, 0x06, 0x80, 0xc2, 0x0c, 0x40, 0x22, 0x0c, 0x22, 0x23, 0x00,
+  0x25, 0x30, 0x74, 0xe6, 0x08, 0x90, 0x62, 0x00, 0x00, 0x40, 0x02, 0xa4,
+  0x8a, 0x61, 0x00, 0x00, 0x69, 0x10, 0x1b, 0x08, 0xc8, 0x01, 0x00, 0x00,
+  0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79,
+  0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e,
+  0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
+  0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e,
+  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
+  0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
+  0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
+  0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
+  0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x3a, 0x0f, 0x64, 0x90, 0x21, 0x23,
+  0x45, 0x44, 0x80, 0x1d, 0x4c, 0x30, 0x5c, 0xc3, 0x00, 0x00, 0x40, 0x00,
+  0x00, 0x00, 0x39, 0x58, 0x63, 0x72, 0xa8, 0xc6, 0x43, 0x9e, 0x03, 0x08,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x0a,
+  0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79,
+  0x18, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8,
+  0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
+  0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x02,
+  0x25, 0x30, 0x02, 0x50, 0x0c, 0x65, 0x50, 0x1e, 0x45, 0x53, 0x10, 0x94,
+  0x0a, 0xa1, 0x0c, 0x8a, 0xa0, 0x14, 0x4a, 0x60, 0x04, 0xa0, 0x24, 0x88,
+  0x8c, 0x85, 0x80, 0x20, 0x08, 0xe2, 0xbf, 0x00, 0x82, 0x20, 0x88, 0x7f,
+  0x20, 0x08, 0x82, 0xf8, 0x07, 0x82, 0x20, 0x88, 0x7f, 0x20, 0x08, 0x82,
+  0xf8, 0x07, 0x82, 0x20, 0x88, 0xff, 0x02, 0x08, 0x82, 0x20, 0xfe, 0x0b,
+  0x20, 0x08, 0x82, 0xf8, 0x2f, 0x8c, 0x85, 0x00, 0x00, 0x08, 0x82, 0x20,
+  0xfe, 0x01, 0x20, 0x08, 0x82, 0xf8, 0x07, 0x82, 0x20, 0x88, 0x7f, 0x00,
+  0x08, 0x82, 0x20, 0xfe, 0x51, 0x18, 0xcb, 0x00, 0x02, 0x01, 0x10, 0x06,
+  0x7a, 0x63, 0x0d, 0x01, 0x32, 0x07, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x64, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0x44,
+  0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24, 0xc6, 0x05, 0xc7, 0x45,
+  0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04, 0x25, 0xa7, 0xcc, 0x4c,
+  0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43, 0x10, 0x4c, 0x10, 0x00,
+  0x63, 0x82, 0x00, 0x1c, 0x1b, 0x84, 0x81, 0xd8, 0x20, 0x10, 0x04, 0x05,
+  0xbb, 0xb9, 0x09, 0x02, 0x80, 0x6c, 0x18, 0x0e, 0x84, 0x98, 0x20, 0x20,
+  0xc3, 0x06, 0x60, 0xc3, 0x40, 0x2c, 0xcb, 0x86, 0x80, 0xd9, 0x30, 0x0c,
+  0x4a, 0x33, 0x41, 0x78, 0xae, 0x0d, 0xc1, 0x43, 0xa2, 0x2d, 0x2c, 0xcd,
+  0x8d, 0xcb, 0x94, 0xd5, 0x97, 0x55, 0x99, 0x1c, 0x5d, 0x19, 0x5e, 0x12,
+  0xd1, 0x04, 0x21, 0x81, 0x26, 0x08, 0x49, 0xb4, 0x21, 0x20, 0x26, 0x08,
+  0x89, 0x34, 0x41, 0x00, 0x92, 0x0d, 0xc2, 0x35, 0x6c, 0x58, 0x08, 0x69,
+  0xa2, 0x2a, 0x6b, 0xa0, 0x08, 0x0b, 0xdb, 0x10, 0x64, 0x44, 0xa8, 0x8a,
+  0xb0, 0x86, 0x9e, 0x9e, 0xa4, 0x88, 0x26, 0x08, 0xc9, 0x34, 0x41, 0x48,
+  0x9e, 0x0d, 0xc2, 0x75, 0x6d, 0x58, 0x88, 0x8d, 0xb3, 0xaa, 0x6e, 0xe8,
+  0x08, 0xcb, 0xe3, 0x32, 0x65, 0xf5, 0x05, 0xf5, 0x36, 0x97, 0x46, 0x97,
+  0xf6, 0xe6, 0x36, 0x41, 0x48, 0x9c, 0x09, 0x42, 0xd2, 0x4c, 0x10, 0x00,
+  0x65, 0x83, 0x70, 0x8d, 0xc1, 0x86, 0x65, 0x00, 0x03, 0x2e, 0x0c, 0x2a,
+  0x31, 0x18, 0xc4, 0x60, 0xb0, 0xc8, 0x60, 0x83, 0xf0, 0x95, 0xc1, 0x86,
+  0x41, 0x33, 0x03, 0x60, 0x43, 0xa1, 0x44, 0x67, 0x00, 0x00, 0x2c, 0xd2,
+  0xdc, 0xe6, 0xe8, 0xe6, 0x26, 0x08, 0xc0, 0x42, 0x22, 0xcd, 0x8d, 0x6e,
+  0x6e, 0x82, 0x00, 0x30, 0x34, 0xe6, 0xd2, 0xce, 0xbe, 0xd8, 0xc8, 0x68,
+  0xcc, 0xa5, 0x9d, 0x7d, 0xcd, 0xd1, 0x6d, 0x40, 0xd2, 0x40, 0x0d, 0xd6,
+  0x80, 0x0d, 0xda, 0x60, 0x70, 0x03, 0xa4, 0x0a, 0x1b, 0x9b, 0x5d, 0x9b,
+  0x4b, 0x1a, 0x59, 0x99, 0x1b, 0xdd, 0x94, 0x20, 0xa8, 0x42, 0x86, 0xe7,
+  0x62, 0x57, 0x26, 0x37, 0x97, 0xf6, 0xe6, 0x36, 0x25, 0x20, 0x9a, 0x90,
+  0xe1, 0xb9, 0xd8, 0x85, 0xb1, 0xd9, 0x95, 0xc9, 0x4d, 0x09, 0x8a, 0x3a,
+  0x64, 0x78, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x6f, 0x64,
+  0x65, 0x6c, 0x53, 0x02, 0xa4, 0x12, 0x19, 0x9e, 0x0b, 0x5d, 0x1e, 0x5c,
+  0x59, 0x90, 0x9b, 0xdb, 0x1b, 0x5d, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0xdc,
+  0x94, 0xa0, 0xa9, 0x43, 0x86, 0xe7, 0x62, 0x97, 0x56, 0x76, 0x97, 0x44,
+  0x36, 0x45, 0x17, 0x46, 0x57, 0x36, 0x25, 0x78, 0xea, 0x90, 0xe1, 0xb9,
+  0x94, 0xb9, 0xd1, 0xc9, 0xe5, 0x41, 0xbd, 0xa5, 0xb9, 0xd1, 0xcd, 0x4d,
+  0x09, 0xce, 0xa0, 0x0b, 0x19, 0x9e, 0xcb, 0xd8, 0x5b, 0x9d, 0x1b, 0x5d,
+  0x99, 0xdc, 0xdc, 0x94, 0xc0, 0x0d, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66,
+  0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07,
+  0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
+  0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce,
+  0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b,
+  0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c,
+  0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
+  0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11,
+  0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0,
+  0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8,
+  0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
+  0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b,
+  0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87,
+  0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07,
+  0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
+  0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81,
+  0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30,
+  0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
+  0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
+  0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39,
+  0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b,
+  0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b,
+  0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87,
+  0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87,
+  0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40,
+  0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x06, 0x30, 0xfc, 0x77, 0x6d, 0x01, 0xca, 0x7f,
+  0xeb, 0x7e, 0xe5, 0xd7, 0x03, 0xc2, 0x98, 0x80, 0xf2, 0xe3, 0xb5, 0x5f,
+  0xf9, 0xf5, 0x80, 0x30, 0x46, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2,
+  0x00, 0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x23, 0xb7, 0x6d, 0x05, 0xd5, 0x70,
+  0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4,
+  0x17, 0xb7, 0x6d, 0x03, 0x04, 0x03, 0x20, 0x0d, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x48, 0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xfb, 0xf8, 0x74, 0xf1, 0xe3, 0xa2, 0xc5, 0x7b,
+  0xa6, 0x63, 0x5c, 0xdb, 0x8d, 0xc1, 0xf1, 0x55, 0x44, 0x58, 0x49, 0x4c,
+  0x30, 0x06, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x8c, 0x01, 0x00, 0x00,
+  0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x18, 0x06, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00,
+  0x83, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49,
+  0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
+  0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42,
+  0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88,
+  0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42,
+  0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c,
+  0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
+  0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20,
+  0x01, 0x00, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x13, 0x82, 0x60, 0x42, 0x20, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04,
+  0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14,
+  0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x4c, 0x73, 0x04,
+  0x60, 0x90, 0x06, 0x80, 0xc2, 0x0c, 0x40, 0x22, 0x0c, 0x22, 0x23, 0x00,
+  0x25, 0x30, 0x74, 0xe6, 0x08, 0x90, 0x62, 0x00, 0x00, 0x40, 0x02, 0xa4,
+  0x8a, 0x61, 0x00, 0x00, 0x69, 0x10, 0x1b, 0x08, 0xc8, 0x01, 0x40, 0x60,
+  0x8e, 0x00, 0x14, 0x68, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x72, 0xc0,
+  0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0,
+  0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d,
+  0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d,
+  0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78,
+  0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a,
+  0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73,
+  0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
+  0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d,
+  0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6,
+  0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78,
+  0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76,
+  0x40, 0x07, 0x3a, 0x0f, 0x64, 0x90, 0x21, 0x23, 0x45, 0x44, 0x80, 0x1d,
+  0x4c, 0x30, 0x60, 0xc3, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x39, 0x58,
+  0x63, 0x72, 0xa8, 0xc6, 0x43, 0x9e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x0a, 0x10, 0x00, 0x01, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x18, 0x20, 0x00, 0x04,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14, 0x19, 0x11, 0x4c, 0x90,
+  0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x02, 0x25, 0x30, 0x02, 0x50,
+  0x12, 0xc5, 0x50, 0x06, 0xe5, 0x41, 0x71, 0x04, 0x80, 0x52, 0x21, 0x94,
+  0x41, 0x29, 0x94, 0xc0, 0x08, 0x40, 0x49, 0x14, 0x01, 0x91, 0xb1, 0x10,
+  0x10, 0x04, 0x41, 0xfc, 0x17, 0x40, 0x10, 0x04, 0xf1, 0x0f, 0x04, 0x41,
+  0x10, 0xff, 0x40, 0x10, 0x04, 0xf1, 0x0f, 0x04, 0x41, 0x10, 0xff, 0x40,
+  0x10, 0x04, 0xf1, 0x5f, 0x00, 0x41, 0x10, 0xc4, 0x7f, 0x01, 0x04, 0x41,
+  0x10, 0xff, 0x85, 0xb1, 0x10, 0x00, 0x00, 0x41, 0x10, 0xc4, 0x3f, 0x00,
+  0x04, 0x41, 0x10, 0xff, 0x40, 0x10, 0x04, 0xf1, 0x0f, 0x00, 0x41, 0x10,
+  0xc4, 0x3f, 0x7a, 0x63, 0x0d, 0x01, 0x32, 0x07, 0x14, 0xc6, 0x32, 0x80,
+  0x40, 0x00, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
+  0x5d, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0x44,
+  0x8f, 0x0c, 0x6f, 0xec, 0xed, 0x4d, 0x0c, 0x24, 0xc6, 0x05, 0xc7, 0x45,
+  0xa6, 0x06, 0xa6, 0xc6, 0x45, 0x06, 0x07, 0x04, 0x25, 0xa7, 0xcc, 0x4c,
+  0x4c, 0xcc, 0x66, 0x6c, 0x46, 0x26, 0x65, 0x43, 0x10, 0x4c, 0x10, 0x00,
+  0x63, 0x82, 0x00, 0x1c, 0x1b, 0x84, 0x81, 0x98, 0x20, 0x00, 0xc8, 0x06,
+  0x61, 0x30, 0x28, 0xd8, 0xcd, 0x4d, 0x10, 0x80, 0x64, 0xc3, 0x80, 0x24,
+  0xc4, 0x04, 0xe1, 0xb1, 0x36, 0x04, 0xcb, 0x04, 0x01, 0x19, 0x48, 0xb4,
+  0x85, 0xa5, 0xb9, 0x71, 0x99, 0xb2, 0xfa, 0xb2, 0x2a, 0x93, 0xa3, 0x2b,
+  0xc3, 0x4b, 0x22, 0x9a, 0x20, 0x24, 0xcf, 0x04, 0x21, 0x81, 0x36, 0x04,
+  0xc4, 0x04, 0x21, 0x89, 0x26, 0x08, 0x80, 0xb2, 0x41, 0xa0, 0x86, 0x0d,
+  0x0b, 0xf1, 0x40, 0x91, 0x34, 0x0d, 0x11, 0x31, 0x55, 0x1b, 0x02, 0x8b,
+  0x08, 0x55, 0x11, 0xd6, 0xd0, 0xd3, 0x93, 0x14, 0xd1, 0x04, 0x21, 0x91,
+  0x26, 0x08, 0xc9, 0xb4, 0x41, 0xa0, 0xa8, 0x0d, 0x0b, 0x81, 0x65, 0x93,
+  0xa4, 0x0d, 0x1a, 0x31, 0x6d, 0x5c, 0xa6, 0xac, 0xbe, 0xa0, 0xde, 0xe6,
+  0xd2, 0xe8, 0xd2, 0xde, 0xdc, 0x26, 0x08, 0x89, 0x33, 0x41, 0x48, 0x9a,
+  0x09, 0x02, 0xb0, 0x6c, 0x10, 0x28, 0x30, 0xd8, 0xb0, 0x0c, 0x5d, 0xe6,
+  0x49, 0xdf, 0xf0, 0x0d, 0x53, 0x18, 0x6c, 0x10, 0x38, 0x31, 0xd8, 0x30,
+  0x5c, 0x63, 0x00, 0x6c, 0x28, 0x1a, 0x87, 0x0c, 0x00, 0x80, 0x43, 0x9a,
+  0x1b, 0x1d, 0x9f, 0xb7, 0x36, 0xb7, 0x34, 0xb8, 0x37, 0xba, 0x32, 0x37,
+  0x3a, 0x90, 0x31, 0xb4, 0x30, 0x39, 0x46, 0x53, 0x69, 0x6d, 0x70, 0x6c,
+  0x65, 0x20, 0x43, 0x2f, 0x43, 0x2b, 0x2b, 0x20, 0x54, 0x42, 0x41, 0x41,
+  0x1b, 0x02, 0x34, 0x98, 0x20, 0x44, 0xcc, 0x86, 0xe1, 0x0c, 0xd2, 0x40,
+  0x0d, 0x36, 0x0c, 0x66, 0xb0, 0x06, 0x6a, 0xb0, 0x61, 0x60, 0x03, 0x36,
+  0x50, 0x83, 0x2a, 0x6c, 0x6c, 0x76, 0x6d, 0x2e, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x53, 0x82, 0xa0, 0x0a, 0x19, 0x9e, 0x8b, 0x5d, 0x99, 0xdc, 0x5c,
+  0xda, 0x9b, 0xdb, 0x94, 0x80, 0x68, 0x42, 0x86, 0xe7, 0x62, 0x17, 0xc6,
+  0x66, 0x57, 0x26, 0x37, 0x25, 0x30, 0xea, 0x90, 0xe1, 0xb9, 0xcc, 0xa1,
+  0x85, 0x91, 0x95, 0xc9, 0x35, 0xbd, 0x91, 0x95, 0xb1, 0x4d, 0x09, 0x92,
+  0x3a, 0x64, 0x78, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x49, 0x64, 0x53, 0x74,
+  0x61, 0x74, 0x65, 0x53, 0x82, 0xa5, 0x0e, 0x19, 0x9e, 0x4b, 0x99, 0x1b,
+  0x9d, 0x5c, 0x1e, 0xd4, 0x5b, 0x9a, 0x1b, 0xdd, 0xdc, 0x94, 0x80, 0x0c,
+  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+  0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88,
+  0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73,
+  0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e,
+  0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
+  0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8,
+  0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b,
+  0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76,
+  0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
+  0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e,
+  0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61,
+  0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4,
+  0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
+  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37,
+  0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76,
+  0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71,
+  0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
+  0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1,
+  0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61,
+  0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90,
+  0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
+  0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc,
+  0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8,
+  0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b,
+  0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
+  0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e,
+  0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+  0x06, 0x30, 0xfc, 0x77, 0x6d, 0x01, 0xca, 0x7f, 0xeb, 0x7e, 0xe5, 0xd7,
+  0x03, 0xc2, 0x98, 0x80, 0xf2, 0xe3, 0xb5, 0x5f, 0xf9, 0xf5, 0x80, 0x30,
+  0x46, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c,
+  0xd4, 0xe4, 0x23, 0xb7, 0x6d, 0x05, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b,
+  0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x03,
+  0x04, 0x03, 0x20, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x61, 0x20, 0x00, 0x00,
+  0x35, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x04, 0x4a, 0xa1, 0x08, 0x0a, 0x61, 0x06, 0x80,
+  0xc6, 0x08, 0xc0, 0x18, 0x01, 0x08, 0x82, 0x20, 0xfe, 0x01, 0x00, 0x00,
+  0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0xa0, 0x68, 0xc4, 0x75, 0x35, 0xc3,
+  0x0e, 0xc3, 0x87, 0x05, 0x14, 0x80, 0x51, 0x01, 0x22, 0xb5, 0x05, 0xb0,
+  0xc8, 0x20, 0x06, 0x5c, 0x40, 0xc1, 0x18, 0x55, 0x30, 0x52, 0x60, 0x10,
+  0xc0, 0x22, 0x83, 0x19, 0x80, 0x41, 0x40, 0xc1, 0x18, 0x95, 0x40, 0x52,
+  0x63, 0x10, 0xc0, 0x22, 0x43, 0x1a, 0x90, 0x41, 0x40, 0xc1, 0x18, 0xd5,
+  0x50, 0x52, 0x68, 0x10, 0xc0, 0x22, 0x43, 0x1b, 0xa0, 0x41, 0x40, 0xc1,
+  0x18, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0xc0, 0xb0, 0x41, 0xa6, 0x06,
+  0x6a, 0x00, 0x06, 0xcd, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x30, 0x6c,
+  0x90, 0xa9, 0x81, 0x1a, 0x84, 0x41, 0x32, 0x62, 0x90, 0x00, 0x20, 0x08,
+  0x06, 0x0c, 0x1b, 0x64, 0x6b, 0xa0, 0x06, 0x60, 0x50, 0x8c, 0x18, 0x24,
+  0x00, 0x08, 0x82, 0x01, 0xc3, 0x06, 0xd9, 0x1a, 0xa8, 0x41, 0x18, 0x04,
+  0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0xc0, 0xb0, 0x41, 0xb6, 0x06, 0x6a,
+  0xe0, 0x55, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0xc0, 0xb0, 0x41, 0xb6,
+  0x06, 0x6a, 0x30, 0x06, 0x14, 0x06, 0xc4, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x5b, 0x06, 0x21, 0x60, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00
+};
+static const unsigned int overlay_vert_dxil_len = 3412;

+ 25 - 0
test/testgpu/overlay.vert.hlsl

@@ -0,0 +1,25 @@
+
+#include "overlay.hlsli"
+
+static const uint verts[6] = {0, 1, 2, 0, 2, 3};
+static const float2 uvs[4] = {
+    {0.0f, 0.0f},
+    {1.0f, 0.0f},
+    {1.0f, 1.0f},
+    {0.0f, 1.0f}
+};
+static const float2 pos[4] = {
+    {-1.0f, 1.0f},
+    {1.0f, 1.0f},
+    {1.0f, -1.0f},
+    {-1.0f, -1.0f}
+};
+
+VSOutput main(uint id : SV_VertexID)
+{
+    VSOutput output;
+    uint vert = verts[id];
+    output.uv = uvs[vert];
+    output.pos = float4(pos[vert], 0.0f, 1.0f);
+    return output;
+}

+ 146 - 0
test/testgpu/overlay.vert.msl.h

@@ -0,0 +1,146 @@
+static const unsigned char overlay_vert_msl[] = {
+  0x23, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x6e,
+  0x67, 0x20, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63,
+  0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x22, 0x2d, 0x57,
+  0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2d, 0x70, 0x72, 0x6f, 0x74,
+  0x6f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x0a, 0x23, 0x70, 0x72, 0x61,
+  0x67, 0x6d, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x20, 0x64, 0x69,
+  0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x20, 0x69, 0x67, 0x6e,
+  0x6f, 0x72, 0x65, 0x64, 0x20, 0x22, 0x2d, 0x57, 0x6d, 0x69, 0x73, 0x73,
+  0x69, 0x6e, 0x67, 0x2d, 0x62, 0x72, 0x61, 0x63, 0x65, 0x73, 0x22, 0x0a,
+  0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d,
+  0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e,
+  0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73,
+  0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a,
+  0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a,
+  0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3c, 0x74, 0x79,
+  0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x54, 0x2c, 0x20, 0x73, 0x69,
+  0x7a, 0x65, 0x5f, 0x74, 0x20, 0x4e, 0x75, 0x6d, 0x3e, 0x0a, 0x73, 0x74,
+  0x72, 0x75, 0x63, 0x74, 0x20, 0x73, 0x70, 0x76, 0x55, 0x6e, 0x73, 0x61,
+  0x66, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x0a, 0x7b, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x54, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+  0x5b, 0x4e, 0x75, 0x6d, 0x20, 0x3f, 0x20, 0x4e, 0x75, 0x6d, 0x20, 0x3a,
+  0x20, 0x31, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x54, 0x26, 0x20,
+  0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x5b, 0x5d, 0x20,
+  0x28, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x29,
+  0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
+  0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x73, 0x5b, 0x70, 0x6f, 0x73, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65,
+  0x78, 0x70, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x74, 0x68,
+  0x72, 0x65, 0x61, 0x64, 0x20, 0x54, 0x26, 0x20, 0x6f, 0x70, 0x65, 0x72,
+  0x61, 0x74, 0x6f, 0x72, 0x20, 0x5b, 0x5d, 0x20, 0x28, 0x73, 0x69, 0x7a,
+  0x65, 0x5f, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x29, 0x20, 0x63, 0x6f, 0x6e,
+  0x73, 0x74, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x73, 0x5b, 0x70, 0x6f, 0x73, 0x5d, 0x3b, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x54, 0x26, 0x20, 0x6f,
+  0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x5b, 0x5d, 0x20, 0x28,
+  0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x29, 0x20,
+  0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+  0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+  0x5b, 0x70, 0x6f, 0x73, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x78,
+  0x70, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x64, 0x65, 0x76,
+  0x69, 0x63, 0x65, 0x20, 0x54, 0x26, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61,
+  0x74, 0x6f, 0x72, 0x20, 0x5b, 0x5d, 0x20, 0x28, 0x73, 0x69, 0x7a, 0x65,
+  0x5f, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x29, 0x20, 0x63, 0x6f, 0x6e, 0x73,
+  0x74, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,
+  0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+  0x74, 0x73, 0x5b, 0x70, 0x6f, 0x73, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x78, 0x70, 0x72, 0x20, 0x63, 0x6f,
+  0x6e, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74,
+  0x20, 0x54, 0x26, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
+  0x20, 0x5b, 0x5d, 0x20, 0x28, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x20,
+  0x70, 0x6f, 0x73, 0x29, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x63,
+  0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
+  0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x73, 0x5b, 0x70, 0x6f, 0x73, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74,
+  0x68, 0x72, 0x65, 0x61, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x54,
+  0x26, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x5b,
+  0x5d, 0x20, 0x28, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x20, 0x70, 0x6f,
+  0x73, 0x29, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x67, 0x72, 0x6f,
+  0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+  0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x70, 0x6f, 0x73,
+  0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x78, 0x70, 0x72, 0x20, 0x63,
+  0x6f, 0x6e, 0x73, 0x74, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x67,
+  0x72, 0x6f, 0x75, 0x70, 0x20, 0x54, 0x26, 0x20, 0x6f, 0x70, 0x65, 0x72,
+  0x61, 0x74, 0x6f, 0x72, 0x20, 0x5b, 0x5d, 0x20, 0x28, 0x73, 0x69, 0x7a,
+  0x65, 0x5f, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x29, 0x20, 0x63, 0x6f, 0x6e,
+  0x73, 0x74, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x67, 0x72, 0x6f,
+  0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+  0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x70, 0x6f, 0x73,
+  0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x3b, 0x0a,
+  0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x73, 0x70,
+  0x76, 0x55, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79,
+  0x3c, 0x75, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x36, 0x3e, 0x20, 0x5f, 0x33,
+  0x31, 0x20, 0x3d, 0x20, 0x73, 0x70, 0x76, 0x55, 0x6e, 0x73, 0x61, 0x66,
+  0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x75, 0x69, 0x6e, 0x74, 0x2c,
+  0x20, 0x36, 0x3e, 0x28, 0x7b, 0x20, 0x30, 0x75, 0x2c, 0x20, 0x31, 0x75,
+  0x2c, 0x20, 0x32, 0x75, 0x2c, 0x20, 0x30, 0x75, 0x2c, 0x20, 0x32, 0x75,
+  0x2c, 0x20, 0x33, 0x75, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e,
+  0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x73, 0x70, 0x76, 0x55, 0x6e, 0x73,
+  0x61, 0x66, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x66, 0x6c, 0x6f,
+  0x61, 0x74, 0x32, 0x2c, 0x20, 0x34, 0x3e, 0x20, 0x5f, 0x33, 0x36, 0x20,
+  0x3d, 0x20, 0x73, 0x70, 0x76, 0x55, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x41,
+  0x72, 0x72, 0x61, 0x79, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x2c,
+  0x20, 0x34, 0x3e, 0x28, 0x7b, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32,
+  0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
+  0x32, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c,
+  0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31, 0x2e, 0x30, 0x29,
+  0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x30, 0x2e, 0x30,
+  0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x63,
+  0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x73, 0x70, 0x76, 0x55,
+  0x6e, 0x73, 0x61, 0x66, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x66,
+  0x6c, 0x6f, 0x61, 0x74, 0x32, 0x2c, 0x20, 0x34, 0x3e, 0x20, 0x5f, 0x34,
+  0x31, 0x20, 0x3d, 0x20, 0x73, 0x70, 0x76, 0x55, 0x6e, 0x73, 0x61, 0x66,
+  0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74,
+  0x32, 0x2c, 0x20, 0x34, 0x3e, 0x28, 0x7b, 0x20, 0x66, 0x6c, 0x6f, 0x61,
+  0x74, 0x32, 0x28, 0x2d, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30,
+  0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31, 0x2e,
+  0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31,
+  0x2e, 0x30, 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66,
+  0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x20,
+  0x7d, 0x29, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20,
+  0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x20, 0x6f,
+  0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28,
+  0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f,
+  0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70,
+  0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d,
+  0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x20, 0x6d, 0x61,
+  0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e,
+  0x30, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x67, 0x6c, 0x5f, 0x56, 0x65,
+  0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x5b, 0x5b,
+  0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x5d, 0x5d, 0x29,
+  0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30,
+  0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b,
+  0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f,
+  0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f,
+  0x4f, 0x52, 0x44, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x33, 0x36, 0x5b, 0x5f,
+  0x33, 0x31, 0x5b, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
+  0x49, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
+  0x34, 0x28, 0x5f, 0x34, 0x31, 0x5b, 0x5f, 0x33, 0x31, 0x5b, 0x67, 0x6c,
+  0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78,
+  0x5d, 0x5d, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30,
+  0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
+  0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a
+};
+static const unsigned int overlay_vert_msl_len = 1714;

+ 103 - 0
test/testgpu/overlay.vert.spv.h

@@ -0,0 +1,103 @@
+static const unsigned char overlay_vert_spv[] = {
+  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00,
+  0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00,
+  0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x76, 0x65, 0x72, 0x74,
+  0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x75, 0x76, 0x73, 0x00, 0x05, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43,
+  0x4f, 0x4f, 0x52, 0x44, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x15, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
+  0x17, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x19, 0x00, 0x00, 0x00,
+  0x21, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x1d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x09, 0x00, 0x11, 0x00, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x2c, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x23, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x2c, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
+  0x23, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x2c, 0x00, 0x05, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
+  0x2c, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x36, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0x2a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x24, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
+  0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+  0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x34, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
+};
+static const unsigned int overlay_vert_spv_len = 1200;

+ 0 - 876
test/testgpu/testgpu_dxil.h

@@ -1,876 +0,0 @@
-#if 0
-;
-; Input signature:
-;
-; Name                 Index   Mask Register SysValue  Format   Used
-; -------------------- ----- ------ -------- -------- ------- ------
-; TEXCOORD                 0   xyz         0     NONE   float   xyz 
-; TEXCOORD                 1   xyz         1     NONE   float   xyz 
-;
-;
-; Output signature:
-;
-; Name                 Index   Mask Register SysValue  Format   Used
-; -------------------- ----- ------ -------- -------- ------- ------
-; TEXCOORD                 0   xyzw        0     NONE   float   xyzw
-; SV_Position              0   xyzw        1      POS   float   xyzw
-;
-; shader hash: c5bd114f25804a8a068a89dafb8ca2d1
-;
-; Pipeline Runtime Information: 
-;
-; Vertex Shader
-; OutputPositionPresent=1
-;
-;
-; Input signature:
-;
-; Name                 Index             InterpMode DynIdx
-; -------------------- ----- ---------------------- ------
-; TEXCOORD                 0                              
-; TEXCOORD                 1                              
-;
-; Output signature:
-;
-; Name                 Index             InterpMode DynIdx
-; -------------------- ----- ---------------------- ------
-; TEXCOORD                 0                 linear       
-; SV_Position              0          noperspective       
-;
-; Buffer Definitions:
-;
-; cbuffer UBO
-; {
-;
-;   struct hostlayout.UBO
-;   {
-;
-;       column_major float4x4 ModelViewProj;          ; Offset:    0
-;   
-;   } UBO;                                            ; Offset:    0 Size:    64
-;
-; }
-;
-;
-; Resource Bindings:
-;
-; Name                                 Type  Format         Dim      ID      HLSL Bind  Count
-; ------------------------------ ---------- ------- ----------- ------- -------------- ------
-; UBO                               cbuffer      NA          NA     CB0     cb0,space1     1
-;
-;
-; ViewId state:
-;
-; Number of inputs: 7, outputs: 8
-; Outputs dependent on ViewId: {  }
-; Inputs contributing to computation of Outputs:
-;   output 0 depends on inputs: { 4 }
-;   output 1 depends on inputs: { 5 }
-;   output 2 depends on inputs: { 6 }
-;   output 4 depends on inputs: { 0, 1, 2 }
-;   output 5 depends on inputs: { 0, 1, 2 }
-;   output 6 depends on inputs: { 0, 1, 2 }
-;   output 7 depends on inputs: { 0, 1, 2 }
-;
-target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64"
-target triple = "dxil-ms-dx"
-
-%dx.types.Handle = type { i8* }
-%dx.types.CBufRet.f32 = type { float, float, float, float }
-%hostlayout.UBO = type { [4 x <4 x float>] }
-
-define void @VSMain() {
-  %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 0, i32 0, i1 false)  ; CreateHandle(resourceClass,rangeId,index,nonUniformIndex)
-  %2 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 0, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %3 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 1, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %4 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 2, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %5 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %6 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %7 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 2, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %8 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 0)  ; CBufferLoadLegacy(handle,regIndex)
-  %9 = extractvalue %dx.types.CBufRet.f32 %8, 0
-  %10 = extractvalue %dx.types.CBufRet.f32 %8, 1
-  %11 = extractvalue %dx.types.CBufRet.f32 %8, 2
-  %12 = extractvalue %dx.types.CBufRet.f32 %8, 3
-  %13 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 1)  ; CBufferLoadLegacy(handle,regIndex)
-  %14 = extractvalue %dx.types.CBufRet.f32 %13, 0
-  %15 = extractvalue %dx.types.CBufRet.f32 %13, 1
-  %16 = extractvalue %dx.types.CBufRet.f32 %13, 2
-  %17 = extractvalue %dx.types.CBufRet.f32 %13, 3
-  %18 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 2)  ; CBufferLoadLegacy(handle,regIndex)
-  %19 = extractvalue %dx.types.CBufRet.f32 %18, 0
-  %20 = extractvalue %dx.types.CBufRet.f32 %18, 1
-  %21 = extractvalue %dx.types.CBufRet.f32 %18, 2
-  %22 = extractvalue %dx.types.CBufRet.f32 %18, 3
-  %23 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 3)  ; CBufferLoadLegacy(handle,regIndex)
-  %24 = extractvalue %dx.types.CBufRet.f32 %23, 0
-  %25 = extractvalue %dx.types.CBufRet.f32 %23, 1
-  %26 = extractvalue %dx.types.CBufRet.f32 %23, 2
-  %27 = extractvalue %dx.types.CBufRet.f32 %23, 3
-  %28 = fmul fast float %9, %5
-  %29 = call float @dx.op.tertiary.f32(i32 46, float %14, float %6, float %28)  ; FMad(a,b,c)
-  %30 = call float @dx.op.tertiary.f32(i32 46, float %19, float %7, float %29)  ; FMad(a,b,c)
-  %31 = fadd fast float %30, %24
-  %32 = fmul fast float %10, %5
-  %33 = call float @dx.op.tertiary.f32(i32 46, float %15, float %6, float %32)  ; FMad(a,b,c)
-  %34 = call float @dx.op.tertiary.f32(i32 46, float %20, float %7, float %33)  ; FMad(a,b,c)
-  %35 = fadd fast float %34, %25
-  %36 = fmul fast float %11, %5
-  %37 = call float @dx.op.tertiary.f32(i32 46, float %16, float %6, float %36)  ; FMad(a,b,c)
-  %38 = call float @dx.op.tertiary.f32(i32 46, float %21, float %7, float %37)  ; FMad(a,b,c)
-  %39 = fadd fast float %38, %26
-  %40 = fmul fast float %12, %5
-  %41 = call float @dx.op.tertiary.f32(i32 46, float %17, float %6, float %40)  ; FMad(a,b,c)
-  %42 = call float @dx.op.tertiary.f32(i32 46, float %22, float %7, float %41)  ; FMad(a,b,c)
-  %43 = fadd fast float %42, %27
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %2)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %3)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %4)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float 1.000000e+00)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 0, float %31)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 1, float %35)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 2, float %39)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 3, float %43)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  ret void
-}
-
-; Function Attrs: nounwind readnone
-declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #0
-
-; Function Attrs: nounwind
-declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #1
-
-; Function Attrs: nounwind readonly
-declare %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32, %dx.types.Handle, i32) #2
-
-; Function Attrs: nounwind readnone
-declare float @dx.op.tertiary.f32(i32, float, float, float) #0
-
-; Function Attrs: nounwind readonly
-declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #2
-
-attributes #0 = { nounwind readnone }
-attributes #1 = { nounwind }
-attributes #2 = { nounwind readonly }
-
-!llvm.ident = !{!0}
-!dx.version = !{!1}
-!dx.valver = !{!2}
-!dx.shaderModel = !{!3}
-!dx.resources = !{!4}
-!dx.viewIdState = !{!7}
-!dx.entryPoints = !{!8}
-
-!0 = !{!"dxc(private) 1.7.0.3896 (021f8f3e1)"}
-!1 = !{i32 1, i32 0}
-!2 = !{i32 1, i32 6}
-!3 = !{!"vs", i32 6, i32 0}
-!4 = !{null, null, !5, null}
-!5 = !{!6}
-!6 = !{i32 0, %hostlayout.UBO* undef, !"", i32 1, i32 0, i32 1, i32 64, null}
-!7 = !{[9 x i32] [i32 7, i32 8, i32 240, i32 240, i32 240, i32 0, i32 1, i32 2, i32 4]}
-!8 = !{void ()* @VSMain, !"VSMain", !9, !4, null}
-!9 = !{!10, !16, null}
-!10 = !{!11, !14}
-!11 = !{i32 0, !"TEXCOORD", i8 9, i8 0, !12, i8 0, i32 1, i8 3, i32 0, i8 0, !13}
-!12 = !{i32 0}
-!13 = !{i32 3, i32 7}
-!14 = !{i32 1, !"TEXCOORD", i8 9, i8 0, !15, i8 0, i32 1, i8 3, i32 1, i8 0, !13}
-!15 = !{i32 1}
-!16 = !{!17, !19}
-!17 = !{i32 0, !"TEXCOORD", i8 9, i8 0, !12, i8 2, i32 1, i8 4, i32 0, i8 0, !18}
-!18 = !{i32 3, i32 15}
-!19 = !{i32 1, !"SV_Position", i8 9, i8 3, !12, i8 4, i32 1, i8 4, i32 1, i8 0, !18}
-
-#endif
-
-const unsigned char D3D12_CubeVert[] = {
-  0x44, 0x58, 0x42, 0x43, 0xd9, 0x52, 0xf4, 0xa2, 0x04, 0x60, 0xc4, 0x95,
-  0x5b, 0x00, 0x57, 0x3a, 0x22, 0x9c, 0xc9, 0x7e, 0x01, 0x00, 0x00, 0x00,
-  0xa3, 0x0f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
-  0x4c, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00,
-  0xff, 0x01, 0x00, 0x00, 0x27, 0x08, 0x00, 0x00, 0x43, 0x08, 0x00, 0x00,
-  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x5a, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x54, 0x45, 0x58,
-  0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x31, 0x5d, 0x00,
-  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00,
-  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x53,
-  0x56, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x50,
-  0x53, 0x56, 0x30, 0xe4, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01,
-  0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00,
-  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x54, 0x45, 0x58,
-  0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f,
-  0x52, 0x44, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x43, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0a,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x43, 0x00, 0x03,
-  0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x44, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x01, 0x01, 0x44, 0x03, 0x03, 0x04, 0x00, 0x00, 0xf0,
-  0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54, 0x20,
-  0x06, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x88, 0x01, 0x00, 0x00, 0x44,
-  0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08,
-  0x06, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x7f,
-  0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13,
-  0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06,
-  0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e,
-  0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4,
-  0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48,
-  0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0xe4,
-  0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1,
-  0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x08,
-  0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40,
-  0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20, 0x6d,
-  0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00, 0x49,
-  0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20,
-  0x4c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x23,
-  0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04, 0x93,
-  0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12,
-  0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x68, 0x23, 0x00, 0x25,
-  0x00, 0x14, 0x66, 0x00, 0xe6, 0x08, 0xc0, 0x60, 0x8e, 0x00, 0x29, 0xc6,
-  0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80, 0x10, 0x52, 0x06, 0xa1, 0xa3,
-  0x86, 0xcb, 0x9f, 0xb0, 0x87, 0x90, 0x7c, 0x6e, 0xa3, 0x8a, 0x95, 0x98,
-  0xfc, 0xe2, 0xb6, 0x11, 0x31, 0xc6, 0x18, 0x54, 0xee, 0x19, 0x2e, 0x7f,
-  0xc2, 0x1e, 0x42, 0xf2, 0x43, 0xa0, 0x19, 0x16, 0x02, 0x05, 0xab, 0x10,
-  0x8a, 0x30, 0x42, 0xad, 0x14, 0x83, 0x8c, 0x31, 0xe8, 0xcd, 0x11, 0x04,
-  0xc5, 0x60, 0xa4, 0x10, 0x12, 0x49, 0x0e, 0x04, 0x0c, 0x23, 0x10, 0x43,
-  0x12, 0xd4, 0x73, 0x0e, 0x47, 0x9a, 0x16, 0x00, 0x73, 0xa8, 0xc9, 0x77,
-  0x37, 0x14, 0x05, 0x96, 0x6e, 0x26, 0x10, 0x00, 0x00, 0x00, 0x00, 0x13,
-  0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68,
-  0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a,
-  0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d,
-  0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71,
-  0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a,
-  0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72,
-  0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d,
-  0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x08, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x34, 0x40,
-  0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4, 0x79,
-  0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xc8,
-  0x23, 0x01, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
-  0x16, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14, 0x19,
-  0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22, 0x25,
-  0x30, 0x02, 0x50, 0x0c, 0x05, 0x18, 0x50, 0x04, 0x85, 0x50, 0x06, 0xe5,
-  0x50, 0x12, 0xe5, 0x51, 0x10, 0x85, 0x46, 0xa5, 0x24, 0x46, 0x00, 0xca,
-  0xa0, 0x08, 0x0a, 0x81, 0xee, 0x0c, 0x00, 0xe1, 0x19, 0x00, 0xca, 0x63,
-  0x25, 0x07, 0x02, 0x1f, 0xf0, 0x01, 0x1f, 0x40, 0x20, 0x10, 0x00, 0x79,
-  0x18, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46,
-  0x02, 0x13, 0xc4, 0x31, 0x20, 0xc3, 0x1b, 0x43, 0x81, 0x93, 0x4b, 0xb3,
-  0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71, 0xb9, 0x71, 0x81, 0x71, 0x99,
-  0xc1, 0xc9, 0xb1, 0x01, 0x41, 0x81, 0x91, 0x89, 0x31, 0xc3, 0x31, 0x9b,
-  0x29, 0x8b, 0x49, 0xd9, 0x10, 0x04, 0x13, 0x04, 0xc2, 0x98, 0x20, 0x10,
-  0xc7, 0x06, 0x61, 0x20, 0x36, 0x08, 0x04, 0x41, 0xc1, 0x6e, 0x6e, 0x82,
-  0x40, 0x20, 0x1b, 0x86, 0x03, 0x21, 0x26, 0x08, 0x18, 0xc6, 0xa1, 0x4a,
-  0xe8, 0x69, 0x82, 0x40, 0x24, 0x1b, 0x10, 0x42, 0x59, 0x06, 0x62, 0x60,
-  0x80, 0x0d, 0x41, 0xb3, 0x81, 0x00, 0x00, 0x07, 0x98, 0x20, 0x5c, 0x17,
-  0x9b, 0xa6, 0x37, 0xb2, 0x32, 0x36, 0xab, 0xb4, 0xb2, 0x3b, 0x28, 0xb9,
-  0x37, 0xb5, 0x09, 0x02, 0xa1, 0x4c, 0x10, 0x88, 0x65, 0xc3, 0x30, 0x4d,
-  0xd2, 0x04, 0x81, 0x60, 0x26, 0x08, 0x44, 0x33, 0x41, 0x20, 0x9c, 0x0d,
-  0x08, 0x12, 0x49, 0x54, 0x45, 0x58, 0xd7, 0x06, 0x81, 0xc1, 0x36, 0x0c,
-  0x04, 0x94, 0x4d, 0x10, 0x04, 0x60, 0x03, 0xb0, 0x61, 0x20, 0x38, 0x6e,
-  0x43, 0xd0, 0x6d, 0x18, 0x86, 0xcd, 0x9b, 0x20, 0x64, 0xd9, 0x86, 0x00,
-  0x0c, 0x68, 0x58, 0x4d, 0x35, 0x85, 0xa5, 0xb9, 0x11, 0xa1, 0x2a, 0xc2,
-  0x1a, 0x7a, 0x7a, 0x92, 0x22, 0x9a, 0x20, 0x14, 0xd2, 0x04, 0xa1, 0x98,
-  0x36, 0x04, 0xc4, 0x04, 0xa1, 0xa0, 0x36, 0x08, 0x95, 0xb5, 0x61, 0x21,
-  0xc6, 0x80, 0x0c, 0xca, 0xc0, 0x0c, 0xca, 0x60, 0x38, 0x03, 0xa2, 0x0c,
-  0xd0, 0x60, 0x43, 0x30, 0x6c, 0x58, 0x86, 0x31, 0x20, 0x83, 0x32, 0x50,
-  0x83, 0x32, 0x18, 0xce, 0x60, 0x28, 0x03, 0x34, 0xd8, 0x20, 0xa4, 0xc1,
-  0x1a, 0x4c, 0x10, 0x8a, 0x6a, 0x82, 0x50, 0x58, 0x13, 0x04, 0xe2, 0xd9,
-  0x20, 0x54, 0x6f, 0xb0, 0x61, 0x21, 0xc6, 0x80, 0x0c, 0xca, 0xc0, 0x0c,
-  0xda, 0x60, 0x70, 0x03, 0xa2, 0x0c, 0xe0, 0x80, 0xcb, 0x94, 0xd5, 0x17,
-  0xd4, 0xdb, 0x5c, 0x1a, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0x65, 0x90, 0x03,
-  0x32, 0x38, 0x03, 0x33, 0x70, 0x83, 0xc1, 0x0d, 0x86, 0x32, 0x80, 0x83,
-  0x0d, 0x42, 0x1c, 0xcc, 0xc1, 0x86, 0x81, 0x0d, 0xe8, 0x00, 0xd8, 0x50,
-  0x6c, 0x62, 0x50, 0x07, 0x0f, 0x40, 0xc3, 0x8c, 0xed, 0x2d, 0x8c, 0x6e,
-  0x6e, 0x82, 0x40, 0x40, 0x2c, 0xd2, 0xdc, 0xe6, 0xe8, 0xe6, 0x26, 0x08,
-  0x44, 0x44, 0x63, 0x2e, 0xed, 0xec, 0x8b, 0x8d, 0x8c, 0xc6, 0x5c, 0xda,
-  0xd9, 0xd7, 0x1c, 0xdd, 0x06, 0xe4, 0x0e, 0xf0, 0x20, 0x0f, 0xf4, 0x60,
-  0x0f, 0x10, 0x3e, 0xc0, 0x83, 0x2a, 0x6c, 0x6c, 0x76, 0x6d, 0x2e, 0x69,
-  0x64, 0x65, 0x6e, 0x74, 0x53, 0x82, 0xa0, 0x0a, 0x19, 0x9e, 0x8b, 0x5d,
-  0x99, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x94, 0x80, 0x68, 0x42, 0x86, 0xe7,
-  0x62, 0x17, 0xc6, 0x66, 0x57, 0x26, 0x37, 0x25, 0x28, 0xea, 0x90, 0xe1,
-  0xb9, 0xcc, 0xa1, 0x85, 0x91, 0x95, 0xc9, 0x35, 0xbd, 0x91, 0x95, 0xb1,
-  0x4d, 0x09, 0x90, 0x32, 0x64, 0x78, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75,
-  0x72, 0x63, 0x65, 0x73, 0x53, 0x02, 0xa7, 0x12, 0x19, 0x9e, 0x0b, 0x5d,
-  0x1e, 0x5c, 0x59, 0x90, 0x9b, 0xdb, 0x1b, 0x5d, 0x18, 0x5d, 0xda, 0x9b,
-  0xdb, 0xdc, 0x14, 0x21, 0xf3, 0xea, 0x90, 0xe1, 0xb9, 0xd8, 0xa5, 0x95,
-  0xdd, 0x25, 0x91, 0x4d, 0xd1, 0x85, 0xd1, 0x95, 0x4d, 0x09, 0xc0, 0xa0,
-  0x0e, 0x19, 0x9e, 0x4b, 0x99, 0x1b, 0x9d, 0x5c, 0x1e, 0xd4, 0x5b, 0x9a,
-  0x1b, 0xdd, 0xdc, 0x94, 0xa0, 0x0e, 0xba, 0x90, 0xe1, 0xb9, 0x8c, 0xbd,
-  0xd5, 0xb9, 0xd1, 0x95, 0xc9, 0xcd, 0x4d, 0x09, 0xf8, 0x00, 0x00, 0x79,
-  0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4,
-  0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c,
-  0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00,
-  0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2,
-  0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38,
-  0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d,
-  0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87,
-  0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87,
-  0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30,
-  0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde,
-  0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b,
-  0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c,
-  0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07,
-  0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87,
-  0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87,
-  0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87,
-  0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0,
-  0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc,
-  0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4,
-  0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39,
-  0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38,
-  0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b,
-  0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03,
-  0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87,
-  0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80,
-  0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71,
-  0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x60, 0xbc, 0xac, 0x09,
-  0x20, 0x8d, 0x0d, 0x6c, 0xc3, 0xe5, 0x3b, 0x8f, 0x2f, 0x04, 0x54, 0x51,
-  0x10, 0x51, 0xe9, 0x00, 0x43, 0x49, 0x18, 0x80, 0x80, 0xf9, 0xc5, 0x6d,
-  0x5b, 0x81, 0x34, 0x5c, 0xbe, 0xf3, 0xf8, 0x42, 0x44, 0x00, 0x13, 0x11,
-  0x02, 0xcd, 0xb0, 0x10, 0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2,
-  0x00, 0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70,
-  0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4,
-  0x17, 0xb7, 0x6d, 0x04, 0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x4f, 0x44, 0x34,
-  0x21, 0x40, 0x84, 0xf9, 0xc5, 0x6d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x48,
-  0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5,
-  0xbd, 0x11, 0x4f, 0x25, 0x80, 0x4a, 0x8a, 0x06, 0x8a, 0x89, 0xda, 0xfb,
-  0x8c, 0xa2, 0xd1, 0x44, 0x58, 0x49, 0x4c, 0x58, 0x07, 0x00, 0x00, 0x60,
-  0x00, 0x01, 0x00, 0xd6, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00,
-  0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, 0x07, 0x00, 0x00, 0x42,
-  0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x0b,
-  0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07,
-  0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92,
-  0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80,
-  0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14, 0x38,
-  0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43,
-  0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x91,
-  0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a, 0x04,
-  0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1b,
-  0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84,
-  0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20, 0x6d, 0x30, 0x86, 0xff, 0xff,
-  0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00, 0x49, 0x18, 0x00, 0x00, 0x03,
-  0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06, 0x00,
-  0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x32,
-  0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04,
-  0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b,
-  0x84, 0xa4, 0x4c, 0x10, 0x68, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66, 0x00,
-  0xe6, 0x08, 0xc0, 0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14, 0x42,
-  0xa6, 0x18, 0x80, 0x10, 0x52, 0x06, 0xa1, 0xa3, 0x86, 0xcb, 0x9f, 0xb0,
-  0x87, 0x90, 0x7c, 0x6e, 0xa3, 0x8a, 0x95, 0x98, 0xfc, 0xe2, 0xb6, 0x11,
-  0x31, 0xc6, 0x18, 0x54, 0xee, 0x19, 0x2e, 0x7f, 0xc2, 0x1e, 0x42, 0xf2,
-  0x43, 0xa0, 0x19, 0x16, 0x02, 0x05, 0xab, 0x10, 0x8a, 0x30, 0x42, 0xad,
-  0x14, 0x83, 0x8c, 0x31, 0xe8, 0xcd, 0x11, 0x04, 0xc5, 0x60, 0xa4, 0x10,
-  0x12, 0x49, 0x0e, 0x04, 0x0c, 0x23, 0x10, 0x43, 0x12, 0xd4, 0x73, 0x0e,
-  0x47, 0x9a, 0x16, 0x00, 0x73, 0xa8, 0xc9, 0x77, 0x37, 0x14, 0x05, 0x96,
-  0x6e, 0x26, 0x10, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x72, 0xc0, 0x87,
-  0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0, 0x87,
-  0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00,
-  0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90,
-  0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0,
-  0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x30,
-  0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20,
-  0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0,
-  0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60,
-  0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60,
-  0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0,
-  0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76, 0x40,
-  0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x34, 0x40, 0x00, 0x0c, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4, 0x79, 0x80, 0x00, 0x08, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xc8, 0x23, 0x01, 0x01, 0x30,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x16, 0x08, 0x00, 0x0e,
-  0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14, 0x19, 0x11, 0x4c, 0x90, 0x8c,
-  0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22, 0x25, 0x30, 0x02, 0x50, 0x0c,
-  0x05, 0x18, 0x50, 0x06, 0xe5, 0x50, 0x1e, 0x54, 0x4a, 0x62, 0x04, 0xa0,
-  0x0c, 0x8a, 0xa0, 0x10, 0x08, 0xcf, 0x00, 0x50, 0x1e, 0x2b, 0x39, 0x10,
-  0xf8, 0x80, 0x0f, 0xf8, 0x00, 0x02, 0x81, 0x00, 0x00, 0x00, 0x00, 0x79,
-  0x18, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46,
-  0x02, 0x13, 0xc4, 0x31, 0x20, 0xc3, 0x1b, 0x43, 0x81, 0x93, 0x4b, 0xb3,
-  0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71, 0xb9, 0x71, 0x81, 0x71, 0x99,
-  0xc1, 0xc9, 0xb1, 0x01, 0x41, 0x81, 0x91, 0x89, 0x31, 0xc3, 0x31, 0x9b,
-  0x29, 0x8b, 0x49, 0xd9, 0x10, 0x04, 0x13, 0x04, 0xc2, 0x98, 0x20, 0x10,
-  0xc7, 0x06, 0x61, 0x20, 0x26, 0x08, 0x04, 0xb2, 0x41, 0x18, 0x0c, 0x0a,
-  0x76, 0x73, 0x1b, 0x06, 0xc4, 0x20, 0x26, 0x08, 0x98, 0x44, 0x60, 0x82,
-  0x40, 0x24, 0x1b, 0x10, 0x42, 0x59, 0x06, 0x62, 0x60, 0x80, 0x0d, 0x41,
-  0xb3, 0x81, 0x00, 0x00, 0x07, 0x98, 0x20, 0x64, 0xd3, 0x86, 0x00, 0x9a,
-  0x20, 0x08, 0x00, 0x0d, 0xab, 0xa9, 0xa6, 0xb0, 0x34, 0x37, 0x22, 0x54,
-  0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x13, 0x84, 0xa2, 0x99, 0x20,
-  0x14, 0xce, 0x86, 0x80, 0x98, 0x20, 0x14, 0xcf, 0x04, 0x81, 0x50, 0x26,
-  0x08, 0xc4, 0xb2, 0x41, 0xc8, 0xb4, 0x0d, 0x0b, 0x41, 0x55, 0xd6, 0x65,
-  0x0d, 0x18, 0x61, 0x6d, 0x1b, 0x82, 0x61, 0xc3, 0x32, 0x50, 0x95, 0xd5,
-  0x59, 0x03, 0x36, 0x58, 0xdb, 0x06, 0x81, 0xf3, 0x26, 0x08, 0x05, 0x34,
-  0x41, 0x28, 0xa2, 0x09, 0x02, 0xc1, 0x6c, 0x10, 0x32, 0x31, 0xd8, 0xb0,
-  0x10, 0x54, 0x65, 0x5d, 0x60, 0x30, 0x84, 0x01, 0x61, 0x8d, 0x01, 0x97,
-  0x29, 0xab, 0x2f, 0xa8, 0xb7, 0xb9, 0x34, 0xba, 0xb4, 0x37, 0xb7, 0x0d,
-  0xcb, 0x50, 0x06, 0x15, 0x76, 0x85, 0xc1, 0x10, 0x06, 0x83, 0x35, 0x06,
-  0x1b, 0x04, 0x32, 0x30, 0x83, 0x0d, 0xc3, 0x77, 0x06, 0xc0, 0x86, 0x42,
-  0x9a, 0xd0, 0xe0, 0x01, 0xaa, 0xb0, 0xb1, 0xd9, 0xb5, 0xb9, 0xa4, 0x91,
-  0x95, 0xb9, 0xd1, 0x4d, 0x09, 0x82, 0x2a, 0x64, 0x78, 0x2e, 0x76, 0x65,
-  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x02, 0xa2, 0x09, 0x19, 0x9e, 0x8b,
-  0x5d, 0x18, 0x9b, 0x5d, 0x99, 0xdc, 0x94, 0xc0, 0xa8, 0x43, 0x86, 0xe7,
-  0x32, 0x87, 0x16, 0x46, 0x56, 0x26, 0xd7, 0xf4, 0x46, 0x56, 0xc6, 0x36,
-  0x25, 0x40, 0xca, 0x90, 0xe1, 0xb9, 0xc8, 0x95, 0xcd, 0xbd, 0xd5, 0xc9,
-  0x8d, 0x95, 0xcd, 0x4d, 0x09, 0x9c, 0x3a, 0x64, 0x78, 0x2e, 0x76, 0x69,
-  0x65, 0x77, 0x49, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x02, 0xa8,
-  0x0e, 0x19, 0x9e, 0x4b, 0x99, 0x1b, 0x9d, 0x5c, 0x1e, 0xd4, 0x5b, 0x9a,
-  0x1b, 0xdd, 0xdc, 0x94, 0x00, 0x0d, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c,
-  0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14,
-  0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79,
-  0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e,
-  0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1,
-  0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc,
-  0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74,
-  0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a,
-  0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e,
-  0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e,
-  0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21,
-  0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0,
-  0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc,
-  0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72,
-  0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f,
-  0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c,
-  0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03,
-  0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61,
-  0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94,
-  0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0,
-  0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73,
-  0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77,
-  0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f,
-  0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x18,
-  0x00, 0x00, 0x00, 0x06, 0x60, 0xbc, 0xac, 0x09, 0x20, 0x8d, 0x0d, 0x6c,
-  0xc3, 0xe5, 0x3b, 0x8f, 0x2f, 0x04, 0x54, 0x51, 0x10, 0x51, 0xe9, 0x00,
-  0x43, 0x49, 0x18, 0x80, 0x80, 0xf9, 0xc5, 0x6d, 0x5b, 0x81, 0x34, 0x5c,
-  0xbe, 0xf3, 0xf8, 0x42, 0x44, 0x00, 0x13, 0x11, 0x02, 0xcd, 0xb0, 0x10,
-  0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c,
-  0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b,
-  0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x04,
-  0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x4f, 0x44, 0x34, 0x21, 0x40, 0x84, 0xf9,
-  0xc5, 0x6d, 0x03, 0x61, 0x20, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x13,
-  0x04, 0x41, 0x2c, 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14,
-  0x47, 0x00, 0x88, 0x14, 0x57, 0x29, 0x14, 0xc2, 0x0c, 0x40, 0xd9, 0x95,
-  0x5c, 0x11, 0x50, 0x29, 0x01, 0x1a, 0x63, 0x04, 0x20, 0x08, 0x82, 0xf8,
-  0x07, 0x00, 0x00, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x20, 0x65, 0x84,
-  0x73, 0x5d, 0xca, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x18, 0x1e, 0x92,
-  0x61, 0xd1, 0x31, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0xc6, 0x97, 0x68,
-  0x19, 0x81, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0x01, 0x06, 0xca,
-  0xa6, 0x45, 0xc9, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x18, 0x61, 0xb0,
-  0x6c, 0x1b, 0xa5, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0x21, 0x06,
-  0x0c, 0xc7, 0x1d, 0xcb, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x18, 0x63,
-  0xd0, 0x74, 0x1d, 0xc5, 0x8c, 0x18, 0x1c, 0x00, 0x08, 0x82, 0x41, 0x23,
-  0x06, 0xcc, 0xe1, 0x8d, 0x26, 0x04, 0xc0, 0x68, 0x82, 0x10, 0x8c, 0x26,
-  0x0c, 0xc2, 0x68, 0x02, 0x31, 0x8c, 0x18, 0x1c, 0x00, 0x08, 0x82, 0x41,
-  0x73, 0x06, 0x11, 0x43, 0x06, 0xa3, 0x09, 0x01, 0x30, 0x9a, 0x20, 0x04,
-  0xa3, 0x09, 0x83, 0x30, 0x9a, 0x40, 0x0c, 0x23, 0x06, 0x07, 0x00, 0x82,
-  0x60, 0xd0, 0xb0, 0x81, 0x15, 0x51, 0xa3, 0x09, 0x01, 0x30, 0x9a, 0x20,
-  0x04, 0xa3, 0x09, 0x83, 0x30, 0x9a, 0x40, 0x0c, 0x23, 0x06, 0x07, 0x00,
-  0x82, 0x60, 0xd0, 0xc4, 0xc1, 0x66, 0xa9, 0xc1, 0x68, 0x42, 0x00, 0x8c,
-  0x26, 0x08, 0xc1, 0x68, 0xc2, 0x20, 0x8c, 0x26, 0x10, 0x83, 0x4d, 0x97,
-  0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0xe0, 0xb1, 0x83, 0x32, 0x78,
-  0xae, 0x60, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0x9e, 0x3b, 0x30, 0x83,
-  0xe5, 0x0a, 0x2c, 0x38, 0xa0, 0x63, 0xd6, 0x26, 0x9f, 0x11, 0x03, 0x04,
-  0x00, 0x41, 0x30, 0x78, 0xf4, 0x20, 0x0d, 0xa4, 0x2d, 0x18, 0x31, 0x40,
-  0x00, 0x10, 0x04, 0x83, 0x67, 0x0f, 0xd4, 0xc0, 0xd9, 0x02, 0x0b, 0x14,
-  0xe8, 0x58, 0xf6, 0xc9, 0x67, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0x1e,
-  0x3f, 0x68, 0x83, 0xea, 0x0b, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0xe0,
-  0xf9, 0x03, 0x37, 0x88, 0xbe, 0xc0, 0x82, 0x06, 0x3a, 0xc6, 0x8d, 0x81,
-  0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0xe0, 0x11, 0x85, 0x38, 0xc0,
-  0xc6, 0x20, 0x18, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83, 0x67, 0x14, 0xe4,
-  0x80, 0x1a, 0x83, 0xc0, 0x02, 0x08, 0x3a, 0x23, 0x06, 0x09, 0x00, 0x82,
-  0x60, 0x80, 0x9c, 0xc2, 0x1c, 0x88, 0x82, 0x28, 0xec, 0x81, 0x1a, 0x8c,
-  0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x72, 0x0a, 0x73, 0x20, 0x0a, 0xa2,
-  0xd0, 0x06, 0x69, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0xc8, 0x29,
-  0xcc, 0x81, 0x28, 0x88, 0x42, 0x1e, 0xa0, 0xc1, 0x88, 0x41, 0x02, 0x80,
-  0x20, 0x18, 0x20, 0xa7, 0x30, 0x07, 0xa2, 0x20, 0x0a, 0x7a, 0xc0, 0x06,
-  0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x80, 0x9c, 0xc2, 0x1c, 0x8c, 0x82,
-  0x28, 0xec, 0x41, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0xc8, 0x29,
-  0xcc, 0xc1, 0x28, 0x88, 0x42, 0x1b, 0x24, 0x23, 0x06, 0x09, 0x00, 0x82,
-  0x60, 0x80, 0x9c, 0xc2, 0x1c, 0x8c, 0x82, 0x28, 0xe4, 0x41, 0x31, 0x62,
-  0x90, 0x00, 0x20, 0x08, 0x06, 0xc8, 0x29, 0xcc, 0xc1, 0x28, 0x88, 0x82,
-  0x1e, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00
-};
-#if 0
-;
-; Input signature:
-;
-; Name                 Index   Mask Register SysValue  Format   Used
-; -------------------- ----- ------ -------- -------- ------- ------
-; TEXCOORD                 0   xyzw        0     NONE   float   xyzw
-; SV_Position              0   xyzw        1      POS   float       
-;
-;
-; Output signature:
-;
-; Name                 Index   Mask Register SysValue  Format   Used
-; -------------------- ----- ------ -------- -------- ------- ------
-; SV_Target                0   xyzw        0   TARGET   float   xyzw
-;
-; shader hash: a10908b314d7c2de5d684fdf3768659c
-;
-; Pipeline Runtime Information: 
-;
-; Pixel Shader
-; DepthOutput=0
-; SampleFrequency=0
-;
-;
-; Input signature:
-;
-; Name                 Index             InterpMode DynIdx
-; -------------------- ----- ---------------------- ------
-; TEXCOORD                 0                 linear       
-; SV_Position              0          noperspective       
-;
-; Output signature:
-;
-; Name                 Index             InterpMode DynIdx
-; -------------------- ----- ---------------------- ------
-; SV_Target                0                              
-;
-; Buffer Definitions:
-;
-;
-; Resource Bindings:
-;
-; Name                                 Type  Format         Dim      ID      HLSL Bind  Count
-; ------------------------------ ---------- ------- ----------- ------- -------------- ------
-;
-;
-; ViewId state:
-;
-; Number of inputs: 8, outputs: 4
-; Outputs dependent on ViewId: {  }
-; Inputs contributing to computation of Outputs:
-;   output 0 depends on inputs: { 0 }
-;   output 1 depends on inputs: { 1 }
-;   output 2 depends on inputs: { 2 }
-;   output 3 depends on inputs: { 3 }
-;
-target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64"
-target triple = "dxil-ms-dx"
-
-define void @PSMain() {
-  %1 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %2 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %3 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 2, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  %4 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 3, i32 undef)  ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %1)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %2)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %3)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %4)  ; StoreOutput(outputSigId,rowIndex,colIndex,value)
-  ret void
-}
-
-; Function Attrs: nounwind readnone
-declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #0
-
-; Function Attrs: nounwind
-declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #1
-
-attributes #0 = { nounwind readnone }
-attributes #1 = { nounwind }
-
-!llvm.ident = !{!0}
-!dx.version = !{!1}
-!dx.valver = !{!2}
-!dx.shaderModel = !{!3}
-!dx.viewIdState = !{!4}
-!dx.entryPoints = !{!5}
-
-!0 = !{!"dxc(private) 1.7.0.3896 (021f8f3e1)"}
-!1 = !{i32 1, i32 0}
-!2 = !{i32 1, i32 6}
-!3 = !{!"ps", i32 6, i32 0}
-!4 = !{[10 x i32] [i32 8, i32 4, i32 1, i32 2, i32 4, i32 8, i32 0, i32 0, i32 0, i32 0]}
-!5 = !{void ()* @PSMain, !"PSMain", !6, null, null}
-!6 = !{!7, !12, null}
-!7 = !{!8, !11}
-!8 = !{i32 0, !"TEXCOORD", i8 9, i8 0, !9, i8 2, i32 1, i8 4, i32 0, i8 0, !10}
-!9 = !{i32 0}
-!10 = !{i32 3, i32 15}
-!11 = !{i32 1, !"SV_Position", i8 9, i8 3, !9, i8 4, i32 1, i8 4, i32 1, i8 0, null}
-!12 = !{!13}
-!13 = !{i32 0, !"SV_Target", i8 9, i8 16, !9, i8 0, i32 1, i8 4, i32 0, i8 0, !10}
-
-#endif
-
-const unsigned char D3D12_CubeFrag[] = {
-  0x44, 0x58, 0x42, 0x43, 0x55, 0xdd, 0xea, 0x5b, 0x70, 0xf7, 0xd6, 0x72,
-  0x11, 0x2b, 0x82, 0xd4, 0x62, 0x33, 0xa4, 0xa4, 0x01, 0x00, 0x00, 0x00,
-  0x93, 0x0b, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
-  0x4c, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00,
-  0x97, 0x01, 0x00, 0x00, 0x77, 0x06, 0x00, 0x00, 0x93, 0x06, 0x00, 0x00,
-  0x53, 0x46, 0x49, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31, 0x5d, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x53, 0x56, 0x5f,
-  0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x4f, 0x53, 0x47,
-  0x31, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f,
-  0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x50, 0x53, 0x56, 0x30, 0xa4,
-  0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02,
-  0x01, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
-  0x00, 0x00, 0x00, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-  0x00, 0x44, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x01, 0x01, 0x44, 0x03, 0x03, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x44, 0x10, 0x03,
-  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
-  0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53,
-  0x54, 0x41, 0x54, 0xd8, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x36,
-  0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10,
-  0x00, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21,
-  0x0c, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00, 0x02,
-  0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41,
-  0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25,
-  0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80, 0x10, 0x45, 0x02, 0x42,
-  0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a,
-  0x32, 0x42, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00,
-  0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x11, 0x22, 0xc4, 0x50, 0x41,
-  0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x21, 0x46, 0x06, 0x51,
-  0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff, 0xff,
-  0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff,
-  0xff, 0x03, 0x20, 0x01, 0x00, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x02,
-  0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20, 0x00, 0x00, 0x00, 0x89,
-  0x20, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x32, 0x22, 0x08, 0x09, 0x20,
-  0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04, 0x13, 0x22, 0xe3, 0x84,
-  0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b, 0x84, 0x84, 0x4c, 0x10,
-  0x30, 0x23, 0x00, 0x25, 0x00, 0x8a, 0x19, 0x80, 0x39, 0x02, 0x30, 0x98,
-  0x23, 0x40, 0x8a, 0x31, 0x44, 0x54, 0x44, 0x56, 0x0c, 0x20, 0xa2, 0x1a,
-  0xc2, 0x81, 0x80, 0x54, 0x20, 0x00, 0x00, 0x13, 0x14, 0x72, 0xc0, 0x87,
-  0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0, 0x87,
-  0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00,
-  0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90,
-  0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0,
-  0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x30,
-  0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20,
-  0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0,
-  0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60,
-  0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60,
-  0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0,
-  0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76, 0x40,
-  0x07, 0x43, 0x9e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x0d, 0x00, 0x00, 0x00, 0x32,
-  0x1e, 0x98, 0x14, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6,
-  0x04, 0x43, 0xa2, 0x12, 0x18, 0x01, 0x28, 0x86, 0x32, 0x28, 0x8f, 0x92,
-  0x28, 0x04, 0xaa, 0x92, 0x18, 0x01, 0x28, 0x82, 0x42, 0x28, 0x83, 0x02,
-  0xa1, 0x1d, 0x4b, 0x41, 0x88, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x1a,
-  0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4, 0x31, 0x20, 0xc3, 0x1b, 0x43,
-  0x81, 0x93, 0x4b, 0xb3, 0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71, 0xb9,
-  0x71, 0x81, 0x71, 0x99, 0xc1, 0xc9, 0xb1, 0x01, 0x41, 0x81, 0x91, 0x89,
-  0x31, 0xc3, 0x31, 0x9b, 0x29, 0x8b, 0x49, 0xd9, 0x10, 0x04, 0x13, 0x04,
-  0x62, 0x98, 0x20, 0x10, 0xc4, 0x06, 0x61, 0x20, 0x36, 0x08, 0x04, 0x41,
-  0x01, 0x6e, 0x6e, 0x82, 0x40, 0x14, 0x1b, 0x86, 0x03, 0x21, 0x26, 0x08,
-  0x02, 0xb0, 0x01, 0xd8, 0x30, 0x10, 0xcb, 0xb2, 0x21, 0x60, 0x36, 0x0c,
-  0x83, 0xd2, 0x4c, 0x10, 0x16, 0x68, 0x43, 0xf0, 0xd0, 0x80, 0x9a, 0x6a,
-  0x0a, 0x4b, 0x73, 0x23, 0x42, 0x55, 0x84, 0x35, 0xf4, 0xf4, 0x24, 0x45,
-  0x34, 0x41, 0x28, 0x94, 0x09, 0x42, 0xb1, 0x6c, 0x08, 0x88, 0x09, 0x42,
-  0xc1, 0x4c, 0x10, 0x8a, 0x66, 0x82, 0x40, 0x18, 0x13, 0x04, 0xe2, 0xd8,
-  0x20, 0x60, 0xd9, 0x86, 0x85, 0x90, 0x26, 0xaa, 0xb2, 0x86, 0x8b, 0xa0,
-  0x34, 0x2e, 0x53, 0x56, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
-  0x6e, 0x13, 0x84, 0xc2, 0xd9, 0xb0, 0x0c, 0xdc, 0xd4, 0x55, 0xd7, 0x70,
-  0x0d, 0x14, 0xb0, 0x41, 0xd8, 0x3c, 0x26, 0x53, 0x56, 0x5f, 0x54, 0x61,
-  0x72, 0x67, 0x65, 0x74, 0x13, 0x84, 0xe2, 0xd9, 0xb0, 0x10, 0x60, 0x30,
-  0x85, 0x41, 0x45, 0x0d, 0x17, 0x41, 0x69, 0x1b, 0x02, 0x31, 0xd8, 0x30,
-  0x7c, 0x63, 0x00, 0x6c, 0x28, 0x94, 0x88, 0x0c, 0x00, 0x80, 0x45, 0x9a,
-  0xdb, 0x1c, 0xdd, 0xdc, 0x04, 0x81, 0x40, 0x68, 0xcc, 0xa5, 0x9d, 0x7d,
-  0xb1, 0x91, 0x4d, 0x10, 0x88, 0x84, 0xc6, 0x5c, 0xda, 0xd9, 0xd7, 0x1c,
-  0xdd, 0x06, 0xc3, 0x0c, 0xce, 0x00, 0x0d, 0xd2, 0x40, 0x0d, 0xd2, 0xa0,
-  0x0a, 0x1b, 0x9b, 0x5d, 0x9b, 0x4b, 0x1a, 0x59, 0x99, 0x1b, 0xdd, 0x94,
-  0x20, 0xa8, 0x42, 0x86, 0xe7, 0x62, 0x57, 0x26, 0x37, 0x97, 0xf6, 0xe6,
-  0x36, 0x25, 0x20, 0x9a, 0x90, 0xe1, 0xb9, 0xd8, 0x85, 0xb1, 0xd9, 0x95,
-  0xc9, 0x4d, 0x09, 0x8a, 0x3a, 0x64, 0x78, 0x2e, 0x73, 0x68, 0x61, 0x64,
-  0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x02, 0xa4, 0x12, 0x19,
-  0x9e, 0x0b, 0x5d, 0x1e, 0x5c, 0x59, 0x90, 0x9b, 0xdb, 0x1b, 0x5d, 0x18,
-  0x5d, 0xda, 0x9b, 0xdb, 0xdc, 0x94, 0xa0, 0xa9, 0x43, 0x86, 0xe7, 0x62,
-  0x97, 0x56, 0x76, 0x97, 0x44, 0x36, 0x45, 0x17, 0x46, 0x57, 0x36, 0x25,
-  0x78, 0xea, 0x90, 0xe1, 0xb9, 0x94, 0xb9, 0xd1, 0xc9, 0xe5, 0x41, 0xbd,
-  0xa5, 0xb9, 0xd1, 0xcd, 0x4d, 0x09, 0xc8, 0xa0, 0x0b, 0x19, 0x9e, 0xcb,
-  0xd8, 0x5b, 0x9d, 0x1b, 0x5d, 0x99, 0xdc, 0xdc, 0x94, 0x40, 0x0d, 0x00,
-  0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x33,
-  0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43,
-  0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98,
-  0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33,
-  0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05,
-  0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43,
-  0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08,
-  0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78,
-  0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1,
-  0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33,
-  0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e,
-  0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03,
-  0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60,
-  0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80,
-  0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8,
-  0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18,
-  0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee,
-  0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c,
-  0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c,
-  0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43,
-  0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3,
-  0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83,
-  0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc4, 0x21,
-  0x07, 0x7c, 0x70, 0x03, 0x7a, 0x28, 0x87, 0x76, 0x80, 0x87, 0x19, 0xd1,
-  0x43, 0x0e, 0xf8, 0xe0, 0x06, 0xe4, 0x20, 0x0e, 0xe7, 0xe0, 0x06, 0xf6,
-  0x10, 0x0e, 0xf2, 0xc0, 0x0e, 0xe1, 0x90, 0x0f, 0xef, 0x50, 0x0f, 0xf4,
-  0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x06,
-  0x60, 0xa4, 0xac, 0x09, 0x20, 0x8d, 0x05, 0x4c, 0xc3, 0xe5, 0x3b, 0x8f,
-  0xbf, 0x38, 0xc0, 0x20, 0x36, 0x0f, 0x35, 0xf9, 0xc5, 0x6d, 0x9b, 0x40,
-  0x35, 0x5c, 0xbe, 0xf3, 0xf8, 0xd2, 0xe4, 0x44, 0x04, 0x4a, 0x4d, 0x0f,
-  0x35, 0xf9, 0xc5, 0x6d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48,
-  0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1,
-  0x09, 0x08, 0xb3, 0x14, 0xd7, 0xc2, 0xde, 0x5d, 0x68, 0x4f, 0xdf, 0x37,
-  0x68, 0x65, 0x9c, 0x44, 0x58, 0x49, 0x4c, 0xf8, 0x04, 0x00, 0x00, 0x60,
-  0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00,
-  0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x42,
-  0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x0b,
-  0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07,
-  0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92,
-  0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80,
-  0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14, 0x38,
-  0x08, 0x18, 0x4b, 0x0a, 0x32, 0x42, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43,
-  0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x11,
-  0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a, 0x04,
-  0x21, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b,
-  0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84,
-  0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20, 0x01, 0x00, 0x00, 0x00, 0x49,
-  0x18, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20,
-  0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x32,
-  0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04,
-  0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b,
-  0x84, 0x84, 0x4c, 0x10, 0x30, 0x23, 0x00, 0x25, 0x00, 0x8a, 0x19, 0x80,
-  0x39, 0x02, 0x30, 0x98, 0x23, 0x40, 0x8a, 0x31, 0x44, 0x54, 0x44, 0x56,
-  0x0c, 0x20, 0xa2, 0x1a, 0xc2, 0x81, 0x80, 0x54, 0x20, 0x00, 0x00, 0x13,
-  0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68,
-  0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a,
-  0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d,
-  0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71,
-  0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a,
-  0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72,
-  0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d,
-  0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x0c,
-  0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c,
-  0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xa2, 0x12, 0x18, 0x01, 0x28, 0x86,
-  0x32, 0x28, 0x0f, 0xaa, 0x92, 0x18, 0x01, 0x28, 0x82, 0x42, 0x28, 0x83,
-  0x02, 0xa1, 0x1d, 0x4b, 0x41, 0x88, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x1a,
-  0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4, 0x31, 0x20, 0xc3, 0x1b, 0x43,
-  0x81, 0x93, 0x4b, 0xb3, 0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71, 0xb9,
-  0x71, 0x81, 0x71, 0x99, 0xc1, 0xc9, 0xb1, 0x01, 0x41, 0x81, 0x91, 0x89,
-  0x31, 0xc3, 0x31, 0x9b, 0x29, 0x8b, 0x49, 0xd9, 0x10, 0x04, 0x13, 0x04,
-  0x62, 0x98, 0x20, 0x10, 0xc4, 0x06, 0x61, 0x20, 0x26, 0x08, 0x44, 0xb1,
-  0x41, 0x18, 0x0c, 0x0a, 0x70, 0x73, 0x1b, 0x06, 0xc4, 0x20, 0x26, 0x08,
-  0x8b, 0xb3, 0x21, 0x50, 0x26, 0x08, 0x02, 0x40, 0x03, 0x6a, 0xaa, 0x29,
-  0x2c, 0xcd, 0x8d, 0x08, 0x55, 0x11, 0xd6, 0xd0, 0xd3, 0x93, 0x14, 0xd1,
-  0x04, 0xa1, 0x40, 0x26, 0x08, 0x45, 0xb2, 0x21, 0x20, 0x26, 0x08, 0x85,
-  0x32, 0x41, 0x28, 0x96, 0x09, 0x02, 0x61, 0x4c, 0x10, 0x88, 0x63, 0x83,
-  0x40, 0x55, 0x1b, 0x16, 0xc2, 0x79, 0xa0, 0x48, 0x1a, 0x26, 0x02, 0xb2,
-  0xb8, 0x4c, 0x59, 0x7d, 0x41, 0xbd, 0xcd, 0xa5, 0xd1, 0xa5, 0xbd, 0xb9,
-  0x4d, 0x10, 0x0a, 0x66, 0xc3, 0x32, 0x60, 0x4f, 0x16, 0x4d, 0xc3, 0x34,
-  0x40, 0xc0, 0x06, 0xe1, 0xd2, 0x98, 0x4c, 0x59, 0x7d, 0x51, 0x85, 0xc9,
-  0x9d, 0x95, 0xd1, 0x4d, 0x10, 0x8a, 0x66, 0xc3, 0x42, 0x70, 0x4f, 0x17,
-  0x41, 0xc3, 0x44, 0x40, 0xd6, 0x86, 0xc0, 0xdb, 0x30, 0x6c, 0x1f, 0xb0,
-  0xa1, 0x60, 0x1a, 0x30, 0x00, 0x80, 0x2a, 0x6c, 0x6c, 0x76, 0x6d, 0x2e,
-  0x69, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x82, 0xa0, 0x0a, 0x19, 0x9e, 0x8b,
-  0x5d, 0x99, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x94, 0x80, 0x68, 0x42, 0x86,
-  0xe7, 0x62, 0x17, 0xc6, 0x66, 0x57, 0x26, 0x37, 0x25, 0x30, 0xea, 0x90,
-  0xe1, 0xb9, 0xcc, 0xa1, 0x85, 0x91, 0x95, 0xc9, 0x35, 0xbd, 0x91, 0x95,
-  0xb1, 0x4d, 0x09, 0x90, 0x3a, 0x64, 0x78, 0x2e, 0x76, 0x69, 0x65, 0x77,
-  0x49, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x02, 0xa5, 0x0e, 0x19,
-  0x9e, 0x4b, 0x99, 0x1b, 0x9d, 0x5c, 0x1e, 0xd4, 0x5b, 0x9a, 0x1b, 0xdd,
-  0xdc, 0x94, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c,
-  0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14,
-  0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79,
-  0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e,
-  0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1,
-  0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc,
-  0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74,
-  0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a,
-  0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e,
-  0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e,
-  0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21,
-  0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0,
-  0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc,
-  0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72,
-  0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f,
-  0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c,
-  0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03,
-  0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61,
-  0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94,
-  0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0,
-  0xc3, 0x0c, 0xc4, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x7a, 0x28, 0x87, 0x76,
-  0x80, 0x87, 0x19, 0xd1, 0x43, 0x0e, 0xf8, 0xe0, 0x06, 0xe4, 0x20, 0x0e,
-  0xe7, 0xe0, 0x06, 0xf6, 0x10, 0x0e, 0xf2, 0xc0, 0x0e, 0xe1, 0x90, 0x0f,
-  0xef, 0x50, 0x0f, 0xf4, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x0b,
-  0x00, 0x00, 0x00, 0x06, 0x60, 0xa4, 0xac, 0x09, 0x20, 0x8d, 0x05, 0x4c,
-  0xc3, 0xe5, 0x3b, 0x8f, 0xbf, 0x38, 0xc0, 0x20, 0x36, 0x0f, 0x35, 0xf9,
-  0xc5, 0x6d, 0x9b, 0x40, 0x35, 0x5c, 0xbe, 0xf3, 0xf8, 0xd2, 0xe4, 0x44,
-  0x04, 0x4a, 0x4d, 0x0f, 0x35, 0xf9, 0xc5, 0x6d, 0x03, 0x00, 0x00, 0x61,
-  0x20, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10,
-  0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x44, 0x85, 0x30, 0x03, 0x50,
-  0x0a, 0x54, 0x25, 0x00, 0x00, 0x00, 0x00, 0x23, 0x06, 0x09, 0x00, 0x82,
-  0x60, 0x60, 0x48, 0xc4, 0xf3, 0x28, 0xc3, 0x88, 0x41, 0x02, 0x80, 0x20,
-  0x18, 0x18, 0x53, 0x01, 0x41, 0x02, 0x31, 0x62, 0x90, 0x00, 0x20, 0x08,
-  0x06, 0x06, 0x65, 0x44, 0xd1, 0x52, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82,
-  0x81, 0x51, 0x1d, 0x92, 0xa4, 0x18, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60,
-  0x80, 0x54, 0xc6, 0x34, 0x39, 0xc4, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18,
-  0x20, 0x95, 0x31, 0x4d, 0xc5, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06,
-  0x48, 0x65, 0x4c, 0x53, 0x23, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01,
-  0x52, 0x19, 0xd3, 0xb4, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00
-};

+ 0 - 2584
test/testgpu/testgpu_metallib.h

@@ -1,2584 +0,0 @@
-#if defined(SDL_PLATFORM_IOS)
-#if TARGET_OS_SIMULATOR
-const unsigned char cube_vert_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x42, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0d, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x00, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x9f, 0x34, 0xf2, 0x23, 0x6f, 0x4a, 0x7c, 0x53, 0xed,
-  0x26, 0x8f, 0xf1, 0x95, 0xca, 0x20, 0xce, 0x21, 0xe9, 0xdd, 0xef, 0xbc,
-  0x8c, 0x8d, 0x0d, 0xab, 0xad, 0x10, 0x40, 0x59, 0x61, 0x1c, 0x25, 0x4d,
-  0x44, 0x53, 0x5a, 0x08, 0x00, 0x30, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x4f, 0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08,
-  0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x45, 0x4e, 0x44, 0x54, 0x29, 0x00, 0x00, 0x00, 0x56, 0x41, 0x54,
-  0x54, 0x15, 0x00, 0x02, 0x00, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
-  0x6e, 0x00, 0x00, 0x80, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x80,
-  0x56, 0x41, 0x54, 0x59, 0x04, 0x00, 0x02, 0x00, 0x05, 0x05, 0x45, 0x4e,
-  0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0,
-  0x17, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x0d,
-  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x42, 0x43, 0xc0, 0xde, 0x35, 0x14,
-  0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x62, 0x0c, 0x30, 0x24, 0x80, 0x10,
-  0x05, 0xc8, 0x14, 0x00, 0x00, 0x00, 0x21, 0x0c, 0x00, 0x00, 0x0b, 0x03,
-  0x00, 0x00, 0x0b, 0x02, 0x21, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00,
-  0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10,
-  0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04,
-  0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10,
-  0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48, 0x90,
-  0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0x04, 0x49,
-  0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83,
-  0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x71, 0x00,
-  0x00, 0x00, 0x1b, 0xc2, 0x24, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80,
-  0x03, 0x40, 0x02, 0x28, 0x22, 0x1c, 0xe0, 0x01, 0x1e, 0xe4, 0xe1, 0x1d,
-  0xf0, 0xa1, 0x0d, 0xcc, 0xa1, 0x1e, 0xdc, 0x61, 0x1c, 0xda, 0xc0, 0x1c,
-  0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90,
-  0x87, 0x7a, 0x28, 0x07, 0x80, 0x68, 0x87, 0x74, 0x70, 0x87, 0x36, 0x60,
-  0x87, 0x72, 0x38, 0x87, 0x70, 0x60, 0x87, 0x36, 0xb0, 0x87, 0x72, 0x18,
-  0x07, 0x7a, 0x78, 0x07, 0x79, 0x68, 0x83, 0x7b, 0x48, 0x07, 0x72, 0xa0,
-  0x07, 0x74, 0x00, 0xe2, 0x40, 0x0e, 0xf0, 0x00, 0x18, 0xdc, 0xe1, 0x1d,
-  0xda, 0x40, 0x1c, 0xea, 0x21, 0x1d, 0xd8, 0x81, 0x1e, 0xd2, 0xc1, 0x1d,
-  0xe6, 0x01, 0x20, 0xdc, 0xe1, 0x1d, 0xda, 0xc0, 0x1c, 0xe4, 0x21, 0x1c,
-  0xda, 0xa1, 0x1c, 0xda, 0x00, 0x1e, 0xde, 0x21, 0x1d, 0xdc, 0x81, 0x1e,
-  0xca, 0x41, 0x1e, 0xda, 0xa0, 0x1c, 0xd8, 0x21, 0x1d, 0xda, 0x01, 0xa0,
-  0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30,
-  0x07, 0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48,
-  0x07, 0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48,
-  0x87, 0x76, 0x68, 0x03, 0x77, 0x78, 0x07, 0x77, 0x68, 0x03, 0x76, 0x28,
-  0x87, 0x70, 0x30, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20,
-  0xdc, 0xe1, 0x1d, 0xda, 0x20, 0x1d, 0xdc, 0xc1, 0x1c, 0xe6, 0xa1, 0x0d,
-  0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0, 0x01, 0xa0,
-  0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x70,
-  0x87, 0x70, 0x70, 0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68,
-  0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c,
-  0x00, 0xc2, 0x1d, 0xde, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xce, 0xc1, 0x1d,
-  0xca, 0x81, 0x1c, 0xda, 0x40, 0x1f, 0xca, 0x41, 0x1e, 0xde, 0x61, 0x1e,
-  0xda, 0xc0, 0x1c, 0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d,
-  0x00, 0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68,
-  0x03, 0x7a, 0x90, 0x87, 0x70, 0x80, 0x07, 0x78, 0x48, 0x07, 0x77, 0x38,
-  0x87, 0x36, 0x68, 0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e,
-  0xea, 0xa1, 0x1c, 0x00, 0x62, 0x1e, 0xe8, 0x21, 0x1c, 0xc6, 0x61, 0x1d,
-  0xda, 0x00, 0x1e, 0xe4, 0xe1, 0x1d, 0xe8, 0xa1, 0x1c, 0xc6, 0x81, 0x1e,
-  0xde, 0x41, 0x1e, 0xda, 0x40, 0x1c, 0xea, 0xc1, 0x1c, 0xcc, 0xa1, 0x1c,
-  0xe4, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xf4, 0xa1, 0x1c, 0x00, 0x3c, 0x00,
-  0x88, 0x7a, 0x70, 0x87, 0x79, 0x08, 0x07, 0x73, 0x28, 0x87, 0x36, 0x30,
-  0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e,
-  0xe4, 0xa1, 0x1e, 0xca, 0x01, 0xd8, 0xe0, 0x09, 0x03, 0xb0, 0x00, 0x55,
-  0x90, 0x06, 0xa0, 0x30, 0x84, 0x43, 0x3a, 0xc8, 0x43, 0x1b, 0x88, 0x43,
-  0x3d, 0x98, 0x83, 0x39, 0x94, 0x83, 0x3c, 0xb4, 0x81, 0x3b, 0xbc, 0x43,
-  0x1b, 0x84, 0x03, 0x3b, 0xa4, 0x43, 0x38, 0xcc, 0x03, 0x00, 0x49, 0x18,
-  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40, 0x00, 0x89, 0x20,
-  0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64,
-  0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1,
-  0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x44,
-  0x33, 0x00, 0xc3, 0x08, 0x04, 0x60, 0x85, 0x10, 0x86, 0x11, 0x06, 0x20,
-  0x09, 0xc2, 0x4c, 0xd4, 0x3c, 0xd0, 0x83, 0x3c, 0xd4, 0xc3, 0x38, 0xd0,
-  0x83, 0x1b, 0xb4, 0x43, 0x39, 0xd0, 0x43, 0x38, 0xb0, 0x83, 0x1e, 0xe8,
-  0x41, 0x3b, 0x84, 0x03, 0x3d, 0xc8, 0x43, 0x3a, 0xe0, 0x03, 0x0a, 0xc8,
-  0x29, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xbb, 0x1b, 0x8a, 0x82, 0x32, 0x88,
-  0x60, 0x08, 0x85, 0x10, 0x63, 0x1c, 0x42, 0x03, 0x01, 0x73, 0x04, 0x60,
-  0x90, 0x02, 0x6b, 0x18, 0x81, 0x58, 0xe6, 0x08, 0x40, 0x61, 0x10, 0x21,
-  0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x13, 0xbe, 0x70, 0x48, 0x07, 0x79,
-  0xb0, 0x03, 0x3a, 0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60, 0x87, 0x72,
-  0x68, 0x83, 0x74, 0x78, 0x87, 0x79, 0x88, 0x83, 0x39, 0x70, 0x03, 0x38,
-  0x70, 0x03, 0x38, 0x68, 0x83, 0x79, 0x48, 0x87, 0x76, 0xa8, 0x07, 0x76,
-  0x08, 0x07, 0x7a, 0x78, 0x07, 0x79, 0xd8, 0x70, 0x1b, 0xe5, 0xd0, 0x06,
-  0xf0, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x78, 0xa0, 0x07,
-  0x78, 0xd0, 0x06, 0xe9, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07,
-  0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x6d, 0x90, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
-  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
-  0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0e,
-  0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x6d, 0x60, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07,
-  0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x72, 0x40, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f,
-  0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x6d, 0x60, 0x0f, 0x74, 0x80, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07,
-  0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x79, 0x60, 0x07,
-  0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x6d, 0x60, 0x0f, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07,
-  0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07,
-  0x79, 0x20, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07,
-  0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06,
-  0xf6, 0x50, 0x07, 0x71, 0x20, 0x07, 0x7a, 0x50, 0x07, 0x71, 0x20, 0x07,
-  0x7a, 0x50, 0x07, 0x71, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x00, 0x07,
-  0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07,
-  0x71, 0x00, 0x07, 0x72, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x11, 0xc2, 0x90, 0x47,
-  0x25, 0xfd, 0x0c, 0x80, 0x34, 0x43, 0x22, 0xe0, 0x40, 0x00, 0x00, 0x08,
-  0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x62, 0x83, 0x40, 0xd1,
-  0x86, 0x01, 0x00, 0x80, 0x2c, 0x10, 0x09, 0x00, 0x00, 0x00, 0x32, 0x1e,
-  0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04,
-  0x43, 0x5a, 0x45, 0x50, 0x02, 0x85, 0x30, 0x02, 0x50, 0x80, 0x01, 0x05,
-  0x42, 0x6e, 0x04, 0x80, 0xd8, 0x58, 0x42, 0x24, 0x00, 0x00, 0xb1, 0x18,
-  0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1,
-  0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42,
-  0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f,
-  0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1,
-  0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84,
-  0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc,
-  0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70,
-  0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19,
-  0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f,
-  0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21,
-  0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc,
-  0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84,
-  0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37,
-  0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70,
-  0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77,
-  0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79,
-  0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e,
-  0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1,
-  0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81,
-  0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98,
-  0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88,
-  0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4,
-  0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72,
-  0x70, 0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74,
-  0xa0, 0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e,
-  0xe4, 0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e,
-  0x33, 0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21,
-  0x1c, 0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01,
-  0x1e, 0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc,
-  0x50, 0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77,
-  0x78, 0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e,
-  0x33, 0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1,
-  0x1d, 0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61,
-  0x06, 0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0,
-  0x43, 0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0,
-  0xc3, 0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74,
-  0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e,
-  0xec, 0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41,
-  0x1e, 0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48,
-  0x19, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c,
-  0x43, 0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4,
-  0x03, 0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71,
-  0x08, 0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f,
-  0xed, 0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f,
-  0xf6, 0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f,
-  0xf3, 0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23,
-  0xe2, 0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21,
-  0x1d, 0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21,
-  0x1f, 0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94,
-  0x83, 0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a,
-  0x08, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e,
-  0xe5, 0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e,
-  0xf3, 0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74,
-  0x90, 0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74,
-  0x78, 0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78,
-  0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x79, 0x20, 0x00, 0x00, 0xbd, 0x00,
-  0x00, 0x00, 0x32, 0x9a, 0x08, 0x14, 0x02, 0x85, 0x8c, 0x27, 0x46, 0x46,
-  0xc8, 0x11, 0x32, 0x64, 0xd4, 0x3a, 0x4c, 0x76, 0x00, 0x00, 0x8b, 0xf2,
-  0x06, 0xc5, 0xc6, 0x91, 0x41, 0xb4, 0x44, 0x06, 0x53, 0x30, 0x08, 0x24,
-  0x79, 0x86, 0xf2, 0x20, 0x14, 0xd2, 0x44, 0xd7, 0x30, 0x00, 0x53, 0x44,
-  0x4b, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x77, 0x63, 0x68,
-  0x61, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65,
-  0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69,
-  0x6f, 0x6e, 0x20, 0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x20,
-  0x28, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x66, 0x65, 0x2d, 0x33, 0x32, 0x30,
-  0x32, 0x33, 0x2e, 0x39, 0x38, 0x29, 0x4d, 0x65, 0x74, 0x61, 0x6c, 0x61,
-  0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x64,
-  0x65, 0x6e, 0x6f, 0x72, 0x6d, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62,
-  0x6c, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c,
-  0x65, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f,
-  0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f,
-  0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62,
-  0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f,
-  0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x76, 0x65,
-  0x72, 0x74, 0x65, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x75,
-  0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x61, 0x69,
-  0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e,
-  0x61, 0x6d, 0x65, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x61, 0x69, 0x72,
-  0x2e, 0x61, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x63, 0x6f, 0x6c,
-  0x6f, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
-  0x6f, 0x6e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x69,
-  0x72, 0x2e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x70,
-  0x75, 0x74, 0x61, 0x69, 0x72, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
-  0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x67, 0x65, 0x6e, 0x65,
-  0x72, 0x61, 0x74, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x61, 0x69, 0x72, 0x5f,
-  0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f,
-  0x5f, 0x29, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x61, 0x69, 0x72, 0x2e,
-  0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x62, 0x75,
-  0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x61, 0x69, 0x72,
-  0x2e, 0x72, 0x65, 0x61, 0x64, 0x61, 0x69, 0x72, 0x2e, 0x73, 0x74, 0x72,
-  0x75, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x66,
-  0x6f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x6d, 0x6f, 0x64,
-  0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x61, 0x69,
-  0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73,
-  0x69, 0x7a, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74,
-  0x79, 0x70, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x5f, 0x73, 0x69,
-  0x7a, 0x65, 0x55, 0x42, 0x4f, 0x75, 0x62, 0x6f, 0x00, 0x00, 0x23, 0x08,
-  0x4b, 0x30, 0x82, 0xc0, 0x20, 0x23, 0x08, 0x8b, 0x30, 0x82, 0xb0, 0x0c,
-  0x23, 0x08, 0x0b, 0x31, 0x82, 0x90, 0x00, 0x23, 0x08, 0x4b, 0x31, 0x82,
-  0xb0, 0x18, 0x33, 0x0c, 0x5e, 0xf0, 0xcd, 0x30, 0x80, 0x81, 0x10, 0x06,
-  0x33, 0x04, 0xc3, 0x0c, 0x83, 0xe7, 0x89, 0xc1, 0x0c, 0x04, 0x01, 0x06,
-  0x60, 0x20, 0x06, 0x33, 0x04, 0xc5, 0x0c, 0x81, 0x31, 0x43, 0x70, 0xcc,
-  0x60, 0x20, 0x89, 0xb2, 0x30, 0xcd, 0x0c, 0x85, 0xa3, 0x2c, 0xcc, 0x33,
-  0x83, 0xe0, 0x06, 0x6f, 0x30, 0x83, 0x22, 0x06, 0x50, 0x24, 0x06, 0x60,
-  0x20, 0x29, 0x13, 0xf3, 0xcc, 0xa0, 0x80, 0x01, 0x14, 0x81, 0x01, 0x18,
-  0x48, 0xca, 0xc4, 0x34, 0x33, 0x14, 0x62, 0x40, 0x06, 0x62, 0x80, 0x65,
-  0x33, 0x48, 0x1e, 0x55, 0x91, 0x41, 0x24, 0x06, 0x60, 0x60, 0x5d, 0x73,
-  0xa0, 0x91, 0xc1, 0x56, 0x06, 0x0a, 0xc7, 0x74, 0x33, 0x0c, 0x71, 0x20,
-  0x07, 0x74, 0x30, 0xc3, 0x30, 0x06, 0x70, 0x50, 0x07, 0x32, 0x12, 0x98,
-  0xa0, 0x8b, 0xd8, 0xd8, 0xec, 0xda, 0x5c, 0xda, 0xde, 0xc8, 0xea, 0xd8,
-  0xca, 0x5c, 0xcc, 0xd8, 0xc2, 0xce, 0xe6, 0x46, 0x11, 0xca, 0xc0, 0x0c,
-  0x4e, 0x61, 0x63, 0xb3, 0x6b, 0x73, 0x49, 0x23, 0x2b, 0x73, 0xa3, 0x1b,
-  0x25, 0x38, 0x83, 0x5b, 0xc2, 0xd2, 0xe4, 0x5c, 0xec, 0xca, 0xe4, 0xe6,
-  0xd2, 0xde, 0xdc, 0x46, 0x09, 0xd0, 0xe0, 0xa8, 0xb0, 0x34, 0x39, 0x17,
-  0xb6, 0x30, 0xb7, 0xb3, 0xba, 0xb0, 0xb3, 0xb2, 0x2f, 0xbb, 0x32, 0xb9,
-  0xb9, 0xb4, 0x37, 0xb7, 0x51, 0x82, 0x34, 0xb8, 0x29, 0x2c, 0x4d, 0xce,
-  0x65, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0xec, 0xeb, 0x0d, 0x8e, 0x2e,
-  0xed, 0xcd, 0x6d, 0x6e, 0x94, 0x41, 0x0d, 0xd6, 0x80, 0x0d, 0x4e, 0x09,
-  0x4b, 0x93, 0x73, 0xb1, 0x2b, 0x93, 0xa3, 0x2b, 0xc3, 0x1b, 0x25, 0xa8,
-  0x03, 0x00, 0xa9, 0x18, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x0b, 0x0a,
-  0x72, 0x28, 0x87, 0x77, 0x80, 0x07, 0x7a, 0x58, 0x70, 0x98, 0x43, 0x3d,
-  0xb8, 0xc3, 0x38, 0xb0, 0x43, 0x39, 0xd0, 0xc3, 0x82, 0xe6, 0x1c, 0xc6,
-  0xa1, 0x0d, 0xe8, 0x41, 0x1e, 0xc2, 0xc1, 0x1d, 0xe6, 0x21, 0x1d, 0xe8,
-  0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x16, 0x34, 0xe3, 0x60, 0x0e, 0xe7, 0x50,
-  0x0f, 0xe1, 0x20, 0x0f, 0xe4, 0x40, 0x0f, 0xe1, 0x20, 0x0f, 0xe7, 0x50,
-  0x0e, 0xf4, 0xb0, 0x80, 0x81, 0x07, 0x79, 0x28, 0x87, 0x70, 0x60, 0x07,
-  0x76, 0x78, 0x87, 0x71, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x58, 0x70,
-  0x9c, 0xc3, 0x38, 0xb4, 0x01, 0x3b, 0xa4, 0x83, 0x3d, 0x94, 0xc3, 0x02,
-  0x6b, 0x1c, 0xd8, 0x21, 0x1c, 0xdc, 0xe1, 0x1c, 0xdc, 0x20, 0x1c, 0xe4,
-  0x61, 0x1c, 0xdc, 0x20, 0x1c, 0xe8, 0x81, 0x1e, 0xc2, 0x61, 0x1c, 0xd0,
-  0xa1, 0x1c, 0xc8, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0x61, 0xc1, 0x01,
-  0x0f, 0xf4, 0x20, 0x0f, 0xe1, 0x50, 0x0f, 0xf4, 0x80, 0x0e, 0x00, 0x00,
-  0x00, 0x00, 0xd1, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0xcc,
-  0x3c, 0xa4, 0x83, 0x3b, 0x9c, 0x03, 0x3b, 0x94, 0x03, 0x3d, 0xa0, 0x83,
-  0x3c, 0x94, 0x43, 0x38, 0x90, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x61, 0x20,
-  0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10, 0x00,
-  0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb4, 0x66, 0x00, 0xa8, 0xcd, 0x41,
-  0x10, 0x42, 0xc0, 0x8c, 0x00, 0x8c, 0x45, 0x04, 0x41, 0x10, 0x8c, 0x45,
-  0x08, 0x82, 0x20, 0x90, 0x2b, 0x83, 0x12, 0x28, 0x02, 0x02, 0x63, 0x04,
-  0x20, 0x08, 0x82, 0xf8, 0x47, 0x62, 0x06, 0x80, 0xc6, 0x0c, 0xc0, 0x0c,
-  0x00, 0x00, 0xf1, 0x30, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x47,
-  0xc8, 0x90, 0x51, 0x12, 0x44, 0x2c, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x93,
-  0x59, 0x00, 0x6f, 0x6d, 0x6e, 0x69, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74,
-  0x20, 0x63, 0x68, 0x61, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20,
-  0x43, 0x2b, 0x2b, 0x20, 0x54, 0x42, 0x41, 0x41, 0x61, 0x69, 0x72, 0x2d,
-  0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73,
-  0x28, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x29, 0x61, 0x69, 0x72,
-  0x2d, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73, 0x63, 0x6f, 0x70, 0x65,
-  0x2d, 0x61, 0x72, 0x67, 0x28, 0x32, 0x29, 0x00, 0x00, 0x00, 0x13, 0x04,
-  0xe7, 0x58, 0x21, 0xf0, 0x41, 0x1e, 0xac, 0x18, 0xfa, 0x80, 0x0f, 0xf4,
-  0x60, 0x43, 0x80, 0x07, 0x1b, 0x86, 0x3b, 0xf0, 0x83, 0x3d, 0xd8, 0x30,
-  0xfc, 0xc1, 0x1f, 0xec, 0xc1, 0x86, 0xa0, 0x0f, 0x00, 0x00, 0x83, 0x0c,
-  0x4e, 0xb0, 0xcc, 0x31, 0x04, 0x05, 0xb2, 0x4d, 0xf1, 0x4c, 0x96, 0x35,
-  0x51, 0x10, 0xca, 0x20, 0xc3, 0x64, 0x38, 0x26, 0x04, 0xe2, 0xbf, 0x4d,
-  0x31, 0x5d, 0x9a, 0xc6, 0x50, 0x10, 0xca, 0x20, 0xc3, 0xa5, 0x44, 0x26,
-  0x04, 0xe2, 0x6f, 0x41, 0x01, 0xfe, 0xdb, 0x14, 0x18, 0xf7, 0x7d, 0x10,
-  0x05, 0xa1, 0x0c, 0x32, 0x70, 0x4f, 0x65, 0x42, 0x20, 0xfe, 0x56, 0x04,
-  0xe0, 0xbf, 0x4d, 0xd1, 0x85, 0x01, 0x19, 0x90, 0xc1, 0x45, 0x41, 0x28,
-  0x36, 0x04, 0xe0, 0x3f, 0xdb, 0x60, 0x49, 0xc0, 0x6c, 0x43, 0x20, 0x04,
-  0x19, 0x04, 0xc4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x5b, 0x8a,
-  0x21, 0xf8, 0x83, 0x03, 0x14, 0xb6, 0x14, 0x47, 0xf0, 0x07, 0x07, 0x28,
-  0x6c, 0x29, 0x98, 0xe0, 0x0f, 0x0e, 0x50, 0xd8, 0x52, 0x44, 0xc1, 0x1f,
-  0x1c, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x20,
-  0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x0e, 0x10, 0x22, 0x84, 0x00,
-  0xb9, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x0c,
-  0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94, 0xf0, 0x00, 0x00,
-  0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00,
-  0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00,
-  0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
-  0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
-  0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff,
-  0xff, 0xff, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x0c,
-  0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94, 0x6e, 0x00, 0x00,
-  0x00, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x33, 0x32, 0x30,
-  0x32, 0x33, 0x2e, 0x39, 0x38, 0x61, 0x69, 0x72, 0x36, 0x34, 0x2d, 0x61,
-  0x70, 0x70, 0x6c, 0x65, 0x2d, 0x69, 0x6f, 0x73, 0x31, 0x33, 0x2e, 0x30,
-  0x2e, 0x30, 0x2d, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00
-};
-const unsigned int cube_vert_metallib_len = 3650;
-const unsigned char cube_frag_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xad, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0a, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x01, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0xb1, 0x5b, 0xd6, 0x7f, 0x39, 0x5b, 0x5d, 0x77, 0x3c,
-  0x0b, 0x97, 0x90, 0xdc, 0xc0, 0xb9, 0x79, 0xce, 0x64, 0x1b, 0x4c, 0x72,
-  0xbe, 0xf1, 0xe4, 0x47, 0x45, 0x71, 0x06, 0x02, 0x63, 0x68, 0x57, 0x4d,
-  0x44, 0x53, 0x5a, 0x08, 0x00, 0xc0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x4f, 0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08,
-  0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17,
-  0x0b, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xa4, 0x0a, 0x00,
-  0x00, 0xff, 0xff, 0xff, 0xff, 0x42, 0x43, 0xc0, 0xde, 0x35, 0x14, 0x00,
-  0x00, 0x03, 0x00, 0x00, 0x00, 0x62, 0x0c, 0x30, 0x24, 0x80, 0x10, 0x05,
-  0xc8, 0x14, 0x00, 0x00, 0x00, 0x21, 0x0c, 0x00, 0x00, 0x6f, 0x02, 0x00,
-  0x00, 0x0b, 0x02, 0x21, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00,
-  0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32,
-  0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b,
-  0x62, 0x80, 0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32,
-  0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x42, 0x88, 0x48, 0x90, 0x14,
-  0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0x04, 0x49, 0x0e,
-  0x90, 0x11, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5,
-  0x8a, 0x04, 0x21, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x69, 0x00, 0x00,
-  0x00, 0x1b, 0xc2, 0x24, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80, 0x03,
-  0x40, 0x02, 0x28, 0x22, 0x1c, 0xe0, 0x01, 0x1e, 0xe4, 0xe1, 0x1d, 0xf0,
-  0xa1, 0x0d, 0xcc, 0xa1, 0x1e, 0xdc, 0x61, 0x1c, 0xda, 0xc0, 0x1c, 0xe0,
-  0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90, 0x87,
-  0x7a, 0x28, 0x07, 0x80, 0x68, 0x87, 0x74, 0x70, 0x87, 0x36, 0x60, 0x87,
-  0x72, 0x38, 0x87, 0x70, 0x60, 0x87, 0x36, 0xb0, 0x87, 0x72, 0x18, 0x07,
-  0x7a, 0x78, 0x07, 0x79, 0x68, 0x83, 0x7b, 0x48, 0x07, 0x72, 0xa0, 0x07,
-  0x74, 0x00, 0xe2, 0x40, 0x0e, 0xf0, 0x00, 0x18, 0xdc, 0xe1, 0x1d, 0xda,
-  0x40, 0x1c, 0xea, 0x21, 0x1d, 0xd8, 0x81, 0x1e, 0xd2, 0xc1, 0x1d, 0xe6,
-  0x01, 0x20, 0xdc, 0xe1, 0x1d, 0xda, 0xc0, 0x1c, 0xe4, 0x21, 0x1c, 0xda,
-  0xa1, 0x1c, 0xda, 0x00, 0x1e, 0xde, 0x21, 0x1d, 0xdc, 0x81, 0x1e, 0xca,
-  0x41, 0x1e, 0xda, 0xa0, 0x1c, 0xd8, 0x21, 0x1d, 0xda, 0x01, 0xa0, 0x07,
-  0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30, 0x07,
-  0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48, 0x07,
-  0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48, 0x87,
-  0x76, 0x68, 0x03, 0x77, 0x78, 0x07, 0x77, 0x68, 0x03, 0x76, 0x28, 0x87,
-  0x70, 0x30, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xdc,
-  0xe1, 0x1d, 0xda, 0x20, 0x1d, 0xdc, 0xc1, 0x1c, 0xe6, 0xa1, 0x0d, 0xcc,
-  0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0, 0x01, 0xa0, 0x07,
-  0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x70, 0x87,
-  0x70, 0x70, 0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87,
-  0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00,
-  0xc2, 0x1d, 0xde, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xce, 0xc1, 0x1d, 0xca,
-  0x81, 0x1c, 0xda, 0x40, 0x1f, 0xca, 0x41, 0x1e, 0xde, 0x61, 0x1e, 0xda,
-  0xc0, 0x1c, 0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00,
-  0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x03,
-  0x7a, 0x90, 0x87, 0x70, 0x80, 0x07, 0x78, 0x48, 0x07, 0x77, 0x38, 0x87,
-  0x36, 0x68, 0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea,
-  0xa1, 0x1c, 0x00, 0x62, 0x1e, 0xe8, 0x21, 0x1c, 0xc6, 0x61, 0x1d, 0xda,
-  0x00, 0x1e, 0xe4, 0xe1, 0x1d, 0xe8, 0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde,
-  0x41, 0x1e, 0xda, 0x40, 0x1c, 0xea, 0xc1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
-  0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xf4, 0xa1, 0x1c, 0x00, 0x3c, 0x00, 0x88,
-  0x7a, 0x70, 0x87, 0x79, 0x08, 0x07, 0x73, 0x28, 0x87, 0x36, 0x30, 0x07,
-  0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4,
-  0xa1, 0x1e, 0xca, 0x01, 0xd8, 0x40, 0x08, 0x01, 0x60, 0x01, 0x00, 0x00,
-  0x00, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40,
-  0x00, 0x89, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32, 0x22, 0x08,
-  0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04, 0x13, 0x22,
-  0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b, 0x84, 0x84,
-  0x4c, 0x10, 0x20, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x50, 0x86, 0x88, 0x20,
-  0x19, 0x08, 0x98, 0x23, 0x00, 0x83, 0x14, 0xa8, 0x11, 0x00, 0x00, 0x00,
-  0x00, 0x13, 0xbe, 0x70, 0x48, 0x07, 0x79, 0xb0, 0x03, 0x3a, 0x68, 0x83,
-  0x70, 0x80, 0x07, 0x78, 0x60, 0x87, 0x72, 0x68, 0x83, 0x74, 0x78, 0x87,
-  0x79, 0x88, 0x83, 0x39, 0x70, 0x03, 0x38, 0x70, 0x03, 0x38, 0x68, 0x83,
-  0x79, 0x48, 0x87, 0x76, 0xa8, 0x07, 0x76, 0x08, 0x07, 0x7a, 0x78, 0x07,
-  0x79, 0xd8, 0x70, 0x1b, 0xe5, 0xd0, 0x06, 0xf0, 0xa0, 0x07, 0x76, 0x40,
-  0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x90,
-  0x0e, 0x71, 0xa0, 0x07, 0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06, 0xe9, 0x80,
-  0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60,
-  0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x6d, 0x90,
-  0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20,
-  0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0,
-  0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30,
-  0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x76, 0x40,
-  0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60,
-  0x0f, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60,
-  0x07, 0x6d, 0x60, 0x0f, 0x72, 0x40, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0,
-  0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x73, 0x20, 0x07, 0x7a, 0x30,
-  0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x74, 0x80,
-  0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60,
-  0x0f, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40,
-  0x07, 0x6d, 0x60, 0x0f, 0x79, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80,
-  0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x20,
-  0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20,
-  0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x79, 0x20, 0x07, 0x7a, 0x20,
-  0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x6d, 0x60,
-  0x0f, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xa0,
-  0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x50, 0x07, 0x71, 0x20,
-  0x07, 0x7a, 0x50, 0x07, 0x71, 0x20, 0x07, 0x7a, 0x50, 0x07, 0x71, 0x20,
-  0x07, 0x6d, 0x60, 0x0f, 0x71, 0x00, 0x07, 0x72, 0x40, 0x07, 0x7a, 0x10,
-  0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x71, 0x00, 0x07, 0x72, 0x40,
-  0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30,
-  0x07, 0x72, 0xa0, 0x11, 0xc2, 0x90, 0x47, 0x21, 0xfd, 0x0c, 0x80, 0x34,
-  0x43, 0x22, 0xe0, 0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00,
-  0x00, 0x00, 0x40, 0x62, 0x83, 0x40, 0xd1, 0x38, 0x01, 0x00, 0x80, 0x2c,
-  0x10, 0x07, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x0c, 0x19, 0x11, 0x4c,
-  0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xaa, 0x22, 0x28, 0x81,
-  0x42, 0x18, 0x01, 0x20, 0x1b, 0x4b, 0x88, 0x04, 0x00, 0xb1, 0x18, 0x00,
-  0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c,
-  0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80,
-  0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed,
-  0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d,
-  0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83,
-  0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78,
-  0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70,
-  0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc,
-  0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3,
-  0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c,
-  0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83,
-  0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03,
-  0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68,
-  0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60,
-  0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80,
-  0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98,
-  0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec,
-  0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c,
-  0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d,
-  0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43,
-  0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03,
-  0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03,
-  0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72, 0x70,
-  0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74, 0xa0,
-  0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e, 0xe4,
-  0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e, 0x33,
-  0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21, 0x1c,
-  0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01, 0x1e,
-  0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc, 0x50,
-  0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77, 0x78,
-  0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e, 0x33,
-  0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d,
-  0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61, 0x06,
-  0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0, 0x43,
-  0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0, 0xc3,
-  0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74, 0x08,
-  0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e, 0xec,
-  0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41, 0x1e,
-  0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48, 0x19,
-  0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c, 0x43,
-  0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4, 0x03,
-  0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71, 0x08,
-  0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f, 0xed,
-  0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f, 0xf6,
-  0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f, 0xf3,
-  0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23, 0xe2,
-  0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21, 0x1d,
-  0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21, 0x1f,
-  0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94, 0x83,
-  0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a, 0x08,
-  0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e, 0xe5,
-  0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e, 0xf3,
-  0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74, 0x90,
-  0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74, 0x78,
-  0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78, 0x98,
-  0x07, 0x00, 0x00, 0x00, 0x00, 0x79, 0x20, 0x00, 0x00, 0x8c, 0x00, 0x00,
-  0x00, 0x32, 0x9a, 0x08, 0x14, 0x02, 0x85, 0x8c, 0x27, 0x46, 0x46, 0xc8,
-  0x11, 0x32, 0x64, 0xd4, 0x26, 0x28, 0x55, 0x00, 0x00, 0x8b, 0xf2, 0x06,
-  0xc5, 0xc6, 0x91, 0x41, 0x14, 0x19, 0xd2, 0xa2, 0x3c, 0x4c, 0xc1, 0x48,
-  0x08, 0x53, 0x44, 0x4b, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
-  0x77, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x70,
-  0x70, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x20, 0x76, 0x65,
-  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x32, 0x30, 0x32, 0x33, 0x2e,
-  0x39, 0x38, 0x20, 0x28, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x66, 0x65, 0x2d,
-  0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x29, 0x4d, 0x65, 0x74,
-  0x61, 0x6c, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c,
-  0x65, 0x2e, 0x64, 0x65, 0x6e, 0x6f, 0x72, 0x6d, 0x73, 0x5f, 0x64, 0x69,
-  0x73, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d,
-  0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61,
-  0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72,
-  0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x72, 0x61,
-  0x6d, 0x65, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x74,
-  0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72,
-  0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67,
-  0x65, 0x74, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79,
-  0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x6c, 0x6f, 0x61, 0x74,
-  0x34, 0x61, 0x69, 0x72, 0x2e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e,
-  0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x75, 0x73, 0x65, 0x72, 0x28,
-  0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x65,
-  0x6e, 0x74, 0x65, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x70, 0x65, 0x72, 0x73,
-  0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x61,
-  0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
-  0x61, 0x69, 0x72, 0x2e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
-  0x61, 0x69, 0x72, 0x2e, 0x6e, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x70,
-  0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
-  0x6f, 0x6e, 0x00, 0x00, 0x00, 0x23, 0x08, 0x45, 0x30, 0x82, 0x60, 0x14,
-  0x23, 0x08, 0x85, 0x30, 0x82, 0x50, 0x0c, 0x23, 0x08, 0x05, 0x31, 0x82,
-  0x30, 0x00, 0x33, 0x0c, 0x54, 0x50, 0xcd, 0x30, 0x58, 0xc2, 0x35, 0x43,
-  0x30, 0xcc, 0x30, 0x50, 0x14, 0x36, 0x03, 0x41, 0x58, 0x16, 0x36, 0x43,
-  0x50, 0xcc, 0x10, 0x18, 0x33, 0x04, 0xc7, 0x0c, 0x05, 0x82, 0x61, 0x89,
-  0x32, 0x43, 0x20, 0x06, 0x33, 0x24, 0xd8, 0xc2, 0x34, 0x4e, 0xa2, 0x3c,
-  0xd0, 0x0c, 0x88, 0x15, 0x35, 0x52, 0xa2, 0x3c, 0xd3, 0x0c, 0x02, 0x19,
-  0x94, 0xc1, 0x0c, 0x43, 0x36, 0x06, 0x66, 0x20, 0x23, 0x81, 0x09, 0xba,
-  0x88, 0x8d, 0xcd, 0xae, 0xcd, 0xa5, 0xed, 0x8d, 0xac, 0x8e, 0xad, 0xcc,
-  0xc5, 0x8c, 0x2d, 0xec, 0x6c, 0x6e, 0x14, 0x21, 0xd3, 0x4e, 0x61, 0x63,
-  0xb3, 0x6b, 0x73, 0x49, 0x23, 0x2b, 0x73, 0xa3, 0x1b, 0x25, 0xd8, 0x6e,
-  0x09, 0x4b, 0x93, 0x73, 0xb1, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73, 0x1b,
-  0x25, 0xe0, 0x8e, 0x0a, 0x4b, 0x93, 0x73, 0x61, 0x0b, 0x73, 0x3b, 0xab,
-  0x0b, 0x3b, 0x2b, 0xfb, 0xb2, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73, 0x1b,
-  0x25, 0xe8, 0x6e, 0x0a, 0x4b, 0x93, 0x73, 0x19, 0x7b, 0x6b, 0x83, 0x4b,
-  0x63, 0x2b, 0xfb, 0x7a, 0x83, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0x1b, 0x65,
-  0xf0, 0x3e, 0x30, 0x38, 0x26, 0x2c, 0x4d, 0xce, 0xc5, 0x4c, 0x2e, 0xec,
-  0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x94, 0xc0, 0x0c, 0x00, 0xa9, 0x18, 0x00,
-  0x00, 0x25, 0x00, 0x00, 0x00, 0x0b, 0x0a, 0x72, 0x28, 0x87, 0x77, 0x80,
-  0x07, 0x7a, 0x58, 0x70, 0x98, 0x43, 0x3d, 0xb8, 0xc3, 0x38, 0xb0, 0x43,
-  0x39, 0xd0, 0xc3, 0x82, 0xe6, 0x1c, 0xc6, 0xa1, 0x0d, 0xe8, 0x41, 0x1e,
-  0xc2, 0xc1, 0x1d, 0xe6, 0x21, 0x1d, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d,
-  0x16, 0x34, 0xe3, 0x60, 0x0e, 0xe7, 0x50, 0x0f, 0xe1, 0x20, 0x0f, 0xe4,
-  0x40, 0x0f, 0xe1, 0x20, 0x0f, 0xe7, 0x50, 0x0e, 0xf4, 0xb0, 0x80, 0x81,
-  0x07, 0x79, 0x28, 0x87, 0x70, 0x60, 0x07, 0x76, 0x78, 0x87, 0x71, 0x08,
-  0x07, 0x7a, 0x28, 0x07, 0x72, 0x58, 0x70, 0x9c, 0xc3, 0x38, 0xb4, 0x01,
-  0x3b, 0xa4, 0x83, 0x3d, 0x94, 0xc3, 0x02, 0x6b, 0x1c, 0xd8, 0x21, 0x1c,
-  0xdc, 0xe1, 0x1c, 0xdc, 0x20, 0x1c, 0xe4, 0x61, 0x1c, 0xdc, 0x20, 0x1c,
-  0xe8, 0x81, 0x1e, 0xc2, 0x61, 0x1c, 0xd0, 0xa1, 0x1c, 0xc8, 0x61, 0x1c,
-  0xc2, 0x81, 0x1d, 0xd8, 0x61, 0xc1, 0x01, 0x0f, 0xf4, 0x20, 0x0f, 0xe1,
-  0x50, 0x0f, 0xf4, 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x10, 0x00,
-  0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0xcc, 0x3c, 0xa4, 0x83, 0x3b, 0x9c,
-  0x03, 0x3b, 0x94, 0x03, 0x3d, 0xa0, 0x83, 0x3c, 0x94, 0x43, 0x38, 0x90,
-  0xc3, 0x01, 0x00, 0x00, 0x00, 0x61, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00,
-  0x00, 0x13, 0x04, 0x41, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00,
-  0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x0e, 0x10, 0x22, 0x84, 0x00, 0xed,
-  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x0c, 0x00,
-  0x00, 0x1f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94, 0xf0, 0x00, 0x00, 0x00,
-  0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
-  0x00, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
-  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
-  0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
-  0xff, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x0c, 0x00,
-  0x00, 0x0f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94, 0x6e, 0x00, 0x00, 0x00,
-  0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x33, 0x32, 0x30, 0x32,
-  0x33, 0x2e, 0x39, 0x38, 0x61, 0x69, 0x72, 0x36, 0x34, 0x2d, 0x61, 0x70,
-  0x70, 0x6c, 0x65, 0x2d, 0x69, 0x6f, 0x73, 0x31, 0x33, 0x2e, 0x30, 0x2e,
-  0x30, 0x2d, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00
-};
-const unsigned int cube_frag_metallib_len = 2989;
-#else
-const unsigned char cube_vert_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0b, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x00, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x3c, 0x44, 0xfd, 0x7c, 0xda, 0x9f, 0x5b, 0xd6, 0x40,
-  0xbc, 0x7e, 0xb5, 0x95, 0x8e, 0x07, 0x17, 0x23, 0x1d, 0x77, 0xe1, 0x11,
-  0xdb, 0x6d, 0x6e, 0xed, 0xc4, 0x2e, 0x2e, 0x2f, 0xb0, 0x34, 0x71, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x29,
-  0x00, 0x00, 0x00, 0x56, 0x41, 0x54, 0x54, 0x15, 0x00, 0x02, 0x00, 0x70,
-  0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x80, 0x63, 0x6f,
-  0x6c, 0x6f, 0x72, 0x00, 0x01, 0x80, 0x56, 0x41, 0x54, 0x59, 0x04, 0x00,
-  0x02, 0x00, 0x05, 0x05, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00,
-  0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x6c, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
-  0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00,
-  0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39,
-  0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
-  0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
-  0x38, 0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21,
-  0x23, 0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x48,
-  0x11, 0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00,
-  0x51, 0x18, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8,
-  0xff, 0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80,
-  0x07, 0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18,
-  0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40,
-  0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d,
-  0xdc, 0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d,
-  0xec, 0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e,
-  0xd2, 0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00,
-  0x06, 0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0,
-  0x87, 0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30,
-  0x07, 0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48,
-  0x07, 0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48,
-  0x87, 0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d,
-  0xe0, 0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d,
-  0xca, 0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d,
-  0xda, 0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8,
-  0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30,
-  0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0,
-  0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c,
-  0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90,
-  0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48,
-  0x87, 0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90,
-  0x87, 0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08,
-  0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20,
-  0xdc, 0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e,
-  0xd2, 0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d,
-  0x00, 0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08,
-  0x87, 0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28,
-  0x87, 0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30,
-  0x07, 0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28,
-  0x07, 0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c,
-  0xca, 0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e,
-  0xd0, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x6c, 0xc2,
-  0x00, 0x2c, 0x40, 0x35, 0x84, 0x43, 0x3a, 0xc8, 0x43, 0x1b, 0x88, 0x43,
-  0x3d, 0x98, 0x83, 0x39, 0x94, 0x83, 0x3c, 0xb4, 0x81, 0x3b, 0xbc, 0x43,
-  0x1b, 0x84, 0x03, 0x3b, 0xa4, 0x43, 0x38, 0xcc, 0x03, 0x00, 0x00, 0x00,
-  0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40, 0x00,
-  0x89, 0x20, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09,
-  0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3,
-  0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c,
-  0x10, 0x44, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x60, 0x85, 0x10, 0x86, 0x11,
-  0x06, 0x20, 0x09, 0xc2, 0x4c, 0xd4, 0x3c, 0xd0, 0x83, 0x3c, 0xd4, 0xc3,
-  0x38, 0xd0, 0x83, 0x1b, 0xb4, 0x43, 0x39, 0xd0, 0x43, 0x38, 0xb0, 0x83,
-  0x1e, 0xe8, 0x41, 0x3b, 0x84, 0x03, 0x3d, 0xc8, 0x43, 0x3a, 0xe0, 0x03,
-  0x0a, 0xc8, 0x29, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xbb, 0x1b, 0x8a, 0x82,
-  0x32, 0x88, 0x60, 0x08, 0x85, 0x10, 0x63, 0x1c, 0x42, 0x03, 0x01, 0x73,
-  0x04, 0x60, 0x90, 0x02, 0x6b, 0x18, 0x81, 0x58, 0xe6, 0x08, 0x40, 0x61,
-  0x10, 0x21, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x13, 0xa8, 0x70, 0x48,
-  0x07, 0x79, 0xb0, 0x03, 0x3a, 0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60,
-  0x87, 0x72, 0x68, 0x83, 0x74, 0x78, 0x87, 0x79, 0xc8, 0x03, 0x37, 0x80,
-  0x03, 0x37, 0x80, 0x83, 0x0d, 0xb7, 0x51, 0x0e, 0x6d, 0x00, 0x0f, 0x7a,
-  0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xe9, 0x10, 0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d,
-  0x90, 0x0e, 0x78, 0xa0, 0x07, 0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06, 0xe9,
-  0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76,
-  0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a,
-  0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76,
-  0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6,
-  0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xf6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a,
-  0x10, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6,
-  0x40, 0x07, 0x78, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xf6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a,
-  0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x90, 0x07, 0x76, 0xa0, 0x07, 0x71,
-  0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6,
-  0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a,
-  0x10, 0x07, 0x72, 0x80, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x90, 0x07, 0x72,
-  0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76,
-  0xd0, 0x06, 0xf6, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75,
-  0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x75,
-  0x10, 0x07, 0x72, 0xa0, 0x07, 0x75, 0x10, 0x07, 0x72, 0xa0, 0x07, 0x75,
-  0x10, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74,
-  0xa0, 0x07, 0x71, 0x00, 0x07, 0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70,
-  0x20, 0x07, 0x74, 0xd0, 0x06, 0xee, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x76,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x43, 0x98, 0x04, 0x00, 0x80, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x80, 0x2c, 0x10, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
-  0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47,
-  0xc6, 0x04, 0x43, 0x5a, 0x25, 0x30, 0x02, 0x50, 0x80, 0x01, 0x45, 0x50,
-  0x08, 0x05, 0x51, 0x20, 0xe4, 0x46, 0x00, 0x88, 0x8d, 0x25, 0x44, 0x02,
-  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00,
-  0x1a, 0x03, 0x4c, 0x10, 0x97, 0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9,
-  0xb9, 0xb4, 0x37, 0xb7, 0x21, 0xc6, 0x42, 0x28, 0x00, 0x93, 0x50, 0xb9,
-  0x1b, 0x43, 0x0b, 0x93, 0xfb, 0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x2c,
-  0x81, 0x22, 0x2c, 0x05, 0xdf, 0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4,
-  0xad, 0x8c, 0x2e, 0x8c, 0x0d, 0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd,
-  0x0d, 0x64, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x07, 0x07, 0x04, 0xa5,
-  0xad, 0x8c, 0x2e, 0x8c, 0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46, 0x66,
-  0xc6, 0x25, 0x07, 0x27, 0x65, 0x88, 0xa0, 0x10, 0x43, 0x8c, 0x25, 0x58,
-  0x8c, 0x45, 0x60, 0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04, 0x51, 0x8e,
-  0x25, 0x58, 0x82, 0x45, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32, 0xf6, 0xd6,
-  0x06, 0x97, 0xc6, 0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26, 0xd7, 0x36,
-  0xf7, 0x45, 0x96, 0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44, 0x50, 0x12,
-  0x72, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
-  0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65,
-  0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x04, 0x65, 0x21, 0x19, 0x84, 0xa5,
-  0xc9, 0xb9, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9, 0x98, 0xc9,
-  0x85, 0xb5, 0x95, 0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0x99, 0x95,
-  0xd1, 0x8d, 0xa1, 0x7d, 0x95, 0xb9, 0x85, 0x89, 0xb1, 0x95, 0x0d, 0x11,
-  0x94, 0x86, 0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5d, 0x99, 0x1c, 0x5d, 0x19,
-  0xde, 0xd7, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0x1d, 0x97, 0xba, 0xb9, 0x32,
-  0x39, 0x14, 0xb6, 0xb7, 0x31, 0x37, 0x98, 0x14, 0x46, 0x61, 0x69, 0x72,
-  0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61,
-  0x6d, 0x65, 0x34, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x68, 0xc8, 0x84, 0xa5,
-  0xc9, 0xb9, 0x84, 0xc9, 0x9d, 0x7d, 0xb9, 0x85, 0xb5, 0x95, 0xb1, 0x18,
-  0x7b, 0x63, 0x7b, 0x93, 0x1b, 0xc2, 0x28, 0x8f, 0x02, 0x29, 0x91, 0x22,
-  0x29, 0x93, 0x42, 0x91, 0x09, 0x4b, 0x93, 0x73, 0x81, 0x7b, 0x9b, 0x4b,
-  0xa3, 0x4b, 0x7b, 0x73, 0x23, 0x02, 0xf7, 0x36, 0x97, 0x46, 0x97, 0xf6,
-  0xe6, 0x36, 0x44, 0x51, 0x2c, 0x25, 0x52, 0x24, 0x65, 0x52, 0xae, 0x21,
-  0x84, 0x52, 0x29, 0x18, 0xa1, 0xb0, 0x34, 0x39, 0x17, 0xbb, 0x32, 0x39,
-  0xba, 0x32, 0xbc, 0xaf, 0x34, 0x37, 0xb8, 0x3a, 0x3a, 0x4a, 0x61, 0x69,
-  0x72, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
-  0x6e, 0x64, 0x65, 0x78, 0xf4, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8,
-  0xca, 0xc8, 0x50, 0xbe, 0xbe, 0xc2, 0xd2, 0xe4, 0xbe, 0xe0, 0xd8, 0xc2,
-  0xc6, 0xca, 0xd0, 0xde, 0xd8, 0xc8, 0xca, 0xe4, 0xbe, 0xbe, 0x52, 0x68,
-  0x98, 0xb1, 0xbd, 0x85, 0xd1, 0xcd, 0x0c, 0xa1, 0x16, 0x41, 0xd1, 0x94,
-  0x6d, 0x11, 0x96, 0x40, 0xe1, 0x94, 0x48, 0xe9, 0x94, 0x49, 0xb9, 0x86,
-  0x50, 0x4b, 0xa0, 0x68, 0xca, 0xb6, 0x04, 0x4b, 0xa0, 0x70, 0x4a, 0xa4,
-  0x74, 0xca, 0xa4, 0x50, 0x54, 0xc2, 0xd2, 0xe4, 0x5c, 0xc4, 0xea, 0xcc,
-  0xcc, 0xca, 0xe4, 0xf8, 0x84, 0xa5, 0xc9, 0xb9, 0x88, 0xd5, 0x99, 0x99,
-  0x95, 0xc9, 0x7d, 0xcd, 0xa5, 0xe9, 0x95, 0x11, 0x09, 0x4b, 0x93, 0x73,
-  0x91, 0x2b, 0x0b, 0x23, 0x23, 0x15, 0x96, 0x26, 0xe7, 0x32, 0x47, 0x27,
-  0x57, 0x37, 0x46, 0xf7, 0x45, 0x97, 0x07, 0x57, 0xf6, 0x95, 0xe6, 0x66,
-  0xf6, 0x46, 0xc4, 0x8c, 0xed, 0x2d, 0x8c, 0x8e, 0x06, 0x8f, 0x86, 0x4d,
-  0xdb, 0x1b, 0x59, 0x19, 0x9b, 0x55, 0x5a, 0xd9, 0x1d, 0x94, 0xdc, 0x9b,
-  0xda, 0x10, 0x65, 0x11, 0x96, 0x61, 0x11, 0x14, 0x32, 0x50, 0xca, 0x80,
-  0x51, 0x58, 0x9a, 0x9c, 0x4b, 0x98, 0xdc, 0xd9, 0x17, 0x5d, 0x1e, 0x5c,
-  0xd9, 0xd7, 0x5c, 0x9a, 0x5e, 0x19, 0xaf, 0xb0, 0x34, 0x39, 0x97, 0x30,
-  0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0xaf, 0x30, 0xb6, 0xb4, 0x33,
-  0xb7, 0xaf, 0xb9, 0x34, 0xbd, 0x32, 0x0e, 0x55, 0x42, 0x4f, 0x1c, 0xea,
-  0xc4, 0xde, 0x86, 0x90, 0xc1, 0x42, 0x28, 0x60, 0xa0, 0x84, 0xc1, 0x32,
-  0x28, 0xdb, 0x22, 0x2c, 0x81, 0x22, 0x06, 0xca, 0x18, 0x28, 0x66, 0xa0,
-  0x9c, 0xc1, 0x32, 0x28, 0x68, 0xb0, 0x1c, 0x4a, 0xa4, 0xa4, 0x81, 0x32,
-  0x29, 0x6a, 0x30, 0xc4, 0x50, 0x3c, 0xe5, 0x53, 0xd6, 0x60, 0x88, 0x91,
-  0x00, 0x4a, 0xa6, 0xb0, 0x01, 0x9f, 0xb7, 0x36, 0xb7, 0x34, 0xb8, 0x37,
-  0xba, 0x32, 0x37, 0x3a, 0x90, 0x31, 0xb4, 0x30, 0x39, 0x3e, 0x53, 0x69,
-  0x6d, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x2b, 0x2b, 0x20, 0x54, 0x42, 0x41,
-  0x41, 0x43, 0x04, 0xe5, 0x0d, 0x86, 0x18, 0x8a, 0x1b, 0x28, 0x70, 0xe0,
-  0x20, 0x43, 0x0c, 0x25, 0x0e, 0x94, 0x38, 0x70, 0x10, 0x66, 0x61, 0x69,
-  0x72, 0x2d, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73, 0x63, 0x6f, 0x70,
-  0x65, 0x73, 0x28, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x29, 0x43,
-  0x08, 0x85, 0x0e, 0x94, 0x39, 0xa0, 0x15, 0x96, 0x26, 0xd7, 0x12, 0xc6,
-  0x96, 0x16, 0x36, 0xd7, 0x32, 0x37, 0xf6, 0x06, 0x57, 0xd6, 0x12, 0x26,
-  0x77, 0x86, 0x22, 0x93, 0x32, 0xc4, 0x50, 0xec, 0x40, 0xa1, 0x03, 0xa5,
-  0x0e, 0x86, 0x08, 0x8a, 0x1d, 0x8c, 0x88, 0xd8, 0x81, 0x1d, 0xec, 0xa1,
-  0x1d, 0xdc, 0xa0, 0x1d, 0xde, 0x81, 0x1c, 0xea, 0x81, 0x1d, 0xca, 0xc1,
-  0x0d, 0xcc, 0x81, 0x1d, 0xc2, 0xe1, 0x1c, 0xe6, 0x61, 0x8a, 0x10, 0x0c,
-  0x23, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x48, 0x07, 0x72,
-  0x28, 0x07, 0x77, 0xa0, 0x87, 0x29, 0x41, 0x31, 0x62, 0x09, 0x87, 0x74,
-  0x90, 0x07, 0x37, 0xb0, 0x87, 0x72, 0x90, 0x87, 0x79, 0x48, 0x87, 0x77,
-  0x70, 0x87, 0x29, 0x81, 0x31, 0x82, 0x0a, 0x87, 0x74, 0x90, 0x07, 0x37,
-  0x60, 0x87, 0x70, 0x70, 0x87, 0x73, 0xa8, 0x87, 0x70, 0x38, 0x87, 0x72,
-  0xf8, 0x05, 0x7b, 0x28, 0x07, 0x79, 0x98, 0x87, 0x74, 0x78, 0x07, 0x77,
-  0x98, 0x12, 0x20, 0x23, 0xa6, 0x70, 0x48, 0x07, 0x79, 0x70, 0x83, 0x71,
-  0x78, 0x87, 0x76, 0x80, 0x87, 0x74, 0x60, 0x87, 0x72, 0xf8, 0x85, 0x77,
-  0x80, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x79, 0x98, 0x32, 0x28,
-  0x8c, 0x33, 0x42, 0x09, 0x87, 0x74, 0x90, 0x07, 0x37, 0xb0, 0x87, 0x72,
-  0x90, 0x07, 0x7a, 0x28, 0x07, 0x7c, 0x98, 0x12, 0xb4, 0x01, 0x00, 0x00,
-  0x79, 0x18, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c,
-  0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3,
-  0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6,
-  0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e,
-  0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43,
-  0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03,
-  0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48,
-  0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20,
-  0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e,
-  0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d,
-  0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89,
-  0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83,
-  0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68,
-  0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90,
-  0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78,
-  0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98,
-  0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5,
-  0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c,
-  0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c,
-  0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43,
-  0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43,
-  0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82,
-  0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58,
-  0x87, 0x72, 0x70, 0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18,
-  0x87, 0x74, 0xa0, 0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2,
-  0x50, 0x0e, 0xe4, 0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec,
-  0x50, 0x0e, 0x33, 0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e,
-  0xd2, 0x21, 0x1c, 0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d,
-  0xea, 0x01, 0x1e, 0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83,
-  0x3b, 0xcc, 0x50, 0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60,
-  0x87, 0x77, 0x78, 0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0,
-  0x50, 0x0e, 0x33, 0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d,
-  0xde, 0xc1, 0x1d, 0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d,
-  0xf0, 0x61, 0x06, 0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43,
-  0x3d, 0xd0, 0x43, 0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3,
-  0x3b, 0xb0, 0xc3, 0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18,
-  0x87, 0x74, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3,
-  0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1,
-  0xd2, 0x41, 0x1e, 0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e,
-  0x66, 0x48, 0x19, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3,
-  0x38, 0x8c, 0x43, 0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3,
-  0x3b, 0xd4, 0x03, 0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60,
-  0x07, 0x71, 0x08, 0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec,
-  0x60, 0x0f, 0xed, 0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5,
-  0x20, 0x0f, 0xf6, 0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5,
-  0x30, 0x0f, 0xf3, 0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8,
-  0x30, 0x23, 0xe2, 0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17,
-  0xec, 0x21, 0x1d, 0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d,
-  0xe8, 0x21, 0x1f, 0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03,
-  0x39, 0x94, 0x83, 0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78,
-  0x07, 0x7a, 0x08, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce,
-  0x87, 0x0e, 0xe5, 0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef,
-  0x30, 0x0e, 0xf3, 0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08,
-  0x87, 0x74, 0x90, 0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0,
-  0x87, 0x74, 0x78, 0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8,
-  0x07, 0x78, 0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x06, 0x70, 0x54, 0xd2, 0xcf, 0x00, 0x48, 0x03,
-  0x61, 0x20, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c,
-  0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xe4, 0xca, 0xa0, 0x08,
-  0x4a, 0x80, 0xda, 0x58, 0x84, 0x20, 0x08, 0x02, 0xad, 0x19, 0x80, 0x32,
-  0xa0, 0x36, 0x07, 0x21, 0x04, 0x44, 0x34, 0x02, 0x30, 0x16, 0x11, 0x04,
-  0x41, 0x40, 0x63, 0x06, 0x60, 0x06, 0x80, 0xc4, 0x0c, 0x00, 0x81, 0x31,
-  0x02, 0x10, 0x04, 0x41, 0xfc, 0x03, 0x00, 0x00, 0x83, 0x0c, 0x0f, 0x71,
-  0xcc, 0x31, 0x04, 0x42, 0x32, 0x5e, 0x01, 0x51, 0x9a, 0x46, 0x51, 0x50,
-  0x06, 0x19, 0xa8, 0x43, 0x31, 0x21, 0x90, 0xcf, 0x78, 0x05, 0x85, 0x79,
-  0x5e, 0x44, 0x41, 0x19, 0x64, 0xc0, 0x96, 0xc6, 0x84, 0x40, 0x3e, 0x16,
-  0x14, 0xf0, 0x19, 0xaf, 0xc8, 0xba, 0x31, 0x18, 0x83, 0x8b, 0x82, 0x32,
-  0xc8, 0xd0, 0x41, 0x97, 0x09, 0x81, 0x7c, 0xac, 0x08, 0xe0, 0x33, 0x5e,
-  0xe1, 0x89, 0x01, 0x1a, 0xa0, 0x41, 0x47, 0x41, 0xb1, 0x21, 0x80, 0xcf,
-  0x6c, 0x43, 0x25, 0x01, 0xb3, 0x0d, 0x81, 0x10, 0x64, 0x10, 0x10, 0x03,
-  0x08, 0x00, 0x00, 0x00, 0x5b, 0x8a, 0x21, 0x90, 0x83, 0xe3, 0x0e, 0xb6,
-  0x14, 0x47, 0x20, 0x07, 0xc7, 0x1d, 0x6c, 0x29, 0x98, 0x40, 0x0e, 0x8e,
-  0x3b, 0xd8, 0x52, 0x44, 0x81, 0x1c, 0x1c, 0x77, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-const unsigned int cube_vert_metallib_len = 3200;
-const unsigned char cube_frag_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xfb, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x01, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x29, 0xbb, 0xc2, 0x87, 0x30, 0x03, 0x9b, 0xc2, 0x29,
-  0xf0, 0xd6, 0x9a, 0x0e, 0x55, 0xa4, 0xf4, 0xb6, 0xd7, 0x55, 0x10, 0xd8,
-  0x1c, 0x85, 0xfd, 0xae, 0x53, 0xe4, 0xeb, 0x05, 0xa4, 0xee, 0xca, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04,
-  0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45,
-  0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x14,
-  0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x42,
-  0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x3e, 0x02, 0x00, 0x00, 0x0b,
-  0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x07,
-  0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92,
-  0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80,
-  0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14, 0x38,
-  0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21, 0x23,
-  0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x08, 0x11,
-  0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x51,
-  0x18, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8, 0xff,
-  0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80, 0x07,
-  0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18, 0x87,
-  0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07,
-  0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d, 0xdc,
-  0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d, 0xec,
-  0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e, 0xd2,
-  0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00, 0x06,
-  0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0, 0x87,
-  0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30, 0x07,
-  0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48, 0x07,
-  0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48, 0x87,
-  0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d, 0xe0,
-  0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d, 0xca,
-  0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d, 0xda,
-  0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87,
-  0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30, 0x87,
-  0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0, 0x07,
-  0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c, 0xe0,
-  0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90, 0x87,
-  0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48, 0x87,
-  0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90, 0x87,
-  0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07,
-  0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xdc,
-  0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e, 0xd2,
-  0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00,
-  0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08, 0x87,
-  0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28, 0x87,
-  0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30, 0x07,
-  0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28, 0x07,
-  0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c, 0xca,
-  0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0,
-  0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x10, 0x42, 0x00,
-  0x58, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13,
-  0x84, 0x40, 0x00, 0x89, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32,
-  0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04,
-  0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b,
-  0x84, 0x84, 0x4c, 0x10, 0x20, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x50, 0x86,
-  0x88, 0x20, 0x19, 0x08, 0x98, 0x23, 0x00, 0x83, 0x14, 0xa8, 0x11, 0x00,
-  0x00, 0x00, 0x00, 0x13, 0xa8, 0x70, 0x48, 0x07, 0x79, 0xb0, 0x03, 0x3a,
-  0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60, 0x87, 0x72, 0x68, 0x83, 0x74,
-  0x78, 0x87, 0x79, 0xc8, 0x03, 0x37, 0x80, 0x03, 0x37, 0x80, 0x83, 0x0d,
-  0xb7, 0x51, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe9, 0x10, 0x07,
-  0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07,
-  0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06, 0xe9, 0x10, 0x07, 0x76, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xd0, 0x06, 0xe9, 0x30, 0x07,
-  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06,
-  0xe9, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07,
-  0x74, 0xd0, 0x06, 0xe6, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x10, 0x07,
-  0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xd0, 0x06,
-  0xf6, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
-  0x72, 0xd0, 0x06, 0xf6, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x40, 0x07, 0x78, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x60, 0x07,
-  0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06,
-  0xf6, 0x90, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07,
-  0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x6d, 0x60, 0x0f, 0x71, 0x90, 0x07, 0x72, 0xa0, 0x07, 0x72, 0x50, 0x07,
-  0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x75, 0x10, 0x07, 0x72, 0xa0, 0x07,
-  0x75, 0x10, 0x07, 0x72, 0xa0, 0x07, 0x75, 0x10, 0x07, 0x72, 0xd0, 0x06,
-  0xf6, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x71, 0x00, 0x07,
-  0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xd0, 0x06,
-  0xee, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x43, 0x98, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2c,
-  0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x0c, 0x19,
-  0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xaa, 0x12,
-  0x18, 0x01, 0x28, 0x82, 0x42, 0x28, 0x08, 0xb2, 0xb1, 0x84, 0x48, 0x00,
-  0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x1a,
-  0x03, 0x4c, 0x10, 0x97, 0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9, 0xb9,
-  0xb4, 0x37, 0xb7, 0x21, 0x46, 0x31, 0x10, 0x80, 0x61, 0x50, 0xb9, 0x1b,
-  0x43, 0x0b, 0x93, 0xfb, 0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x14, 0x01,
-  0x21, 0x14, 0x04, 0xdf, 0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4, 0xad,
-  0x8c, 0x2e, 0x8c, 0x0d, 0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x0d,
-  0x64, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x07, 0x07, 0x04, 0xa5, 0xad,
-  0x8c, 0x2e, 0x8c, 0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46, 0x66, 0xc6,
-  0x25, 0x07, 0x27, 0x65, 0x88, 0x40, 0x10, 0x43, 0x8c, 0x22, 0x28, 0x8a,
-  0x42, 0x60, 0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04, 0x21, 0x8e, 0x22,
-  0x28, 0x82, 0x42, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32, 0xf6, 0xd6, 0x06,
-  0x97, 0xc6, 0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26, 0xd7, 0x36, 0xf7,
-  0x45, 0x96, 0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44, 0x20, 0x12, 0x72,
-  0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e,
-  0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x6e,
-  0x61, 0x62, 0x6c, 0x65, 0x43, 0x04, 0x62, 0x21, 0x19, 0x84, 0xa5, 0xc9,
-  0xb9, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9, 0x98, 0xc9, 0x85,
-  0xb5, 0x95, 0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0x99, 0x95, 0xd1,
-  0x8d, 0xa1, 0x7d, 0x95, 0xb9, 0x85, 0x89, 0xb1, 0x95, 0x0d, 0x11, 0x88,
-  0x86, 0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5c, 0x99, 0x1b, 0x59, 0x99, 0xdc,
-  0x17, 0x5d, 0x98, 0xdc, 0x59, 0x19, 0x1d, 0xa3, 0xb0, 0x34, 0x39, 0x97,
-  0x30, 0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0x2f, 0xb7, 0xb0, 0xb6,
-  0x32, 0x1a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x43, 0x10, 0xe2, 0x29,
-  0x04, 0x02, 0x22, 0xa2, 0x21, 0x02, 0x21, 0x51, 0x0a, 0x4b, 0x93, 0x73,
-  0x31, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0xfb, 0x4a, 0x73, 0x83,
-  0xab, 0xa3, 0xe3, 0x52, 0x37, 0x57, 0x26, 0x87, 0xc2, 0xf6, 0x36, 0xe6,
-  0x06, 0x93, 0x42, 0x25, 0x2c, 0x4d, 0xce, 0x65, 0xac, 0xcc, 0x8d, 0xae,
-  0x4c, 0x8e, 0x4f, 0x58, 0x9a, 0x9c, 0x0b, 0x5c, 0x99, 0xdc, 0x1c, 0x5c,
-  0xd9, 0x18, 0x5d, 0x9a, 0x5d, 0x19, 0x99, 0xb0, 0x34, 0x39, 0x97, 0x30,
-  0xb9, 0xb3, 0x2f, 0xb7, 0xb0, 0xb6, 0x32, 0x16, 0x63, 0x6f, 0x6c, 0x6f,
-  0x72, 0x43, 0xa4, 0x42, 0x20, 0x28, 0xa2, 0x22, 0x2c, 0xe2, 0x22, 0x20,
-  0x22, 0x22, 0x30, 0x22, 0x23, 0x13, 0x96, 0x26, 0xe7, 0x02, 0xf7, 0x36,
-  0x97, 0x46, 0x97, 0xf6, 0xe6, 0x46, 0x29, 0x2c, 0x4d, 0xce, 0xc5, 0xed,
-  0xed, 0x0b, 0xae, 0x4c, 0x6e, 0x0e, 0xae, 0x6c, 0x8c, 0x2e, 0xcd, 0xae,
-  0x8c, 0x08, 0xdc, 0xdb, 0x5c, 0x1a, 0x5d, 0xda, 0x9b, 0xdb, 0x10, 0xa8,
-  0x08, 0x88, 0x8d, 0xb0, 0x08, 0x8e, 0x80, 0x88, 0x88, 0xc0, 0x88, 0x6e,
-  0x08, 0x41, 0x68, 0x84, 0x37, 0xc4, 0x18, 0x00, 0x62, 0x22, 0xbe, 0x11,
-  0x11, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0xb4, 0xc3, 0x3b, 0x90,
-  0x43, 0x3d, 0xb0, 0x43, 0x39, 0xb8, 0x81, 0x39, 0xb0, 0x43, 0x38, 0x9c,
-  0xc3, 0x3c, 0x4c, 0x11, 0x82, 0x61, 0x84, 0xc2, 0x0e, 0xec, 0x60, 0x0f,
-  0xed, 0xe0, 0x06, 0xe9, 0x40, 0x0e, 0xe5, 0xe0, 0x0e, 0xf4, 0x30, 0x25,
-  0x28, 0x46, 0x2c, 0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xf6, 0x50, 0x0e,
-  0xf2, 0x30, 0x0f, 0xe9, 0xf0, 0x0e, 0xee, 0x30, 0x25, 0x30, 0x46, 0x50,
-  0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xec, 0x10, 0x0e, 0xee, 0x70, 0x0e,
-  0xf5, 0x10, 0x0e, 0xe7, 0x50, 0x0e, 0xbf, 0x60, 0x0f, 0xe5, 0x20, 0x0f,
-  0xf3, 0x90, 0x0e, 0xef, 0xe0, 0x0e, 0x53, 0x02, 0x64, 0xc4, 0x14, 0x0e,
-  0xe9, 0x20, 0x0f, 0x6e, 0x30, 0x0e, 0xef, 0xd0, 0x0e, 0xf0, 0x90, 0x0e,
-  0xec, 0x50, 0x0e, 0xbf, 0xf0, 0x0e, 0xf0, 0x40, 0x0f, 0xe9, 0xf0, 0x0e,
-  0xee, 0x30, 0x0f, 0x53, 0x06, 0x85, 0x71, 0x46, 0x30, 0xe1, 0x90, 0x0e,
-  0xf2, 0xe0, 0x06, 0xe6, 0x20, 0x0f, 0xe1, 0x70, 0x0e, 0xed, 0x50, 0x0e,
-  0xee, 0x40, 0x0f, 0x53, 0x02, 0x30, 0x00, 0x79, 0x18, 0x00, 0x00, 0xa5,
-  0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14,
-  0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79,
-  0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e,
-  0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1,
-  0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc,
-  0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74,
-  0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a,
-  0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e,
-  0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e,
-  0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21,
-  0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0,
-  0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc,
-  0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72,
-  0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f,
-  0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c,
-  0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03,
-  0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61,
-  0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94,
-  0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0,
-  0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72, 0x70, 0x83, 0x74,
-  0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74, 0xa0, 0x87, 0x19,
-  0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e, 0xe4, 0x90, 0x0e,
-  0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e, 0x33, 0x20, 0x28,
-  0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21, 0x1c, 0xdc, 0x81,
-  0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01, 0x1e, 0x66, 0x18,
-  0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc, 0x50, 0x24, 0x76,
-  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77, 0x78, 0x07, 0x78,
-  0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e, 0x33, 0x1e, 0x6a,
-  0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x7e, 0x01,
-  0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61, 0x06, 0x54, 0x85,
-  0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0, 0x43, 0x39, 0xfc,
-  0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0, 0xc3, 0x8c, 0xc5,
-  0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74, 0x08, 0x07, 0x7a,
-  0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e, 0xec, 0xc0, 0x0e,
-  0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41, 0x1e, 0xe4, 0xe1,
-  0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48, 0x19, 0x3b, 0xb0,
-  0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c, 0x43, 0x39, 0xcc,
-  0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4, 0x03, 0x3c, 0xcc,
-  0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71, 0x08, 0x87, 0x71,
-  0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f, 0xed, 0xe0, 0x06,
-  0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f, 0xf6, 0x50, 0x0e,
-  0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f, 0xf3, 0xe0, 0x06,
-  0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23, 0xe2, 0xec, 0x61,
-  0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21, 0x1d, 0xe6, 0x21,
-  0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21, 0x1f, 0x66, 0x20,
-  0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94, 0x83, 0x39, 0xcc,
-  0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a, 0x08, 0x07, 0x7a,
-  0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e, 0xe5, 0x10, 0x0e,
-  0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e, 0xf3, 0x90, 0x0e,
-  0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74, 0x90, 0x07, 0x37,
-  0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74, 0x78, 0x07, 0x77,
-  0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78, 0x98, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06,
-  0x70, 0x14, 0xd2, 0xcf, 0x00, 0x48, 0x03, 0x61, 0x20, 0x00, 0x00, 0x02,
-  0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-const unsigned int cube_frag_metallib_len = 2555;
-#endif
-#elif defined(SDL_PLATFORM_TVOS)
-#if TARGET_OS_SIMULATOR
-const unsigned char cube_vert_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x42, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0d, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x00, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x83, 0x69, 0xec, 0x76, 0x0b, 0x77, 0xa9, 0x9d, 0x73,
-  0x62, 0xb7, 0x05, 0xac, 0xd5, 0x65, 0x7a, 0xad, 0x0a, 0xbb, 0x4d, 0x13,
-  0x1c, 0xe3, 0xf7, 0xcb, 0x72, 0xbc, 0x27, 0xba, 0xe5, 0x05, 0x7a, 0x4d,
-  0x44, 0x53, 0x5a, 0x08, 0x00, 0x30, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x4f, 0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08,
-  0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x45, 0x4e, 0x44, 0x54, 0x29, 0x00, 0x00, 0x00, 0x56, 0x41, 0x54,
-  0x54, 0x15, 0x00, 0x02, 0x00, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
-  0x6e, 0x00, 0x00, 0x80, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x80,
-  0x56, 0x41, 0x54, 0x59, 0x04, 0x00, 0x02, 0x00, 0x05, 0x05, 0x45, 0x4e,
-  0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0,
-  0x17, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x0d,
-  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x42, 0x43, 0xc0, 0xde, 0x35, 0x14,
-  0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x62, 0x0c, 0x30, 0x24, 0x80, 0x10,
-  0x05, 0xc8, 0x14, 0x00, 0x00, 0x00, 0x21, 0x0c, 0x00, 0x00, 0x0c, 0x03,
-  0x00, 0x00, 0x0b, 0x02, 0x21, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00,
-  0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10,
-  0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04,
-  0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10,
-  0x32, 0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48, 0x90,
-  0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0x04, 0x49,
-  0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83,
-  0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x71, 0x00,
-  0x00, 0x00, 0x1b, 0xc2, 0x24, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80,
-  0x03, 0x40, 0x02, 0x28, 0x22, 0x1c, 0xe0, 0x01, 0x1e, 0xe4, 0xe1, 0x1d,
-  0xf0, 0xa1, 0x0d, 0xcc, 0xa1, 0x1e, 0xdc, 0x61, 0x1c, 0xda, 0xc0, 0x1c,
-  0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90,
-  0x87, 0x7a, 0x28, 0x07, 0x80, 0x68, 0x87, 0x74, 0x70, 0x87, 0x36, 0x60,
-  0x87, 0x72, 0x38, 0x87, 0x70, 0x60, 0x87, 0x36, 0xb0, 0x87, 0x72, 0x18,
-  0x07, 0x7a, 0x78, 0x07, 0x79, 0x68, 0x83, 0x7b, 0x48, 0x07, 0x72, 0xa0,
-  0x07, 0x74, 0x00, 0xe2, 0x40, 0x0e, 0xf0, 0x00, 0x18, 0xdc, 0xe1, 0x1d,
-  0xda, 0x40, 0x1c, 0xea, 0x21, 0x1d, 0xd8, 0x81, 0x1e, 0xd2, 0xc1, 0x1d,
-  0xe6, 0x01, 0x20, 0xdc, 0xe1, 0x1d, 0xda, 0xc0, 0x1c, 0xe4, 0x21, 0x1c,
-  0xda, 0xa1, 0x1c, 0xda, 0x00, 0x1e, 0xde, 0x21, 0x1d, 0xdc, 0x81, 0x1e,
-  0xca, 0x41, 0x1e, 0xda, 0xa0, 0x1c, 0xd8, 0x21, 0x1d, 0xda, 0x01, 0xa0,
-  0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30,
-  0x07, 0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48,
-  0x07, 0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48,
-  0x87, 0x76, 0x68, 0x03, 0x77, 0x78, 0x07, 0x77, 0x68, 0x03, 0x76, 0x28,
-  0x87, 0x70, 0x30, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20,
-  0xdc, 0xe1, 0x1d, 0xda, 0x20, 0x1d, 0xdc, 0xc1, 0x1c, 0xe6, 0xa1, 0x0d,
-  0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0, 0x01, 0xa0,
-  0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x70,
-  0x87, 0x70, 0x70, 0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68,
-  0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c,
-  0x00, 0xc2, 0x1d, 0xde, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xce, 0xc1, 0x1d,
-  0xca, 0x81, 0x1c, 0xda, 0x40, 0x1f, 0xca, 0x41, 0x1e, 0xde, 0x61, 0x1e,
-  0xda, 0xc0, 0x1c, 0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d,
-  0x00, 0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68,
-  0x03, 0x7a, 0x90, 0x87, 0x70, 0x80, 0x07, 0x78, 0x48, 0x07, 0x77, 0x38,
-  0x87, 0x36, 0x68, 0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e,
-  0xea, 0xa1, 0x1c, 0x00, 0x62, 0x1e, 0xe8, 0x21, 0x1c, 0xc6, 0x61, 0x1d,
-  0xda, 0x00, 0x1e, 0xe4, 0xe1, 0x1d, 0xe8, 0xa1, 0x1c, 0xc6, 0x81, 0x1e,
-  0xde, 0x41, 0x1e, 0xda, 0x40, 0x1c, 0xea, 0xc1, 0x1c, 0xcc, 0xa1, 0x1c,
-  0xe4, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xf4, 0xa1, 0x1c, 0x00, 0x3c, 0x00,
-  0x88, 0x7a, 0x70, 0x87, 0x79, 0x08, 0x07, 0x73, 0x28, 0x87, 0x36, 0x30,
-  0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e,
-  0xe4, 0xa1, 0x1e, 0xca, 0x01, 0xd8, 0xe0, 0x09, 0x03, 0xb0, 0x00, 0x55,
-  0x90, 0x06, 0xa0, 0x30, 0x84, 0x43, 0x3a, 0xc8, 0x43, 0x1b, 0x88, 0x43,
-  0x3d, 0x98, 0x83, 0x39, 0x94, 0x83, 0x3c, 0xb4, 0x81, 0x3b, 0xbc, 0x43,
-  0x1b, 0x84, 0x03, 0x3b, 0xa4, 0x43, 0x38, 0xcc, 0x03, 0x00, 0x49, 0x18,
-  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40, 0x00, 0x89, 0x20,
-  0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64,
-  0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1,
-  0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x44,
-  0x33, 0x00, 0xc3, 0x08, 0x04, 0x60, 0x85, 0x10, 0x86, 0x11, 0x06, 0x20,
-  0x09, 0xc2, 0x4c, 0xd4, 0x3c, 0xd0, 0x83, 0x3c, 0xd4, 0xc3, 0x38, 0xd0,
-  0x83, 0x1b, 0xb4, 0x43, 0x39, 0xd0, 0x43, 0x38, 0xb0, 0x83, 0x1e, 0xe8,
-  0x41, 0x3b, 0x84, 0x03, 0x3d, 0xc8, 0x43, 0x3a, 0xe0, 0x03, 0x0a, 0xc8,
-  0x29, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xbb, 0x1b, 0x8a, 0x82, 0x32, 0x88,
-  0x60, 0x08, 0x85, 0x10, 0x63, 0x1c, 0x42, 0x03, 0x01, 0x73, 0x04, 0x60,
-  0x90, 0x02, 0x6b, 0x18, 0x81, 0x58, 0xe6, 0x08, 0x40, 0x61, 0x10, 0x21,
-  0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x13, 0xc0, 0x20, 0x1c, 0xd2, 0x41,
-  0x1e, 0xec, 0x80, 0x0e, 0xda, 0x20, 0x1c, 0xe0, 0x01, 0x1e, 0xd8, 0xa1,
-  0x1c, 0xda, 0x80, 0x1e, 0xec, 0xe1, 0x1d, 0xe6, 0x21, 0x0e, 0xe6, 0xc0,
-  0x0d, 0xe0, 0xc0, 0x0d, 0xe0, 0xa0, 0x0d, 0xe6, 0x21, 0x1d, 0xda, 0xa1,
-  0x1e, 0xd8, 0x21, 0x1c, 0xe8, 0xe1, 0x1d, 0xe4, 0x61, 0xc3, 0x6d, 0x94,
-  0x43, 0x1b, 0xc0, 0x83, 0x1e, 0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0,
-  0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4, 0x41, 0x3a, 0xc4, 0x81, 0x1e, 0xe0,
-  0x81, 0x1e, 0xe0, 0x41, 0x1b, 0xa4, 0x03, 0x1e, 0xe8, 0x01, 0x1e, 0xe8,
-  0x01, 0x1e, 0xb4, 0x41, 0x3a, 0xc4, 0x81, 0x1d, 0xe8, 0x41, 0x1c, 0xd8,
-  0x81, 0x1e, 0xc4, 0x81, 0x1d, 0xb4, 0x41, 0x3a, 0xcc, 0x81, 0x1c, 0xe8,
-  0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc, 0x81, 0x1c, 0xb4, 0x41, 0x3a, 0xd8,
-  0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4,
-  0x81, 0x39, 0xcc, 0x81, 0x1c, 0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc,
-  0x81, 0x1c, 0xb4, 0x81, 0x39, 0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0,
-  0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4, 0x81, 0x3d, 0xc4, 0x81, 0x1d, 0xe8,
-  0x41, 0x1c, 0xd8, 0x81, 0x1e, 0xc4, 0x81, 0x1d, 0xb4, 0x81, 0x3d, 0xc8,
-  0x01, 0x1d, 0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc, 0x81, 0x1c, 0xb4,
-  0x81, 0x3d, 0xcc, 0x81, 0x1c, 0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc,
-  0x81, 0x1c, 0xb4, 0x81, 0x3d, 0xd0, 0x01, 0x1e, 0xe8, 0x81, 0x1d, 0xd0,
-  0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4, 0x81, 0x3d, 0xd8, 0x01, 0x1d, 0xe8,
-  0x81, 0x1d, 0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4, 0x81, 0x3d, 0xe4,
-  0x81, 0x1d, 0xe8, 0x41, 0x1c, 0xc8, 0x01, 0x1e, 0xe8, 0x41, 0x1c, 0xc8,
-  0x01, 0x1e, 0xb4, 0x81, 0x3d, 0xc4, 0x81, 0x1c, 0xe0, 0x81, 0x1e, 0xc4,
-  0x81, 0x1c, 0xe0, 0x81, 0x1e, 0xc4, 0x81, 0x1c, 0xe0, 0x41, 0x1b, 0xd8,
-  0x43, 0x1c, 0xe4, 0x81, 0x1c, 0xe8, 0x81, 0x1c, 0xd4, 0x81, 0x1d, 0xe8,
-  0x81, 0x1c, 0xd4, 0x81, 0x1d, 0xb4, 0x81, 0x3d, 0xc8, 0x41, 0x1d, 0xd8,
-  0x81, 0x1e, 0xc8, 0x41, 0x1d, 0xd8, 0x81, 0x1e, 0xc8, 0x41, 0x1d, 0xd8,
-  0x41, 0x1b, 0xd8, 0x43, 0x1d, 0xc4, 0x81, 0x1c, 0xe8, 0x41, 0x1d, 0xc4,
-  0x81, 0x1c, 0xe8, 0x41, 0x1d, 0xc4, 0x81, 0x1c, 0xb4, 0x81, 0x3d, 0xc4,
-  0x01, 0x1c, 0xc8, 0x01, 0x1d, 0xe8, 0x41, 0x1c, 0xc0, 0x81, 0x1c, 0xd0,
-  0x81, 0x1e, 0xc4, 0x01, 0x1c, 0xc8, 0x01, 0x1d, 0xb4, 0x81, 0x3b, 0xe0,
-  0x81, 0x1e, 0xc4, 0x81, 0x1d, 0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x46, 0x08,
-  0x43, 0x1e, 0x95, 0xf4, 0x33, 0x00, 0xd2, 0x0c, 0x89, 0x80, 0x03, 0x01,
-  0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0d,
-  0x02, 0x45, 0x1d, 0x06, 0x00, 0x00, 0xb2, 0x40, 0x00, 0x00, 0x09, 0x00,
-  0x00, 0x00, 0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09,
-  0x26, 0x47, 0xc6, 0x04, 0x43, 0x5a, 0x45, 0x50, 0x02, 0x85, 0x30, 0x02,
-  0x50, 0x80, 0x01, 0x05, 0x42, 0x6e, 0x04, 0x80, 0xd8, 0x58, 0x42, 0x24,
-  0x00, 0x00, 0xb1, 0x18, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08,
-  0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38,
-  0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71,
-  0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c,
-  0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d,
-  0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d,
-  0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07,
-  0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87,
-  0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30,
-  0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10,
-  0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66,
-  0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c,
-  0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07,
-  0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87,
-  0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05,
-  0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87,
-  0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0,
-  0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4,
-  0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca,
-  0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39,
-  0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38,
-  0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c,
-  0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87,
-  0x70, 0x58, 0x87, 0x72, 0x70, 0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87,
-  0x74, 0x18, 0x87, 0x74, 0xa0, 0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00,
-  0x0f, 0xf2, 0x50, 0x0e, 0xe4, 0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20,
-  0x0e, 0xec, 0x50, 0x0e, 0x33, 0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2,
-  0x41, 0x1e, 0xd2, 0x21, 0x1c, 0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4,
-  0xe1, 0x1d, 0xea, 0x01, 0x1e, 0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a,
-  0x9c, 0x83, 0x3b, 0xcc, 0x50, 0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07,
-  0x37, 0x60, 0x87, 0x77, 0x78, 0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90,
-  0x0f, 0xf0, 0x50, 0x0e, 0x33, 0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8,
-  0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc,
-  0x21, 0x1d, 0xf0, 0x61, 0x06, 0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b,
-  0xb0, 0x43, 0x3d, 0xd0, 0x43, 0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b,
-  0x88, 0xc3, 0x3b, 0xb0, 0xc3, 0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87,
-  0x77, 0x18, 0x87, 0x74, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81,
-  0x5c, 0xe3, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30,
-  0x23, 0xc1, 0xd2, 0x41, 0x1e, 0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde,
-  0x01, 0x1e, 0x66, 0x48, 0x19, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b,
-  0x84, 0xc3, 0x38, 0x8c, 0x43, 0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39,
-  0xc8, 0xc3, 0x3b, 0xd4, 0x03, 0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07,
-  0x76, 0x60, 0x07, 0x71, 0x08, 0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6,
-  0x0e, 0xec, 0x60, 0x0f, 0xed, 0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30,
-  0x0f, 0xe5, 0x20, 0x0f, 0xf6, 0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30,
-  0x0e, 0xe5, 0x30, 0x0f, 0xf3, 0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50,
-  0x0e, 0xf8, 0x30, 0x23, 0xe2, 0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8,
-  0xe1, 0x17, 0xec, 0x21, 0x1d, 0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8,
-  0x21, 0x1d, 0xe8, 0x21, 0x1f, 0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d,
-  0xb8, 0x03, 0x39, 0x94, 0x83, 0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07,
-  0x77, 0x78, 0x07, 0x7a, 0x08, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87,
-  0x19, 0xce, 0x87, 0x0e, 0xe5, 0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0,
-  0x0e, 0xef, 0x30, 0x0e, 0xf3, 0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28,
-  0x30, 0x08, 0x87, 0x74, 0x90, 0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87,
-  0x71, 0xa0, 0x87, 0x74, 0x78, 0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87,
-  0x77, 0xa8, 0x07, 0x78, 0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x79, 0x20,
-  0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x32, 0x9a, 0x08, 0x14, 0x02, 0x85,
-  0x8c, 0x27, 0x46, 0x46, 0xc8, 0x11, 0x32, 0x64, 0xd4, 0x3a, 0x4c, 0x76,
-  0x00, 0x00, 0x8b, 0xf2, 0x06, 0xc5, 0xc6, 0x91, 0x41, 0xb4, 0x44, 0x06,
-  0x53, 0x30, 0x08, 0x24, 0x79, 0x86, 0xf2, 0x20, 0x14, 0xd2, 0x44, 0xd7,
-  0x30, 0x00, 0x53, 0x44, 0x4b, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
-  0x6e, 0x77, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x41,
-  0x70, 0x70, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x20, 0x76,
-  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x32, 0x30, 0x32, 0x33,
-  0x2e, 0x39, 0x38, 0x20, 0x28, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x66, 0x65,
-  0x2d, 0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x29, 0x4d, 0x65,
-  0x74, 0x61, 0x6c, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69,
-  0x6c, 0x65, 0x2e, 0x64, 0x65, 0x6e, 0x6f, 0x72, 0x6d, 0x73, 0x5f, 0x64,
-  0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f,
-  0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d,
-  0x61, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69,
-  0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x72,
-  0x61, 0x6d, 0x65, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65,
-  0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69,
-  0x72, 0x2e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x6f, 0x75, 0x74,
-  0x70, 0x75, 0x74, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e,
-  0x30, 0x29, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79,
-  0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x6c, 0x6f, 0x61, 0x74,
-  0x34, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d,
-  0x65, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x70, 0x6f,
-  0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
-  0x6f, 0x6e, 0x61, 0x69, 0x72, 0x2e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78,
-  0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x61, 0x69, 0x72, 0x2e, 0x6c, 0x6f,
-  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
-  0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x28, 0x5f, 0x5f,
-  0x61, 0x69, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c,
-  0x64, 0x65, 0x72, 0x5f, 0x5f, 0x29, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33,
-  0x61, 0x69, 0x72, 0x2e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x61, 0x69,
-  0x72, 0x2e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a,
-  0x65, 0x61, 0x69, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x61, 0x69, 0x72,
-  0x2e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
-  0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78,
-  0x34, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72,
-  0x6f, 0x6a, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79,
-  0x70, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x61, 0x69, 0x72, 0x2e, 0x61,
-  0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x67,
-  0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x55, 0x42, 0x4f, 0x75, 0x62, 0x6f,
-  0x00, 0x00, 0x23, 0x08, 0x4b, 0x30, 0x82, 0xc0, 0x20, 0x23, 0x08, 0x8b,
-  0x30, 0x82, 0xb0, 0x0c, 0x23, 0x08, 0x0b, 0x31, 0x82, 0x90, 0x00, 0x23,
-  0x08, 0x4b, 0x31, 0x82, 0xb0, 0x18, 0x33, 0x0c, 0x5e, 0xf0, 0xcd, 0x30,
-  0x80, 0x81, 0x10, 0x06, 0x33, 0x04, 0xc3, 0x0c, 0x83, 0xe7, 0x89, 0xc1,
-  0x0c, 0x04, 0x01, 0x06, 0x60, 0x20, 0x06, 0x33, 0x04, 0xc5, 0x0c, 0x81,
-  0x31, 0x43, 0x70, 0xcc, 0x60, 0x20, 0x89, 0xb2, 0x30, 0xcd, 0x0c, 0x85,
-  0xa3, 0x2c, 0xcc, 0x33, 0x83, 0xe0, 0x06, 0x6f, 0x30, 0x83, 0x22, 0x06,
-  0x50, 0x24, 0x06, 0x60, 0x20, 0x29, 0x13, 0xf3, 0xcc, 0xa0, 0x80, 0x01,
-  0x14, 0x81, 0x01, 0x18, 0x48, 0xca, 0xc4, 0x34, 0x33, 0x14, 0x62, 0x40,
-  0x06, 0x62, 0x80, 0x65, 0x33, 0x48, 0x1e, 0x55, 0x91, 0x41, 0x24, 0x06,
-  0x60, 0x60, 0x5d, 0x73, 0xa0, 0x91, 0xc1, 0x56, 0x06, 0x0a, 0xc7, 0x74,
-  0x33, 0x0c, 0x71, 0x20, 0x07, 0x74, 0x30, 0xc3, 0x30, 0x06, 0x70, 0x50,
-  0x07, 0x32, 0x12, 0x98, 0xa0, 0x8b, 0xd8, 0xd8, 0xec, 0xda, 0x5c, 0xda,
-  0xde, 0xc8, 0xea, 0xd8, 0xca, 0x5c, 0xcc, 0xd8, 0xc2, 0xce, 0xe6, 0x46,
-  0x11, 0xca, 0xc0, 0x0c, 0x4e, 0x61, 0x63, 0xb3, 0x6b, 0x73, 0x49, 0x23,
-  0x2b, 0x73, 0xa3, 0x1b, 0x25, 0x38, 0x83, 0x5b, 0xc2, 0xd2, 0xe4, 0x5c,
-  0xec, 0xca, 0xe4, 0xe6, 0xd2, 0xde, 0xdc, 0x46, 0x09, 0xd0, 0xe0, 0xa8,
-  0xb0, 0x34, 0x39, 0x17, 0xb6, 0x30, 0xb7, 0xb3, 0xba, 0xb0, 0xb3, 0xb2,
-  0x2f, 0xbb, 0x32, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x51, 0x82, 0x34, 0xb8,
-  0x29, 0x2c, 0x4d, 0xce, 0x65, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0xec,
-  0xeb, 0x0d, 0x8e, 0x2e, 0xed, 0xcd, 0x6d, 0x6e, 0x94, 0x41, 0x0d, 0xd6,
-  0x80, 0x0d, 0x4e, 0x09, 0x4b, 0x93, 0x73, 0xb1, 0x2b, 0x93, 0xa3, 0x2b,
-  0xc3, 0x1b, 0x25, 0xa8, 0x03, 0x00, 0xa9, 0x18, 0x00, 0x00, 0x25, 0x00,
-  0x00, 0x00, 0x0b, 0x0a, 0x72, 0x28, 0x87, 0x77, 0x80, 0x07, 0x7a, 0x58,
-  0x70, 0x98, 0x43, 0x3d, 0xb8, 0xc3, 0x38, 0xb0, 0x43, 0x39, 0xd0, 0xc3,
-  0x82, 0xe6, 0x1c, 0xc6, 0xa1, 0x0d, 0xe8, 0x41, 0x1e, 0xc2, 0xc1, 0x1d,
-  0xe6, 0x21, 0x1d, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x16, 0x34, 0xe3,
-  0x60, 0x0e, 0xe7, 0x50, 0x0f, 0xe1, 0x20, 0x0f, 0xe4, 0x40, 0x0f, 0xe1,
-  0x20, 0x0f, 0xe7, 0x50, 0x0e, 0xf4, 0xb0, 0x80, 0x81, 0x07, 0x79, 0x28,
-  0x87, 0x70, 0x60, 0x07, 0x76, 0x78, 0x87, 0x71, 0x08, 0x07, 0x7a, 0x28,
-  0x07, 0x72, 0x58, 0x70, 0x9c, 0xc3, 0x38, 0xb4, 0x01, 0x3b, 0xa4, 0x83,
-  0x3d, 0x94, 0xc3, 0x02, 0x6b, 0x1c, 0xd8, 0x21, 0x1c, 0xdc, 0xe1, 0x1c,
-  0xdc, 0x20, 0x1c, 0xe4, 0x61, 0x1c, 0xdc, 0x20, 0x1c, 0xe8, 0x81, 0x1e,
-  0xc2, 0x61, 0x1c, 0xd0, 0xa1, 0x1c, 0xc8, 0x61, 0x1c, 0xc2, 0x81, 0x1d,
-  0xd8, 0x61, 0xc1, 0x01, 0x0f, 0xf4, 0x20, 0x0f, 0xe1, 0x50, 0x0f, 0xf4,
-  0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x10, 0x00, 0x00, 0x06, 0x00,
-  0x00, 0x00, 0x07, 0xcc, 0x3c, 0xa4, 0x83, 0x3b, 0x9c, 0x03, 0x3b, 0x94,
-  0x03, 0x3d, 0xa0, 0x83, 0x3c, 0x94, 0x43, 0x38, 0x90, 0xc3, 0x01, 0x00,
-  0x00, 0x00, 0x61, 0x20, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x13, 0x04,
-  0x41, 0x2c, 0x10, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb4, 0x66,
-  0x00, 0xa8, 0xcd, 0x41, 0x10, 0x42, 0xc0, 0x8c, 0x00, 0x8c, 0x45, 0x04,
-  0x41, 0x10, 0x8c, 0x45, 0x08, 0x82, 0x20, 0x90, 0x2b, 0x83, 0x12, 0x28,
-  0x02, 0x02, 0x63, 0x04, 0x20, 0x08, 0x82, 0xf8, 0x47, 0x62, 0x06, 0x80,
-  0xc6, 0x0c, 0xc0, 0x0c, 0x00, 0x00, 0xf1, 0x30, 0x00, 0x00, 0x21, 0x00,
-  0x00, 0x00, 0x22, 0x47, 0xc8, 0x90, 0x51, 0x12, 0x44, 0x2c, 0x00, 0x00,
-  0x00, 0x00, 0xcf, 0x93, 0x59, 0x00, 0x6f, 0x6d, 0x6e, 0x69, 0x70, 0x6f,
-  0x74, 0x65, 0x6e, 0x74, 0x20, 0x63, 0x68, 0x61, 0x72, 0x53, 0x69, 0x6d,
-  0x70, 0x6c, 0x65, 0x20, 0x43, 0x2b, 0x2b, 0x20, 0x54, 0x42, 0x41, 0x41,
-  0x61, 0x69, 0x72, 0x2d, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73, 0x63,
-  0x6f, 0x70, 0x65, 0x73, 0x28, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e,
-  0x29, 0x61, 0x69, 0x72, 0x2d, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73,
-  0x63, 0x6f, 0x70, 0x65, 0x2d, 0x61, 0x72, 0x67, 0x28, 0x32, 0x29, 0x00,
-  0x00, 0x00, 0x13, 0x04, 0xe7, 0x58, 0x21, 0xf0, 0x41, 0x1e, 0xac, 0x18,
-  0xfa, 0x80, 0x0f, 0xf4, 0x60, 0x43, 0x80, 0x07, 0x1b, 0x86, 0x3b, 0xf0,
-  0x83, 0x3d, 0xd8, 0x30, 0xfc, 0xc1, 0x1f, 0xec, 0xc1, 0x86, 0xa0, 0x0f,
-  0x00, 0x00, 0x83, 0x0c, 0x4e, 0xb0, 0xcc, 0x31, 0x04, 0x05, 0xb2, 0x4d,
-  0xf1, 0x4c, 0x96, 0x35, 0x51, 0x10, 0xca, 0x20, 0xc3, 0x64, 0x38, 0x26,
-  0x04, 0xe2, 0xbf, 0x4d, 0x31, 0x5d, 0x9a, 0xc6, 0x50, 0x10, 0xca, 0x20,
-  0xc3, 0xa5, 0x44, 0x26, 0x04, 0xe2, 0x6f, 0x41, 0x01, 0xfe, 0xdb, 0x14,
-  0x18, 0xf7, 0x7d, 0x10, 0x05, 0xa1, 0x0c, 0x32, 0x70, 0x4f, 0x65, 0x42,
-  0x20, 0xfe, 0x56, 0x04, 0xe0, 0xbf, 0x4d, 0xd1, 0x85, 0x01, 0x19, 0x90,
-  0xc1, 0x45, 0x41, 0x28, 0x36, 0x04, 0xe0, 0x3f, 0xdb, 0x60, 0x49, 0xc0,
-  0x6c, 0x43, 0x20, 0x04, 0x19, 0x04, 0xc4, 0x00, 0x00, 0x00, 0x08, 0x00,
-  0x00, 0x00, 0x5b, 0x8a, 0x21, 0xf8, 0x83, 0x03, 0x14, 0xb6, 0x14, 0x47,
-  0xf0, 0x07, 0x07, 0x28, 0x6c, 0x29, 0x98, 0xe0, 0x0f, 0x0e, 0x50, 0xd8,
-  0x52, 0x44, 0xc1, 0x1f, 0x1c, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x0e,
-  0x10, 0x22, 0x84, 0x00, 0xba, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x65, 0x0c, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x12, 0x03,
-  0x94, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00,
-  0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00,
-  0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00,
-  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
-  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x5d, 0x0c, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x12, 0x03,
-  0x94, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x61, 0x69, 0x72,
-  0x36, 0x34, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x74, 0x76, 0x6f,
-  0x73, 0x31, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x2d, 0x73, 0x69, 0x6d, 0x75,
-  0x6c, 0x61, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00
-};
-const unsigned int cube_vert_metallib_len = 3650;
-const unsigned char cube_frag_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xad, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0a, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x01, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x75, 0xbd, 0x3a, 0xd4, 0x20, 0x60, 0xcd, 0x61, 0x74,
-  0xed, 0x2f, 0xea, 0xab, 0xfc, 0xc1, 0x96, 0xeb, 0x6f, 0x22, 0xa2, 0xb2,
-  0xd6, 0x23, 0x2a, 0x90, 0x49, 0xb9, 0x98, 0x16, 0x23, 0x5b, 0x16, 0x4d,
-  0x44, 0x53, 0x5a, 0x08, 0x00, 0xc0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x4f, 0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08,
-  0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44,
-  0x54, 0x04, 0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17,
-  0x0b, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xa8, 0x0a, 0x00,
-  0x00, 0xff, 0xff, 0xff, 0xff, 0x42, 0x43, 0xc0, 0xde, 0x35, 0x14, 0x00,
-  0x00, 0x03, 0x00, 0x00, 0x00, 0x62, 0x0c, 0x30, 0x24, 0x80, 0x10, 0x05,
-  0xc8, 0x14, 0x00, 0x00, 0x00, 0x21, 0x0c, 0x00, 0x00, 0x70, 0x02, 0x00,
-  0x00, 0x0b, 0x02, 0x21, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00,
-  0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32,
-  0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b,
-  0x62, 0x80, 0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32,
-  0x14, 0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x42, 0x88, 0x48, 0x90, 0x14,
-  0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42, 0x04, 0x49, 0x0e,
-  0x90, 0x11, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5,
-  0x8a, 0x04, 0x21, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x69, 0x00, 0x00,
-  0x00, 0x1b, 0xc2, 0x24, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80, 0x03,
-  0x40, 0x02, 0x28, 0x22, 0x1c, 0xe0, 0x01, 0x1e, 0xe4, 0xe1, 0x1d, 0xf0,
-  0xa1, 0x0d, 0xcc, 0xa1, 0x1e, 0xdc, 0x61, 0x1c, 0xda, 0xc0, 0x1c, 0xe0,
-  0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90, 0x87,
-  0x7a, 0x28, 0x07, 0x80, 0x68, 0x87, 0x74, 0x70, 0x87, 0x36, 0x60, 0x87,
-  0x72, 0x38, 0x87, 0x70, 0x60, 0x87, 0x36, 0xb0, 0x87, 0x72, 0x18, 0x07,
-  0x7a, 0x78, 0x07, 0x79, 0x68, 0x83, 0x7b, 0x48, 0x07, 0x72, 0xa0, 0x07,
-  0x74, 0x00, 0xe2, 0x40, 0x0e, 0xf0, 0x00, 0x18, 0xdc, 0xe1, 0x1d, 0xda,
-  0x40, 0x1c, 0xea, 0x21, 0x1d, 0xd8, 0x81, 0x1e, 0xd2, 0xc1, 0x1d, 0xe6,
-  0x01, 0x20, 0xdc, 0xe1, 0x1d, 0xda, 0xc0, 0x1c, 0xe4, 0x21, 0x1c, 0xda,
-  0xa1, 0x1c, 0xda, 0x00, 0x1e, 0xde, 0x21, 0x1d, 0xdc, 0x81, 0x1e, 0xca,
-  0x41, 0x1e, 0xda, 0xa0, 0x1c, 0xd8, 0x21, 0x1d, 0xda, 0x01, 0xa0, 0x07,
-  0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30, 0x07,
-  0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48, 0x07,
-  0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48, 0x87,
-  0x76, 0x68, 0x03, 0x77, 0x78, 0x07, 0x77, 0x68, 0x03, 0x76, 0x28, 0x87,
-  0x70, 0x30, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xdc,
-  0xe1, 0x1d, 0xda, 0x20, 0x1d, 0xdc, 0xc1, 0x1c, 0xe6, 0xa1, 0x0d, 0xcc,
-  0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0, 0x01, 0xa0, 0x07,
-  0x79, 0xa8, 0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x70, 0x87,
-  0x70, 0x70, 0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87,
-  0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00,
-  0xc2, 0x1d, 0xde, 0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xce, 0xc1, 0x1d, 0xca,
-  0x81, 0x1c, 0xda, 0x40, 0x1f, 0xca, 0x41, 0x1e, 0xde, 0x61, 0x1e, 0xda,
-  0xc0, 0x1c, 0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00,
-  0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x03,
-  0x7a, 0x90, 0x87, 0x70, 0x80, 0x07, 0x78, 0x48, 0x07, 0x77, 0x38, 0x87,
-  0x36, 0x68, 0x87, 0x70, 0xa0, 0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea,
-  0xa1, 0x1c, 0x00, 0x62, 0x1e, 0xe8, 0x21, 0x1c, 0xc6, 0x61, 0x1d, 0xda,
-  0x00, 0x1e, 0xe4, 0xe1, 0x1d, 0xe8, 0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde,
-  0x41, 0x1e, 0xda, 0x40, 0x1c, 0xea, 0xc1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
-  0xa1, 0x0d, 0xe6, 0x21, 0x1d, 0xf4, 0xa1, 0x1c, 0x00, 0x3c, 0x00, 0x88,
-  0x7a, 0x70, 0x87, 0x79, 0x08, 0x07, 0x73, 0x28, 0x87, 0x36, 0x30, 0x07,
-  0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4,
-  0xa1, 0x1e, 0xca, 0x01, 0xd8, 0x40, 0x08, 0x01, 0x60, 0x01, 0x00, 0x00,
-  0x00, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40,
-  0x00, 0x89, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32, 0x22, 0x08,
-  0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04, 0x13, 0x22,
-  0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b, 0x84, 0x84,
-  0x4c, 0x10, 0x20, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x50, 0x86, 0x88, 0x20,
-  0x19, 0x08, 0x98, 0x23, 0x00, 0x83, 0x14, 0xa8, 0x11, 0x00, 0x00, 0x00,
-  0x00, 0x13, 0xc0, 0x20, 0x1c, 0xd2, 0x41, 0x1e, 0xec, 0x80, 0x0e, 0xda,
-  0x20, 0x1c, 0xe0, 0x01, 0x1e, 0xd8, 0xa1, 0x1c, 0xda, 0x80, 0x1e, 0xec,
-  0xe1, 0x1d, 0xe6, 0x21, 0x0e, 0xe6, 0xc0, 0x0d, 0xe0, 0xc0, 0x0d, 0xe0,
-  0xa0, 0x0d, 0xe6, 0x21, 0x1d, 0xda, 0xa1, 0x1e, 0xd8, 0x21, 0x1c, 0xe8,
-  0xe1, 0x1d, 0xe4, 0x61, 0xc3, 0x6d, 0x94, 0x43, 0x1b, 0xc0, 0x83, 0x1e,
-  0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d,
-  0xb4, 0x41, 0x3a, 0xc4, 0x81, 0x1e, 0xe0, 0x81, 0x1e, 0xe0, 0x41, 0x1b,
-  0xa4, 0x03, 0x1e, 0xe8, 0x01, 0x1e, 0xe8, 0x01, 0x1e, 0xb4, 0x41, 0x3a,
-  0xc4, 0x81, 0x1d, 0xe8, 0x41, 0x1c, 0xd8, 0x81, 0x1e, 0xc4, 0x81, 0x1d,
-  0xb4, 0x41, 0x3a, 0xcc, 0x81, 0x1c, 0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e,
-  0xcc, 0x81, 0x1c, 0xb4, 0x41, 0x3a, 0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d,
-  0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d, 0xb4, 0x81, 0x39, 0xcc, 0x81, 0x1c,
-  0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc, 0x81, 0x1c, 0xb4, 0x81, 0x39,
-  0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d,
-  0xb4, 0x81, 0x3d, 0xc4, 0x81, 0x1d, 0xe8, 0x41, 0x1c, 0xd8, 0x81, 0x1e,
-  0xc4, 0x81, 0x1d, 0xb4, 0x81, 0x3d, 0xc8, 0x01, 0x1d, 0xe8, 0xc1, 0x1c,
-  0xc8, 0x81, 0x1e, 0xcc, 0x81, 0x1c, 0xb4, 0x81, 0x3d, 0xcc, 0x81, 0x1c,
-  0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x1e, 0xcc, 0x81, 0x1c, 0xb4, 0x81, 0x3d,
-  0xd0, 0x01, 0x1e, 0xe8, 0x81, 0x1d, 0xd0, 0x81, 0x1e, 0xd8, 0x01, 0x1d,
-  0xb4, 0x81, 0x3d, 0xd8, 0x01, 0x1d, 0xe8, 0x81, 0x1d, 0xd0, 0x81, 0x1e,
-  0xd8, 0x01, 0x1d, 0xb4, 0x81, 0x3d, 0xe4, 0x81, 0x1d, 0xe8, 0x41, 0x1c,
-  0xc8, 0x01, 0x1e, 0xe8, 0x41, 0x1c, 0xc8, 0x01, 0x1e, 0xb4, 0x81, 0x3d,
-  0xc4, 0x81, 0x1c, 0xe0, 0x81, 0x1e, 0xc4, 0x81, 0x1c, 0xe0, 0x81, 0x1e,
-  0xc4, 0x81, 0x1c, 0xe0, 0x41, 0x1b, 0xd8, 0x43, 0x1c, 0xe4, 0x81, 0x1c,
-  0xe8, 0x81, 0x1c, 0xd4, 0x81, 0x1d, 0xe8, 0x81, 0x1c, 0xd4, 0x81, 0x1d,
-  0xb4, 0x81, 0x3d, 0xc8, 0x41, 0x1d, 0xd8, 0x81, 0x1e, 0xc8, 0x41, 0x1d,
-  0xd8, 0x81, 0x1e, 0xc8, 0x41, 0x1d, 0xd8, 0x41, 0x1b, 0xd8, 0x43, 0x1d,
-  0xc4, 0x81, 0x1c, 0xe8, 0x41, 0x1d, 0xc4, 0x81, 0x1c, 0xe8, 0x41, 0x1d,
-  0xc4, 0x81, 0x1c, 0xb4, 0x81, 0x3d, 0xc4, 0x01, 0x1c, 0xc8, 0x01, 0x1d,
-  0xe8, 0x41, 0x1c, 0xc0, 0x81, 0x1c, 0xd0, 0x81, 0x1e, 0xc4, 0x01, 0x1c,
-  0xc8, 0x01, 0x1d, 0xb4, 0x81, 0x3b, 0xe0, 0x81, 0x1e, 0xc4, 0x81, 0x1d,
-  0xe8, 0xc1, 0x1c, 0xc8, 0x81, 0x46, 0x08, 0x43, 0x1e, 0x85, 0xf4, 0x33,
-  0x00, 0xd2, 0x0c, 0x89, 0x80, 0x43, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0d, 0x02, 0x45, 0xe5, 0x04, 0x00,
-  0x00, 0xb2, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98,
-  0x0c, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43,
-  0xaa, 0x22, 0x28, 0x81, 0x42, 0x18, 0x01, 0x20, 0x1b, 0x4b, 0x88, 0x04,
-  0x00, 0xb1, 0x18, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80,
-  0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84,
-  0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c,
-  0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42,
-  0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88,
-  0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c,
-  0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79,
-  0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70,
-  0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f,
-  0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4,
-  0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30,
-  0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc,
-  0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b,
-  0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70,
-  0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76,
-  0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72,
-  0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e,
-  0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21,
-  0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94,
-  0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc,
-  0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70,
-  0x58, 0x87, 0x72, 0x70, 0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74,
-  0x18, 0x87, 0x74, 0xa0, 0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f,
-  0xf2, 0x50, 0x0e, 0xe4, 0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e,
-  0xec, 0x50, 0x0e, 0x33, 0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41,
-  0x1e, 0xd2, 0x21, 0x1c, 0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1,
-  0x1d, 0xea, 0x01, 0x1e, 0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c,
-  0x83, 0x3b, 0xcc, 0x50, 0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37,
-  0x60, 0x87, 0x77, 0x78, 0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f,
-  0xf0, 0x50, 0x0e, 0x33, 0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21,
-  0x1d, 0xde, 0xc1, 0x1d, 0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21,
-  0x1d, 0xf0, 0x61, 0x06, 0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0,
-  0x43, 0x3d, 0xd0, 0x43, 0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88,
-  0xc3, 0x3b, 0xb0, 0xc3, 0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77,
-  0x18, 0x87, 0x74, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c,
-  0xe3, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23,
-  0xc1, 0xd2, 0x41, 0x1e, 0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01,
-  0x1e, 0x66, 0x48, 0x19, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84,
-  0xc3, 0x38, 0x8c, 0x43, 0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8,
-  0xc3, 0x3b, 0xd4, 0x03, 0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76,
-  0x60, 0x07, 0x71, 0x08, 0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e,
-  0xec, 0x60, 0x0f, 0xed, 0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f,
-  0xe5, 0x20, 0x0f, 0xf6, 0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e,
-  0xe5, 0x30, 0x0f, 0xf3, 0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e,
-  0xf8, 0x30, 0x23, 0xe2, 0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1,
-  0x17, 0xec, 0x21, 0x1d, 0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21,
-  0x1d, 0xe8, 0x21, 0x1f, 0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8,
-  0x03, 0x39, 0x94, 0x83, 0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77,
-  0x78, 0x07, 0x7a, 0x08, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19,
-  0xce, 0x87, 0x0e, 0xe5, 0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e,
-  0xef, 0x30, 0x0e, 0xf3, 0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30,
-  0x08, 0x87, 0x74, 0x90, 0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71,
-  0xa0, 0x87, 0x74, 0x78, 0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77,
-  0xa8, 0x07, 0x78, 0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x79, 0x20, 0x00,
-  0x00, 0x8c, 0x00, 0x00, 0x00, 0x32, 0x9a, 0x08, 0x14, 0x02, 0x85, 0x8c,
-  0x27, 0x46, 0x46, 0xc8, 0x11, 0x32, 0x64, 0xd4, 0x26, 0x28, 0x55, 0x00,
-  0x00, 0x8b, 0xf2, 0x06, 0xc5, 0xc6, 0x91, 0x41, 0x14, 0x19, 0xd2, 0xa2,
-  0x3c, 0x4c, 0xc1, 0x48, 0x08, 0x53, 0x44, 0x4b, 0x20, 0x56, 0x65, 0x72,
-  0x73, 0x69, 0x6f, 0x6e, 0x77, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x73, 0x69,
-  0x7a, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61,
-  0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x32,
-  0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x20, 0x28, 0x6d, 0x65, 0x74, 0x61,
-  0x6c, 0x66, 0x65, 0x2d, 0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38,
-  0x29, 0x4d, 0x65, 0x74, 0x61, 0x6c, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f,
-  0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x6e, 0x6f, 0x72, 0x6d,
-  0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x69, 0x72,
-  0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x61, 0x73,
-  0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-  0x65, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
-  0x2e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72,
-  0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-  0x65, 0x61, 0x69, 0x72, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f,
-  0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x61, 0x69, 0x72, 0x2e, 0x61, 0x72,
-  0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x66,
-  0x6c, 0x6f, 0x61, 0x74, 0x34, 0x61, 0x69, 0x72, 0x2e, 0x66, 0x72, 0x61,
-  0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x75,
-  0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x61, 0x69,
-  0x72, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x69, 0x72, 0x2e,
-  0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61,
-  0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x63,
-  0x6f, 0x6c, 0x6f, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x70, 0x6f, 0x73, 0x69,
-  0x74, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x72, 0x2e, 0x6e, 0x6f, 0x5f, 0x70,
-  0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x70, 0x6f,
-  0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x23, 0x08, 0x45,
-  0x30, 0x82, 0x60, 0x14, 0x23, 0x08, 0x85, 0x30, 0x82, 0x50, 0x0c, 0x23,
-  0x08, 0x05, 0x31, 0x82, 0x30, 0x00, 0x33, 0x0c, 0x54, 0x50, 0xcd, 0x30,
-  0x58, 0xc2, 0x35, 0x43, 0x30, 0xcc, 0x30, 0x50, 0x14, 0x36, 0x03, 0x41,
-  0x58, 0x16, 0x36, 0x43, 0x50, 0xcc, 0x10, 0x18, 0x33, 0x04, 0xc7, 0x0c,
-  0x05, 0x82, 0x61, 0x89, 0x32, 0x43, 0x20, 0x06, 0x33, 0x24, 0xd8, 0xc2,
-  0x34, 0x4e, 0xa2, 0x3c, 0xd0, 0x0c, 0x88, 0x15, 0x35, 0x52, 0xa2, 0x3c,
-  0xd3, 0x0c, 0x02, 0x19, 0x94, 0xc1, 0x0c, 0x43, 0x36, 0x06, 0x66, 0x20,
-  0x23, 0x81, 0x09, 0xba, 0x88, 0x8d, 0xcd, 0xae, 0xcd, 0xa5, 0xed, 0x8d,
-  0xac, 0x8e, 0xad, 0xcc, 0xc5, 0x8c, 0x2d, 0xec, 0x6c, 0x6e, 0x14, 0x21,
-  0xd3, 0x4e, 0x61, 0x63, 0xb3, 0x6b, 0x73, 0x49, 0x23, 0x2b, 0x73, 0xa3,
-  0x1b, 0x25, 0xd8, 0x6e, 0x09, 0x4b, 0x93, 0x73, 0xb1, 0x2b, 0x93, 0x9b,
-  0x4b, 0x7b, 0x73, 0x1b, 0x25, 0xe0, 0x8e, 0x0a, 0x4b, 0x93, 0x73, 0x61,
-  0x0b, 0x73, 0x3b, 0xab, 0x0b, 0x3b, 0x2b, 0xfb, 0xb2, 0x2b, 0x93, 0x9b,
-  0x4b, 0x7b, 0x73, 0x1b, 0x25, 0xe8, 0x6e, 0x0a, 0x4b, 0x93, 0x73, 0x19,
-  0x7b, 0x6b, 0x83, 0x4b, 0x63, 0x2b, 0xfb, 0x7a, 0x83, 0xa3, 0x4b, 0x7b,
-  0x73, 0x9b, 0x1b, 0x65, 0xf0, 0x3e, 0x30, 0x38, 0x26, 0x2c, 0x4d, 0xce,
-  0xc5, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x94, 0xc0, 0x0c,
-  0x00, 0xa9, 0x18, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x0b, 0x0a, 0x72,
-  0x28, 0x87, 0x77, 0x80, 0x07, 0x7a, 0x58, 0x70, 0x98, 0x43, 0x3d, 0xb8,
-  0xc3, 0x38, 0xb0, 0x43, 0x39, 0xd0, 0xc3, 0x82, 0xe6, 0x1c, 0xc6, 0xa1,
-  0x0d, 0xe8, 0x41, 0x1e, 0xc2, 0xc1, 0x1d, 0xe6, 0x21, 0x1d, 0xe8, 0x21,
-  0x1d, 0xde, 0xc1, 0x1d, 0x16, 0x34, 0xe3, 0x60, 0x0e, 0xe7, 0x50, 0x0f,
-  0xe1, 0x20, 0x0f, 0xe4, 0x40, 0x0f, 0xe1, 0x20, 0x0f, 0xe7, 0x50, 0x0e,
-  0xf4, 0xb0, 0x80, 0x81, 0x07, 0x79, 0x28, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x78, 0x87, 0x71, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x58, 0x70, 0x9c,
-  0xc3, 0x38, 0xb4, 0x01, 0x3b, 0xa4, 0x83, 0x3d, 0x94, 0xc3, 0x02, 0x6b,
-  0x1c, 0xd8, 0x21, 0x1c, 0xdc, 0xe1, 0x1c, 0xdc, 0x20, 0x1c, 0xe4, 0x61,
-  0x1c, 0xdc, 0x20, 0x1c, 0xe8, 0x81, 0x1e, 0xc2, 0x61, 0x1c, 0xd0, 0xa1,
-  0x1c, 0xc8, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0x61, 0xc1, 0x01, 0x0f,
-  0xf4, 0x20, 0x0f, 0xe1, 0x50, 0x0f, 0xf4, 0x80, 0x0e, 0x00, 0x00, 0x00,
-  0x00, 0xd1, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0xcc, 0x3c,
-  0xa4, 0x83, 0x3b, 0x9c, 0x03, 0x3b, 0x94, 0x03, 0x3d, 0xa0, 0x83, 0x3c,
-  0x94, 0x43, 0x38, 0x90, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x61, 0x20, 0x00,
-  0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x0a, 0x00, 0x00, 0x00,
-  0x00, 0x71, 0x20, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x0e, 0x10,
-  0x22, 0x84, 0x00, 0xee, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x65, 0x0c, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94,
-  0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
-  0x00, 0x08, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-  0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00,
-  0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x07, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
-  0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x5d, 0x0c, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x12, 0x03, 0x94,
-  0x6f, 0x00, 0x00, 0x00, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e,
-  0x33, 0x32, 0x30, 0x32, 0x33, 0x2e, 0x39, 0x38, 0x61, 0x69, 0x72, 0x36,
-  0x34, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x74, 0x76, 0x6f, 0x73,
-  0x31, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x2d, 0x73, 0x69, 0x6d, 0x75, 0x6c,
-  0x61, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00
-};
-const unsigned int cube_frag_metallib_len = 2989;
-#else
-const unsigned char cube_vert_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0b, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x00, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x3c, 0x44, 0xfd, 0x7c, 0xda, 0x9f, 0x5b, 0xd6, 0x40,
-  0xbc, 0x7e, 0xb5, 0x95, 0x8e, 0x07, 0x17, 0x23, 0x1d, 0x77, 0xe1, 0x11,
-  0xdb, 0x6d, 0x6e, 0xed, 0xc4, 0x2e, 0x2e, 0x2f, 0xb0, 0x34, 0x71, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x29,
-  0x00, 0x00, 0x00, 0x56, 0x41, 0x54, 0x54, 0x15, 0x00, 0x02, 0x00, 0x70,
-  0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x80, 0x63, 0x6f,
-  0x6c, 0x6f, 0x72, 0x00, 0x01, 0x80, 0x56, 0x41, 0x54, 0x59, 0x04, 0x00,
-  0x02, 0x00, 0x05, 0x05, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00,
-  0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x6c, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
-  0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00,
-  0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39,
-  0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
-  0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
-  0x38, 0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21,
-  0x23, 0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x48,
-  0x11, 0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00,
-  0x51, 0x18, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8,
-  0xff, 0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80,
-  0x07, 0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18,
-  0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40,
-  0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d,
-  0xdc, 0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d,
-  0xec, 0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e,
-  0xd2, 0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00,
-  0x06, 0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0,
-  0x87, 0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30,
-  0x07, 0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48,
-  0x07, 0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48,
-  0x87, 0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d,
-  0xe0, 0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d,
-  0xca, 0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d,
-  0xda, 0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8,
-  0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30,
-  0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0,
-  0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c,
-  0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90,
-  0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48,
-  0x87, 0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90,
-  0x87, 0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08,
-  0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20,
-  0xdc, 0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e,
-  0xd2, 0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d,
-  0x00, 0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08,
-  0x87, 0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28,
-  0x87, 0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30,
-  0x07, 0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28,
-  0x07, 0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c,
-  0xca, 0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e,
-  0xd0, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x6c, 0xc2,
-  0x00, 0x2c, 0x40, 0x35, 0x84, 0x43, 0x3a, 0xc8, 0x43, 0x1b, 0x88, 0x43,
-  0x3d, 0x98, 0x83, 0x39, 0x94, 0x83, 0x3c, 0xb4, 0x81, 0x3b, 0xbc, 0x43,
-  0x1b, 0x84, 0x03, 0x3b, 0xa4, 0x43, 0x38, 0xcc, 0x03, 0x00, 0x00, 0x00,
-  0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x84, 0x40, 0x00,
-  0x89, 0x20, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09,
-  0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3,
-  0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c,
-  0x10, 0x44, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x60, 0x85, 0x10, 0x86, 0x11,
-  0x06, 0x20, 0x09, 0xc2, 0x4c, 0xd4, 0x3c, 0xd0, 0x83, 0x3c, 0xd4, 0xc3,
-  0x38, 0xd0, 0x83, 0x1b, 0xb4, 0x43, 0x39, 0xd0, 0x43, 0x38, 0xb0, 0x83,
-  0x1e, 0xe8, 0x41, 0x3b, 0x84, 0x03, 0x3d, 0xc8, 0x43, 0x3a, 0xe0, 0x03,
-  0x0a, 0xc8, 0x29, 0xd2, 0x14, 0x51, 0xc2, 0xe4, 0xbb, 0x1b, 0x8a, 0x82,
-  0x32, 0x88, 0x60, 0x08, 0x85, 0x10, 0x63, 0x1c, 0x42, 0x03, 0x01, 0x73,
-  0x04, 0x60, 0x90, 0x02, 0x6b, 0x18, 0x81, 0x58, 0xe6, 0x08, 0x40, 0x61,
-  0x10, 0x21, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x13, 0xa8, 0x70, 0x48,
-  0x07, 0x79, 0xb0, 0x03, 0x3a, 0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60,
-  0x87, 0x72, 0x68, 0x83, 0x74, 0x78, 0x87, 0x79, 0xc8, 0x03, 0x37, 0x80,
-  0x03, 0x37, 0x80, 0x83, 0x0d, 0xb7, 0x51, 0x0e, 0x6d, 0x00, 0x0f, 0x7a,
-  0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xe9, 0x10, 0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d,
-  0x90, 0x0e, 0x78, 0xa0, 0x07, 0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06, 0xe9,
-  0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76,
-  0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a,
-  0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76,
-  0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6,
-  0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xf6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a,
-  0x10, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x73,
-  0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x30, 0x07, 0x72,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6,
-  0x40, 0x07, 0x78, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74,
-  0xd0, 0x06, 0xf6, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a,
-  0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x90, 0x07, 0x76, 0xa0, 0x07, 0x71,
-  0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6,
-  0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a,
-  0x10, 0x07, 0x72, 0x80, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x90, 0x07, 0x72,
-  0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76,
-  0xd0, 0x06, 0xf6, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75,
-  0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x75,
-  0x10, 0x07, 0x72, 0xa0, 0x07, 0x75, 0x10, 0x07, 0x72, 0xa0, 0x07, 0x75,
-  0x10, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74,
-  0xa0, 0x07, 0x71, 0x00, 0x07, 0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70,
-  0x20, 0x07, 0x74, 0xd0, 0x06, 0xee, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x76,
-  0xa0, 0x07, 0x73, 0x20, 0x07, 0x43, 0x98, 0x04, 0x00, 0x80, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x80, 0x2c, 0x10, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
-  0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47,
-  0xc6, 0x04, 0x43, 0x5a, 0x25, 0x30, 0x02, 0x50, 0x80, 0x01, 0x45, 0x50,
-  0x08, 0x05, 0x51, 0x20, 0xe4, 0x46, 0x00, 0x88, 0x8d, 0x25, 0x44, 0x02,
-  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00,
-  0x1a, 0x03, 0x4c, 0x10, 0x97, 0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9,
-  0xb9, 0xb4, 0x37, 0xb7, 0x21, 0xc6, 0x42, 0x28, 0x00, 0x93, 0x50, 0xb9,
-  0x1b, 0x43, 0x0b, 0x93, 0xfb, 0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x2c,
-  0x81, 0x22, 0x2c, 0x05, 0xdf, 0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4,
-  0xad, 0x8c, 0x2e, 0x8c, 0x0d, 0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd,
-  0x0d, 0x64, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x07, 0x07, 0x04, 0xa5,
-  0xad, 0x8c, 0x2e, 0x8c, 0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46, 0x66,
-  0xc6, 0x25, 0x07, 0x27, 0x65, 0x88, 0xa0, 0x10, 0x43, 0x8c, 0x25, 0x58,
-  0x8c, 0x45, 0x60, 0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04, 0x51, 0x8e,
-  0x25, 0x58, 0x82, 0x45, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32, 0xf6, 0xd6,
-  0x06, 0x97, 0xc6, 0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26, 0xd7, 0x36,
-  0xf7, 0x45, 0x96, 0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44, 0x50, 0x12,
-  0x72, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
-  0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65,
-  0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x04, 0x65, 0x21, 0x19, 0x84, 0xa5,
-  0xc9, 0xb9, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9, 0x98, 0xc9,
-  0x85, 0xb5, 0x95, 0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0x99, 0x95,
-  0xd1, 0x8d, 0xa1, 0x7d, 0x95, 0xb9, 0x85, 0x89, 0xb1, 0x95, 0x0d, 0x11,
-  0x94, 0x86, 0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5d, 0x99, 0x1c, 0x5d, 0x19,
-  0xde, 0xd7, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0x1d, 0x97, 0xba, 0xb9, 0x32,
-  0x39, 0x14, 0xb6, 0xb7, 0x31, 0x37, 0x98, 0x14, 0x46, 0x61, 0x69, 0x72,
-  0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61,
-  0x6d, 0x65, 0x34, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x68, 0xc8, 0x84, 0xa5,
-  0xc9, 0xb9, 0x84, 0xc9, 0x9d, 0x7d, 0xb9, 0x85, 0xb5, 0x95, 0xb1, 0x18,
-  0x7b, 0x63, 0x7b, 0x93, 0x1b, 0xc2, 0x28, 0x8f, 0x02, 0x29, 0x91, 0x22,
-  0x29, 0x93, 0x42, 0x91, 0x09, 0x4b, 0x93, 0x73, 0x81, 0x7b, 0x9b, 0x4b,
-  0xa3, 0x4b, 0x7b, 0x73, 0x23, 0x02, 0xf7, 0x36, 0x97, 0x46, 0x97, 0xf6,
-  0xe6, 0x36, 0x44, 0x51, 0x2c, 0x25, 0x52, 0x24, 0x65, 0x52, 0xae, 0x21,
-  0x84, 0x52, 0x29, 0x18, 0xa1, 0xb0, 0x34, 0x39, 0x17, 0xbb, 0x32, 0x39,
-  0xba, 0x32, 0xbc, 0xaf, 0x34, 0x37, 0xb8, 0x3a, 0x3a, 0x4a, 0x61, 0x69,
-  0x72, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
-  0x6e, 0x64, 0x65, 0x78, 0xf4, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8,
-  0xca, 0xc8, 0x50, 0xbe, 0xbe, 0xc2, 0xd2, 0xe4, 0xbe, 0xe0, 0xd8, 0xc2,
-  0xc6, 0xca, 0xd0, 0xde, 0xd8, 0xc8, 0xca, 0xe4, 0xbe, 0xbe, 0x52, 0x68,
-  0x98, 0xb1, 0xbd, 0x85, 0xd1, 0xcd, 0x0c, 0xa1, 0x16, 0x41, 0xd1, 0x94,
-  0x6d, 0x11, 0x96, 0x40, 0xe1, 0x94, 0x48, 0xe9, 0x94, 0x49, 0xb9, 0x86,
-  0x50, 0x4b, 0xa0, 0x68, 0xca, 0xb6, 0x04, 0x4b, 0xa0, 0x70, 0x4a, 0xa4,
-  0x74, 0xca, 0xa4, 0x50, 0x54, 0xc2, 0xd2, 0xe4, 0x5c, 0xc4, 0xea, 0xcc,
-  0xcc, 0xca, 0xe4, 0xf8, 0x84, 0xa5, 0xc9, 0xb9, 0x88, 0xd5, 0x99, 0x99,
-  0x95, 0xc9, 0x7d, 0xcd, 0xa5, 0xe9, 0x95, 0x11, 0x09, 0x4b, 0x93, 0x73,
-  0x91, 0x2b, 0x0b, 0x23, 0x23, 0x15, 0x96, 0x26, 0xe7, 0x32, 0x47, 0x27,
-  0x57, 0x37, 0x46, 0xf7, 0x45, 0x97, 0x07, 0x57, 0xf6, 0x95, 0xe6, 0x66,
-  0xf6, 0x46, 0xc4, 0x8c, 0xed, 0x2d, 0x8c, 0x8e, 0x06, 0x8f, 0x86, 0x4d,
-  0xdb, 0x1b, 0x59, 0x19, 0x9b, 0x55, 0x5a, 0xd9, 0x1d, 0x94, 0xdc, 0x9b,
-  0xda, 0x10, 0x65, 0x11, 0x96, 0x61, 0x11, 0x14, 0x32, 0x50, 0xca, 0x80,
-  0x51, 0x58, 0x9a, 0x9c, 0x4b, 0x98, 0xdc, 0xd9, 0x17, 0x5d, 0x1e, 0x5c,
-  0xd9, 0xd7, 0x5c, 0x9a, 0x5e, 0x19, 0xaf, 0xb0, 0x34, 0x39, 0x97, 0x30,
-  0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0xaf, 0x30, 0xb6, 0xb4, 0x33,
-  0xb7, 0xaf, 0xb9, 0x34, 0xbd, 0x32, 0x0e, 0x55, 0x42, 0x4f, 0x1c, 0xea,
-  0xc4, 0xde, 0x86, 0x90, 0xc1, 0x42, 0x28, 0x60, 0xa0, 0x84, 0xc1, 0x32,
-  0x28, 0xdb, 0x22, 0x2c, 0x81, 0x22, 0x06, 0xca, 0x18, 0x28, 0x66, 0xa0,
-  0x9c, 0xc1, 0x32, 0x28, 0x68, 0xb0, 0x1c, 0x4a, 0xa4, 0xa4, 0x81, 0x32,
-  0x29, 0x6a, 0x30, 0xc4, 0x50, 0x3c, 0xe5, 0x53, 0xd6, 0x60, 0x88, 0x91,
-  0x00, 0x4a, 0xa6, 0xb0, 0x01, 0x9f, 0xb7, 0x36, 0xb7, 0x34, 0xb8, 0x37,
-  0xba, 0x32, 0x37, 0x3a, 0x90, 0x31, 0xb4, 0x30, 0x39, 0x3e, 0x53, 0x69,
-  0x6d, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x2b, 0x2b, 0x20, 0x54, 0x42, 0x41,
-  0x41, 0x43, 0x04, 0xe5, 0x0d, 0x86, 0x18, 0x8a, 0x1b, 0x28, 0x70, 0xe0,
-  0x20, 0x43, 0x0c, 0x25, 0x0e, 0x94, 0x38, 0x70, 0x10, 0x66, 0x61, 0x69,
-  0x72, 0x2d, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x2d, 0x73, 0x63, 0x6f, 0x70,
-  0x65, 0x73, 0x28, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x29, 0x43,
-  0x08, 0x85, 0x0e, 0x94, 0x39, 0xa0, 0x15, 0x96, 0x26, 0xd7, 0x12, 0xc6,
-  0x96, 0x16, 0x36, 0xd7, 0x32, 0x37, 0xf6, 0x06, 0x57, 0xd6, 0x12, 0x26,
-  0x77, 0x86, 0x22, 0x93, 0x32, 0xc4, 0x50, 0xec, 0x40, 0xa1, 0x03, 0xa5,
-  0x0e, 0x86, 0x08, 0x8a, 0x1d, 0x8c, 0x88, 0xd8, 0x81, 0x1d, 0xec, 0xa1,
-  0x1d, 0xdc, 0xa0, 0x1d, 0xde, 0x81, 0x1c, 0xea, 0x81, 0x1d, 0xca, 0xc1,
-  0x0d, 0xcc, 0x81, 0x1d, 0xc2, 0xe1, 0x1c, 0xe6, 0x61, 0x8a, 0x10, 0x0c,
-  0x23, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x48, 0x07, 0x72,
-  0x28, 0x07, 0x77, 0xa0, 0x87, 0x29, 0x41, 0x31, 0x62, 0x09, 0x87, 0x74,
-  0x90, 0x07, 0x37, 0xb0, 0x87, 0x72, 0x90, 0x87, 0x79, 0x48, 0x87, 0x77,
-  0x70, 0x87, 0x29, 0x81, 0x31, 0x82, 0x0a, 0x87, 0x74, 0x90, 0x07, 0x37,
-  0x60, 0x87, 0x70, 0x70, 0x87, 0x73, 0xa8, 0x87, 0x70, 0x38, 0x87, 0x72,
-  0xf8, 0x05, 0x7b, 0x28, 0x07, 0x79, 0x98, 0x87, 0x74, 0x78, 0x07, 0x77,
-  0x98, 0x12, 0x20, 0x23, 0xa6, 0x70, 0x48, 0x07, 0x79, 0x70, 0x83, 0x71,
-  0x78, 0x87, 0x76, 0x80, 0x87, 0x74, 0x60, 0x87, 0x72, 0xf8, 0x85, 0x77,
-  0x80, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x79, 0x98, 0x32, 0x28,
-  0x8c, 0x33, 0x42, 0x09, 0x87, 0x74, 0x90, 0x07, 0x37, 0xb0, 0x87, 0x72,
-  0x90, 0x07, 0x7a, 0x28, 0x07, 0x7c, 0x98, 0x12, 0xb4, 0x01, 0x00, 0x00,
-  0x79, 0x18, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c,
-  0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3,
-  0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6,
-  0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e,
-  0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43,
-  0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03,
-  0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48,
-  0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20,
-  0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e,
-  0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d,
-  0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89,
-  0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83,
-  0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68,
-  0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90,
-  0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78,
-  0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98,
-  0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5,
-  0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c,
-  0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c,
-  0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43,
-  0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43,
-  0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82,
-  0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58,
-  0x87, 0x72, 0x70, 0x83, 0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18,
-  0x87, 0x74, 0xa0, 0x87, 0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2,
-  0x50, 0x0e, 0xe4, 0x90, 0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec,
-  0x50, 0x0e, 0x33, 0x20, 0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e,
-  0xd2, 0x21, 0x1c, 0xdc, 0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d,
-  0xea, 0x01, 0x1e, 0x66, 0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83,
-  0x3b, 0xcc, 0x50, 0x24, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60,
-  0x87, 0x77, 0x78, 0x07, 0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0,
-  0x50, 0x0e, 0x33, 0x1e, 0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d,
-  0xde, 0xc1, 0x1d, 0x7e, 0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d,
-  0xf0, 0x61, 0x06, 0x54, 0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43,
-  0x3d, 0xd0, 0x43, 0x39, 0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3,
-  0x3b, 0xb0, 0xc3, 0x8c, 0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18,
-  0x87, 0x74, 0x08, 0x07, 0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3,
-  0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1,
-  0xd2, 0x41, 0x1e, 0xe4, 0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e,
-  0x66, 0x48, 0x19, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3,
-  0x38, 0x8c, 0x43, 0x39, 0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3,
-  0x3b, 0xd4, 0x03, 0x3c, 0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60,
-  0x07, 0x71, 0x08, 0x87, 0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec,
-  0x60, 0x0f, 0xed, 0xe0, 0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5,
-  0x20, 0x0f, 0xf6, 0x50, 0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5,
-  0x30, 0x0f, 0xf3, 0xe0, 0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8,
-  0x30, 0x23, 0xe2, 0xec, 0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17,
-  0xec, 0x21, 0x1d, 0xe6, 0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d,
-  0xe8, 0x21, 0x1f, 0x66, 0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03,
-  0x39, 0x94, 0x83, 0x39, 0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78,
-  0x07, 0x7a, 0x08, 0x07, 0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce,
-  0x87, 0x0e, 0xe5, 0x10, 0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef,
-  0x30, 0x0e, 0xf3, 0x90, 0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08,
-  0x87, 0x74, 0x90, 0x07, 0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0,
-  0x87, 0x74, 0x78, 0x07, 0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8,
-  0x07, 0x78, 0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x06, 0x70, 0x54, 0xd2, 0xcf, 0x00, 0x48, 0x03,
-  0x61, 0x20, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c,
-  0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xe4, 0xca, 0xa0, 0x08,
-  0x4a, 0x80, 0xda, 0x58, 0x84, 0x20, 0x08, 0x02, 0xad, 0x19, 0x80, 0x32,
-  0xa0, 0x36, 0x07, 0x21, 0x04, 0x44, 0x34, 0x02, 0x30, 0x16, 0x11, 0x04,
-  0x41, 0x40, 0x63, 0x06, 0x60, 0x06, 0x80, 0xc4, 0x0c, 0x00, 0x81, 0x31,
-  0x02, 0x10, 0x04, 0x41, 0xfc, 0x03, 0x00, 0x00, 0x83, 0x0c, 0x0f, 0x71,
-  0xcc, 0x31, 0x04, 0x42, 0x32, 0x5e, 0x01, 0x51, 0x9a, 0x46, 0x51, 0x50,
-  0x06, 0x19, 0xa8, 0x43, 0x31, 0x21, 0x90, 0xcf, 0x78, 0x05, 0x85, 0x79,
-  0x5e, 0x44, 0x41, 0x19, 0x64, 0xc0, 0x96, 0xc6, 0x84, 0x40, 0x3e, 0x16,
-  0x14, 0xf0, 0x19, 0xaf, 0xc8, 0xba, 0x31, 0x18, 0x83, 0x8b, 0x82, 0x32,
-  0xc8, 0xd0, 0x41, 0x97, 0x09, 0x81, 0x7c, 0xac, 0x08, 0xe0, 0x33, 0x5e,
-  0xe1, 0x89, 0x01, 0x1a, 0xa0, 0x41, 0x47, 0x41, 0xb1, 0x21, 0x80, 0xcf,
-  0x6c, 0x43, 0x25, 0x01, 0xb3, 0x0d, 0x81, 0x10, 0x64, 0x10, 0x10, 0x03,
-  0x08, 0x00, 0x00, 0x00, 0x5b, 0x8a, 0x21, 0x90, 0x83, 0xe3, 0x0e, 0xb6,
-  0x14, 0x47, 0x20, 0x07, 0xc7, 0x1d, 0x6c, 0x29, 0x98, 0x40, 0x0e, 0x8e,
-  0x3b, 0xd8, 0x52, 0x44, 0x81, 0x1c, 0x1c, 0x77, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-const unsigned int cube_vert_metallib_len = 3200;
-const unsigned char cube_frag_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xfb, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x01, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x29, 0xbb, 0xc2, 0x87, 0x30, 0x03, 0x9b, 0xc2, 0x29,
-  0xf0, 0xd6, 0x9a, 0x0e, 0x55, 0xa4, 0xf4, 0xb6, 0xd7, 0x55, 0x10, 0xd8,
-  0x1c, 0x85, 0xfd, 0xae, 0x53, 0xe4, 0xeb, 0x05, 0xa4, 0xee, 0xca, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04,
-  0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45,
-  0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x14,
-  0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x42,
-  0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x3e, 0x02, 0x00, 0x00, 0x0b,
-  0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x07,
-  0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92,
-  0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80,
-  0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14, 0x38,
-  0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21, 0x23,
-  0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x08, 0x11,
-  0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x51,
-  0x18, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8, 0xff,
-  0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80, 0x07,
-  0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18, 0x87,
-  0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07,
-  0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d, 0xdc,
-  0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d, 0xec,
-  0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e, 0xd2,
-  0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00, 0x06,
-  0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0, 0x87,
-  0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30, 0x07,
-  0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48, 0x07,
-  0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48, 0x87,
-  0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d, 0xe0,
-  0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d, 0xca,
-  0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d, 0xda,
-  0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87,
-  0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30, 0x87,
-  0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0, 0x07,
-  0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c, 0xe0,
-  0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90, 0x87,
-  0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48, 0x87,
-  0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90, 0x87,
-  0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07,
-  0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xdc,
-  0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e, 0xd2,
-  0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00,
-  0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08, 0x87,
-  0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28, 0x87,
-  0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30, 0x07,
-  0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28, 0x07,
-  0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c, 0xca,
-  0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0,
-  0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x10, 0x42, 0x00,
-  0x58, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13,
-  0x84, 0x40, 0x00, 0x89, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32,
-  0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04,
-  0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b,
-  0x84, 0x84, 0x4c, 0x10, 0x20, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x50, 0x86,
-  0x88, 0x20, 0x19, 0x08, 0x98, 0x23, 0x00, 0x83, 0x14, 0xa8, 0x11, 0x00,
-  0x00, 0x00, 0x00, 0x13, 0xa8, 0x70, 0x48, 0x07, 0x79, 0xb0, 0x03, 0x3a,
-  0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60, 0x87, 0x72, 0x68, 0x83, 0x74,
-  0x78, 0x87, 0x79, 0xc8, 0x03, 0x37, 0x80, 0x03, 0x37, 0x80, 0x83, 0x0d,
-  0xb7, 0x51, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe9, 0x10, 0x07,
-  0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07,
-  0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06, 0xe9, 0x10, 0x07, 0x76, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xd0, 0x06, 0xe9, 0x30, 0x07,
-  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06,
-  0xe9, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07,
-  0x74, 0xd0, 0x06, 0xe6, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x10, 0x07,
-  0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xd0, 0x06,
-  0xf6, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
-  0x72, 0xd0, 0x06, 0xf6, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xf6, 0x40, 0x07, 0x78, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xf6, 0x60, 0x07,
-  0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06,
-  0xf6, 0x90, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07,
-  0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x6d, 0x60, 0x0f, 0x71, 0x90, 0x07, 0x72, 0xa0, 0x07, 0x72, 0x50, 0x07,
-  0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x75, 0x10, 0x07, 0x72, 0xa0, 0x07,
-  0x75, 0x10, 0x07, 0x72, 0xa0, 0x07, 0x75, 0x10, 0x07, 0x72, 0xd0, 0x06,
-  0xf6, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x71, 0x00, 0x07,
-  0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xd0, 0x06,
-  0xee, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x43, 0x98, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2c,
-  0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x0c, 0x19,
-  0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xaa, 0x12,
-  0x18, 0x01, 0x28, 0x82, 0x42, 0x28, 0x08, 0xb2, 0xb1, 0x84, 0x48, 0x00,
-  0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x1a,
-  0x03, 0x4c, 0x10, 0x97, 0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9, 0xb9,
-  0xb4, 0x37, 0xb7, 0x21, 0x46, 0x31, 0x10, 0x80, 0x61, 0x50, 0xb9, 0x1b,
-  0x43, 0x0b, 0x93, 0xfb, 0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x14, 0x01,
-  0x21, 0x14, 0x04, 0xdf, 0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4, 0xad,
-  0x8c, 0x2e, 0x8c, 0x0d, 0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x0d,
-  0x64, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x07, 0x07, 0x04, 0xa5, 0xad,
-  0x8c, 0x2e, 0x8c, 0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46, 0x66, 0xc6,
-  0x25, 0x07, 0x27, 0x65, 0x88, 0x40, 0x10, 0x43, 0x8c, 0x22, 0x28, 0x8a,
-  0x42, 0x60, 0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04, 0x21, 0x8e, 0x22,
-  0x28, 0x82, 0x42, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32, 0xf6, 0xd6, 0x06,
-  0x97, 0xc6, 0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26, 0xd7, 0x36, 0xf7,
-  0x45, 0x96, 0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44, 0x20, 0x12, 0x72,
-  0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e,
-  0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x6e,
-  0x61, 0x62, 0x6c, 0x65, 0x43, 0x04, 0x62, 0x21, 0x19, 0x84, 0xa5, 0xc9,
-  0xb9, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9, 0x98, 0xc9, 0x85,
-  0xb5, 0x95, 0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0x99, 0x95, 0xd1,
-  0x8d, 0xa1, 0x7d, 0x95, 0xb9, 0x85, 0x89, 0xb1, 0x95, 0x0d, 0x11, 0x88,
-  0x86, 0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5c, 0x99, 0x1b, 0x59, 0x99, 0xdc,
-  0x17, 0x5d, 0x98, 0xdc, 0x59, 0x19, 0x1d, 0xa3, 0xb0, 0x34, 0x39, 0x97,
-  0x30, 0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0x2f, 0xb7, 0xb0, 0xb6,
-  0x32, 0x1a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x43, 0x10, 0xe2, 0x29,
-  0x04, 0x02, 0x22, 0xa2, 0x21, 0x02, 0x21, 0x51, 0x0a, 0x4b, 0x93, 0x73,
-  0x31, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0xfb, 0x4a, 0x73, 0x83,
-  0xab, 0xa3, 0xe3, 0x52, 0x37, 0x57, 0x26, 0x87, 0xc2, 0xf6, 0x36, 0xe6,
-  0x06, 0x93, 0x42, 0x25, 0x2c, 0x4d, 0xce, 0x65, 0xac, 0xcc, 0x8d, 0xae,
-  0x4c, 0x8e, 0x4f, 0x58, 0x9a, 0x9c, 0x0b, 0x5c, 0x99, 0xdc, 0x1c, 0x5c,
-  0xd9, 0x18, 0x5d, 0x9a, 0x5d, 0x19, 0x99, 0xb0, 0x34, 0x39, 0x97, 0x30,
-  0xb9, 0xb3, 0x2f, 0xb7, 0xb0, 0xb6, 0x32, 0x16, 0x63, 0x6f, 0x6c, 0x6f,
-  0x72, 0x43, 0xa4, 0x42, 0x20, 0x28, 0xa2, 0x22, 0x2c, 0xe2, 0x22, 0x20,
-  0x22, 0x22, 0x30, 0x22, 0x23, 0x13, 0x96, 0x26, 0xe7, 0x02, 0xf7, 0x36,
-  0x97, 0x46, 0x97, 0xf6, 0xe6, 0x46, 0x29, 0x2c, 0x4d, 0xce, 0xc5, 0xed,
-  0xed, 0x0b, 0xae, 0x4c, 0x6e, 0x0e, 0xae, 0x6c, 0x8c, 0x2e, 0xcd, 0xae,
-  0x8c, 0x08, 0xdc, 0xdb, 0x5c, 0x1a, 0x5d, 0xda, 0x9b, 0xdb, 0x10, 0xa8,
-  0x08, 0x88, 0x8d, 0xb0, 0x08, 0x8e, 0x80, 0x88, 0x88, 0xc0, 0x88, 0x6e,
-  0x08, 0x41, 0x68, 0x84, 0x37, 0xc4, 0x18, 0x00, 0x62, 0x22, 0xbe, 0x11,
-  0x11, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0xb4, 0xc3, 0x3b, 0x90,
-  0x43, 0x3d, 0xb0, 0x43, 0x39, 0xb8, 0x81, 0x39, 0xb0, 0x43, 0x38, 0x9c,
-  0xc3, 0x3c, 0x4c, 0x11, 0x82, 0x61, 0x84, 0xc2, 0x0e, 0xec, 0x60, 0x0f,
-  0xed, 0xe0, 0x06, 0xe9, 0x40, 0x0e, 0xe5, 0xe0, 0x0e, 0xf4, 0x30, 0x25,
-  0x28, 0x46, 0x2c, 0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xf6, 0x50, 0x0e,
-  0xf2, 0x30, 0x0f, 0xe9, 0xf0, 0x0e, 0xee, 0x30, 0x25, 0x30, 0x46, 0x50,
-  0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xec, 0x10, 0x0e, 0xee, 0x70, 0x0e,
-  0xf5, 0x10, 0x0e, 0xe7, 0x50, 0x0e, 0xbf, 0x60, 0x0f, 0xe5, 0x20, 0x0f,
-  0xf3, 0x90, 0x0e, 0xef, 0xe0, 0x0e, 0x53, 0x02, 0x64, 0xc4, 0x14, 0x0e,
-  0xe9, 0x20, 0x0f, 0x6e, 0x30, 0x0e, 0xef, 0xd0, 0x0e, 0xf0, 0x90, 0x0e,
-  0xec, 0x50, 0x0e, 0xbf, 0xf0, 0x0e, 0xf0, 0x40, 0x0f, 0xe9, 0xf0, 0x0e,
-  0xee, 0x30, 0x0f, 0x53, 0x06, 0x85, 0x71, 0x46, 0x30, 0xe1, 0x90, 0x0e,
-  0xf2, 0xe0, 0x06, 0xe6, 0x20, 0x0f, 0xe1, 0x70, 0x0e, 0xed, 0x50, 0x0e,
-  0xee, 0x40, 0x0f, 0x53, 0x02, 0x30, 0x00, 0x79, 0x18, 0x00, 0x00, 0xa5,
-  0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14,
-  0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79,
-  0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e,
-  0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1,
-  0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc,
-  0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74,
-  0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a,
-  0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e,
-  0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e,
-  0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21,
-  0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0,
-  0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc,
-  0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72,
-  0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f,
-  0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c,
-  0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03,
-  0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61,
-  0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94,
-  0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0,
-  0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72, 0x70, 0x83, 0x74,
-  0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74, 0xa0, 0x87, 0x19,
-  0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e, 0xe4, 0x90, 0x0e,
-  0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e, 0x33, 0x20, 0x28,
-  0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21, 0x1c, 0xdc, 0x81,
-  0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01, 0x1e, 0x66, 0x18,
-  0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc, 0x50, 0x24, 0x76,
-  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77, 0x78, 0x07, 0x78,
-  0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e, 0x33, 0x1e, 0x6a,
-  0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x7e, 0x01,
-  0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61, 0x06, 0x54, 0x85,
-  0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0, 0x43, 0x39, 0xfc,
-  0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0, 0xc3, 0x8c, 0xc5,
-  0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74, 0x08, 0x07, 0x7a,
-  0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e, 0xec, 0xc0, 0x0e,
-  0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41, 0x1e, 0xe4, 0xe1,
-  0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48, 0x19, 0x3b, 0xb0,
-  0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c, 0x43, 0x39, 0xcc,
-  0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4, 0x03, 0x3c, 0xcc,
-  0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71, 0x08, 0x87, 0x71,
-  0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f, 0xed, 0xe0, 0x06,
-  0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f, 0xf6, 0x50, 0x0e,
-  0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f, 0xf3, 0xe0, 0x06,
-  0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23, 0xe2, 0xec, 0x61,
-  0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21, 0x1d, 0xe6, 0x21,
-  0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21, 0x1f, 0x66, 0x20,
-  0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94, 0x83, 0x39, 0xcc,
-  0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a, 0x08, 0x07, 0x7a,
-  0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e, 0xe5, 0x10, 0x0e,
-  0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e, 0xf3, 0x90, 0x0e,
-  0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74, 0x90, 0x07, 0x37,
-  0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74, 0x78, 0x07, 0x77,
-  0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78, 0x98, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06,
-  0x70, 0x14, 0xd2, 0xcf, 0x00, 0x48, 0x03, 0x61, 0x20, 0x00, 0x00, 0x02,
-  0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-const unsigned int cube_frag_metallib_len = 2555;
-#endif
-#else
-const unsigned char cube_vert_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x80, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0b, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x76, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x00, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x24, 0x4c, 0xb9, 0x70, 0xfa, 0x59, 0x48, 0x5e, 0xfe,
-  0x11, 0x40, 0x36, 0xc9, 0xf9, 0x9d, 0x89, 0xe1, 0x76, 0xcb, 0x69, 0x62,
-  0x92, 0x76, 0xfa, 0x01, 0xcf, 0x50, 0x46, 0x27, 0x33, 0xb3, 0xef, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x29,
-  0x00, 0x00, 0x00, 0x56, 0x41, 0x54, 0x54, 0x15, 0x00, 0x02, 0x00, 0x70,
-  0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x80, 0x63, 0x6f,
-  0x6c, 0x6f, 0x72, 0x00, 0x01, 0x80, 0x56, 0x41, 0x54, 0x59, 0x04, 0x00,
-  0x02, 0x00, 0x05, 0x05, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00,
-  0x45, 0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
-  0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00,
-  0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39,
-  0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
-  0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
-  0x38, 0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21,
-  0x23, 0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x48,
-  0x11, 0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00,
-  0x51, 0x18, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8,
-  0xff, 0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80,
-  0x07, 0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18,
-  0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40,
-  0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d,
-  0xdc, 0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d,
-  0xec, 0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e,
-  0xd2, 0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00,
-  0x06, 0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0,
-  0x87, 0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30,
-  0x07, 0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48,
-  0x07, 0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48,
-  0x87, 0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d,
-  0xe0, 0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d,
-  0xca, 0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d,
-  0xda, 0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8,
-  0x87, 0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30,
-  0x87, 0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0,
-  0x07, 0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d,
-  0xde, 0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c,
-  0xe0, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90,
-  0x87, 0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48,
-  0x87, 0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90,
-  0x87, 0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08,
-  0x07, 0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20,
-  0xdc, 0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e,
-  0xd2, 0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d,
-  0x00, 0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08,
-  0x87, 0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28,
-  0x87, 0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30,
-  0x07, 0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28,
-  0x07, 0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c,
-  0xca, 0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e,
-  0xd0, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x18, 0xc2,
-  0x00, 0x2c, 0x40, 0x05, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x13, 0x84, 0x40, 0x00, 0x89, 0x20, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84,
-  0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c,
-  0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x44, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x60,
-  0x85, 0x10, 0x86, 0x11, 0x06, 0x20, 0x09, 0xc2, 0x4c, 0xd4, 0x3c, 0xd0,
-  0x83, 0x3c, 0xd4, 0xc3, 0x38, 0xd0, 0x83, 0x1b, 0xb4, 0x43, 0x39, 0xd0,
-  0x43, 0x38, 0xb0, 0x83, 0x1e, 0xe8, 0x41, 0x3b, 0x84, 0x03, 0x3d, 0xc8,
-  0x43, 0x3a, 0xe0, 0x03, 0x0a, 0xc8, 0x29, 0xd2, 0x14, 0x51, 0xc2, 0xe4,
-  0xbb, 0x1b, 0x8a, 0x82, 0x32, 0x88, 0x60, 0x08, 0x85, 0x10, 0x63, 0x1c,
-  0x42, 0x03, 0x01, 0x73, 0x04, 0x60, 0x90, 0x02, 0x6b, 0x18, 0x81, 0x58,
-  0xe6, 0x08, 0x40, 0x61, 0x10, 0x21, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00,
-  0x13, 0xb2, 0x70, 0x48, 0x07, 0x79, 0xb0, 0x03, 0x3a, 0x68, 0x83, 0x70,
-  0x80, 0x07, 0x78, 0x60, 0x87, 0x72, 0x68, 0x83, 0x76, 0x08, 0x87, 0x71,
-  0x78, 0x87, 0x79, 0xc0, 0x87, 0x38, 0x80, 0x03, 0x37, 0x88, 0x83, 0x38,
-  0x70, 0x03, 0x38, 0xd8, 0x70, 0x1b, 0xe5, 0xd0, 0x06, 0xf0, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
-  0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x78, 0xa0, 0x07, 0x78, 0xd0, 0x06,
-  0xe9, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x6d, 0x90, 0x0e,
-  0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x71, 0x60, 0x07,
-  0x6d, 0x90, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
-  0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07,
-  0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e,
-  0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
-  0x6d, 0x60, 0x0f, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x72, 0x40, 0x07, 0x7a, 0x30, 0x07,
-  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x73, 0x20, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f,
-  0x74, 0x80, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07,
-  0x6d, 0x60, 0x0f, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x79, 0x60, 0x07, 0x7a, 0x10, 0x07,
-  0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x6d, 0x60, 0x0f,
-  0x71, 0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07,
-  0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07, 0x79, 0x20, 0x07,
-  0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07,
-  0x6d, 0x60, 0x0f, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07,
-  0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06, 0xf6, 0x50, 0x07,
-  0x71, 0x20, 0x07, 0x7a, 0x50, 0x07, 0x71, 0x20, 0x07, 0x7a, 0x50, 0x07,
-  0x71, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x00, 0x07, 0x72, 0x40, 0x07,
-  0x7a, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07, 0x71, 0x00, 0x07,
-  0x72, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0x30, 0x84, 0x49, 0x00, 0x00, 0x08, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
-  0x32, 0x1e, 0x98, 0x10, 0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47,
-  0xc6, 0x04, 0x43, 0x5a, 0x25, 0x30, 0x02, 0x50, 0x80, 0x01, 0x45, 0x50,
-  0x08, 0x05, 0x51, 0x20, 0xe4, 0x46, 0x00, 0x88, 0x8d, 0x25, 0x38, 0x02,
-  0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00,
-  0x1a, 0x03, 0x4c, 0x10, 0x97, 0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9,
-  0xb9, 0xb4, 0x37, 0xb7, 0x21, 0xc6, 0x42, 0x28, 0x00, 0x93, 0x50, 0xb9,
-  0x1b, 0x43, 0x0b, 0x93, 0xfb, 0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x2c,
-  0x81, 0x22, 0x2c, 0x05, 0xe3, 0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4,
-  0xad, 0x8c, 0x2e, 0x8c, 0x0d, 0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd,
-  0x0d, 0x64, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x06, 0x26, 0x06, 0x04,
-  0xa5, 0xad, 0x8c, 0x2e, 0x8c, 0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46,
-  0x66, 0xc6, 0x25, 0x06, 0x26, 0x26, 0x65, 0x88, 0xa0, 0x10, 0x43, 0x8c,
-  0x25, 0x58, 0x8c, 0x45, 0x60, 0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04,
-  0x51, 0x8e, 0x25, 0x58, 0x82, 0x45, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32,
-  0xf6, 0xd6, 0x06, 0x97, 0xc6, 0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26,
-  0xd7, 0x36, 0xf7, 0x45, 0x96, 0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44,
-  0x50, 0x12, 0x72, 0x61, 0x69, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69,
-  0x6c, 0x65, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68,
-  0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x04, 0x65, 0x61, 0x19,
-  0x84, 0xa5, 0xc9, 0xb9, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9,
-  0x98, 0xc9, 0x85, 0xb5, 0x95, 0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d,
-  0x99, 0x95, 0xd1, 0x8d, 0xa1, 0x7d, 0x91, 0xa5, 0xcd, 0x85, 0x89, 0xb1,
-  0x95, 0x0d, 0x11, 0x94, 0x86, 0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5d, 0x99,
-  0x1c, 0x5d, 0x19, 0xde, 0xd7, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0x1d, 0x97,
-  0xba, 0xb9, 0x32, 0x39, 0x14, 0xb6, 0xb7, 0x31, 0x37, 0x98, 0x14, 0x46,
-  0x61, 0x69, 0x72, 0x2e, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65,
-  0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x34, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x68,
-  0xc8, 0x84, 0xa5, 0xc9, 0xb9, 0x84, 0xc9, 0x9d, 0x7d, 0xb9, 0x85, 0xb5,
-  0x95, 0xb1, 0x18, 0x7b, 0x63, 0x7b, 0x93, 0x1b, 0xc2, 0x28, 0x8f, 0x02,
-  0x29, 0x91, 0x22, 0x29, 0x93, 0x42, 0x91, 0x09, 0x4b, 0x93, 0x73, 0x81,
-  0x7b, 0x9b, 0x4b, 0xa3, 0x4b, 0x7b, 0x73, 0x23, 0x02, 0xf7, 0x36, 0x97,
-  0x46, 0x97, 0xf6, 0xe6, 0x36, 0x44, 0x51, 0x2c, 0x25, 0x52, 0x24, 0x65,
-  0x52, 0xae, 0x21, 0x84, 0x52, 0x29, 0x18, 0xa1, 0xb0, 0x34, 0x39, 0x17,
-  0xbb, 0x32, 0x39, 0xba, 0x32, 0xbc, 0xaf, 0x34, 0x37, 0xb8, 0x3a, 0x3a,
-  0x4a, 0x61, 0x69, 0x72, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
-  0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0xf4, 0xce, 0xca, 0xdc, 0xca,
-  0xe4, 0xc2, 0xe8, 0xca, 0xc8, 0x50, 0xbe, 0xbe, 0xc2, 0xd2, 0xe4, 0xbe,
-  0xe0, 0xd8, 0xc2, 0xc6, 0xca, 0xd0, 0xde, 0xd8, 0xc8, 0xca, 0xe4, 0xbe,
-  0xbe, 0x52, 0x68, 0x98, 0xb1, 0xbd, 0x85, 0xd1, 0xcd, 0x0c, 0xa1, 0x16,
-  0x41, 0xd1, 0x94, 0x6d, 0x11, 0x96, 0x40, 0xe1, 0x94, 0x48, 0xe9, 0x94,
-  0x49, 0xb9, 0x86, 0x50, 0x4b, 0xa0, 0x68, 0xca, 0xb6, 0x04, 0x4b, 0xa0,
-  0x70, 0x4a, 0xa4, 0x74, 0xca, 0xa4, 0x50, 0x54, 0xc2, 0xd2, 0xe4, 0x5c,
-  0xc4, 0xea, 0xcc, 0xcc, 0xca, 0xe4, 0xf8, 0x84, 0xa5, 0xc9, 0xb9, 0x88,
-  0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0xcd, 0xa5, 0xe9, 0x95, 0x11, 0x09,
-  0x4b, 0x93, 0x73, 0x91, 0x2b, 0x0b, 0x23, 0x23, 0x15, 0x96, 0x26, 0xe7,
-  0x32, 0x47, 0x27, 0x57, 0x37, 0x46, 0xf7, 0x45, 0x97, 0x07, 0x57, 0xf6,
-  0x95, 0xe6, 0x66, 0xf6, 0x46, 0xc4, 0x8c, 0xed, 0x2d, 0x8c, 0x8e, 0x06,
-  0x8f, 0x86, 0x4d, 0xdb, 0x1b, 0x59, 0x19, 0x9b, 0x55, 0x5a, 0xd9, 0x1d,
-  0x94, 0xdc, 0x9b, 0xda, 0x10, 0x65, 0x11, 0x96, 0x61, 0x11, 0x14, 0x32,
-  0x50, 0xca, 0x80, 0x51, 0x58, 0x9a, 0x9c, 0x4b, 0x98, 0xdc, 0xd9, 0x17,
-  0x5d, 0x1e, 0x5c, 0xd9, 0xd7, 0x5c, 0x9a, 0x5e, 0x19, 0xaf, 0xb0, 0x34,
-  0x39, 0x97, 0x30, 0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0xaf, 0x30,
-  0xb6, 0xb4, 0x33, 0xb7, 0xaf, 0xb9, 0x34, 0xbd, 0x32, 0x0e, 0x55, 0x42,
-  0x4f, 0x1c, 0xea, 0xc4, 0xde, 0x86, 0x90, 0xc1, 0x42, 0x28, 0x60, 0xa0,
-  0x84, 0xc1, 0x32, 0x28, 0xdb, 0x22, 0x2c, 0x81, 0x22, 0x06, 0xca, 0x18,
-  0x28, 0x66, 0xa0, 0x9c, 0xc1, 0x32, 0x28, 0x68, 0xb0, 0x1c, 0x4a, 0xa4,
-  0xa4, 0x81, 0x32, 0x29, 0x6a, 0x30, 0xc4, 0x50, 0x3c, 0xe5, 0x53, 0xd6,
-  0x60, 0x88, 0x91, 0x00, 0x4a, 0xa6, 0xb0, 0x01, 0x9f, 0xb7, 0x36, 0xb7,
-  0x34, 0xb8, 0x37, 0xba, 0x32, 0x37, 0x3a, 0x90, 0x31, 0xb4, 0x30, 0x39,
-  0x3e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x2b, 0x2b, 0x20,
-  0x54, 0x42, 0x41, 0x41, 0x43, 0x04, 0xe5, 0x0d, 0x86, 0x18, 0x8a, 0x1b,
-  0x28, 0x70, 0xe0, 0x20, 0x43, 0x0c, 0x25, 0x0e, 0x94, 0x38, 0x70, 0x90,
-  0x11, 0x11, 0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0xb4, 0xc3, 0x3b,
-  0x90, 0x43, 0x3d, 0xb0, 0x43, 0x39, 0xb8, 0x81, 0x39, 0xb0, 0x43, 0x38,
-  0x9c, 0xc3, 0x3c, 0x4c, 0x11, 0x82, 0x61, 0x84, 0xc2, 0x0e, 0xec, 0x60,
-  0x0f, 0xed, 0xe0, 0x06, 0xe9, 0x40, 0x0e, 0xe5, 0xe0, 0x0e, 0xf4, 0x30,
-  0x25, 0x28, 0x46, 0x2c, 0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xf6, 0x50,
-  0x0e, 0xf2, 0x30, 0x0f, 0xe9, 0xf0, 0x0e, 0xee, 0x30, 0x25, 0x30, 0x46,
-  0x50, 0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xec, 0x10, 0x0e, 0xee, 0x70,
-  0x0e, 0xf5, 0x10, 0x0e, 0xe7, 0x50, 0x0e, 0xbf, 0x60, 0x0f, 0xe5, 0x20,
-  0x0f, 0xf3, 0x90, 0x0e, 0xef, 0xe0, 0x0e, 0x53, 0x02, 0x64, 0xc4, 0x14,
-  0x0e, 0xe9, 0x20, 0x0f, 0x6e, 0x30, 0x0e, 0xef, 0xd0, 0x0e, 0xf0, 0x90,
-  0x0e, 0xec, 0x50, 0x0e, 0xbf, 0xf0, 0x0e, 0xf0, 0x40, 0x0f, 0xe9, 0xf0,
-  0x0e, 0xee, 0x30, 0x0f, 0x53, 0x06, 0x85, 0x71, 0x46, 0x28, 0xe1, 0x90,
-  0x0e, 0xf2, 0xe0, 0x06, 0xf6, 0x50, 0x0e, 0xf2, 0x40, 0x0f, 0xe5, 0x80,
-  0x0f, 0x53, 0x82, 0x36, 0x00, 0x00, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00,
-  0xa5, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66,
-  0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07,
-  0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
-  0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce,
-  0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b,
-  0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c,
-  0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
-  0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11,
-  0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0,
-  0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8,
-  0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
-  0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b,
-  0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87,
-  0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07,
-  0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
-  0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81,
-  0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30,
-  0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
-  0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
-  0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39,
-  0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b,
-  0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b,
-  0xb0, 0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72, 0x70, 0x83,
-  0x74, 0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74, 0xa0, 0x87,
-  0x19, 0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e, 0xe4, 0x90,
-  0x0e, 0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e, 0x33, 0x20,
-  0x28, 0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21, 0x1c, 0xdc,
-  0x81, 0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01, 0x1e, 0x66,
-  0x18, 0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc, 0x50, 0x24,
-  0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77, 0x78, 0x07,
-  0x78, 0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e, 0x33, 0x1e,
-  0x6a, 0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x7e,
-  0x01, 0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61, 0x06, 0x54,
-  0x85, 0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0, 0x43, 0x39,
-  0xfc, 0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0, 0xc3, 0x8c,
-  0xc5, 0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74, 0x08, 0x07,
-  0x7a, 0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e, 0xec, 0xc0,
-  0x0e, 0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41, 0x1e, 0xe4,
-  0xe1, 0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48, 0x19, 0x3b,
-  0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c, 0x43, 0x39,
-  0xcc, 0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4, 0x03, 0x3c,
-  0xcc, 0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71, 0x08, 0x87,
-  0x71, 0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f, 0xed, 0xe0,
-  0x06, 0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f, 0xf6, 0x50,
-  0x0e, 0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f, 0xf3, 0xe0,
-  0x06, 0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23, 0xe2, 0xec,
-  0x61, 0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21, 0x1d, 0xe6,
-  0x21, 0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21, 0x1f, 0x66,
-  0x20, 0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94, 0x83, 0x39,
-  0xcc, 0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a, 0x08, 0x07,
-  0x7a, 0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e, 0xe5, 0x10,
-  0x0e, 0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e, 0xf3, 0x90,
-  0x0e, 0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74, 0x90, 0x07,
-  0x37, 0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74, 0x78, 0x07,
-  0x77, 0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78, 0x98, 0x07,
-  0x00, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x06, 0x70, 0x54, 0xd2, 0xcf, 0x00, 0x48, 0x03, 0x61, 0x20, 0x00, 0x00,
-  0x2c, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10, 0x00, 0x00, 0x00,
-  0x0c, 0x00, 0x00, 0x00, 0xe4, 0xca, 0xa0, 0x08, 0x4a, 0x80, 0xda, 0x58,
-  0x84, 0x20, 0x08, 0x02, 0xad, 0x19, 0x80, 0x32, 0xa0, 0x36, 0x07, 0x21,
-  0x04, 0x44, 0x34, 0x02, 0x30, 0x16, 0x11, 0x04, 0x41, 0x40, 0x63, 0x06,
-  0x60, 0x06, 0x80, 0xc4, 0x0c, 0x00, 0x81, 0x31, 0x02, 0x10, 0x04, 0x41,
-  0xfc, 0x03, 0x00, 0x00, 0x83, 0x0c, 0x0f, 0x71, 0xcc, 0x31, 0x04, 0x42,
-  0x32, 0x5e, 0x01, 0x51, 0x9a, 0x46, 0x51, 0x50, 0x06, 0x19, 0xa8, 0x43,
-  0x31, 0x21, 0x90, 0xcf, 0x78, 0x05, 0x85, 0x79, 0x5e, 0x44, 0x41, 0x19,
-  0x64, 0xc0, 0x96, 0xc6, 0x84, 0x40, 0x3e, 0x16, 0x14, 0xf0, 0x19, 0xaf,
-  0xc8, 0xba, 0x31, 0x18, 0x83, 0x8b, 0x82, 0x32, 0xc8, 0xd0, 0x41, 0x97,
-  0x09, 0x81, 0x7c, 0xac, 0x08, 0xe0, 0x33, 0x5e, 0xe1, 0x89, 0x01, 0x1a,
-  0xa0, 0x41, 0x47, 0x41, 0xb1, 0x21, 0x80, 0xcf, 0x6c, 0x43, 0x25, 0x01,
-  0xb3, 0x0d, 0x81, 0x10, 0x64, 0x10, 0x10, 0x03, 0x05, 0x00, 0x00, 0x00,
-  0x5b, 0x86, 0x21, 0x90, 0x83, 0x2d, 0xc3, 0x11, 0xc8, 0xc1, 0x96, 0x81,
-  0x09, 0xe4, 0x60, 0xcb, 0x10, 0x05, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-const unsigned int cube_vert_metallib_len = 3104;
-const unsigned char cube_frag_metallib[] = {
-  0x4d, 0x54, 0x4c, 0x42, 0x01, 0x80, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x0b, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x09, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x4e, 0x41, 0x4d, 0x45, 0x08, 0x00, 0x66, 0x73, 0x5f, 0x6d, 0x61, 0x69,
-  0x6e, 0x00, 0x54, 0x59, 0x50, 0x45, 0x01, 0x00, 0x01, 0x48, 0x41, 0x53,
-  0x48, 0x20, 0x00, 0x34, 0xec, 0xae, 0x80, 0xf9, 0x6c, 0xc3, 0x95, 0x5c,
-  0x2b, 0x37, 0xa6, 0xe4, 0xa1, 0x39, 0x3d, 0x31, 0xfc, 0x84, 0xc2, 0x86,
-  0x79, 0x85, 0x6e, 0x85, 0xc6, 0x60, 0x8d, 0x42, 0x7d, 0x5e, 0xd0, 0x4f,
-  0x46, 0x46, 0x54, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x45, 0x52, 0x53, 0x08, 0x00, 0x01,
-  0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04,
-  0x00, 0x00, 0x00, 0x45, 0x4e, 0x44, 0x54, 0x04, 0x00, 0x00, 0x00, 0x45,
-  0x4e, 0x44, 0x54, 0xde, 0xc0, 0x17, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x14,
-  0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x42,
-  0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0x0b,
-  0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x07,
-  0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92,
-  0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62, 0x80,
-  0x10, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0x84, 0x10, 0x32, 0x14, 0x38,
-  0x08, 0x18, 0x49, 0x0a, 0x32, 0x44, 0x24, 0x48, 0x0a, 0x90, 0x21, 0x23,
-  0xc4, 0x52, 0x80, 0x0c, 0x19, 0x21, 0x72, 0x24, 0x07, 0xc8, 0x08, 0x11,
-  0x62, 0xa8, 0xa0, 0xa8, 0x40, 0xc6, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x51,
-  0x18, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x1b, 0x7e, 0x24, 0xf8, 0xff,
-  0xff, 0xff, 0xff, 0x01, 0x90, 0x00, 0x8a, 0x08, 0x07, 0x78, 0x80, 0x07,
-  0x79, 0x78, 0x07, 0x7c, 0x68, 0x03, 0x73, 0xa8, 0x07, 0x77, 0x18, 0x87,
-  0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07, 0x7a, 0x40, 0x07,
-  0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xda, 0x21, 0x1d, 0xdc,
-  0xa1, 0x0d, 0xd8, 0xa1, 0x1c, 0xce, 0x21, 0x1c, 0xd8, 0xa1, 0x0d, 0xec,
-  0xa1, 0x1c, 0xc6, 0x81, 0x1e, 0xde, 0x41, 0x1e, 0xda, 0xe0, 0x1e, 0xd2,
-  0x81, 0x1c, 0xe8, 0x01, 0x1d, 0x80, 0x38, 0x90, 0x03, 0x3c, 0x00, 0x06,
-  0x77, 0x78, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x48, 0x07, 0x76, 0xa0, 0x87,
-  0x74, 0x70, 0x87, 0x79, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x30, 0x07,
-  0x79, 0x08, 0x87, 0x76, 0x28, 0x87, 0x36, 0x80, 0x87, 0x77, 0x48, 0x07,
-  0x77, 0xa0, 0x87, 0x72, 0x90, 0x87, 0x36, 0x28, 0x07, 0x76, 0x48, 0x87,
-  0x76, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xcc, 0x41, 0x1e, 0xc2, 0xa1, 0x1d, 0xca, 0xa1, 0x0d, 0xe0,
-  0xe1, 0x1d, 0xd2, 0xc1, 0x1d, 0xe8, 0xa1, 0x1c, 0xe4, 0xa1, 0x0d, 0xca,
-  0x81, 0x1d, 0xd2, 0xa1, 0x1d, 0xda, 0xc0, 0x1d, 0xde, 0xc1, 0x1d, 0xda,
-  0x80, 0x1d, 0xca, 0x21, 0x1c, 0xcc, 0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87,
-  0x72, 0x00, 0x08, 0x77, 0x78, 0x87, 0x36, 0x48, 0x07, 0x77, 0x30, 0x87,
-  0x79, 0x68, 0x03, 0x73, 0x80, 0x87, 0x36, 0x68, 0x87, 0x70, 0xa0, 0x07,
-  0x74, 0x00, 0xe8, 0x41, 0x1e, 0xea, 0xa1, 0x1c, 0x00, 0xc2, 0x1d, 0xde,
-  0xa1, 0x0d, 0xdc, 0x21, 0x1c, 0xdc, 0x61, 0x1e, 0xda, 0xc0, 0x1c, 0xe0,
-  0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00, 0x7a, 0x90, 0x87,
-  0x7a, 0x28, 0x07, 0x80, 0x70, 0x87, 0x77, 0x68, 0x83, 0x79, 0x48, 0x87,
-  0x73, 0x70, 0x87, 0x72, 0x20, 0x87, 0x36, 0xd0, 0x87, 0x72, 0x90, 0x87,
-  0x77, 0x98, 0x87, 0x36, 0x30, 0x07, 0x78, 0x68, 0x83, 0x76, 0x08, 0x07,
-  0x7a, 0x40, 0x07, 0x80, 0x1e, 0xe4, 0xa1, 0x1e, 0xca, 0x01, 0x20, 0xdc,
-  0xe1, 0x1d, 0xda, 0x80, 0x1e, 0xe4, 0x21, 0x1c, 0xe0, 0x01, 0x1e, 0xd2,
-  0xc1, 0x1d, 0xce, 0xa1, 0x0d, 0xda, 0x21, 0x1c, 0xe8, 0x01, 0x1d, 0x00,
-  0x7a, 0x90, 0x87, 0x7a, 0x28, 0x07, 0x80, 0x98, 0x07, 0x7a, 0x08, 0x87,
-  0x71, 0x58, 0x87, 0x36, 0x80, 0x07, 0x79, 0x78, 0x07, 0x7a, 0x28, 0x87,
-  0x71, 0xa0, 0x87, 0x77, 0x90, 0x87, 0x36, 0x10, 0x87, 0x7a, 0x30, 0x07,
-  0x73, 0x28, 0x07, 0x79, 0x68, 0x83, 0x79, 0x48, 0x07, 0x7d, 0x28, 0x07,
-  0x00, 0x0f, 0x00, 0xa2, 0x1e, 0xdc, 0x61, 0x1e, 0xc2, 0xc1, 0x1c, 0xca,
-  0xa1, 0x0d, 0xcc, 0x01, 0x1e, 0xda, 0xa0, 0x1d, 0xc2, 0x81, 0x1e, 0xd0,
-  0x01, 0xa0, 0x07, 0x79, 0xa8, 0x87, 0x72, 0x00, 0x36, 0x10, 0x42, 0x00,
-  0x58, 0x00, 0x00, 0x49, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13,
-  0x84, 0x40, 0x00, 0x89, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x32,
-  0x22, 0x08, 0x09, 0x20, 0x64, 0x85, 0x04, 0x13, 0x22, 0xa4, 0x84, 0x04,
-  0x13, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x88, 0x8c, 0x0b,
-  0x84, 0x84, 0x4c, 0x10, 0x20, 0x33, 0x00, 0xc3, 0x08, 0x04, 0x50, 0x86,
-  0x88, 0x20, 0x19, 0x08, 0x98, 0x23, 0x00, 0x83, 0x14, 0xa8, 0x11, 0x00,
-  0x00, 0x00, 0x00, 0x13, 0xb2, 0x70, 0x48, 0x07, 0x79, 0xb0, 0x03, 0x3a,
-  0x68, 0x83, 0x70, 0x80, 0x07, 0x78, 0x60, 0x87, 0x72, 0x68, 0x83, 0x76,
-  0x08, 0x87, 0x71, 0x78, 0x87, 0x79, 0xc0, 0x87, 0x38, 0x80, 0x03, 0x37,
-  0x88, 0x83, 0x38, 0x70, 0x03, 0x38, 0xd8, 0x70, 0x1b, 0xe5, 0xd0, 0x06,
-  0xf0, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x78, 0xa0, 0x07,
-  0x78, 0xd0, 0x06, 0xe9, 0x80, 0x07, 0x7a, 0x80, 0x07, 0x7a, 0x80, 0x07,
-  0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07, 0x76, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x6d, 0x90, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07,
-  0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
-  0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0e,
-  0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x6d, 0x60, 0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x60, 0x07, 0x7a, 0x10, 0x07,
-  0x76, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x72, 0x40, 0x07,
-  0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x60, 0x0f,
-  0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07,
-  0x6d, 0x60, 0x0f, 0x74, 0x80, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xa0, 0x07,
-  0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07,
-  0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0x60, 0x0f, 0x79, 0x60, 0x07,
-  0x7a, 0x10, 0x07, 0x72, 0x80, 0x07, 0x7a, 0x10, 0x07, 0x72, 0x80, 0x07,
-  0x6d, 0x60, 0x0f, 0x71, 0x20, 0x07, 0x78, 0xa0, 0x07, 0x71, 0x20, 0x07,
-  0x78, 0xa0, 0x07, 0x71, 0x20, 0x07, 0x78, 0xd0, 0x06, 0xf6, 0x10, 0x07,
-  0x79, 0x20, 0x07, 0x7a, 0x20, 0x07, 0x75, 0x60, 0x07, 0x7a, 0x20, 0x07,
-  0x75, 0x60, 0x07, 0x6d, 0x60, 0x0f, 0x72, 0x50, 0x07, 0x76, 0xa0, 0x07,
-  0x72, 0x50, 0x07, 0x76, 0xa0, 0x07, 0x72, 0x50, 0x07, 0x76, 0xd0, 0x06,
-  0xf6, 0x50, 0x07, 0x71, 0x20, 0x07, 0x7a, 0x50, 0x07, 0x71, 0x20, 0x07,
-  0x7a, 0x50, 0x07, 0x71, 0x20, 0x07, 0x6d, 0x60, 0x0f, 0x71, 0x00, 0x07,
-  0x72, 0x40, 0x07, 0x7a, 0x10, 0x07, 0x70, 0x20, 0x07, 0x74, 0xa0, 0x07,
-  0x71, 0x00, 0x07, 0x72, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07,
-  0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0x30, 0x84, 0x19, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x00, 0x00, 0x08,
-  0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x0c, 0x19, 0x11, 0x4c, 0x90, 0x8c,
-  0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0xaa, 0x12, 0x18, 0x01, 0x28, 0x82,
-  0x42, 0x28, 0x08, 0xb2, 0xb1, 0x04, 0x47, 0x00, 0x00, 0x00, 0x00, 0x79,
-  0x18, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x10, 0x97,
-  0x29, 0xa2, 0x25, 0x10, 0xab, 0x32, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x21,
-  0x46, 0x31, 0x10, 0x80, 0x61, 0x50, 0xb9, 0x1b, 0x43, 0x0b, 0x93, 0xfb,
-  0x9a, 0x4b, 0xd3, 0x2b, 0x1b, 0x62, 0x14, 0x01, 0x21, 0x14, 0x04, 0xe3,
-  0x20, 0x08, 0x0e, 0x8e, 0xad, 0x0c, 0xa4, 0xad, 0x8c, 0x2e, 0x8c, 0x0d,
-  0xc4, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x0d, 0x64, 0x46, 0x06, 0x46,
-  0x66, 0xc6, 0x25, 0x06, 0x26, 0x06, 0x04, 0xa5, 0xad, 0x8c, 0x2e, 0x8c,
-  0xcd, 0xac, 0xac, 0x65, 0x46, 0x06, 0x46, 0x66, 0xc6, 0x25, 0x06, 0x26,
-  0x26, 0x65, 0x88, 0x40, 0x10, 0x43, 0x8c, 0x22, 0x28, 0x8a, 0x42, 0x60,
-  0xd1, 0x54, 0x46, 0x17, 0xc6, 0x36, 0x04, 0x21, 0x8e, 0x22, 0x28, 0x82,
-  0x42, 0xe0, 0x16, 0x96, 0x26, 0xe7, 0x32, 0xf6, 0xd6, 0x06, 0x97, 0xc6,
-  0x56, 0xe6, 0x42, 0x56, 0xe6, 0xf6, 0x26, 0xd7, 0x36, 0xf7, 0x45, 0x96,
-  0x36, 0x17, 0x26, 0xc6, 0x56, 0x36, 0x44, 0x20, 0x12, 0x72, 0x61, 0x69,
-  0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x61,
-  0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62,
-  0x6c, 0x65, 0x43, 0x04, 0x62, 0x61, 0x19, 0x84, 0xa5, 0xc9, 0xb9, 0x8c,
-  0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xb9, 0x98, 0xc9, 0x85, 0xb5, 0x95,
-  0x89, 0xd5, 0x99, 0x99, 0x95, 0xc9, 0x7d, 0x99, 0x95, 0xd1, 0x8d, 0xa1,
-  0x7d, 0x91, 0xa5, 0xcd, 0x85, 0x89, 0xb1, 0x95, 0x0d, 0x11, 0x88, 0x86,
-  0x51, 0x58, 0x9a, 0x9c, 0x8b, 0x5c, 0x99, 0x1b, 0x59, 0x99, 0xdc, 0x17,
-  0x5d, 0x98, 0xdc, 0x59, 0x19, 0x1d, 0xa3, 0xb0, 0x34, 0x39, 0x97, 0x30,
-  0xb9, 0xb3, 0x2f, 0xba, 0x3c, 0xb8, 0xb2, 0x2f, 0xb7, 0xb0, 0xb6, 0x32,
-  0x1a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x43, 0x10, 0xe2, 0x29, 0x04,
-  0x02, 0x22, 0xa2, 0x21, 0x02, 0x21, 0x51, 0x0a, 0x4b, 0x93, 0x73, 0x31,
-  0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0xfb, 0x4a, 0x73, 0x83, 0xab,
-  0xa3, 0xe3, 0x52, 0x37, 0x57, 0x26, 0x87, 0xc2, 0xf6, 0x36, 0xe6, 0x06,
-  0x93, 0x42, 0x25, 0x2c, 0x4d, 0xce, 0x65, 0xac, 0xcc, 0x8d, 0xae, 0x4c,
-  0x8e, 0x4f, 0x58, 0x9a, 0x9c, 0x0b, 0x5c, 0x99, 0xdc, 0x1c, 0x5c, 0xd9,
-  0x18, 0x5d, 0x9a, 0x5d, 0x19, 0x99, 0xb0, 0x34, 0x39, 0x97, 0x30, 0xb9,
-  0xb3, 0x2f, 0xb7, 0xb0, 0xb6, 0x32, 0x16, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
-  0x43, 0xa4, 0x42, 0x20, 0x28, 0xa2, 0x22, 0x2c, 0xe2, 0x22, 0x20, 0x22,
-  0x22, 0x30, 0x22, 0x23, 0x13, 0x96, 0x26, 0xe7, 0x02, 0xf7, 0x36, 0x97,
-  0x46, 0x97, 0xf6, 0xe6, 0x46, 0x29, 0x2c, 0x4d, 0xce, 0xc5, 0xed, 0xed,
-  0x0b, 0xae, 0x4c, 0x6e, 0x0e, 0xae, 0x6c, 0x8c, 0x2e, 0xcd, 0xae, 0x8c,
-  0x08, 0xdc, 0xdb, 0x5c, 0x1a, 0x5d, 0xda, 0x9b, 0xdb, 0x10, 0xa8, 0x08,
-  0x88, 0x8d, 0xb0, 0x08, 0x8e, 0x80, 0x88, 0x88, 0xc0, 0x88, 0x6e, 0x08,
-  0x41, 0x68, 0x84, 0x37, 0xc4, 0x18, 0x00, 0x62, 0x22, 0xbe, 0x11, 0x11,
-  0x3b, 0xb0, 0x83, 0x3d, 0xb4, 0x83, 0x1b, 0xb4, 0xc3, 0x3b, 0x90, 0x43,
-  0x3d, 0xb0, 0x43, 0x39, 0xb8, 0x81, 0x39, 0xb0, 0x43, 0x38, 0x9c, 0xc3,
-  0x3c, 0x4c, 0x11, 0x82, 0x61, 0x84, 0xc2, 0x0e, 0xec, 0x60, 0x0f, 0xed,
-  0xe0, 0x06, 0xe9, 0x40, 0x0e, 0xe5, 0xe0, 0x0e, 0xf4, 0x30, 0x25, 0x28,
-  0x46, 0x2c, 0xe1, 0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xf6, 0x50, 0x0e, 0xf2,
-  0x30, 0x0f, 0xe9, 0xf0, 0x0e, 0xee, 0x30, 0x25, 0x30, 0x46, 0x50, 0xe1,
-  0x90, 0x0e, 0xf2, 0xe0, 0x06, 0xec, 0x10, 0x0e, 0xee, 0x70, 0x0e, 0xf5,
-  0x10, 0x0e, 0xe7, 0x50, 0x0e, 0xbf, 0x60, 0x0f, 0xe5, 0x20, 0x0f, 0xf3,
-  0x90, 0x0e, 0xef, 0xe0, 0x0e, 0x53, 0x02, 0x64, 0xc4, 0x14, 0x0e, 0xe9,
-  0x20, 0x0f, 0x6e, 0x30, 0x0e, 0xef, 0xd0, 0x0e, 0xf0, 0x90, 0x0e, 0xec,
-  0x50, 0x0e, 0xbf, 0xf0, 0x0e, 0xf0, 0x40, 0x0f, 0xe9, 0xf0, 0x0e, 0xee,
-  0x30, 0x0f, 0x53, 0x06, 0x85, 0x71, 0x46, 0x30, 0xe1, 0x90, 0x0e, 0xf2,
-  0xe0, 0x06, 0xe6, 0x20, 0x0f, 0xe1, 0x70, 0x0e, 0xed, 0x50, 0x0e, 0xee,
-  0x40, 0x0f, 0x53, 0x02, 0x30, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0xa5,
-  0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14,
-  0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79,
-  0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e,
-  0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1,
-  0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc,
-  0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74,
-  0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a,
-  0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e,
-  0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e,
-  0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21,
-  0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0,
-  0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc,
-  0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72,
-  0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76,
-  0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f,
-  0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c,
-  0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03,
-  0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1,
-  0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61,
-  0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8,
-  0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94,
-  0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0,
-  0xc3, 0x0c, 0xc7, 0x69, 0x87, 0x70, 0x58, 0x87, 0x72, 0x70, 0x83, 0x74,
-  0x68, 0x07, 0x78, 0x60, 0x87, 0x74, 0x18, 0x87, 0x74, 0xa0, 0x87, 0x19,
-  0xce, 0x53, 0x0f, 0xee, 0x00, 0x0f, 0xf2, 0x50, 0x0e, 0xe4, 0x90, 0x0e,
-  0xe3, 0x40, 0x0f, 0xe1, 0x20, 0x0e, 0xec, 0x50, 0x0e, 0x33, 0x20, 0x28,
-  0x1d, 0xdc, 0xc1, 0x1e, 0xc2, 0x41, 0x1e, 0xd2, 0x21, 0x1c, 0xdc, 0x81,
-  0x1e, 0xdc, 0xe0, 0x1c, 0xe4, 0xe1, 0x1d, 0xea, 0x01, 0x1e, 0x66, 0x18,
-  0x51, 0x38, 0xb0, 0x43, 0x3a, 0x9c, 0x83, 0x3b, 0xcc, 0x50, 0x24, 0x76,
-  0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x60, 0x87, 0x77, 0x78, 0x07, 0x78,
-  0x98, 0x51, 0x4c, 0xf4, 0x90, 0x0f, 0xf0, 0x50, 0x0e, 0x33, 0x1e, 0x6a,
-  0x1e, 0xca, 0x61, 0x1c, 0xe8, 0x21, 0x1d, 0xde, 0xc1, 0x1d, 0x7e, 0x01,
-  0x1e, 0xe4, 0xa1, 0x1c, 0xcc, 0x21, 0x1d, 0xf0, 0x61, 0x06, 0x54, 0x85,
-  0x83, 0x38, 0xcc, 0xc3, 0x3b, 0xb0, 0x43, 0x3d, 0xd0, 0x43, 0x39, 0xfc,
-  0xc2, 0x3c, 0xe4, 0x43, 0x3b, 0x88, 0xc3, 0x3b, 0xb0, 0xc3, 0x8c, 0xc5,
-  0x0a, 0x87, 0x79, 0x98, 0x87, 0x77, 0x18, 0x87, 0x74, 0x08, 0x07, 0x7a,
-  0x28, 0x07, 0x72, 0x98, 0x81, 0x5c, 0xe3, 0x10, 0x0e, 0xec, 0xc0, 0x0e,
-  0xe5, 0x50, 0x0e, 0xf3, 0x30, 0x23, 0xc1, 0xd2, 0x41, 0x1e, 0xe4, 0xe1,
-  0x17, 0xd8, 0xe1, 0x1d, 0xde, 0x01, 0x1e, 0x66, 0x48, 0x19, 0x3b, 0xb0,
-  0x83, 0x3d, 0xb4, 0x83, 0x1b, 0x84, 0xc3, 0x38, 0x8c, 0x43, 0x39, 0xcc,
-  0xc3, 0x3c, 0xb8, 0xc1, 0x39, 0xc8, 0xc3, 0x3b, 0xd4, 0x03, 0x3c, 0xcc,
-  0x48, 0xb4, 0x71, 0x08, 0x07, 0x76, 0x60, 0x07, 0x71, 0x08, 0x87, 0x71,
-  0x58, 0x87, 0x19, 0xdb, 0xc6, 0x0e, 0xec, 0x60, 0x0f, 0xed, 0xe0, 0x06,
-  0xf0, 0x20, 0x0f, 0xe5, 0x30, 0x0f, 0xe5, 0x20, 0x0f, 0xf6, 0x50, 0x0e,
-  0x6e, 0x10, 0x0e, 0xe3, 0x30, 0x0e, 0xe5, 0x30, 0x0f, 0xf3, 0xe0, 0x06,
-  0xe9, 0xe0, 0x0e, 0xe4, 0x50, 0x0e, 0xf8, 0x30, 0x23, 0xe2, 0xec, 0x61,
-  0x1c, 0xc2, 0x81, 0x1d, 0xd8, 0xe1, 0x17, 0xec, 0x21, 0x1d, 0xe6, 0x21,
-  0x1d, 0xc4, 0x21, 0x1d, 0xd8, 0x21, 0x1d, 0xe8, 0x21, 0x1f, 0x66, 0x20,
-  0x9d, 0x3b, 0xbc, 0x43, 0x3d, 0xb8, 0x03, 0x39, 0x94, 0x83, 0x39, 0xcc,
-  0x58, 0xbc, 0x70, 0x70, 0x07, 0x77, 0x78, 0x07, 0x7a, 0x08, 0x07, 0x7a,
-  0x48, 0x87, 0x77, 0x70, 0x87, 0x19, 0xce, 0x87, 0x0e, 0xe5, 0x10, 0x0e,
-  0xf0, 0x10, 0x0e, 0xec, 0xc0, 0x0e, 0xef, 0x30, 0x0e, 0xf3, 0x90, 0x0e,
-  0xf4, 0x50, 0x0e, 0x33, 0x28, 0x30, 0x08, 0x87, 0x74, 0x90, 0x07, 0x37,
-  0x30, 0x87, 0x7a, 0x70, 0x87, 0x71, 0xa0, 0x87, 0x74, 0x78, 0x07, 0x77,
-  0xf8, 0x85, 0x73, 0x90, 0x87, 0x77, 0xa8, 0x07, 0x78, 0x98, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06,
-  0x70, 0x14, 0xd2, 0xcf, 0x00, 0x48, 0x03, 0x61, 0x20, 0x00, 0x00, 0x02,
-  0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00
-};
-const unsigned int cube_frag_metallib_len = 2571;
-#endif

+ 0 - 150
test/testgpu/testgpu_spirv.h

@@ -1,150 +0,0 @@
-const unsigned char cube_vert_spv[] = {
-  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00,
-  0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30,
-  0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x22, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0xc2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f,
-  0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x06, 0x00, 0x16, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50,
-  0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00,
-  0x06, 0x00, 0x06, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00,
-  0x06, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65,
-  0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x43, 0x6c, 0x69, 0x70, 0x44,
-  0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x00, 0x06, 0x00, 0x07, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x43,
-  0x75, 0x6c, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x00,
-  0x05, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x55, 0x42, 0x4f, 0x00,
-  0x06, 0x00, 0x07, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f,
-  0x6a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00,
-  0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x22, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
-  0x0a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f,
-  0x15, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x06, 0x00, 0x16, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
-  0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
-  0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00,
-  0x1c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x22, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x27, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x91, 0x00, 0x05, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
-  0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00,
-  0x29, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
-  0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
-};
-const unsigned int cube_vert_spv_len = 1340;
-const unsigned char cube_frag_spv[] = {
-  0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30,
-  0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x5f,
-  0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
-  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
-};
-const unsigned int cube_frag_spv_len = 380;

+ 355 - 37
test/testgpu_spinning_cube.c

@@ -10,6 +10,16 @@
   freely.
 */
 
+/* Note: This demo shows an example of using the SDL 2D renderer in combination
+ *       with the full GPU API. This is purely to demonstrate offline rendering
+ *       functionality of the GPU 2D renderer, and is not generally recommended
+ *       for real applications.
+ *
+ *       A blog post demonstrating a highly efficient method for 2D sprite batching
+ *       with the GPU API is available here:
+ *          https://moonside.games/posts/sdl-gpu-sprite-batcher/
+ */
+
 #include <stdlib.h>
 
 #ifdef __EMSCRIPTEN__
@@ -20,10 +30,21 @@
 #include <SDL3/SDL_gpu.h>
 #include <SDL3/SDL_main.h>
 
+#include "icon.h"
+
 /* Regenerate the shaders with testgpu/build-shaders.sh */
-#include "testgpu/testgpu_spirv.h"
-#include "testgpu/testgpu_dxil.h"
-#include "testgpu/testgpu_metallib.h"
+#include "testgpu/cube.frag.dxil.h"
+#include "testgpu/cube.frag.msl.h"
+#include "testgpu/cube.frag.spv.h"
+#include "testgpu/cube.vert.dxil.h"
+#include "testgpu/cube.vert.msl.h"
+#include "testgpu/cube.vert.spv.h"
+#include "testgpu/overlay.frag.dxil.h"
+#include "testgpu/overlay.frag.msl.h"
+#include "testgpu/overlay.frag.spv.h"
+#include "testgpu/overlay.vert.dxil.h"
+#include "testgpu/overlay.vert.msl.h"
+#include "testgpu/overlay.vert.spv.h"
 
 #define TESTGPU_SUPPORTED_FORMATS (SDL_GPU_SHADERFORMAT_SPIRV | SDL_GPU_SHADERFORMAT_DXBC | SDL_GPU_SHADERFORMAT_DXIL | SDL_GPU_SHADERFORMAT_METALLIB)
 
@@ -38,20 +59,304 @@ typedef struct RenderState
     SDL_GPUSampleCount sample_count;
 } RenderState;
 
+#define NUM_SPRITES         100
+#define MAX_SPRITE_SPEED    1
+
+typedef struct SpriteRenderState
+{
+    SDL_Renderer *renderer;
+    SDL_Texture *sprite;
+    SDL_GPUGraphicsPipeline *pipeline;
+    SDL_GPUSampler *sampler;
+    bool show_sprites;
+} SpriteRenderState;
+
+typedef struct SpriteWindowState
+{
+    bool initialized;
+    SDL_Texture *target;
+    SDL_GPUTexture *texture;
+    SDL_FRect positions[NUM_SPRITES];
+    SDL_FPoint velocities[NUM_SPRITES];
+} SpriteWindowState;
+
 typedef struct WindowState
 {
     int angle_x, angle_y, angle_z;
     SDL_GPUTexture *tex_depth, *tex_msaa, *tex_resolve;
     Uint32 prev_drawablew, prev_drawableh;
+    SpriteWindowState sprite_state;
 } WindowState;
 
 static SDL_GPUDevice *gpu_device = NULL;
 static RenderState render_state;
+static SpriteRenderState sprite_render_state;
 static SDLTest_CommonState *state = NULL;
 static WindowState *window_states = NULL;
 
+static void QuitSpriteOverlay(SpriteRenderState *rs)
+{
+    int i;
+
+    if (!rs->renderer) {
+        return;
+    }
+
+    SDL_ReleaseGPUSampler(gpu_device, rs->sampler);
+    SDL_ReleaseGPUGraphicsPipeline(gpu_device, rs->pipeline);
+
+    for (i = 0; i < state->num_windows; ++i) {
+        SpriteWindowState *ws = &window_states[i].sprite_state;
+        if (ws->target) {
+            SDL_DestroyTexture(ws->target);
+            ws->target = NULL;
+            ws->texture = NULL;
+        }
+    }
+    SDL_DestroyRenderer(rs->renderer);
+
+    SDL_zerop(rs);
+}
+
+static SDL_Texture *CreateSpriteTexture(SDL_Renderer *renderer, unsigned char *data, unsigned int len)
+{
+    SDL_Texture *texture = NULL;
+    SDL_Surface *surface;
+    SDL_IOStream *src = SDL_IOFromConstMem(data, len);
+    if (src) {
+        surface = SDL_LoadBMP_IO(src, true);
+        if (surface) {
+            /* Treat white as transparent */
+            SDL_SetSurfaceColorKey(surface, true, SDL_MapSurfaceRGB(surface, 255, 255, 255));
+
+            texture = SDL_CreateTextureFromSurface(renderer, surface);
+            SDL_DestroySurface(surface);
+        }
+    }
+    return texture;
+}
+
+static SDL_GPUShader *LoadOverlayShader(bool is_vertex)
+{
+    SDL_GPUShaderCreateInfo createinfo;
+    SDL_zero(createinfo);
+    createinfo.num_samplers = is_vertex ? 0 : 1;
+
+    SDL_GPUShaderFormat format = SDL_GetGPUShaderFormats(gpu_device);
+    if (format & SDL_GPU_SHADERFORMAT_DXIL) {
+        createinfo.format = SDL_GPU_SHADERFORMAT_DXIL;
+        createinfo.code = is_vertex ? overlay_vert_dxil : overlay_frag_dxil;
+        createinfo.code_size = is_vertex ? overlay_vert_dxil_len : overlay_frag_dxil_len;
+    } else if (format & SDL_GPU_SHADERFORMAT_MSL) {
+        createinfo.format = SDL_GPU_SHADERFORMAT_MSL;
+        createinfo.code = is_vertex ? overlay_vert_msl : overlay_frag_msl;
+        createinfo.code_size = is_vertex ? overlay_vert_msl_len : overlay_frag_msl_len;
+    } else {
+        createinfo.format = SDL_GPU_SHADERFORMAT_SPIRV;
+        createinfo.code = is_vertex ? overlay_vert_spv : overlay_frag_spv;
+        createinfo.code_size = is_vertex ? overlay_vert_spv_len : overlay_frag_spv_len;
+    }
+
+    createinfo.stage = is_vertex ? SDL_GPU_SHADERSTAGE_VERTEX : SDL_GPU_SHADERSTAGE_FRAGMENT;
+    return SDL_CreateGPUShader(gpu_device, &createinfo);
+}
+
+static bool InitSpriteOverlay(SpriteRenderState *rs, SDL_Window *window)
+{
+    SDL_GPUShader *vertex_shader, *fragment_shader;
+
+    rs->renderer = SDL_CreateGPURenderer(gpu_device, NULL);
+    if (!rs->renderer) {
+        SDL_Log("Couldn't create renderer: %s\n", SDL_GetError());
+        return false;
+    }
+
+    rs->sprite = CreateSpriteTexture(rs->renderer, icon_bmp, icon_bmp_len);
+    if (!rs->sprite) {
+        SDL_Log("Couldn't create sprite: %s\n", SDL_GetError());
+        QuitSpriteOverlay(rs);
+        return false;
+    }
+
+    vertex_shader = LoadOverlayShader(true);
+    if (!vertex_shader) {
+        SDL_Log("Couldn't create vertex shader: %s\n", SDL_GetError());
+        QuitSpriteOverlay(rs);
+        return false;
+    }
+
+    fragment_shader = LoadOverlayShader(false);
+    if (!fragment_shader) {
+        SDL_Log("Couldn't create vertex shader: %s\n", SDL_GetError());
+        SDL_ReleaseGPUShader(gpu_device, vertex_shader);
+        QuitSpriteOverlay(rs);
+        return false;
+    }
+
+    SDL_GPUColorTargetDescription ctd;
+    SDL_zero(ctd);
+    ctd.format = SDL_GetGPUSwapchainTextureFormat(gpu_device, window);
+    ctd.blend_state.enable_blend = true;
+    ctd.blend_state.color_write_mask = 0xF;
+    ctd.blend_state.color_blend_op = SDL_GPU_BLENDOP_ADD;
+    ctd.blend_state.alpha_blend_op = SDL_GPU_BLENDOP_ADD;
+    ctd.blend_state.src_color_blendfactor = SDL_GPU_BLENDFACTOR_SRC_ALPHA;
+    ctd.blend_state.dst_color_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA;
+    ctd.blend_state.src_alpha_blendfactor = SDL_GPU_BLENDFACTOR_SRC_ALPHA;
+    ctd.blend_state.dst_alpha_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA;
+
+    SDL_GPUGraphicsPipelineCreateInfo pci;
+    SDL_zero(pci);
+    pci.target_info.num_color_targets = 1;
+    pci.target_info.color_target_descriptions = &ctd;
+    pci.primitive_type = SDL_GPU_PRIMITIVETYPE_TRIANGLELIST;
+    pci.vertex_shader = vertex_shader;
+    pci.fragment_shader = fragment_shader;
+    pci.rasterizer_state.enable_depth_clip = true;
+    rs->pipeline = SDL_CreateGPUGraphicsPipeline(gpu_device, &pci);
+    SDL_ReleaseGPUShader(gpu_device, vertex_shader);
+    SDL_ReleaseGPUShader(gpu_device, fragment_shader);
+    if (!rs->pipeline) {
+        SDL_Log("Couldn't create pipeline: %s", SDL_GetError());
+        QuitSpriteOverlay(rs);
+        return false;
+    }
+
+    SDL_GPUSamplerCreateInfo sci;
+    SDL_zero(sci);
+    sci.min_filter = SDL_GPU_FILTER_NEAREST;
+    sci.mag_filter = SDL_GPU_FILTER_NEAREST;
+    sci.mipmap_mode = SDL_GPU_SAMPLERMIPMAPMODE_NEAREST;
+    sci.address_mode_u = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE;
+    sci.address_mode_v = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE;
+    sci.address_mode_w = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE;
+    rs->sampler = SDL_CreateGPUSampler(gpu_device, &sci);
+    if (!rs->sampler) {
+        SDL_Log("Couldn't create sampler: %s", SDL_GetError());
+        QuitSpriteOverlay(rs);
+        return false;
+    }
+
+    return true;
+}
+
+static void UpdateRenderTarget(SpriteRenderState *rs, SpriteWindowState *ws, int w, int h)
+{
+    SDL_Renderer *renderer = rs->renderer;
+    SDL_Texture *target = ws->target;
+
+    if (!target || target->w != w || target->w != h) {
+        if (target) {
+            SDL_DestroyTexture(target);
+            ws->target = NULL;
+        }
+
+        target = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_BGRA32, SDL_TEXTUREACCESS_TARGET, w, h);
+        if (!target) {
+            SDL_Log("Couldn't create render target: %s", SDL_GetError());
+            return;
+        }
+        SDL_SetRenderTarget(renderer, target);
+
+        ws->target = target;
+        ws->texture = (SDL_GPUTexture *)SDL_GetPointerProperty(SDL_GetTextureProperties(target), SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER, NULL);
+    }
+}
+
+static void UpdateSprites(SpriteRenderState *rs, SpriteWindowState *ws, int w, int h)
+{
+    SDL_Texture *sprite = rs->sprite;
+    SDL_FRect *positions = ws->positions;
+    SDL_FPoint *velocities = ws->velocities;
+    SDL_FRect *position;
+    SDL_FPoint *velocity;
+    int i;
+
+    /* Initialize the sprite positions */
+    if (!ws->initialized) {
+        for (i = 0; i < NUM_SPRITES; ++i) {
+            positions[i].x = (float)SDL_rand(w - sprite->w);
+            positions[i].y = (float)SDL_rand(h - sprite->h);
+            positions[i].w = (float)sprite->w;
+            positions[i].h = (float)sprite->h;
+            velocities[i].x = 0.0f;
+            velocities[i].y = 0.0f;
+            while (velocities[i].x == 0.f && velocities[i].y == 0.f) {
+                velocities[i].x = (float)(SDL_rand(MAX_SPRITE_SPEED * 2 + 1) - MAX_SPRITE_SPEED);
+                velocities[i].y = (float)(SDL_rand(MAX_SPRITE_SPEED * 2 + 1) - MAX_SPRITE_SPEED);
+            }
+        }
+        ws->initialized = true;
+    }
+
+    /* Move the sprite, bounce at the wall */
+    for (i = 0; i < NUM_SPRITES; ++i) {
+        position = &positions[i];
+        velocity = &velocities[i];
+        position->x += velocity->x;
+        if ((position->x < 0) || (position->x >= (w - sprite->w))) {
+            velocity->x = -velocity->x;
+            position->x += velocity->x;
+        }
+        position->y += velocity->y;
+        if ((position->y < 0) || (position->y >= (h - sprite->h))) {
+            velocity->y = -velocity->y;
+            position->y += velocity->y;
+        }
+    }
+}
+
+static void RenderSprites(SpriteRenderState *rs, SpriteWindowState *ws)
+{
+    SDL_Renderer *renderer = rs->renderer;
+    SDL_Texture *sprite = rs->sprite;
+    const SDL_FRect *positions = ws->positions;
+    int i;
+
+    SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_TRANSPARENT);
+    SDL_RenderClear(renderer);
+    for (i = 0; i < NUM_SPRITES; ++i) {
+        SDL_RenderTexture(renderer, sprite, NULL, &positions[i]);
+    }
+    SDL_RenderPresent(renderer);
+}
+
+static void UpdateSpriteOverlay(SpriteRenderState *rs, SpriteWindowState *ws, int w, int h)
+{
+    SDL_Renderer *renderer = rs->renderer;
+
+    UpdateRenderTarget(rs, ws, w, h);
+
+    SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_TRANSPARENT);
+    SDL_RenderClear(renderer);
+
+    if (rs->show_sprites) {
+        UpdateSprites(rs, ws, w, h);
+        RenderSprites(rs, ws);
+    }
+
+    SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
+    SDL_RenderDebugText(renderer, 4.0f, 4.0f, "Press 'S' to toggle 2D sprites");
+    SDL_RenderPresent(renderer);
+}
+
+static void RenderSpriteOverlay(SDL_GPURenderPass *pass, SpriteRenderState *rs, SpriteWindowState *ws)
+{
+    SDL_GPUTextureSamplerBinding binding;
+
+    SDL_zero(binding);
+    binding.texture = ws->texture;
+    binding.sampler = rs->sampler;
+
+    SDL_BindGPUGraphicsPipeline(pass, rs->pipeline);
+    SDL_BindGPUFragmentSamplers(pass, 0, &binding, 1);
+    SDL_DrawGPUPrimitives(pass, 6, 1, 0, 0);
+}
+
 static void shutdownGPU(void)
 {
+    QuitSpriteOverlay(&sprite_render_state);
+
     if (window_states) {
         int i;
         for (i = 0; i < state->num_windows; i++) {
@@ -87,8 +392,7 @@ quit(int rc)
  * Simulates desktop's glRotatef. The matrix is returned in column-major
  * order.
  */
-static void
-rotate_matrix(float angle, float x, float y, float z, float *r)
+static void rotate_matrix(float angle, float x, float y, float z, float *r)
 {
     float radians, c, s, c1, u[3], length;
     int i, j;
@@ -127,8 +431,7 @@ rotate_matrix(float angle, float x, float y, float z, float *r)
 /*
  * Simulates gluPerspectiveMatrix
  */
-static void
-perspective_matrix(float fovy, float aspect, float znear, float zfar, float *r)
+static void perspective_matrix(float fovy, float aspect, float znear, float zfar, float *r)
 {
     int i;
     float f;
@@ -151,8 +454,7 @@ perspective_matrix(float fovy, float aspect, float znear, float zfar, float *r)
  * Multiplies lhs by rhs and writes out to r. All matrices are 4x4 and column
  * major. In-place multiplication is supported.
  */
-static void
-multiply_matrix(const float *lhs, const float *rhs, float *r)
+static void multiply_matrix(const float *lhs, const float *rhs, float *r)
 {
     int i, j, k;
     float tmp[16];
@@ -246,8 +548,7 @@ static const VertexData vertex_data[] = {
     {  0.5, -0.5,  0.5, 1.0, 0.0, 1.0 } /* magenta */
 };
 
-static SDL_GPUTexture*
-CreateDepthTexture(Uint32 drawablew, Uint32 drawableh)
+static SDL_GPUTexture *CreateDepthTexture(Uint32 drawablew, Uint32 drawableh)
 {
     SDL_GPUTextureCreateInfo createinfo;
     SDL_GPUTexture *result;
@@ -268,8 +569,7 @@ CreateDepthTexture(Uint32 drawablew, Uint32 drawableh)
     return result;
 }
 
-static SDL_GPUTexture*
-CreateMSAATexture(Uint32 drawablew, Uint32 drawableh)
+static SDL_GPUTexture *CreateMSAATexture(Uint32 drawablew, Uint32 drawableh)
 {
     SDL_GPUTextureCreateInfo createinfo;
     SDL_GPUTexture *result;
@@ -294,8 +594,7 @@ CreateMSAATexture(Uint32 drawablew, Uint32 drawableh)
     return result;
 }
 
-static SDL_GPUTexture *
-CreateResolveTexture(Uint32 drawablew, Uint32 drawableh)
+static SDL_GPUTexture *CreateResolveTexture(Uint32 drawablew, Uint32 drawableh)
 {
     SDL_GPUTextureCreateInfo createinfo;
     SDL_GPUTexture *result;
@@ -320,8 +619,7 @@ CreateResolveTexture(Uint32 drawablew, Uint32 drawableh)
     return result;
 }
 
-static void
-Render(SDL_Window *window, const int windownum)
+static void Render(SDL_Window *window, const int windownum)
 {
     WindowState *winstate = &window_states[windownum];
     SDL_GPUTexture *swapchainTexture;
@@ -352,10 +650,17 @@ Render(SDL_Window *window, const int windownum)
         return;
     }
 
+    if (sprite_render_state.renderer) {
+        /* Update the sprite positions and render to the 2D render target.
+         * Since we are rendering here, no other render pass should be active.
+         */
+        UpdateSpriteOverlay(&sprite_render_state, &winstate->sprite_state, drawablew, drawableh);
+    }
+
     /*
-    * Do some rotation with Euler angles. It is not a fixed axis as
-    * quaternions would be, but the effect is cool.
-    */
+     * Do some rotation with Euler angles. It is not a fixed axis as
+     * quaternions would be, but the effect is cool.
+     */
     rotate_matrix((float)winstate->angle_x, 1.0f, 0.0f, 0.0f, matrix_modelview);
     rotate_matrix((float)winstate->angle_y, 0.0f, 1.0f, 0.0f, matrix_rotate);
 
@@ -436,6 +741,17 @@ Render(SDL_Window *window, const int windownum)
     SDL_DrawGPUPrimitives(pass, 36, 1, 0, 0);
     SDL_EndGPURenderPass(pass);
 
+    /* Render the sprite overlay! */
+
+    if (sprite_render_state.renderer) {
+        /* Load the existing color target so we can blend with it */
+        color_target.load_op = SDL_GPU_LOADOP_LOAD;
+
+        pass = SDL_BeginGPURenderPass(cmd, &color_target, 1, NULL);
+        RenderSpriteOverlay(pass, &sprite_render_state, &winstate->sprite_state);
+        SDL_EndGPURenderPass(pass);
+    }
+
     /* Blit MSAA resolve target to swapchain, if needed */
     if (render_state.sample_count > SDL_GPU_SAMPLECOUNT_1) {
         SDL_zero(blit_info);
@@ -459,40 +775,32 @@ Render(SDL_Window *window, const int windownum)
     ++frames;
 }
 
-static SDL_GPUShader*
-load_shader(bool is_vertex)
+static SDL_GPUShader *load_shader(bool is_vertex)
 {
     SDL_GPUShaderCreateInfo createinfo;
-    createinfo.num_samplers = 0;
-    createinfo.num_storage_buffers = 0;
-    createinfo.num_storage_textures = 0;
+    SDL_zero(createinfo);
     createinfo.num_uniform_buffers = is_vertex ? 1 : 0;
-    createinfo.props = 0;
 
     SDL_GPUShaderFormat format = SDL_GetGPUShaderFormats(gpu_device);
     if (format & SDL_GPU_SHADERFORMAT_DXIL) {
         createinfo.format = SDL_GPU_SHADERFORMAT_DXIL;
-        createinfo.code = is_vertex ? D3D12_CubeVert : D3D12_CubeFrag;
-        createinfo.code_size = is_vertex ? SDL_arraysize(D3D12_CubeVert) : SDL_arraysize(D3D12_CubeFrag);
-        createinfo.entrypoint = is_vertex ? "VSMain" : "PSMain";
-    } else if (format & SDL_GPU_SHADERFORMAT_METALLIB) {
-        createinfo.format = SDL_GPU_SHADERFORMAT_METALLIB;
-        createinfo.code = is_vertex ? cube_vert_metallib : cube_frag_metallib;
-        createinfo.code_size = is_vertex ? cube_vert_metallib_len : cube_frag_metallib_len;
-        createinfo.entrypoint = is_vertex ? "vs_main" : "fs_main";
+        createinfo.code = is_vertex ? cube_vert_dxil : cube_frag_dxil;
+        createinfo.code_size = is_vertex ? cube_vert_dxil_len : cube_frag_dxil_len;
+    } else if (format & SDL_GPU_SHADERFORMAT_MSL) {
+        createinfo.format = SDL_GPU_SHADERFORMAT_MSL;
+        createinfo.code = is_vertex ? cube_vert_msl : cube_frag_msl;
+        createinfo.code_size = is_vertex ? cube_vert_msl_len : cube_frag_msl_len;
     } else {
         createinfo.format = SDL_GPU_SHADERFORMAT_SPIRV;
         createinfo.code = is_vertex ? cube_vert_spv : cube_frag_spv;
         createinfo.code_size = is_vertex ? cube_vert_spv_len : cube_frag_spv_len;
-        createinfo.entrypoint = "main";
     }
 
     createinfo.stage = is_vertex ? SDL_GPU_SHADERSTAGE_VERTEX : SDL_GPU_SHADERSTAGE_FRAGMENT;
     return SDL_CreateGPUShader(gpu_device, &createinfo);
 }
 
-static void
-init_render_state(int msaa)
+static void init_render_state(int msaa)
 {
     SDL_GPUCommandBuffer *cmd;
     SDL_GPUTransferBuffer *buf_transfer;
@@ -659,6 +967,9 @@ init_render_state(int msaa)
         winstate->angle_y = (i * 20) % 360;
         winstate->angle_z = (i * 30) % 360;
     }
+
+    /* Set up 2D sprite render state */
+    InitSpriteOverlay(&sprite_render_state, state->windows[0]);
 }
 
 static int done = 0;
@@ -671,6 +982,13 @@ void loop(void)
     /* Check for events */
     while (SDL_PollEvent(&event) && !done) {
         SDLTest_CommonEvent(state, &event, &done);
+
+        if (event.type == SDL_EVENT_KEY_UP) {
+            if (event.key.key == SDLK_S) {
+                /* Toggle 2D sprite drawing */
+                sprite_render_state.show_sprites = !sprite_render_state.show_sprites;
+            }
+        }
     }
     if (!done) {
         for (i = 0; i < state->num_windows; ++i) {

+ 10 - 4
test/testgpurender_effects.c

@@ -148,6 +148,12 @@ static bool InitGPURenderState(void)
     SDL_GPURenderStateCreateInfo createinfo;
     int i;
 
+    device = SDL_GetGPURendererDevice(renderer);
+    if (!device) {
+        SDL_Log("Couldn't get GPU device");
+        return false;
+    }
+
     formats = SDL_GetGPUShaderFormats(device);
     if (formats == SDL_GPU_SHADERFORMAT_INVALID) {
         SDL_Log("Couldn't get supported shader formats: %s", SDL_GetError());
@@ -244,8 +250,8 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
         return SDL_APP_FAILURE;
     }
 
-    renderer = SDL_CreateGPURenderer(window, SDL_GPU_SHADERFORMAT_SPIRV | SDL_GPU_SHADERFORMAT_DXIL | SDL_GPU_SHADERFORMAT_MSL, &device);
-    if (!renderer || !device) {
+    renderer = SDL_CreateRenderer(window, SDL_GPU_RENDERER);
+    if (!renderer) {
         SDL_Log("Couldn't create renderer: %s", SDL_GetError());
         return SDL_APP_FAILURE;
     }
@@ -316,9 +322,9 @@ SDL_AppResult SDL_AppIterate(void *appstate)
     SDL_SetRenderTarget(renderer, NULL);
 
     /* Display the render target with the fullscreen effect */
-    SDL_SetRenderGPUState(renderer, effect->state);
+    SDL_SetGPURenderState(renderer, effect->state);
     SDL_RenderTexture(renderer, target, NULL, NULL);
-    SDL_SetRenderGPUState(renderer, NULL);
+    SDL_SetGPURenderState(renderer, NULL);
 
     /* Draw some help text */
     SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);

+ 4 - 4
test/testgpurender_msdf.c

@@ -167,7 +167,7 @@ static bool InitGPURenderState(void)
     SDL_GPURenderStateCreateInfo createinfo;
     MSDFShaderUniforms uniforms;
 
-    device = (SDL_GPUDevice *)SDL_GetPointerProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_GPU_DEVICE_POINTER, NULL);
+    device = SDL_GetGPURendererDevice(renderer);
     if (!device) {
         SDL_Log("Couldn't get GPU device");
         return false;
@@ -255,7 +255,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
         return SDL_APP_FAILURE;
     }
 
-    renderer = SDL_CreateRenderer(window, "gpu");
+    renderer = SDL_CreateRenderer(window, SDL_GPU_RENDERER);
     if (!renderer) {
         SDL_Log("Couldn't create renderer: %s", SDL_GetError());
         return SDL_APP_FAILURE;
@@ -300,9 +300,9 @@ SDL_AppResult SDL_AppIterate(void *appstate)
     SDL_GetCurrentRenderOutputSize(renderer, &output_width, &output_height);
     x = (output_width - text_width) / 2;
     y = (output_height - text_height) / 2;
-    SDL_SetRenderGPUState(renderer, render_state);
+    SDL_SetGPURenderState(renderer, render_state);
     RenderText("Hello World!", text_height, x, y);
-    SDL_SetRenderGPUState(renderer, NULL);
+    SDL_SetGPURenderState(renderer, NULL);
 
     SDL_RenderPresent(renderer);
 

+ 2 - 1
test/testsymbols.c

@@ -1315,7 +1315,7 @@ const static struct {
     SDL_SYMBOL_ITEM(SDL_GetDefaultTextureScaleMode),
     SDL_SYMBOL_ITEM(SDL_CreateGPURenderState),
     SDL_SYMBOL_ITEM(SDL_SetGPURenderStateFragmentUniforms),
-    SDL_SYMBOL_ITEM(SDL_SetRenderGPUState),
+    SDL_SYMBOL_ITEM(SDL_SetGPURenderState),
     SDL_SYMBOL_ITEM(SDL_DestroyGPURenderState),
     SDL_SYMBOL_ITEM(SDL_SetWindowProgressState),
     SDL_SYMBOL_ITEM(SDL_SetWindowProgressValue),
@@ -1334,6 +1334,7 @@ const static struct {
     SDL_SYMBOL_ITEM(SDL_GetGPUTextureFormatFromPixelFormat),
     SDL_SYMBOL_ITEM(SDL_SetTexturePalette),
     SDL_SYMBOL_ITEM(SDL_GetTexturePalette),
+    SDL_SYMBOL_ITEM(SDL_GetGPURendererDevice),
     /* extra symbols go here (don't modify this line) */
     { NULL, NULL }
 };