From 7f9cac518208db794015dc7ab3b771598f10919d Mon Sep 17 00:00:00 2001 From: Sam Magnuson Date: Mon, 13 Jan 2025 13:15:30 -0800 Subject: [PATCH] changes to make this work --- .../shaders/advanced_blend.exports.h | 180 +++ .../generated/shaders/advanced_blend.glsl.hpp | 329 +++++ .../shaders/advanced_blend.minified.glsl | 318 +++++ .../generated/shaders/atomic_draw.exports.h | 180 +++ .../generated/shaders/atomic_draw.glsl.hpp | 843 +++++++++++ .../shaders/atomic_draw.minified.glsl | 832 +++++++++++ .../shaders/blit_texture_as_draw.exports.h | 180 +++ .../shaders/blit_texture_as_draw.glsl.hpp | 46 + .../blit_texture_as_draw.minified.glsl | 35 + .../generated/shaders/color_ramp.exports.h | 180 +++ .../generated/shaders/color_ramp.glsl.hpp | 114 ++ .../shaders/color_ramp.minified.glsl | 103 ++ .../generated/shaders/common.exports.h | 180 +++ .../include/generated/shaders/common.glsl.hpp | 292 ++++ .../generated/shaders/common.minified.glsl | 281 ++++ .../generated/shaders/constants.exports.h | 180 +++ .../generated/shaders/constants.glsl.hpp | 199 +++ .../generated/shaders/constants.minified.glsl | 188 +++ .../draw_clockwise_image_mesh.exports.h | 180 +++ .../draw_clockwise_image_mesh.glsl.hpp | 76 + .../draw_clockwise_image_mesh.minified.glsl | 65 + .../shaders/draw_clockwise_path.exports.h | 180 +++ .../shaders/draw_clockwise_path.glsl.hpp | 391 +++++ .../shaders/draw_clockwise_path.minified.glsl | 380 +++++ .../shaders/draw_image_mesh.exports.h | 180 +++ .../shaders/draw_image_mesh.glsl.hpp | 214 +++ .../shaders/draw_image_mesh.minified.glsl | 203 +++ .../generated/shaders/draw_path.exports.h | 180 +++ .../generated/shaders/draw_path.glsl.hpp | 570 ++++++++ .../generated/shaders/draw_path.minified.glsl | 559 ++++++++ .../shaders/draw_path_common.exports.h | 180 +++ .../shaders/draw_path_common.glsl.hpp | 353 +++++ .../shaders/draw_path_common.minified.glsl | 342 +++++ .../include/generated/shaders/glsl.exports.h | 180 +++ .../include/generated/shaders/glsl.glsl.hpp | 560 ++++++++ .../generated/shaders/glsl.minified.glsl | 549 +++++++ .../include/generated/shaders/glsl.stamp | 0 .../include/generated/shaders/hlsl.exports.h | 180 +++ .../include/generated/shaders/hlsl.glsl.hpp | 416 ++++++ .../generated/shaders/hlsl.minified.glsl | 405 ++++++ .../include/generated/shaders/metal.exports.h | 180 +++ .../include/generated/shaders/metal.glsl.hpp | 496 +++++++ .../generated/shaders/metal.minified.glsl | 485 +++++++ .../shaders/pls_load_store_ext.exports.h | 180 +++ .../shaders/pls_load_store_ext.glsl.hpp | 113 ++ .../shaders/pls_load_store_ext.minified.glsl | 102 ++ .../include/generated/shaders/rhi.exports.h | 180 +++ .../include/generated/shaders/rhi.glsl.hpp | 366 +++++ .../generated/shaders/rhi.minified.glsl | 355 +++++ .../shaders/specialization.exports.h | 180 +++ .../generated/shaders/specialization.glsl.hpp | 36 + .../shaders/specialization.minified.glsl | 25 + .../atomic_draw_image_mesh.fixedcolor_frag.h | 574 ++++++++ .../spirv/atomic_draw_image_mesh.frag.h | 1264 ++++++++++++++++ .../spirv/atomic_draw_image_mesh.vert.h | 235 +++ .../atomic_draw_image_rect.fixedcolor_frag.h | 580 ++++++++ .../spirv/atomic_draw_image_rect.frag.h | 1270 +++++++++++++++++ .../spirv/atomic_draw_image_rect.vert.h | 331 +++++ ..._draw_interior_triangles.fixedcolor_frag.h | 470 ++++++ .../atomic_draw_interior_triangles.frag.h | 1124 +++++++++++++++ .../atomic_draw_interior_triangles.vert.h | 213 +++ .../spirv/atomic_draw_path.fixedcolor_frag.h | 489 +++++++ .../shaders/spirv/atomic_draw_path.frag.h | 1143 +++++++++++++++ .../shaders/spirv/atomic_draw_path.vert.h | 643 +++++++++ .../atomic_resolve_pls.fixedcolor_frag.h | 399 ++++++ .../shaders/spirv/atomic_resolve_pls.frag.h | 1054 ++++++++++++++ .../shaders/spirv/atomic_resolve_pls.vert.h | 152 ++ .../generated/shaders/spirv/color_ramp.frag.h | 47 + .../generated/shaders/spirv/color_ramp.vert.h | 170 +++ .../spirv/draw_clockwise_image_mesh.frag.h | 104 ++ .../spirv/draw_clockwise_image_mesh.vert.h | 142 ++ .../draw_clockwise_interior_triangles.frag.h | 439 ++++++ .../draw_clockwise_interior_triangles.vert.h | 217 +++ .../shaders/spirv/draw_clockwise_path.frag.h | 508 +++++++ .../shaders/spirv/draw_clockwise_path.vert.h | 650 +++++++++ .../shaders/spirv/draw_image_mesh.frag.h | 911 ++++++++++++ .../shaders/spirv/draw_image_mesh.vert.h | 227 +++ .../spirv/draw_interior_triangles.frag.h | 1109 ++++++++++++++ .../spirv/draw_interior_triangles.vert.h | 434 ++++++ .../generated/shaders/spirv/draw_path.frag.h | 1159 +++++++++++++++ .../generated/shaders/spirv/draw_path.vert.h | 858 +++++++++++ .../generated/shaders/spirv/tessellate.frag.h | 495 +++++++ .../generated/shaders/spirv/tessellate.vert.h | 429 ++++++ .../generated/shaders/stencil_draw.exports.h | 180 +++ .../generated/shaders/stencil_draw.glsl.hpp | 41 + .../shaders/stencil_draw.minified.glsl | 30 + .../generated/shaders/tessellate.exports.h | 180 +++ .../generated/shaders/tessellate.glsl.hpp | 497 +++++++ .../shaders/tessellate.minified.glsl | 486 +++++++ defold-rive/include/rive/artboard.hpp | 2 +- .../include/rive/data_bind/data_bind.hpp | 3 + defold-rive/include/rive/layout_component.hpp | 1 + .../include/rive/math/bezier_utils.hpp | 126 ++ defold-rive/include/rive/math/path_types.hpp | 1 + .../include/rive/nested_artboard_layout.hpp | 1 + .../renderer/d3d/render_context_d3d_impl.hpp | 2 - defold-rive/include/rive/renderer/draw.hpp | 3 - .../renderer/gl/render_context_gl_impl.hpp | 2 - defold-rive/include/rive/renderer/gpu.hpp | 53 +- .../metal/render_context_metal_impl.h | 2 - .../include/rive/renderer/render_context.hpp | 26 +- .../renderer/render_context_helper_impl.hpp | 10 - .../rive/renderer/render_context_impl.hpp | 3 - .../vulkan/render_context_vulkan_impl.hpp | 2 - .../webgpu/render_context_webgpu_impl.hpp | 2 - .../include/shaders/advanced_blend.glsl | 318 +++++ defold-rive/include/shaders/atomic_draw.glsl | 832 +++++++++++ .../include/shaders/blit_texture_as_draw.glsl | 35 + defold-rive/include/shaders/color_ramp.glsl | 103 ++ defold-rive/include/shaders/common.glsl | 281 ++++ defold-rive/include/shaders/constants.glsl | 188 +++ .../shaders/draw_clockwise_image_mesh.glsl | 65 + .../include/shaders/draw_clockwise_path.glsl | 380 +++++ .../include/shaders/draw_image_mesh.glsl | 203 +++ defold-rive/include/shaders/draw_path.glsl | 559 ++++++++ .../include/shaders/draw_path_common.glsl | 342 +++++ defold-rive/include/shaders/glsl.glsl | 549 +++++++ defold-rive/include/shaders/hlsl.glsl | 405 ++++++ defold-rive/include/shaders/metal.glsl | 485 +++++++ .../include/shaders/pls_load_store_ext.glsl | 102 ++ defold-rive/include/shaders/rhi.glsl | 355 +++++ .../include/shaders/specialization.glsl | 25 + defold-rive/include/shaders/stencil_draw.glsl | 30 + defold-rive/include/shaders/tessellate.glsl | 486 +++++++ utils/build_pls.sh | 11 +- 125 files changed, 38875 insertions(+), 73 deletions(-) create mode 100644 defold-rive/include/generated/shaders/advanced_blend.exports.h create mode 100644 defold-rive/include/generated/shaders/advanced_blend.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/advanced_blend.minified.glsl create mode 100644 defold-rive/include/generated/shaders/atomic_draw.exports.h create mode 100644 defold-rive/include/generated/shaders/atomic_draw.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/atomic_draw.minified.glsl create mode 100644 defold-rive/include/generated/shaders/blit_texture_as_draw.exports.h create mode 100644 defold-rive/include/generated/shaders/blit_texture_as_draw.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/blit_texture_as_draw.minified.glsl create mode 100644 defold-rive/include/generated/shaders/color_ramp.exports.h create mode 100644 defold-rive/include/generated/shaders/color_ramp.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/color_ramp.minified.glsl create mode 100644 defold-rive/include/generated/shaders/common.exports.h create mode 100644 defold-rive/include/generated/shaders/common.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/common.minified.glsl create mode 100644 defold-rive/include/generated/shaders/constants.exports.h create mode 100644 defold-rive/include/generated/shaders/constants.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/constants.minified.glsl create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_image_mesh.exports.h create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_image_mesh.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_image_mesh.minified.glsl create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_path.exports.h create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_path.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/draw_clockwise_path.minified.glsl create mode 100644 defold-rive/include/generated/shaders/draw_image_mesh.exports.h create mode 100644 defold-rive/include/generated/shaders/draw_image_mesh.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/draw_image_mesh.minified.glsl create mode 100644 defold-rive/include/generated/shaders/draw_path.exports.h create mode 100644 defold-rive/include/generated/shaders/draw_path.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/draw_path.minified.glsl create mode 100644 defold-rive/include/generated/shaders/draw_path_common.exports.h create mode 100644 defold-rive/include/generated/shaders/draw_path_common.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/draw_path_common.minified.glsl create mode 100644 defold-rive/include/generated/shaders/glsl.exports.h create mode 100644 defold-rive/include/generated/shaders/glsl.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/glsl.minified.glsl create mode 100644 defold-rive/include/generated/shaders/glsl.stamp create mode 100644 defold-rive/include/generated/shaders/hlsl.exports.h create mode 100644 defold-rive/include/generated/shaders/hlsl.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/hlsl.minified.glsl create mode 100644 defold-rive/include/generated/shaders/metal.exports.h create mode 100644 defold-rive/include/generated/shaders/metal.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/metal.minified.glsl create mode 100644 defold-rive/include/generated/shaders/pls_load_store_ext.exports.h create mode 100644 defold-rive/include/generated/shaders/pls_load_store_ext.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/pls_load_store_ext.minified.glsl create mode 100644 defold-rive/include/generated/shaders/rhi.exports.h create mode 100644 defold-rive/include/generated/shaders/rhi.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/rhi.minified.glsl create mode 100644 defold-rive/include/generated/shaders/specialization.exports.h create mode 100644 defold-rive/include/generated/shaders/specialization.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/specialization.minified.glsl create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.fixedcolor_frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.fixedcolor_frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.fixedcolor_frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_path.fixedcolor_frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_path.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_draw_path.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.fixedcolor_frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/color_ramp.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/color_ramp.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_path.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_clockwise_path.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_image_mesh.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_image_mesh.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_interior_triangles.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_interior_triangles.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_path.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/draw_path.vert.h create mode 100644 defold-rive/include/generated/shaders/spirv/tessellate.frag.h create mode 100644 defold-rive/include/generated/shaders/spirv/tessellate.vert.h create mode 100644 defold-rive/include/generated/shaders/stencil_draw.exports.h create mode 100644 defold-rive/include/generated/shaders/stencil_draw.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/stencil_draw.minified.glsl create mode 100644 defold-rive/include/generated/shaders/tessellate.exports.h create mode 100644 defold-rive/include/generated/shaders/tessellate.glsl.hpp create mode 100644 defold-rive/include/generated/shaders/tessellate.minified.glsl create mode 100644 defold-rive/include/rive/math/bezier_utils.hpp create mode 100644 defold-rive/include/shaders/advanced_blend.glsl create mode 100644 defold-rive/include/shaders/atomic_draw.glsl create mode 100644 defold-rive/include/shaders/blit_texture_as_draw.glsl create mode 100644 defold-rive/include/shaders/color_ramp.glsl create mode 100644 defold-rive/include/shaders/common.glsl create mode 100644 defold-rive/include/shaders/constants.glsl create mode 100644 defold-rive/include/shaders/draw_clockwise_image_mesh.glsl create mode 100644 defold-rive/include/shaders/draw_clockwise_path.glsl create mode 100644 defold-rive/include/shaders/draw_image_mesh.glsl create mode 100644 defold-rive/include/shaders/draw_path.glsl create mode 100644 defold-rive/include/shaders/draw_path_common.glsl create mode 100644 defold-rive/include/shaders/glsl.glsl create mode 100644 defold-rive/include/shaders/hlsl.glsl create mode 100644 defold-rive/include/shaders/metal.glsl create mode 100644 defold-rive/include/shaders/pls_load_store_ext.glsl create mode 100644 defold-rive/include/shaders/rhi.glsl create mode 100644 defold-rive/include/shaders/specialization.glsl create mode 100644 defold-rive/include/shaders/stencil_draw.glsl create mode 100644 defold-rive/include/shaders/tessellate.glsl diff --git a/defold-rive/include/generated/shaders/advanced_blend.exports.h b/defold-rive/include/generated/shaders/advanced_blend.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/advanced_blend.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/advanced_blend.glsl.hpp b/defold-rive/include/generated/shaders/advanced_blend.glsl.hpp new file mode 100644 index 00000000..74fa80a6 --- /dev/null +++ b/defold-rive/include/generated/shaders/advanced_blend.glsl.hpp @@ -0,0 +1,329 @@ +#pragma once + +#include "advanced_blend.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char advanced_blend[] = R"===(/* + * Copyright 2022 Rive + */ + +// From the KHR_blend_equation_advanced spec: +// +// The advanced blend equations are those listed in tables X.1 and X.2. When +// using one of these equations, blending is performed according to the +// following equations: +// +// R = f(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) +// G = f(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) +// B = f(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) +// A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) +// +// where the function f and terms X, Y, and Z are specified in the table. +// The R, G, and B components of the source color used for blending are +// considered to have been premultiplied by the A component prior to +// blending. The base source color (Rs',Gs',Bs') is obtained by dividing +// through by the A component: +// +// (Rs', Gs', Bs') = +// (0, 0, 0), if As == 0 +// (Rs/As, Gs/As, Bs/As), otherwise +// +// The destination color components are always considered to have been +// premultiplied by the destination A component and the base destination +// color (Rd', Gd', Bd') is obtained by dividing through by the A component: +// +// (Rd', Gd', Bd') = +// (0, 0, 0), if Ad == 0 +// (Rd/Ad, Gd/Ad, Bd/Ad), otherwise +// +// When blending using advanced blend equations, we expect that the R, G, and +// B components of premultiplied source and destination color inputs be +// stored as the product of non-premultiplied R, G, and B components and the +// A component of the color. If any R, G, or B component of a premultiplied +// input color is non-zero and the A component is zero, the color is +// considered ill-formed, and the corresponding component of the blend result +// will be undefined. +// +// The weighting functions p0, p1, and p2 are defined as follows: +// +// p0(As,Ad) = As*Ad +// p1(As,Ad) = As*(1 - Ad) +// p2(As,Ad) = Ad*(1 - As) +// +// In these functions, the A components of the source and destination colors +// are taken to indicate the portion of the pixel covered by the fragment +// (source) and the fragments previously accumulated in the pixel +// (destination). The functions p0, p1, and p2 approximate the relative +// portion of the pixel covered by the intersection of the source and +// destination, covered only by the source, and covered only by the +// destination, respectively. The equations defined here assume that there +// is no correlation between the source and destination coverage. +// + +#ifdef _EXPORTED_FRAGMENT + +#ifdef _EXPORTED_ENABLE_KHR_BLEND +layout( +#ifdef _EXPORTED_ENABLE_HSL_BLEND_MODES + blend_support_all_equations +#else + blend_support_multiply, + blend_support_screen, + blend_support_overlay, + blend_support_darken, + blend_support_lighten, + blend_support_colordodge, + blend_support_colorburn, + blend_support_hardlight, + blend_support_softlight, + blend_support_difference, + blend_support_exclusion +#endif + ) out; +#endif // ENABLE_KHR_BLEND + +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND +#ifdef _EXPORTED_ENABLE_HSL_BLEND_MODES +// When using one of the HSL blend equations in table X.2 as the blend equation, +// the blend coefficients are effectively obtained by converting both the +// non-premultiplied source and destination colors to the HSL (hue, saturation, +// luminosity) color space, generating a new HSL color by selecting H, S, and L +// components from the source or destination according to the blend equation, +// and then converting the result back to RGB. The HSL blend equations are only +// well defined when the values of the input color components are in the range +// [0..1]. +half minv3(half3 c) { return min(min(c.x, c.y), c.z); } +half maxv3(half3 c) { return max(max(c.x, c.y), c.z); } +half lumv3(half3 c) { return dot(c, make_half3(.30, .59, .11)); } +half satv3(half3 c) { return maxv3(c) - minv3(c); } + +// If any color components are outside [0,1], adjust the color to get the +// components in range. +half3 clip_color(half3 color) +{ + half lum = lumv3(color); + half mincol = minv3(color); + half maxcol = maxv3(color); + if (mincol < .0) + color = lum + ((color - lum) * lum) / (lum - mincol); + if (maxcol > 1.) + color = lum + ((color - lum) * (1. - lum)) / (maxcol - lum); + return color; +} + +// Take the base RGB color and override its luminosity with that of the +// RGB color . +half3 set_lum(half3 cbase, half3 clum) +{ + half lbase = lumv3(cbase); + half llum = lumv3(clum); + half ldiff = llum - lbase; + half3 color = cbase + make_half3(ldiff); + return clip_color(color); +} + +// Take the base RGB color and override its saturation with that of the +// RGB color . The override the luminosity of the result with that of the +// RGB color . +half3 set_lum_sat(half3 cbase, half3 csat, half3 clum) +{ + half minbase = minv3(cbase); + half sbase = satv3(cbase); + half ssat = satv3(csat); + half3 color; + if (sbase > .0) + { + // Equivalent (modulo rounding errors) to setting the smallest (R,G,B) + // component to 0, the largest to , and interpolating the "middle" + // component based on its original value relative to the + // smallest/largest. + color = (cbase - minbase) * ssat / sbase; + } + else + { + color = make_half3(.0); + } + return set_lum(color, clum); +} +#endif // ENABLE_HSL_BLEND_MODES + +// The advanced blend coefficients are generated from un-multiplied RGB values, +// and control the look of each blend mode. +half3 advanced_blend_coeffs(half3 src, half3 dst, ushort mode) +{ + half3 coeffs; + switch (mode) + { + case BLEND_MODE_MULTIPLY: + coeffs = src.xyz * dst.xyz; + break; + case BLEND_MODE_SCREEN: + coeffs = src.xyz + dst.xyz - src.xyz * dst.xyz; + break; + case BLEND_MODE_OVERLAY: + { + for (int i = 0; i < 3; ++i) + { + if (dst[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_DARKEN: + coeffs = min(src.xyz, dst.xyz); + break; + case BLEND_MODE_LIGHTEN: + coeffs = max(src.xyz, dst.xyz); + break; + case BLEND_MODE_COLORDODGE: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(min(dst.xyz / (1. - src.xyz), make_half3(1.)), + make_half3(.0), + lessThanEqual(dst.xyz, make_half3(.0))); + break; + case BLEND_MODE_COLORBURN: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(1. - min((1. - dst.xyz) / src.xyz, 1.), + make_half3(1.), + greaterThanEqual(dst.xyz, make_half3(1.))); + break; + case BLEND_MODE_HARDLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_SOFTLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= 0.5) + coeffs[i] = + dst[i] - (1. - 2. * src[i]) * dst[i] * (1. - dst[i]); + else if (dst[i] <= .25) + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * dst[i] * + ((16. * dst[i] - 12.) * dst[i] + 3.); + else + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * (sqrt(dst[i]) - dst[i]); + } + break; + } + case BLEND_MODE_DIFFERENCE: + coeffs = abs(dst.xyz - src.xyz); + break; + case BLEND_MODE_EXCLUSION: + coeffs = src.xyz + dst.xyz - 2. * src.xyz * dst.xyz; + break; +#ifdef _EXPORTED_ENABLE_HSL_BLEND_MODES + // The HSL blend equations are only well defined when the values of the + // input color components are in the range [0..1]. + case BLEND_MODE_HUE: + if (_EXPORTED_ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(src.xyz, dst.xyz, dst.xyz); + break; + } + case BLEND_MODE_SATURATION: + if (_EXPORTED_ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(dst.xyz, src.xyz, dst.xyz); + break; + } + case BLEND_MODE_COLOR: + if (_EXPORTED_ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum(src.xyz, dst.xyz); + break; + } + case BLEND_MODE_LUMINOSITY: + if (_EXPORTED_ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum(dst.xyz, src.xyz); + break; + } +#endif + } + return coeffs; +} + +INLINE half4 advanced_blend(half4 src, half4 dst, ushort mode) +{ + half3 coeffs = advanced_blend_coeffs(src.xyz, dst.xyz, mode); + + // The weighting functions p0, p1, and p2 are defined as follows: + // + // p0(As,Ad) = As*Ad + // p1(As,Ad) = As*(1 - Ad) + // p2(As,Ad) = Ad*(1 - As) + // + half sda = src.w * dst.w; + half3 p = make_half3(sda, src.w - sda, dst.w - sda); + + // When using one of these equations, blending is performed according to the + // following equations: + // + // R = coeffs(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) + // G = coeffs(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) + // B = coeffs(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) + // A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) + // + // NOTE: (X,Y,Z) always == 1, so it is ignored in this implementation. + // Also, since (X,Y,Z) == 1, alpha simplifies to standard src-over + // rules: A = Ad * (1 - As) + As + return make_half4(MUL(make_half3x3(coeffs, src.xyz, dst.xyz), p), + dst.w * (1. - src.w) + src.w); +} + +// Returns an intermediate RGB color that won't produce the desired blend mode +// until *AFTER* being blended into the framebuffer with hardware coefficients +// of [SRC_ALPHA, ONE_MINUS_SRC_ALPHA]. +// +// NOTE: Alpha follows standard src-over rules in all blend modes, so the shader +// can just output the paint's alpha value, unmodified, directly to the blend +// unit. +INLINE half3 advanced_color_blend_pre_src_over(half3 src, + half4 dst, + ushort mode) +{ + // The weighting functions p0, p1, and p2 are commented in advanced_blend(). + // + // We make two modifications in this variation to account for the fact that + // the color we generate will be subjected to HW blending: + // + // 1) To cancel the effect of the upcoming src-over blend, we subtract + // "RGBd * (1 - As)" from the final RGB values. This cancels out p2 + // entirely. + // + // 2) Since the caller is expected to premultiply alpha, don't multiply p0 + // or p1 + // by As. + // + half3 coeffs = advanced_blend_coeffs(src, dst.xyz, mode); + half2 p = + make_half2(dst.w, 1. - dst.w); // half2 because p2 got cancelled out. + return MUL(make_half2x3(coeffs, src), p); +} +#endif // ENABLE_ADVANCED_BLEND + +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/advanced_blend.minified.glsl b/defold-rive/include/generated/shaders/advanced_blend.minified.glsl new file mode 100644 index 00000000..67fbd056 --- /dev/null +++ b/defold-rive/include/generated/shaders/advanced_blend.minified.glsl @@ -0,0 +1,318 @@ +/* + * Copyright 2022 Rive + */ + +// From the KHR_blend_equation_advanced spec: +// +// The advanced blend equations are those listed in tables X.1 and X.2. When +// using one of these equations, blending is performed according to the +// following equations: +// +// R = f(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) +// G = f(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) +// B = f(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) +// A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) +// +// where the function f and terms X, Y, and Z are specified in the table. +// The R, G, and B components of the source color used for blending are +// considered to have been premultiplied by the A component prior to +// blending. The base source color (Rs',Gs',Bs') is obtained by dividing +// through by the A component: +// +// (Rs', Gs', Bs') = +// (0, 0, 0), if As == 0 +// (Rs/As, Gs/As, Bs/As), otherwise +// +// The destination color components are always considered to have been +// premultiplied by the destination A component and the base destination +// color (Rd', Gd', Bd') is obtained by dividing through by the A component: +// +// (Rd', Gd', Bd') = +// (0, 0, 0), if Ad == 0 +// (Rd/Ad, Gd/Ad, Bd/Ad), otherwise +// +// When blending using advanced blend equations, we expect that the R, G, and +// B components of premultiplied source and destination color inputs be +// stored as the product of non-premultiplied R, G, and B components and the +// A component of the color. If any R, G, or B component of a premultiplied +// input color is non-zero and the A component is zero, the color is +// considered ill-formed, and the corresponding component of the blend result +// will be undefined. +// +// The weighting functions p0, p1, and p2 are defined as follows: +// +// p0(As,Ad) = As*Ad +// p1(As,Ad) = As*(1 - Ad) +// p2(As,Ad) = Ad*(1 - As) +// +// In these functions, the A components of the source and destination colors +// are taken to indicate the portion of the pixel covered by the fragment +// (source) and the fragments previously accumulated in the pixel +// (destination). The functions p0, p1, and p2 approximate the relative +// portion of the pixel covered by the intersection of the source and +// destination, covered only by the source, and covered only by the +// destination, respectively. The equations defined here assume that there +// is no correlation between the source and destination coverage. +// + +#ifdef FRAGMENT + +#ifdef ENABLE_KHR_BLEND +layout( +#ifdef ENABLE_HSL_BLEND_MODES + blend_support_all_equations +#else + blend_support_multiply, + blend_support_screen, + blend_support_overlay, + blend_support_darken, + blend_support_lighten, + blend_support_colordodge, + blend_support_colorburn, + blend_support_hardlight, + blend_support_softlight, + blend_support_difference, + blend_support_exclusion +#endif + ) out; +#endif // ENABLE_KHR_BLEND + +#ifdef ENABLE_ADVANCED_BLEND +#ifdef ENABLE_HSL_BLEND_MODES +// When using one of the HSL blend equations in table X.2 as the blend equation, +// the blend coefficients are effectively obtained by converting both the +// non-premultiplied source and destination colors to the HSL (hue, saturation, +// luminosity) color space, generating a new HSL color by selecting H, S, and L +// components from the source or destination according to the blend equation, +// and then converting the result back to RGB. The HSL blend equations are only +// well defined when the values of the input color components are in the range +// [0..1]. +half minv3(half3 c) { return min(min(c.x, c.y), c.z); } +half maxv3(half3 c) { return max(max(c.x, c.y), c.z); } +half lumv3(half3 c) { return dot(c, make_half3(.30, .59, .11)); } +half satv3(half3 c) { return maxv3(c) - minv3(c); } + +// If any color components are outside [0,1], adjust the color to get the +// components in range. +half3 clip_color(half3 color) +{ + half lum = lumv3(color); + half mincol = minv3(color); + half maxcol = maxv3(color); + if (mincol < .0) + color = lum + ((color - lum) * lum) / (lum - mincol); + if (maxcol > 1.) + color = lum + ((color - lum) * (1. - lum)) / (maxcol - lum); + return color; +} + +// Take the base RGB color and override its luminosity with that of the +// RGB color . +half3 set_lum(half3 cbase, half3 clum) +{ + half lbase = lumv3(cbase); + half llum = lumv3(clum); + half ldiff = llum - lbase; + half3 color = cbase + make_half3(ldiff); + return clip_color(color); +} + +// Take the base RGB color and override its saturation with that of the +// RGB color . The override the luminosity of the result with that of the +// RGB color . +half3 set_lum_sat(half3 cbase, half3 csat, half3 clum) +{ + half minbase = minv3(cbase); + half sbase = satv3(cbase); + half ssat = satv3(csat); + half3 color; + if (sbase > .0) + { + // Equivalent (modulo rounding errors) to setting the smallest (R,G,B) + // component to 0, the largest to , and interpolating the "middle" + // component based on its original value relative to the + // smallest/largest. + color = (cbase - minbase) * ssat / sbase; + } + else + { + color = make_half3(.0); + } + return set_lum(color, clum); +} +#endif // ENABLE_HSL_BLEND_MODES + +// The advanced blend coefficients are generated from un-multiplied RGB values, +// and control the look of each blend mode. +half3 advanced_blend_coeffs(half3 src, half3 dst, ushort mode) +{ + half3 coeffs; + switch (mode) + { + case BLEND_MODE_MULTIPLY: + coeffs = src.xyz * dst.xyz; + break; + case BLEND_MODE_SCREEN: + coeffs = src.xyz + dst.xyz - src.xyz * dst.xyz; + break; + case BLEND_MODE_OVERLAY: + { + for (int i = 0; i < 3; ++i) + { + if (dst[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_DARKEN: + coeffs = min(src.xyz, dst.xyz); + break; + case BLEND_MODE_LIGHTEN: + coeffs = max(src.xyz, dst.xyz); + break; + case BLEND_MODE_COLORDODGE: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(min(dst.xyz / (1. - src.xyz), make_half3(1.)), + make_half3(.0), + lessThanEqual(dst.xyz, make_half3(.0))); + break; + case BLEND_MODE_COLORBURN: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(1. - min((1. - dst.xyz) / src.xyz, 1.), + make_half3(1.), + greaterThanEqual(dst.xyz, make_half3(1.))); + break; + case BLEND_MODE_HARDLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_SOFTLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= 0.5) + coeffs[i] = + dst[i] - (1. - 2. * src[i]) * dst[i] * (1. - dst[i]); + else if (dst[i] <= .25) + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * dst[i] * + ((16. * dst[i] - 12.) * dst[i] + 3.); + else + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * (sqrt(dst[i]) - dst[i]); + } + break; + } + case BLEND_MODE_DIFFERENCE: + coeffs = abs(dst.xyz - src.xyz); + break; + case BLEND_MODE_EXCLUSION: + coeffs = src.xyz + dst.xyz - 2. * src.xyz * dst.xyz; + break; +#ifdef ENABLE_HSL_BLEND_MODES + // The HSL blend equations are only well defined when the values of the + // input color components are in the range [0..1]. + case BLEND_MODE_HUE: + if (ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(src.xyz, dst.xyz, dst.xyz); + break; + } + case BLEND_MODE_SATURATION: + if (ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(dst.xyz, src.xyz, dst.xyz); + break; + } + case BLEND_MODE_COLOR: + if (ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum(src.xyz, dst.xyz); + break; + } + case BLEND_MODE_LUMINOSITY: + if (ENABLE_HSL_BLEND_MODES) + { + src.xyz = clamp(src.xyz, make_half3(.0), make_half3(1.)); + coeffs = set_lum(dst.xyz, src.xyz); + break; + } +#endif + } + return coeffs; +} + +INLINE half4 advanced_blend(half4 src, half4 dst, ushort mode) +{ + half3 coeffs = advanced_blend_coeffs(src.xyz, dst.xyz, mode); + + // The weighting functions p0, p1, and p2 are defined as follows: + // + // p0(As,Ad) = As*Ad + // p1(As,Ad) = As*(1 - Ad) + // p2(As,Ad) = Ad*(1 - As) + // + half sda = src.w * dst.w; + half3 p = make_half3(sda, src.w - sda, dst.w - sda); + + // When using one of these equations, blending is performed according to the + // following equations: + // + // R = coeffs(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) + // G = coeffs(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) + // B = coeffs(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) + // A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) + // + // NOTE: (X,Y,Z) always == 1, so it is ignored in this implementation. + // Also, since (X,Y,Z) == 1, alpha simplifies to standard src-over + // rules: A = Ad * (1 - As) + As + return make_half4(MUL(make_half3x3(coeffs, src.xyz, dst.xyz), p), + dst.w * (1. - src.w) + src.w); +} + +// Returns an intermediate RGB color that won't produce the desired blend mode +// until *AFTER* being blended into the framebuffer with hardware coefficients +// of [SRC_ALPHA, ONE_MINUS_SRC_ALPHA]. +// +// NOTE: Alpha follows standard src-over rules in all blend modes, so the shader +// can just output the paint's alpha value, unmodified, directly to the blend +// unit. +INLINE half3 advanced_color_blend_pre_src_over(half3 src, + half4 dst, + ushort mode) +{ + // The weighting functions p0, p1, and p2 are commented in advanced_blend(). + // + // We make two modifications in this variation to account for the fact that + // the color we generate will be subjected to HW blending: + // + // 1) To cancel the effect of the upcoming src-over blend, we subtract + // "RGBd * (1 - As)" from the final RGB values. This cancels out p2 + // entirely. + // + // 2) Since the caller is expected to premultiply alpha, don't multiply p0 + // or p1 + // by As. + // + half3 coeffs = advanced_blend_coeffs(src, dst.xyz, mode); + half2 p = + make_half2(dst.w, 1. - dst.w); // half2 because p2 got cancelled out. + return MUL(make_half2x3(coeffs, src), p); +} +#endif // ENABLE_ADVANCED_BLEND + +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/atomic_draw.exports.h b/defold-rive/include/generated/shaders/atomic_draw.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/atomic_draw.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/atomic_draw.glsl.hpp b/defold-rive/include/generated/shaders/atomic_draw.glsl.hpp new file mode 100644 index 00000000..03783019 --- /dev/null +++ b/defold-rive/include/generated/shaders/atomic_draw.glsl.hpp @@ -0,0 +1,843 @@ +#pragma once + +#include "atomic_draw.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char atomic_draw[] = R"===(/* + * Copyright 2023 Rive + */ + +#ifdef _EXPORTED_DRAW_PATH +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, + float4, + _EXPORTED_a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + v_pathID = cast_uint_to_ushort(pathID); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +_EXPORTED_OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + v_pathID = cast_uint_to_ushort(pathID); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef _EXPORTED_DRAW_IMAGE_RECT +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, float4, _EXPORTED_a_imageRectVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +NO_PERSPECTIVE VARYING(1, half, v_edgeCoverage); +#ifdef _EXPORTED_ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +IMAGE_RECT_VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_imageRectVertex, float4); + + VARYING_INIT(v_texCoord, float2); + VARYING_INIT(v_edgeCoverage, half); +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + bool isOuterVertex = + _EXPORTED_a_imageRectVertex.z == .0 || _EXPORTED_a_imageRectVertex.w == .0; + v_edgeCoverage = isOuterVertex ? .0 : 1.; + + float2 vertexPosition = _EXPORTED_a_imageRectVertex.xy; + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2x2 MIT = transpose(inverse(M)); + if (!isOuterVertex) + { + // Inset the inner vertices to the point where coverage == 1. + // NOTE: if width/height ever change from 1, these equations need to be + // updated. + float aaRadiusX = + AA_RADIUS * manhattan_width(MIT[1]) / dot(M[1], MIT[1]); + if (aaRadiusX >= .5) + { + vertexPosition.x = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusX); + } + else + { + vertexPosition.x += aaRadiusX * _EXPORTED_a_imageRectVertex.z; + } + float aaRadiusY = + AA_RADIUS * manhattan_width(MIT[0]) / dot(M[0], MIT[0]); + if (aaRadiusY >= .5) + { + vertexPosition.y = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusY); + } + else + { + vertexPosition.y += aaRadiusY * _EXPORTED_a_imageRectVertex.w; + } + } + + v_texCoord = vertexPosition; + vertexPosition = MUL(M, vertexPosition) + imageDrawUniforms.translate; + + if (isOuterVertex) + { + // Outset the outer vertices to the point where coverage == 0. + float2 n = MUL(MIT, _EXPORTED_a_imageRectVertex.zw); + n *= manhattan_width(n) / dot(n, n); + vertexPosition += AA_RADIUS * n; + } + +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + VARYING_PACK(v_edgeCoverage); +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX + +#elif defined(_EXPORTED_DRAW_IMAGE_MESH) +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef _EXPORTED_ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(1, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2 vertexPosition = MUL(M, _EXPORTED_a_position) + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; + +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_IMAGE_MESH + +#ifdef _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR_BLOCK_END +#endif // VERTEX + +VARYING_BLOCK_BEGIN +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + int2 coord; + coord.x = (_vertexID & 1) == 0 ? uniforms.renderTargetUpdateBounds.x + : uniforms.renderTargetUpdateBounds.z; + coord.y = (_vertexID & 2) == 0 ? uniforms.renderTargetUpdateBounds.y + : uniforms.renderTargetUpdateBounds.w; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(float2(coord)); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_RENDER_TARGET_UPDATE_BOUNDS + +#ifdef _EXPORTED_DRAW_IMAGE +#define NEEDS_IMAGE_TEXTURE +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +#ifdef NEEDS_IMAGE_TEXTURE +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +#ifdef NEEDS_IMAGE_TEXTURE +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) +#endif + +PLS_BLOCK_BEGIN +// We only write the framebuffer as a storage texture when there are blend +// modes. Otherwise, we render to it as a normal color attachment. +#ifndef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#ifdef _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +// D3D11 doesn't let us bind the framebuffer UAV to slot 0 when there is a color +// output. +PLS_DECL4F(_EXPORTED_COLOR_PLANE_IDX_OVERRIDE, colorBuffer); +#else +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +#endif +#endif // !FIXED_FUNCTION_COLOR_OUTPUT +#ifdef _EXPORTED_PLS_BLEND_SRC_OVER +// When PLS has src-over blending enabled, the clip buffer is RGBA8 so we can +// preserve clip contents by emitting a=0 instead of loading the current value. +// This is also is a hint to the hardware that it doesn't need to write anything +// to the clip attachment. +#define CLIP_VALUE_TYPE half4 +#define PLS_LOAD_CLIP_TYPE PLS_LOAD4F +#define MAKE_NON_UPDATING_CLIP_VALUE make_half4(.0) +#define HAS_UPDATED_CLIP_VALUE(X) ((X).w != .0) +#ifdef _EXPORTED_ENABLE_CLIPPING +#ifndef _EXPORTED_RESOLVE_PLS +PLS_DECL4F(CLIP_PLANE_IDX, clipBuffer); +#else +PLS_DECL4F_READONLY(CLIP_PLANE_IDX, clipBuffer); +#endif +#endif // ENABLE_CLIPPING +#else +// When PLS does not have src-over blending, the clip buffer the usual packed +// R32UI. +#define CLIP_VALUE_TYPE uint +#define MAKE_NON_UPDATING_CLIP_VALUE 0u +#define PLS_LOAD_CLIP_TYPE PLS_LOADUI +#define HAS_UPDATED_CLIP_VALUE(X) ((X) != 0u) +#ifdef _EXPORTED_ENABLE_CLIPPING +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +#endif // ENABLE_CLIPPING +#endif // !PLS_BLEND_SRC_OVER +PLS_DECLUI_ATOMIC(COVERAGE_PLANE_IDX, coverageAtomicBuffer); +PLS_BLOCK_END + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE uint to_fixed(float x) +{ + return uint(x * FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO); +} + +INLINE half from_fixed(uint x) +{ + return cast_float_to_half( + float(x) * FIXED_COVERAGE_INVERSE_FACTOR + + (-FIXED_COVERAGE_ZERO * FIXED_COVERAGE_INVERSE_FACTOR)); +} + +#ifdef _EXPORTED_ENABLE_CLIPPING +INLINE void apply_clip(uint clipID, + CLIP_VALUE_TYPE clipData, + INOUT(half) coverage) +{ +#ifdef _EXPORTED_PLS_BLEND_SRC_OVER + // The clipID is packed into r & g of clipData. Use a fuzzy equality test + // since we lose precision when the clip value gets stored to and from the + // attachment. + if (all(lessThan(abs(clipData.xy - unpackUnorm4x8(clipID).xy), + make_half2(.25 / 255.)))) + coverage = min(coverage, clipData.z); + else + coverage = .0; +#else + // The clipID is the top 16 bits of clipData. + if (clipID == clipData >> 16) + coverage = min(coverage, unpackHalf2x16(clipData).x); + else + coverage = .0; +#endif +} +#endif + +INLINE void resolve_paint(uint pathID, + half coverageCount, + OUT(half4) fragColorOut +#if defined(_EXPORTED_ENABLE_CLIPPING) && !defined(_EXPORTED_RESOLVE_PLS) + , + INOUT(CLIP_VALUE_TYPE) fragClipOut +#endif + FRAGMENT_CONTEXT_DECL PLS_CONTEXT_DECL) +{ + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + half coverage = coverageCount; + if ((paintData.x & (PAINT_FLAG_NON_ZERO_FILL | PAINT_FLAG_EVEN_ODD_FILL)) != + 0u) + { + // This path has a legacy (non-clockwise) fill. + coverage = abs(coverage); +#ifdef _EXPORTED_ENABLE_EVEN_ODD + if (_EXPORTED_ENABLE_EVEN_ODD && (paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + { + coverage = 1. - abs(fract(coverage * .5) * 2. + -1.); + } +#endif + } + // This also caps stroke coverage, which can be >1. + coverage = clamp(coverage, make_half(.0), make_half(1.)); +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING) + { + uint clipID = paintData.x >> 16u; + if (clipID != 0u) + { + apply_clip(clipID, PLS_LOAD_CLIP_TYPE(clipBuffer), coverage); + } + } +#endif // ENABLE_CLIPPING +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT && (paintData.x & PAINT_FLAG_HAS_CLIP_RECT) != 0u) + { + float2x2 M = make_float2x2( + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 2u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 3u); + float2 clipCoord = MUL(M, _fragCoord) + translate.xy; + // translate.zw contains -1 / fwidth(clipCoord), which we use to + // calculate antialiasing. + half2 distXY = + cast_float2_to_half2(abs(clipCoord) * translate.zw - translate.zw); + half clipRectCoverage = clamp(min(distXY.x, distXY.y) + .5, .0, 1.); + coverage = min(coverage, clipRectCoverage); + } +#endif // ENABLE_CLIP_RECT + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + fragColorOut = unpackUnorm4x8(paintData.y); +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { +#ifndef _EXPORTED_RESOLVE_PLS +#ifdef _EXPORTED_PLS_BLEND_SRC_OVER + // This was actually a clip update. fragColorOut contains the packed + // clipID. + fragClipOut.xy = fragColorOut.zw; // Pack the clipID into r & g. + fragClipOut.z = coverage; // Put the clipCoverage in b. + fragClipOut.w = + 1.; // a=1 so we replace the value in the clipBuffer. +#else + fragClipOut = paintData.y | packHalf2x16(make_half2(coverage, .0)); +#endif +#endif + // Don't update the colorBuffer when this is a clip update. + fragColorOut = make_half4(.0); + } +#endif + } + else // LINEAR_GRADIENT_PAINT_TYPE or RADIAL_GRADIENT_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + fragColorOut = + TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, gradSampler, float2(x, y), .0); + } + fragColorOut.w *= coverage; + +#if !defined(_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT) && defined(_EXPORTED_ENABLE_ADVANCED_BLEND) + // Apply the advanced blend mode, if applicable. + ushort blendMode; + if (_EXPORTED_ENABLE_ADVANCED_BLEND && fragColorOut.w != .0 && + (blendMode = cast_uint_to_ushort((paintData.x >> 4) & 0xfu)) != 0u) + { + half4 dstColor = PLS_LOAD4F(colorBuffer); + fragColorOut.xyz = + advanced_color_blend_pre_src_over(fragColorOut.xyz, + unmultiply(dstColor), + blendMode); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // When PLS_BLEND_SRC_OVER is defined, the caller and/or blend state + // multiply alpha into fragColorOut for us. Otherwise, we have to + // premultiply it. +#ifndef _EXPORTED_PLS_BLEND_SRC_OVER + fragColorOut.xyz *= fragColorOut.w; +#endif +} + +#ifndef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +INLINE void emit_pls_color(half4 fragColorOut PLS_CONTEXT_DECL) +{ +#ifndef _EXPORTED_PLS_BLEND_SRC_OVER + if (fragColorOut.w == .0) + return; + float oneMinusSrcAlpha = 1. - fragColorOut.w; + if (oneMinusSrcAlpha != .0) + fragColorOut = + PLS_LOAD4F(colorBuffer) * oneMinusSrcAlpha + fragColorOut; +#endif + PLS_STORE4F(colorBuffer, fragColorOut); +} +#endif // !FIXED_FUNCTION_COLOR_OUTPUT + +#if defined(_EXPORTED_ENABLE_CLIPPING) && !defined(_EXPORTED_RESOLVE_PLS) +INLINE void emit_pls_clip(CLIP_VALUE_TYPE fragClipOut PLS_CONTEXT_DECL) +{ +#ifdef _EXPORTED_PLS_BLEND_SRC_OVER + PLS_STORE4F(clipBuffer, fragClipOut); +#else + if (fragClipOut != 0u) + PLS_STOREUI(clipBuffer, fragClipOut); +#endif +} +#endif // ENABLE_CLIPPING && !RESOLVE_PLS + +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_FRAG_COLOR_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS \ + PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS_AND_FRAG_COLOR +#else // !FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS PLS_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS +#endif + +#ifdef _EXPORTED_DRAW_PATH +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + + half fragmentCoverage = + min(min(v_edgeDistance.x, abs(v_edgeDistance.y)), make_half(1.)); + + // Since v_pathID increases monotonically with every draw, and since it + // lives in the most significant bits of the coverage data, an atomic max() + // function will serve 3 purposes: + // + // * The invocation that changes the pathID is the single first fragment + // invocation to hit the new path, and the one that should resolve the + // previous path in the framebuffer. + // * Properly resets coverage to zero when we do cross over into + // processing + // a new path. + // * Accumulates coverage for strokes. + // + uint fixedCoverage = to_fixed(fragmentCoverage); + uint minCoverageData = (make_uint(v_pathID) << 16) | fixedCoverage; + uint lastCoverageData = + PLS_ATOMIC_MAX(coverageAtomicBuffer, minCoverageData); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just update coverage + // (if we're a fill) and move on. + if (v_edgeDistance.y < .0 /*fill?*/) + { + // Only apply the effect of the min() the first time we cross into a + // path. + fixedCoverage += + lastCoverageData - max(minCoverageData, lastCoverageData); + fixedCoverage -= + FIXED_COVERAGE_ZERO_UINT; // Only apply the zero bias once. + PLS_ATOMIC_ADD(coverageAtomicBuffer, + fixedCoverage); // Count coverage. + } + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef _EXPORTED_ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + coverageCount, + fragColorOut +#ifdef _EXPORTED_ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef _EXPORTED_ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_PATH + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_windingWeight, half); + VARYING_UNPACK(v_pathID, ushort); + + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + + // Update coverageAtomicBuffer with the coverage weight of the current + // triangle. This does not need to be atomic since interior triangles don't + // overlap. + int coverageDeltaFixed = int(v_windingWeight * FIXED_COVERAGE_FACTOR); + uint currPathCoverageData = + lastPathID == v_pathID + ? lastCoverageData + : (make_uint(v_pathID) << 16) + FIXED_COVERAGE_ZERO_UINT; + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, + currPathCoverageData + uint(coverageDeltaFixed)); + + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just move on. + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef _EXPORTED_ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef _EXPORTED_ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef _EXPORTED_ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef _EXPORTED_DRAW_IMAGE +ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef _EXPORTED_DRAW_IMAGE_RECT + VARYING_UNPACK(v_edgeCoverage, half); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + // Start by finding the image color. We have to do this immediately instead + // of allowing it to get resolved later like other draws because the + // @imageTexture binding is liable to change, and furthermore in the case of + // imageMeshes, we can't calculate UV coordinates based on fragment + // position. + half4 imageColor = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + half imageCoverage = 1.; +#ifdef _EXPORTED_DRAW_IMAGE_RECT + imageCoverage = min(v_edgeCoverage, imageCoverage); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + imageCoverage = clamp(clipRectCoverage, make_half(.0), imageCoverage); + } +#endif + + // Resolve the previous path. + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef _EXPORTED_ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + // TODO: consider not resolving the prior paint if we're solid and the prior + // paint is not a clip update: (imageColor.a == 1. && + // imageDrawUniforms.blendMode == + // BLEND_SRC_OVER && priorPaintType != + // CLIP_UPDATE_PAINT_TYPE) + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef _EXPORTED_ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef _EXPORTED_PLS_BLEND_SRC_OVER + // Image draws use a premultiplied blend state, but resolve_paint() did not + // premultiply fragColorOut. Multiply fragColorOut by alpha now. + fragColorOut.xyz *= fragColorOut.w; +#endif + + // Clip the image after resolving the previous path, since that can affect + // the clip buffer. +#ifdef _EXPORTED_ENABLE_CLIPPING // TODO! ENABLE_IMAGE_CLIPPING in addition to + // ENABLE_CLIPPING? + if (_EXPORTED_ENABLE_CLIPPING && imageDrawUniforms.clipID != 0u) + { + CLIP_VALUE_TYPE clipData = HAS_UPDATED_CLIP_VALUE(fragClipOut) + ? fragClipOut + : PLS_LOAD_CLIP_TYPE(clipBuffer); + apply_clip(imageDrawUniforms.clipID, clipData, imageCoverage); + } +#endif // ENABLE_CLIPPING + imageColor.w *= + imageCoverage * cast_float_to_half(imageDrawUniforms.opacity); + + // Prepare imageColor for premultiplied src-over blending. +#if !defined(_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT) && defined(_EXPORTED_ENABLE_ADVANCED_BLEND) + if (_EXPORTED_ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + // Calculate what dstColor will be after applying fragColorOut. + half4 dstColor = + PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.w) + fragColorOut; + // Calculate the imageColor to emit *BEFORE* src-over blending, such + // that the post-src-over-blend result is equivalent to the blendMode. + imageColor.xyz = advanced_color_blend_pre_src_over( + imageColor.xyz, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // Image draws use a premultiplied blend state; premultiply alpha here in + // the shader. + imageColor.xyz *= imageColor.w; + + // Leverage the property that premultiplied src-over blending is associative + // and blend the imageColor and fragColorOut before passing them on to the + // blending pipeline. + fragColorOut = fragColorOut * (1. - imageColor.w) + imageColor; + +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef _EXPORTED_ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + // Write out a coverage value of "zero at pathID=0" so a future resolve + // attempt doesn't affect this pixel. + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, FIXED_COVERAGE_ZERO_UINT); + + EMIT_ATOMIC_PLS +} +#endif // DRAW_IMAGE + +#ifdef _EXPORTED_INITIALIZE_PLS + +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ +#ifdef _EXPORTED_STORE_COLOR_CLEAR + PLS_STORE4F(colorBuffer, unpackUnorm4x8(uniforms.colorClearValue)); +#endif +#ifdef _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA + half4 color = PLS_LOAD4F(colorBuffer); + PLS_STORE4F(colorBuffer, color.zyxw); +#endif + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, uniforms.coverageClearValue); +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING) + { + PLS_STOREUI(clipBuffer, 0u); + } +#endif +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT + discard; +#endif + EMIT_ATOMIC_PLS +} + +#endif // INITIALIZE_PLS + +#ifdef _EXPORTED_RESOLVE_PLS + +#ifdef _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +PLS_FRAG_COLOR_MAIN(_EXPORTED_drawFragmentMain) +#else +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +#endif +{ + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half4 fragColorOut; + resolve_paint(lastPathID, + coverageCount, + fragColorOut FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); +#ifdef _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER + _fragColor = PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.w) + fragColorOut; + EMIT_PLS_AND_FRAG_COLOR +#else +#ifdef _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif + EMIT_ATOMIC_PLS +#endif // COALESCED_PLS_RESOLVE_AND_TRANSFER +} +#endif // RESOLVE_PLS +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/atomic_draw.minified.glsl b/defold-rive/include/generated/shaders/atomic_draw.minified.glsl new file mode 100644 index 00000000..5ecb0bcf --- /dev/null +++ b/defold-rive/include/generated/shaders/atomic_draw.minified.glsl @@ -0,0 +1,832 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef DRAW_PATH +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, + float4, + _EXPORTED_a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + v_pathID = cast_uint_to_ushort(pathID); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef DRAW_INTERIOR_TRIANGLES +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + v_pathID = cast_uint_to_ushort(pathID); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef DRAW_IMAGE_RECT +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, float4, _EXPORTED_a_imageRectVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +NO_PERSPECTIVE VARYING(1, half, v_edgeCoverage); +#ifdef ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +IMAGE_RECT_VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_imageRectVertex, float4); + + VARYING_INIT(v_texCoord, float2); + VARYING_INIT(v_edgeCoverage, half); +#ifdef ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + bool isOuterVertex = + _EXPORTED_a_imageRectVertex.z == .0 || _EXPORTED_a_imageRectVertex.w == .0; + v_edgeCoverage = isOuterVertex ? .0 : 1.; + + float2 vertexPosition = _EXPORTED_a_imageRectVertex.xy; + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2x2 MIT = transpose(inverse(M)); + if (!isOuterVertex) + { + // Inset the inner vertices to the point where coverage == 1. + // NOTE: if width/height ever change from 1, these equations need to be + // updated. + float aaRadiusX = + AA_RADIUS * manhattan_width(MIT[1]) / dot(M[1], MIT[1]); + if (aaRadiusX >= .5) + { + vertexPosition.x = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusX); + } + else + { + vertexPosition.x += aaRadiusX * _EXPORTED_a_imageRectVertex.z; + } + float aaRadiusY = + AA_RADIUS * manhattan_width(MIT[0]) / dot(M[0], MIT[0]); + if (aaRadiusY >= .5) + { + vertexPosition.y = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusY); + } + else + { + vertexPosition.y += aaRadiusY * _EXPORTED_a_imageRectVertex.w; + } + } + + v_texCoord = vertexPosition; + vertexPosition = MUL(M, vertexPosition) + imageDrawUniforms.translate; + + if (isOuterVertex) + { + // Outset the outer vertices to the point where coverage == 0. + float2 n = MUL(MIT, _EXPORTED_a_imageRectVertex.zw); + n *= manhattan_width(n) / dot(n, n); + vertexPosition += AA_RADIUS * n; + } + +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + VARYING_PACK(v_edgeCoverage); +#ifdef ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX + +#elif defined(DRAW_IMAGE_MESH) +#ifdef VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(1, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef VERTEX +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2 vertexPosition = MUL(M, _EXPORTED_a_position) + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; + +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); +#ifdef ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_IMAGE_MESH + +#ifdef DRAW_RENDER_TARGET_UPDATE_BOUNDS +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR_BLOCK_END +#endif // VERTEX + +VARYING_BLOCK_BEGIN +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + int2 coord; + coord.x = (_vertexID & 1) == 0 ? uniforms.renderTargetUpdateBounds.x + : uniforms.renderTargetUpdateBounds.z; + coord.y = (_vertexID & 2) == 0 ? uniforms.renderTargetUpdateBounds.y + : uniforms.renderTargetUpdateBounds.w; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(float2(coord)); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_RENDER_TARGET_UPDATE_BOUNDS + +#ifdef DRAW_IMAGE +#define NEEDS_IMAGE_TEXTURE +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +#ifdef NEEDS_IMAGE_TEXTURE +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +#ifdef NEEDS_IMAGE_TEXTURE +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) +#endif + +PLS_BLOCK_BEGIN +// We only write the framebuffer as a storage texture when there are blend +// modes. Otherwise, we render to it as a normal color attachment. +#ifndef FIXED_FUNCTION_COLOR_OUTPUT +#ifdef COLOR_PLANE_IDX_OVERRIDE +// D3D11 doesn't let us bind the framebuffer UAV to slot 0 when there is a color +// output. +PLS_DECL4F(COLOR_PLANE_IDX_OVERRIDE, colorBuffer); +#else +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +#endif +#endif // !FIXED_FUNCTION_COLOR_OUTPUT +#ifdef PLS_BLEND_SRC_OVER +// When PLS has src-over blending enabled, the clip buffer is RGBA8 so we can +// preserve clip contents by emitting a=0 instead of loading the current value. +// This is also is a hint to the hardware that it doesn't need to write anything +// to the clip attachment. +#define CLIP_VALUE_TYPE half4 +#define PLS_LOAD_CLIP_TYPE PLS_LOAD4F +#define MAKE_NON_UPDATING_CLIP_VALUE make_half4(.0) +#define HAS_UPDATED_CLIP_VALUE(X) ((X).w != .0) +#ifdef ENABLE_CLIPPING +#ifndef RESOLVE_PLS +PLS_DECL4F(CLIP_PLANE_IDX, clipBuffer); +#else +PLS_DECL4F_READONLY(CLIP_PLANE_IDX, clipBuffer); +#endif +#endif // ENABLE_CLIPPING +#else +// When PLS does not have src-over blending, the clip buffer the usual packed +// R32UI. +#define CLIP_VALUE_TYPE uint +#define MAKE_NON_UPDATING_CLIP_VALUE 0u +#define PLS_LOAD_CLIP_TYPE PLS_LOADUI +#define HAS_UPDATED_CLIP_VALUE(X) ((X) != 0u) +#ifdef ENABLE_CLIPPING +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +#endif // ENABLE_CLIPPING +#endif // !PLS_BLEND_SRC_OVER +PLS_DECLUI_ATOMIC(COVERAGE_PLANE_IDX, coverageAtomicBuffer); +PLS_BLOCK_END + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE uint to_fixed(float x) +{ + return uint(x * FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO); +} + +INLINE half from_fixed(uint x) +{ + return cast_float_to_half( + float(x) * FIXED_COVERAGE_INVERSE_FACTOR + + (-FIXED_COVERAGE_ZERO * FIXED_COVERAGE_INVERSE_FACTOR)); +} + +#ifdef ENABLE_CLIPPING +INLINE void apply_clip(uint clipID, + CLIP_VALUE_TYPE clipData, + INOUT(half) coverage) +{ +#ifdef PLS_BLEND_SRC_OVER + // The clipID is packed into r & g of clipData. Use a fuzzy equality test + // since we lose precision when the clip value gets stored to and from the + // attachment. + if (all(lessThan(abs(clipData.xy - unpackUnorm4x8(clipID).xy), + make_half2(.25 / 255.)))) + coverage = min(coverage, clipData.z); + else + coverage = .0; +#else + // The clipID is the top 16 bits of clipData. + if (clipID == clipData >> 16) + coverage = min(coverage, unpackHalf2x16(clipData).x); + else + coverage = .0; +#endif +} +#endif + +INLINE void resolve_paint(uint pathID, + half coverageCount, + OUT(half4) fragColorOut +#if defined(ENABLE_CLIPPING) && !defined(RESOLVE_PLS) + , + INOUT(CLIP_VALUE_TYPE) fragClipOut +#endif + FRAGMENT_CONTEXT_DECL PLS_CONTEXT_DECL) +{ + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + half coverage = coverageCount; + if ((paintData.x & (PAINT_FLAG_NON_ZERO_FILL | PAINT_FLAG_EVEN_ODD_FILL)) != + 0u) + { + // This path has a legacy (non-clockwise) fill. + coverage = abs(coverage); +#ifdef ENABLE_EVEN_ODD + if (ENABLE_EVEN_ODD && (paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + { + coverage = 1. - abs(fract(coverage * .5) * 2. + -1.); + } +#endif + } + // This also caps stroke coverage, which can be >1. + coverage = clamp(coverage, make_half(.0), make_half(1.)); +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING) + { + uint clipID = paintData.x >> 16u; + if (clipID != 0u) + { + apply_clip(clipID, PLS_LOAD_CLIP_TYPE(clipBuffer), coverage); + } + } +#endif // ENABLE_CLIPPING +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT && (paintData.x & PAINT_FLAG_HAS_CLIP_RECT) != 0u) + { + float2x2 M = make_float2x2( + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 2u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 3u); + float2 clipCoord = MUL(M, _fragCoord) + translate.xy; + // translate.zw contains -1 / fwidth(clipCoord), which we use to + // calculate antialiasing. + half2 distXY = + cast_float2_to_half2(abs(clipCoord) * translate.zw - translate.zw); + half clipRectCoverage = clamp(min(distXY.x, distXY.y) + .5, .0, 1.); + coverage = min(coverage, clipRectCoverage); + } +#endif // ENABLE_CLIP_RECT + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + fragColorOut = unpackUnorm4x8(paintData.y); +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { +#ifndef RESOLVE_PLS +#ifdef PLS_BLEND_SRC_OVER + // This was actually a clip update. fragColorOut contains the packed + // clipID. + fragClipOut.xy = fragColorOut.zw; // Pack the clipID into r & g. + fragClipOut.z = coverage; // Put the clipCoverage in b. + fragClipOut.w = + 1.; // a=1 so we replace the value in the clipBuffer. +#else + fragClipOut = paintData.y | packHalf2x16(make_half2(coverage, .0)); +#endif +#endif + // Don't update the colorBuffer when this is a clip update. + fragColorOut = make_half4(.0); + } +#endif + } + else // LINEAR_GRADIENT_PAINT_TYPE or RADIAL_GRADIENT_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + fragColorOut = + TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, gradSampler, float2(x, y), .0); + } + fragColorOut.w *= coverage; + +#if !defined(FIXED_FUNCTION_COLOR_OUTPUT) && defined(ENABLE_ADVANCED_BLEND) + // Apply the advanced blend mode, if applicable. + ushort blendMode; + if (ENABLE_ADVANCED_BLEND && fragColorOut.w != .0 && + (blendMode = cast_uint_to_ushort((paintData.x >> 4) & 0xfu)) != 0u) + { + half4 dstColor = PLS_LOAD4F(colorBuffer); + fragColorOut.xyz = + advanced_color_blend_pre_src_over(fragColorOut.xyz, + unmultiply(dstColor), + blendMode); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // When PLS_BLEND_SRC_OVER is defined, the caller and/or blend state + // multiply alpha into fragColorOut for us. Otherwise, we have to + // premultiply it. +#ifndef PLS_BLEND_SRC_OVER + fragColorOut.xyz *= fragColorOut.w; +#endif +} + +#ifndef FIXED_FUNCTION_COLOR_OUTPUT +INLINE void emit_pls_color(half4 fragColorOut PLS_CONTEXT_DECL) +{ +#ifndef PLS_BLEND_SRC_OVER + if (fragColorOut.w == .0) + return; + float oneMinusSrcAlpha = 1. - fragColorOut.w; + if (oneMinusSrcAlpha != .0) + fragColorOut = + PLS_LOAD4F(colorBuffer) * oneMinusSrcAlpha + fragColorOut; +#endif + PLS_STORE4F(colorBuffer, fragColorOut); +} +#endif // !FIXED_FUNCTION_COLOR_OUTPUT + +#if defined(ENABLE_CLIPPING) && !defined(RESOLVE_PLS) +INLINE void emit_pls_clip(CLIP_VALUE_TYPE fragClipOut PLS_CONTEXT_DECL) +{ +#ifdef PLS_BLEND_SRC_OVER + PLS_STORE4F(clipBuffer, fragClipOut); +#else + if (fragClipOut != 0u) + PLS_STOREUI(clipBuffer, fragClipOut); +#endif +} +#endif // ENABLE_CLIPPING && !RESOLVE_PLS + +#ifdef FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_FRAG_COLOR_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS \ + PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS_AND_FRAG_COLOR +#else // !FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS PLS_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS +#endif + +#ifdef DRAW_PATH +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + + half fragmentCoverage = + min(min(v_edgeDistance.x, abs(v_edgeDistance.y)), make_half(1.)); + + // Since v_pathID increases monotonically with every draw, and since it + // lives in the most significant bits of the coverage data, an atomic max() + // function will serve 3 purposes: + // + // * The invocation that changes the pathID is the single first fragment + // invocation to hit the new path, and the one that should resolve the + // previous path in the framebuffer. + // * Properly resets coverage to zero when we do cross over into + // processing + // a new path. + // * Accumulates coverage for strokes. + // + uint fixedCoverage = to_fixed(fragmentCoverage); + uint minCoverageData = (make_uint(v_pathID) << 16) | fixedCoverage; + uint lastCoverageData = + PLS_ATOMIC_MAX(coverageAtomicBuffer, minCoverageData); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just update coverage + // (if we're a fill) and move on. + if (v_edgeDistance.y < .0 /*fill?*/) + { + // Only apply the effect of the min() the first time we cross into a + // path. + fixedCoverage += + lastCoverageData - max(minCoverageData, lastCoverageData); + fixedCoverage -= + FIXED_COVERAGE_ZERO_UINT; // Only apply the zero bias once. + PLS_ATOMIC_ADD(coverageAtomicBuffer, + fixedCoverage); // Count coverage. + } + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + coverageCount, + fragColorOut +#ifdef ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_PATH + +#ifdef DRAW_INTERIOR_TRIANGLES +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_windingWeight, half); + VARYING_UNPACK(v_pathID, ushort); + + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + + // Update coverageAtomicBuffer with the coverage weight of the current + // triangle. This does not need to be atomic since interior triangles don't + // overlap. + int coverageDeltaFixed = int(v_windingWeight * FIXED_COVERAGE_FACTOR); + uint currPathCoverageData = + lastPathID == v_pathID + ? lastCoverageData + : (make_uint(v_pathID) << 16) + FIXED_COVERAGE_ZERO_UINT; + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, + currPathCoverageData + uint(coverageDeltaFixed)); + + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just move on. + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef DRAW_IMAGE +ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef DRAW_IMAGE_RECT + VARYING_UNPACK(v_edgeCoverage, half); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + // Start by finding the image color. We have to do this immediately instead + // of allowing it to get resolved later like other draws because the + // @imageTexture binding is liable to change, and furthermore in the case of + // imageMeshes, we can't calculate UV coordinates based on fragment + // position. + half4 imageColor = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + half imageCoverage = 1.; +#ifdef DRAW_IMAGE_RECT + imageCoverage = min(v_edgeCoverage, imageCoverage); +#endif +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + imageCoverage = clamp(clipRectCoverage, make_half(.0), imageCoverage); + } +#endif + + // Resolve the previous path. + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + // TODO: consider not resolving the prior paint if we're solid and the prior + // paint is not a clip update: (imageColor.a == 1. && + // imageDrawUniforms.blendMode == + // BLEND_SRC_OVER && priorPaintType != + // CLIP_UPDATE_PAINT_TYPE) + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef PLS_BLEND_SRC_OVER + // Image draws use a premultiplied blend state, but resolve_paint() did not + // premultiply fragColorOut. Multiply fragColorOut by alpha now. + fragColorOut.xyz *= fragColorOut.w; +#endif + + // Clip the image after resolving the previous path, since that can affect + // the clip buffer. +#ifdef ENABLE_CLIPPING // TODO! ENABLE_IMAGE_CLIPPING in addition to + // ENABLE_CLIPPING? + if (ENABLE_CLIPPING && imageDrawUniforms.clipID != 0u) + { + CLIP_VALUE_TYPE clipData = HAS_UPDATED_CLIP_VALUE(fragClipOut) + ? fragClipOut + : PLS_LOAD_CLIP_TYPE(clipBuffer); + apply_clip(imageDrawUniforms.clipID, clipData, imageCoverage); + } +#endif // ENABLE_CLIPPING + imageColor.w *= + imageCoverage * cast_float_to_half(imageDrawUniforms.opacity); + + // Prepare imageColor for premultiplied src-over blending. +#if !defined(FIXED_FUNCTION_COLOR_OUTPUT) && defined(ENABLE_ADVANCED_BLEND) + if (ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + // Calculate what dstColor will be after applying fragColorOut. + half4 dstColor = + PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.w) + fragColorOut; + // Calculate the imageColor to emit *BEFORE* src-over blending, such + // that the post-src-over-blend result is equivalent to the blendMode. + imageColor.xyz = advanced_color_blend_pre_src_over( + imageColor.xyz, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // Image draws use a premultiplied blend state; premultiply alpha here in + // the shader. + imageColor.xyz *= imageColor.w; + + // Leverage the property that premultiplied src-over blending is associative + // and blend the imageColor and fragColorOut before passing them on to the + // blending pipeline. + fragColorOut = fragColorOut * (1. - imageColor.w) + imageColor; + +#ifdef FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + // Write out a coverage value of "zero at pathID=0" so a future resolve + // attempt doesn't affect this pixel. + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, FIXED_COVERAGE_ZERO_UINT); + + EMIT_ATOMIC_PLS +} +#endif // DRAW_IMAGE + +#ifdef INITIALIZE_PLS + +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +{ +#ifdef STORE_COLOR_CLEAR + PLS_STORE4F(colorBuffer, unpackUnorm4x8(uniforms.colorClearValue)); +#endif +#ifdef SWIZZLE_COLOR_BGRA_TO_RGBA + half4 color = PLS_LOAD4F(colorBuffer); + PLS_STORE4F(colorBuffer, color.zyxw); +#endif + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, uniforms.coverageClearValue); +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING) + { + PLS_STOREUI(clipBuffer, 0u); + } +#endif +#ifdef FIXED_FUNCTION_COLOR_OUTPUT + discard; +#endif + EMIT_ATOMIC_PLS +} + +#endif // INITIALIZE_PLS + +#ifdef RESOLVE_PLS + +#ifdef COALESCED_PLS_RESOLVE_AND_TRANSFER +PLS_FRAG_COLOR_MAIN(_EXPORTED_drawFragmentMain) +#else +ATOMIC_PLS_MAIN(_EXPORTED_drawFragmentMain) +#endif +{ + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half4 fragColorOut; + resolve_paint(lastPathID, + coverageCount, + fragColorOut FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); +#ifdef COALESCED_PLS_RESOLVE_AND_TRANSFER + _fragColor = PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.w) + fragColorOut; + EMIT_PLS_AND_FRAG_COLOR +#else +#ifdef FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif + EMIT_ATOMIC_PLS +#endif // COALESCED_PLS_RESOLVE_AND_TRANSFER +} +#endif // RESOLVE_PLS +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/blit_texture_as_draw.exports.h b/defold-rive/include/generated/shaders/blit_texture_as_draw.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/blit_texture_as_draw.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/blit_texture_as_draw.glsl.hpp b/defold-rive/include/generated/shaders/blit_texture_as_draw.glsl.hpp new file mode 100644 index 00000000..af0ddb10 --- /dev/null +++ b/defold-rive/include/generated/shaders/blit_texture_as_draw.glsl.hpp @@ -0,0 +1,46 @@ +#pragma once + +#include "blit_texture_as_draw.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char blit_texture_as_draw[] = R"===(/* + * Copyright 2024 Rive + */ + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_blitVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Fill the entire screen. The caller will use a scissor test to control the + // bounds being drawn. + float2 coord; + coord.x = (_vertexID & 1) == 0 ? -1. : 1.; + coord.y = (_vertexID & 2) == 0 ? -1. : 1.; + float4 pos = float4(coord, 0, 1); + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, 0, _EXPORTED_blitTextureSource); +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_blitFragmentMain) +{ + half4 srcColor = + TEXEL_FETCH(_EXPORTED_blitTextureSource, int2(floor(_fragCoord.xy))); + EMIT_FRAG_DATA(srcColor); +} +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/blit_texture_as_draw.minified.glsl b/defold-rive/include/generated/shaders/blit_texture_as_draw.minified.glsl new file mode 100644 index 00000000..1d6771e0 --- /dev/null +++ b/defold-rive/include/generated/shaders/blit_texture_as_draw.minified.glsl @@ -0,0 +1,35 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_blitVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Fill the entire screen. The caller will use a scissor test to control the + // bounds being drawn. + float2 coord; + coord.x = (_vertexID & 1) == 0 ? -1. : 1.; + coord.y = (_vertexID & 2) == 0 ? -1. : 1.; + float4 pos = float4(coord, 0, 1); + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, 0, _EXPORTED_blitTextureSource); +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_blitFragmentMain) +{ + half4 srcColor = + TEXEL_FETCH(_EXPORTED_blitTextureSource, int2(floor(_fragCoord.xy))); + EMIT_FRAG_DATA(srcColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/color_ramp.exports.h b/defold-rive/include/generated/shaders/color_ramp.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/color_ramp.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/color_ramp.glsl.hpp b/defold-rive/include/generated/shaders/color_ramp.glsl.hpp new file mode 100644 index 00000000..cbc6a5e1 --- /dev/null +++ b/defold-rive/include/generated/shaders/color_ramp.glsl.hpp @@ -0,0 +1,114 @@ +#pragma once + +#include "color_ramp.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char color_ramp[] = R"===(/* + * Copyright 2022 Rive + */ + +// This shader draws horizontal color ramps into a gradient texture, which will +// later be sampled by the renderer for drawing gradients. + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(0, uint, _EXPORTED_a_spanX); +ATTR(1, uint, _EXPORTED_a_yWithFlags); +ATTR(2, uint, _EXPORTED_a_color0); +ATTR(3, uint, _EXPORTED_a_color1); +#else +ATTR(0, uint4, _EXPORTED_a_span); // [spanX, y, color0, color1] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half4, v_rampColor); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +half4 unpackColorInt(uint color) +{ + return cast_uint4_to_half4( + (uint4(color, color, color, color) >> uint4(16, 8, 0, 24)) & + 0xffu) / + 255.; +} + +VERTEX_MAIN(_EXPORTED_colorRampVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_spanX, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_yWithFlags, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_color0, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_color1, uint); + uint4 _EXPORTED_a_span = uint4(_EXPORTED_a_spanX, _EXPORTED_a_yWithFlags, _EXPORTED_a_color0, _EXPORTED_a_color1); +#else + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_span, uint4); +#endif + VARYING_INIT(v_rampColor, half4); + + int columnWithinSpan = _vertexID >> 1; + float x = + float(columnWithinSpan <= 1 ? _EXPORTED_a_span.x & 0xffffu : _EXPORTED_a_span.x >> 16) / + 65536.; + float offsetY = (_vertexID & 1) == 0 ? .0 : 1.; + if (uniforms.gradInverseViewportY < .0) + { + // Swap the top and bottom vertices to make sure we always emit + // clockwise triangles. vertices. + offsetY = 1. - offsetY; + } + uint yWithFlags = _EXPORTED_a_span.y; + float y = float(yWithFlags & ~GRAD_SPAN_FLAGS_MASK) + offsetY; + if ((yWithFlags & GRAD_SPAN_FLAG_LEFT_BORDER) != 0u && + columnWithinSpan == 0) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = .0; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x -= GRAD_TEXTURE_INVERSE_WIDTH; + } + if ((yWithFlags & GRAD_SPAN_FLAG_RIGHT_BORDER) != 0u && + columnWithinSpan == 3) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = 1.; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x += GRAD_TEXTURE_INVERSE_WIDTH; + } + v_rampColor = unpackColorInt(columnWithinSpan <= 1 ? _EXPORTED_a_span.z : _EXPORTED_a_span.w); + + float4 pos; + pos.x = x * 2. - 1.; + pos.y = + y * uniforms.gradInverseViewportY - sign(uniforms.gradInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_rampColor); + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_DATA_MAIN(half4, _EXPORTED_colorRampFragmentMain) +{ + VARYING_UNPACK(v_rampColor, half4); + EMIT_FRAG_DATA(v_rampColor); +} +#endif +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/color_ramp.minified.glsl b/defold-rive/include/generated/shaders/color_ramp.minified.glsl new file mode 100644 index 00000000..73267124 --- /dev/null +++ b/defold-rive/include/generated/shaders/color_ramp.minified.glsl @@ -0,0 +1,103 @@ +/* + * Copyright 2022 Rive + */ + +// This shader draws horizontal color ramps into a gradient texture, which will +// later be sampled by the renderer for drawing gradients. + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(0, uint, _EXPORTED_a_spanX); +ATTR(1, uint, _EXPORTED_a_yWithFlags); +ATTR(2, uint, _EXPORTED_a_color0); +ATTR(3, uint, _EXPORTED_a_color1); +#else +ATTR(0, uint4, _EXPORTED_a_span); // [spanX, y, color0, color1] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half4, v_rampColor); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +half4 unpackColorInt(uint color) +{ + return cast_uint4_to_half4( + (uint4(color, color, color, color) >> uint4(16, 8, 0, 24)) & + 0xffu) / + 255.; +} + +VERTEX_MAIN(_EXPORTED_colorRampVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_spanX, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_yWithFlags, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_color0, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_color1, uint); + uint4 _EXPORTED_a_span = uint4(_EXPORTED_a_spanX, _EXPORTED_a_yWithFlags, _EXPORTED_a_color0, _EXPORTED_a_color1); +#else + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_span, uint4); +#endif + VARYING_INIT(v_rampColor, half4); + + int columnWithinSpan = _vertexID >> 1; + float x = + float(columnWithinSpan <= 1 ? _EXPORTED_a_span.x & 0xffffu : _EXPORTED_a_span.x >> 16) / + 65536.; + float offsetY = (_vertexID & 1) == 0 ? .0 : 1.; + if (uniforms.gradInverseViewportY < .0) + { + // Swap the top and bottom vertices to make sure we always emit + // clockwise triangles. vertices. + offsetY = 1. - offsetY; + } + uint yWithFlags = _EXPORTED_a_span.y; + float y = float(yWithFlags & ~GRAD_SPAN_FLAGS_MASK) + offsetY; + if ((yWithFlags & GRAD_SPAN_FLAG_LEFT_BORDER) != 0u && + columnWithinSpan == 0) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = .0; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x -= GRAD_TEXTURE_INVERSE_WIDTH; + } + if ((yWithFlags & GRAD_SPAN_FLAG_RIGHT_BORDER) != 0u && + columnWithinSpan == 3) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = 1.; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x += GRAD_TEXTURE_INVERSE_WIDTH; + } + v_rampColor = unpackColorInt(columnWithinSpan <= 1 ? _EXPORTED_a_span.z : _EXPORTED_a_span.w); + + float4 pos; + pos.x = x * 2. - 1.; + pos.y = + y * uniforms.gradInverseViewportY - sign(uniforms.gradInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_rampColor); + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_DATA_MAIN(half4, _EXPORTED_colorRampFragmentMain) +{ + VARYING_UNPACK(v_rampColor, half4); + EMIT_FRAG_DATA(v_rampColor); +} +#endif diff --git a/defold-rive/include/generated/shaders/common.exports.h b/defold-rive/include/generated/shaders/common.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/common.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/common.glsl.hpp b/defold-rive/include/generated/shaders/common.glsl.hpp new file mode 100644 index 00000000..10f08d7f --- /dev/null +++ b/defold-rive/include/generated/shaders/common.glsl.hpp @@ -0,0 +1,292 @@ +#pragma once + +#include "common.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char common[] = R"===(/* + * Copyright 2022 Rive + */ + +// Common functions shared by multiple shaders. +#define PI float(3.141592653589793238) + +#ifndef _EXPORTED_RENDER_MODE_MSAA +#define AA_RADIUS float(.5) +#else +#define AA_RADIUS float(.0) +#endif + +#ifdef GLSL +// GLSL has different semantics around precision. Normalize type conversions +// across languages with "cast_*_to_*()" methods. +INLINE half cast_float_to_half(float x) { return x; } +INLINE half cast_uint_to_half(uint x) { return float(x); } +INLINE half cast_ushort_to_half(ushort x) { return float(x); } +INLINE half cast_int_to_half(int x) { return float(x); } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return vec4(xyzw); } +INLINE ushort cast_half_to_ushort(half x) { return uint(x); } +INLINE ushort cast_uint_to_ushort(uint x) { return x; } +#else +INLINE half cast_float_to_half(float x) { return (half)x; } +INLINE half cast_uint_to_half(uint x) { return (half)x; } +INLINE half cast_ushort_to_half(ushort x) { return (half)x; } +INLINE half cast_int_to_half(int x) { return (half)x; } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return (half4)xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return (half2)xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return (half4)xyzw; } +INLINE ushort cast_half_to_ushort(half x) { return (ushort)x; } +INLINE ushort cast_uint_to_ushort(uint x) { return (ushort)x; } +#endif + +INLINE half make_half(half x) { return x; } + +INLINE half2 make_half2(half2 xy) { return xy; } + +INLINE half2 make_half2(half x, half y) +{ + half2 ret; + ret.x = x, ret.y = y; + return ret; +} + +INLINE half2 make_half2(half x) +{ + half2 ret; + ret.x = x, ret.y = x; + return ret; +} + +INLINE half3 make_half3(half x, half y, half z) +{ + half3 ret; + ret.x = x, ret.y = y, ret.z = z; + return ret; +} + +INLINE half3 make_half3(half x) +{ + half3 ret; + ret.x = x, ret.y = x, ret.z = x; + return ret; +} + +INLINE half4 make_half4(half x, half y, half z, half w) +{ + half4 ret; + ret.x = x, ret.y = y, ret.z = z, ret.w = w; + return ret; +} + +INLINE half4 make_half4(half3 xyz, half w) +{ + half4 ret; + ret.xyz = xyz; + ret.w = w; + return ret; +} + +INLINE half4 make_half4(half x) +{ + half4 ret; + ret.x = x, ret.y = x, ret.z = x, ret.w = x; + return ret; +} + +INLINE half3x3 make_half3x3(half3 a, half3 b, half3 c) +{ + half3x3 ret; + ret[0] = a; + ret[1] = b; + ret[2] = c; + return ret; +} + +INLINE half2x3 make_half2x3(half3 a, half3 b) +{ + half2x3 ret; + ret[0] = a; + ret[1] = b; + return ret; +} + +INLINE float2x2 make_float2x2(float4 x) { return float2x2(x.xy, x.zw); } + +INLINE uint make_uint(ushort x) { return x; } + +INLINE uint contour_data_idx(uint contourIDWithFlags) +{ + return (contourIDWithFlags & CONTOUR_ID_MASK) - 1u; +} + +INLINE float2 unchecked_mix(float2 a, float2 b, float t) +{ + return (b - a) * t + a; +} + +INLINE half id_bits_to_f16(uint idBits, uint pathIDGranularity) +{ + return idBits == 0u + ? .0 + : unpackHalf2x16((idBits + MAX_DENORM_F16) * pathIDGranularity) + .x; +} + +INLINE float atan2(float2 v) +{ + float bias = .0; + if (abs(v.x) > abs(v.y)) + { + v = float2(v.y, -v.x); + bias = PI / 2.; + } + return atan(v.y, v.x) + bias; +} + +INLINE half4 premultiply(half4 color) +{ + return make_half4(color.xyz * color.w, color.w); +} + +INLINE half4 unmultiply(half4 color) +{ + if (.0 < color.w && color.w < 1.) + { + color.xyz *= 1. / color.w; + // Since multiplying by the reciprocal isn't exact, and to handle + // invalid premultiplied data, take extra steps to ensure + // color * 1/alpha == 1 when color >= alpha. + color.xyz = mix(color.xyz, + make_half3(1.), + greaterThan(color.xyz, make_half3(254.5 / 255.))); + } + return color; +} + +INLINE half min_value(half4 min4) +{ + half2 min2 = min(min4.xy, min4.zw); + half min1 = min(min2.x, min2.y); + return min1; +} + +INLINE float manhattan_width(float2 x) { return abs(x.x) + abs(x.y); } + +#ifndef UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(FLUSH_UNIFORM_BUFFER_IDX, _EXPORTED_FlushUniforms) +float gradInverseViewportY; +float tessInverseViewportY; +float renderTargetInverseViewportX; +float renderTargetInverseViewportY; +uint renderTargetWidth; +uint renderTargetHeight; +uint colorClearValue; // Only used if clears are implemented as draws. +uint coverageClearValue; // Only used if clears are implemented as draws. +int4 renderTargetUpdateBounds; // drawBounds, or renderTargetBounds if there is + // a clear. (LTRB.) +uint coverageBufferPrefix; +uint pathIDGranularity; // Spacing between adjacent path IDs (1 if IEEE + // compliant). +float vertexDiscardValue; +UNIFORM_BLOCK_END(uniforms) +#endif + +#ifdef _EXPORTED_VERTEX + +#define RENDER_TARGET_COORD_TO_CLIP_COORD(COORD) \ + float4((COORD).x* uniforms.renderTargetInverseViewportX - 1., \ + (COORD).y * -uniforms.renderTargetInverseViewportY + \ + sign(uniforms.renderTargetInverseViewportY), \ + .0, \ + 1.) + +#ifndef _EXPORTED_RENDER_MODE_MSAA +// Calculates the Manhattan distance in pixels from the given pixelPosition, to +// the point at each edge of the clipRect where coverage = 0. +// +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +INLINE float4 find_clip_rect_coverage_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + float2 clipRectAAWidth = + abs(clipRectInverseMatrix[0]) + abs(clipRectInverseMatrix[1]); + if (clipRectAAWidth.x != .0 && clipRectAAWidth.y != .0) + { + float2 r = 1. / clipRectAAWidth; + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate; + // When the center of a pixel falls exactly on an edge, coverage should + // be .5. + const float coverageWhenDistanceIsZero = .5; + return float4(clipRectCoord, -clipRectCoord) * r.xyxy + r.xyxy + + coverageWhenDistanceIsZero; + } + else + { + // The caller gave us a singular clipRectInverseMatrix. This is a + // special case where we are expected to use tx and ty as uniform + // coverage. + return clipRectInverseTranslate.xyxy; + } +} + +#else // RENDER_MODE_MSAA + +INLINE float normalize_z_index(uint zIndex) +{ + return 1. - float(zIndex) * (2. / 32768.); +} + +#ifdef _EXPORTED_ENABLE_CLIP_RECT +INLINE void set_clip_rect_plane_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + if (clipRectInverseMatrix != float2x2(0)) + { + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate.xy; + gl_ClipDistance[0] = clipRectCoord.x + 1.; + gl_ClipDistance[1] = clipRectCoord.y + 1.; + gl_ClipDistance[2] = 1. - clipRectCoord.x; + gl_ClipDistance[3] = 1. - clipRectCoord.y; + } + else + { + // "clipRectInverseMatrix == 0" is a special case: + // "clipRectInverseTranslate.x == 1" => all in. + // "clipRectInverseTranslate.x == 0" => all out. + gl_ClipDistance[0] = gl_ClipDistance[1] = gl_ClipDistance[2] = + gl_ClipDistance[3] = clipRectInverseTranslate.x - .5; + } +} +#endif // ENABLE_CLIP_RECT +#endif // RENDER_MODE_MSAA +#endif // VERTEX + +#ifdef _EXPORTED_DRAW_IMAGE +#ifndef UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(IMAGE_DRAW_UNIFORM_BUFFER_IDX, _EXPORTED_ImageDrawUniforms) +float4 viewMatrix; +float2 translate; +float opacity; +float padding; +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +float4 clipRectInverseMatrix; +float2 clipRectInverseTranslate; +uint clipID; +uint blendMode; +uint zIndex; +UNIFORM_BLOCK_END(imageDrawUniforms) +#endif +#endif +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/common.minified.glsl b/defold-rive/include/generated/shaders/common.minified.glsl new file mode 100644 index 00000000..d0720e20 --- /dev/null +++ b/defold-rive/include/generated/shaders/common.minified.glsl @@ -0,0 +1,281 @@ +/* + * Copyright 2022 Rive + */ + +// Common functions shared by multiple shaders. +#define PI float(3.141592653589793238) + +#ifndef RENDER_MODE_MSAA +#define AA_RADIUS float(.5) +#else +#define AA_RADIUS float(.0) +#endif + +#ifdef GLSL +// GLSL has different semantics around precision. Normalize type conversions +// across languages with "cast_*_to_*()" methods. +INLINE half cast_float_to_half(float x) { return x; } +INLINE half cast_uint_to_half(uint x) { return float(x); } +INLINE half cast_ushort_to_half(ushort x) { return float(x); } +INLINE half cast_int_to_half(int x) { return float(x); } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return vec4(xyzw); } +INLINE ushort cast_half_to_ushort(half x) { return uint(x); } +INLINE ushort cast_uint_to_ushort(uint x) { return x; } +#else +INLINE half cast_float_to_half(float x) { return (half)x; } +INLINE half cast_uint_to_half(uint x) { return (half)x; } +INLINE half cast_ushort_to_half(ushort x) { return (half)x; } +INLINE half cast_int_to_half(int x) { return (half)x; } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return (half4)xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return (half2)xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return (half4)xyzw; } +INLINE ushort cast_half_to_ushort(half x) { return (ushort)x; } +INLINE ushort cast_uint_to_ushort(uint x) { return (ushort)x; } +#endif + +INLINE half make_half(half x) { return x; } + +INLINE half2 make_half2(half2 xy) { return xy; } + +INLINE half2 make_half2(half x, half y) +{ + half2 ret; + ret.x = x, ret.y = y; + return ret; +} + +INLINE half2 make_half2(half x) +{ + half2 ret; + ret.x = x, ret.y = x; + return ret; +} + +INLINE half3 make_half3(half x, half y, half z) +{ + half3 ret; + ret.x = x, ret.y = y, ret.z = z; + return ret; +} + +INLINE half3 make_half3(half x) +{ + half3 ret; + ret.x = x, ret.y = x, ret.z = x; + return ret; +} + +INLINE half4 make_half4(half x, half y, half z, half w) +{ + half4 ret; + ret.x = x, ret.y = y, ret.z = z, ret.w = w; + return ret; +} + +INLINE half4 make_half4(half3 xyz, half w) +{ + half4 ret; + ret.xyz = xyz; + ret.w = w; + return ret; +} + +INLINE half4 make_half4(half x) +{ + half4 ret; + ret.x = x, ret.y = x, ret.z = x, ret.w = x; + return ret; +} + +INLINE half3x3 make_half3x3(half3 a, half3 b, half3 c) +{ + half3x3 ret; + ret[0] = a; + ret[1] = b; + ret[2] = c; + return ret; +} + +INLINE half2x3 make_half2x3(half3 a, half3 b) +{ + half2x3 ret; + ret[0] = a; + ret[1] = b; + return ret; +} + +INLINE float2x2 make_float2x2(float4 x) { return float2x2(x.xy, x.zw); } + +INLINE uint make_uint(ushort x) { return x; } + +INLINE uint contour_data_idx(uint contourIDWithFlags) +{ + return (contourIDWithFlags & CONTOUR_ID_MASK) - 1u; +} + +INLINE float2 unchecked_mix(float2 a, float2 b, float t) +{ + return (b - a) * t + a; +} + +INLINE half id_bits_to_f16(uint idBits, uint pathIDGranularity) +{ + return idBits == 0u + ? .0 + : unpackHalf2x16((idBits + MAX_DENORM_F16) * pathIDGranularity) + .x; +} + +INLINE float atan2(float2 v) +{ + float bias = .0; + if (abs(v.x) > abs(v.y)) + { + v = float2(v.y, -v.x); + bias = PI / 2.; + } + return atan(v.y, v.x) + bias; +} + +INLINE half4 premultiply(half4 color) +{ + return make_half4(color.xyz * color.w, color.w); +} + +INLINE half4 unmultiply(half4 color) +{ + if (.0 < color.w && color.w < 1.) + { + color.xyz *= 1. / color.w; + // Since multiplying by the reciprocal isn't exact, and to handle + // invalid premultiplied data, take extra steps to ensure + // color * 1/alpha == 1 when color >= alpha. + color.xyz = mix(color.xyz, + make_half3(1.), + greaterThan(color.xyz, make_half3(254.5 / 255.))); + } + return color; +} + +INLINE half min_value(half4 min4) +{ + half2 min2 = min(min4.xy, min4.zw); + half min1 = min(min2.x, min2.y); + return min1; +} + +INLINE float manhattan_width(float2 x) { return abs(x.x) + abs(x.y); } + +#ifndef UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(FLUSH_UNIFORM_BUFFER_IDX, _EXPORTED_FlushUniforms) +float gradInverseViewportY; +float tessInverseViewportY; +float renderTargetInverseViewportX; +float renderTargetInverseViewportY; +uint renderTargetWidth; +uint renderTargetHeight; +uint colorClearValue; // Only used if clears are implemented as draws. +uint coverageClearValue; // Only used if clears are implemented as draws. +int4 renderTargetUpdateBounds; // drawBounds, or renderTargetBounds if there is + // a clear. (LTRB.) +uint coverageBufferPrefix; +uint pathIDGranularity; // Spacing between adjacent path IDs (1 if IEEE + // compliant). +float vertexDiscardValue; +UNIFORM_BLOCK_END(uniforms) +#endif + +#ifdef VERTEX + +#define RENDER_TARGET_COORD_TO_CLIP_COORD(COORD) \ + float4((COORD).x* uniforms.renderTargetInverseViewportX - 1., \ + (COORD).y * -uniforms.renderTargetInverseViewportY + \ + sign(uniforms.renderTargetInverseViewportY), \ + .0, \ + 1.) + +#ifndef RENDER_MODE_MSAA +// Calculates the Manhattan distance in pixels from the given pixelPosition, to +// the point at each edge of the clipRect where coverage = 0. +// +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +INLINE float4 find_clip_rect_coverage_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + float2 clipRectAAWidth = + abs(clipRectInverseMatrix[0]) + abs(clipRectInverseMatrix[1]); + if (clipRectAAWidth.x != .0 && clipRectAAWidth.y != .0) + { + float2 r = 1. / clipRectAAWidth; + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate; + // When the center of a pixel falls exactly on an edge, coverage should + // be .5. + const float coverageWhenDistanceIsZero = .5; + return float4(clipRectCoord, -clipRectCoord) * r.xyxy + r.xyxy + + coverageWhenDistanceIsZero; + } + else + { + // The caller gave us a singular clipRectInverseMatrix. This is a + // special case where we are expected to use tx and ty as uniform + // coverage. + return clipRectInverseTranslate.xyxy; + } +} + +#else // RENDER_MODE_MSAA + +INLINE float normalize_z_index(uint zIndex) +{ + return 1. - float(zIndex) * (2. / 32768.); +} + +#ifdef ENABLE_CLIP_RECT +INLINE void set_clip_rect_plane_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + if (clipRectInverseMatrix != float2x2(0)) + { + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate.xy; + gl_ClipDistance[0] = clipRectCoord.x + 1.; + gl_ClipDistance[1] = clipRectCoord.y + 1.; + gl_ClipDistance[2] = 1. - clipRectCoord.x; + gl_ClipDistance[3] = 1. - clipRectCoord.y; + } + else + { + // "clipRectInverseMatrix == 0" is a special case: + // "clipRectInverseTranslate.x == 1" => all in. + // "clipRectInverseTranslate.x == 0" => all out. + gl_ClipDistance[0] = gl_ClipDistance[1] = gl_ClipDistance[2] = + gl_ClipDistance[3] = clipRectInverseTranslate.x - .5; + } +} +#endif // ENABLE_CLIP_RECT +#endif // RENDER_MODE_MSAA +#endif // VERTEX + +#ifdef DRAW_IMAGE +#ifndef UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(IMAGE_DRAW_UNIFORM_BUFFER_IDX, _EXPORTED_ImageDrawUniforms) +float4 viewMatrix; +float2 translate; +float opacity; +float padding; +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +float4 clipRectInverseMatrix; +float2 clipRectInverseTranslate; +uint clipID; +uint blendMode; +uint zIndex; +UNIFORM_BLOCK_END(imageDrawUniforms) +#endif +#endif diff --git a/defold-rive/include/generated/shaders/constants.exports.h b/defold-rive/include/generated/shaders/constants.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/constants.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/constants.glsl.hpp b/defold-rive/include/generated/shaders/constants.glsl.hpp new file mode 100644 index 00000000..209d4e31 --- /dev/null +++ b/defold-rive/include/generated/shaders/constants.glsl.hpp @@ -0,0 +1,199 @@ +#pragma once + +#include "constants.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char constants[] = R"===(/* + * Copyright 2022 Rive + */ + +#define TESS_TEXTURE_WIDTH float(2048) +#define TESS_TEXTURE_WIDTH_LOG2 11 + +#define GRAD_TEXTURE_WIDTH float(512) +#define GRAD_TEXTURE_INVERSE_WIDTH float(0.001953125) + +// Width to use for a texture that emulates a storage buffer. +// +// Minimize width since the texture needs to be updated in entire rows from the +// resource buffer. Since these only serve paths and contours, both of those are +// limited to 16-bit indices, 2048 is the min specified texture size in ES3, and +// no path buffer uses more than 4 texels, we can safely use a width of 128. +#define STORAGE_TEXTURE_WIDTH 128 +#define STORAGE_TEXTURE_SHIFT_Y 7 +#define STORAGE_TEXTURE_MASK_X 0x7fu + +// Flags that state whether/how we need to render solid-color borders to the +// left and/or right side of a GradientSpan. (Borders of complex gradients +// stretch all the way to the left/right edges of the texture, whereas borders +// of simple gradients just need to stretch 1px to the left/right of the +// span.) +#define GRAD_SPAN_FLAG_LEFT_BORDER 0x80000000u +#define GRAD_SPAN_FLAG_RIGHT_BORDER 0x40000000u +#define GRAD_SPAN_FLAG_COMPLEX_BORDER 0x20000000u +#define GRAD_SPAN_FLAGS_MASK \ + (GRAD_SPAN_FLAG_LEFT_BORDER | GRAD_SPAN_FLAG_RIGHT_BORDER | \ + GRAD_SPAN_FLAG_COMPLEX_BORDER) + +// Tells shaders that a cubic should actually be drawn as the single, non-AA +// triangle: [p0, p1, p3]. This is used to squeeze in more rare triangles, like +// "grout" triangles from self intersections on interior triangulation, where it +// wouldn't be worth it to put them in their own dedicated draw call. +#define RETROFITTED_TRIANGLE_CONTOUR_FLAG (1u << 31u) + +// Tells the tessellation shader to re-run Wang's formula on the given curve, +// figure out how many segments it actually needs, and make any excess segments +// degenerate by co-locating their vertices at T=0. (Used on the "outerCurve" +// patches that are drawn with interior triangulations.) +#define CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG (1u << 30u) + +// Flags for specifying the join type. +#define JOIN_TYPE_MASK (3u << 28u) +#define MITER_CLIP_JOIN_CONTOUR_FLAG (3u << 28u) +#define MITER_REVERT_JOIN_CONTOUR_FLAG (2u << 28u) +#define BEVEL_JOIN_CONTOUR_FLAG (1u << 28u) + +// When a join is being used to emulate a stroke cap, the shader emits +// additional vertices at T=0 and T=1 for round joins, and changes the miter +// limit to 1 for miter-clip joins. +#define EMULATED_STROKE_CAP_CONTOUR_FLAG (1u << 27u) + +// Flip the sign on interpolated fragment coverage for fills. Ignored on +// strokes. This is used when reversing the winding direction of a path. +#define NEGATE_PATH_FILL_COVERAGE_FLAG (1u << 26u) + +// Internal contour flags. +#define MIRRORED_CONTOUR_CONTOUR_FLAG (1u << 25u) +#define JOIN_TANGENT_0_CONTOUR_FLAG (1u << 24u) +#define JOIN_TANGENT_INNER_CONTOUR_FLAG (1u << 23u) +#define LEFT_JOIN_CONTOUR_FLAG (1u << 22u) +#define RIGHT_JOIN_CONTOUR_FLAG (1u << 21u) +#define CONTOUR_ID_MASK 0xffffu + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Mirrors pls::PaintType. +#define CLIP_UPDATE_PAINT_TYPE 0u +#define SOLID_COLOR_PAINT_TYPE 1u +#define LINEAR_GRADIENT_PAINT_TYPE 2u +#define RADIAL_GRADIENT_PAINT_TYPE 3u +#define IMAGE_PAINT_TYPE 4u + +// Paint flags, found in the x-component value of @paintBuffer. +#define PAINT_FLAG_NON_ZERO_FILL 0x100u +#define PAINT_FLAG_EVEN_ODD_FILL 0x200u +#define PAINT_FLAG_HAS_CLIP_RECT 0x400u + +// PLS draw resources are either updated per flush or per draw. They go into set +// 0 or set 1, depending on how often they are updated. +#define PER_FLUSH_BINDINGS_SET 0 +#define PER_DRAW_BINDINGS_SET 1 + +// Index at which we access each resource. +#define TESS_VERTEX_TEXTURE_IDX 0 +#define GRAD_TEXTURE_IDX 1 +#define IMAGE_TEXTURE_IDX 2 +#define PATH_BUFFER_IDX 3 +#define PAINT_BUFFER_IDX 4 +#define PAINT_AUX_BUFFER_IDX 5 +#define CONTOUR_BUFFER_IDX 6 +#define FLUSH_UNIFORM_BUFFER_IDX 7 +#define PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX 8 +#define IMAGE_DRAW_UNIFORM_BUFFER_IDX 9 +// Coverage buffer used in coverageAtomic mode. +#define COVERAGE_BUFFER_IDX 10 +#define DST_COLOR_TEXTURE_IDX 11 +#define DEFAULT_BINDINGS_SET_SIZE 12 + +// Samplers are accessed at the same index as their corresponding texture, so we +// put them in a separate binding set. +#define SAMPLER_BINDINGS_SET 2 + +// PLS textures are accessed at the same index as their PLS planes, so we put +// them in a separate binding set. +#define PLS_TEXTURE_BINDINGS_SET 3 + +#define BINDINGS_SET_COUNT 4 + +// Index of each pixel local storage plane. +#define COLOR_PLANE_IDX 0 +#define CLIP_PLANE_IDX 1 +#define SCRATCH_COLOR_PLANE_IDX 2 +#define COVERAGE_PLANE_IDX 3 + +// acos(1/4), because the miter limit is always 4. +#define MITER_ANGLE_LIMIT float(1.318116071652817965746) + +// Raw bit representation of the largest denormalized fp16 value. We offset all +// (1-based) path IDs by this value in order to avoid denorms, which have been +// empirically unreliable on Android as ID values. +#define MAX_DENORM_F16 1023u + +// Blend modes. Mirrors rive::BlendMode, but 0-based and contiguous for tighter +// packing. +#define BLEND_SRC_OVER 0u +#define BLEND_MODE_SCREEN 1u +#define BLEND_MODE_OVERLAY 2u +#define BLEND_MODE_DARKEN 3u +#define BLEND_MODE_LIGHTEN 4u +#define BLEND_MODE_COLORDODGE 5u +#define BLEND_MODE_COLORBURN 6u +#define BLEND_MODE_HARDLIGHT 7u +#define BLEND_MODE_SOFTLIGHT 8u +#define BLEND_MODE_DIFFERENCE 9u +#define BLEND_MODE_EXCLUSION 10u +#define BLEND_MODE_MULTIPLY 11u +#define BLEND_MODE_HUE 12u +#define BLEND_MODE_SATURATION 13u +#define BLEND_MODE_COLOR 14u +#define BLEND_MODE_LUMINOSITY 15u + +// Fixed-point coverage values for atomic mode. +// Atomic mode uses 7:9 fixed point, so the winding number breaks if a shape has +// more than 64 levels of self overlap in either winding direction at any point. +#define FIXED_COVERAGE_FACTOR float(512) +#define FIXED_COVERAGE_INVERSE_FACTOR float(0.001953125) +#define FIXED_COVERAGE_ZERO float(1 << 15) +#define FIXED_COVERAGE_ZERO_UINT (1u << 15) +#define FIXED_COVERAGE_ONE (FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO) + +// Fixed-point coverage values for clockwiseAtomic mode. +// clockwiseAtomic mode uses 5:8 fixed point, so the winding number breaks if a +// shape has more than 16 levels of self overlap in either winding direction at +// any point. +#define CLOCKWISE_COVERAGE_BIT_COUNT 15u +#define CLOCKWISE_COVERAGE_MASK (0x7fffu) +#define CLOCKWISE_FILL_ZERO_VALUE (1u << 14) + +// Binding points for storage buffers. +#define PAINT_STORAGE_BUFFER_IDX 8 +#define PAINT_MATRIX_STORAGE_BUFFER_IDX 9 +#define PAINT_TRANSLATE_STORAGE_BUFFER_IDX 10 +#define CLIPRECT_MATRIX_STORAGE_BUFFER_IDX 11 +#define CLIPRECT_TRANSLATE_STORAGE_BUFFER_IDX 12 + +// Indices for SPIRV specialization constants (used in lieu of #defines in +// Vulkan.) +#define CLIPPING_SPECIALIZATION_IDX 0 +#define CLIP_RECT_SPECIALIZATION_IDX 1 +#define ADVANCED_BLEND_SPECIALIZATION_IDX 2 +#define EVEN_ODD_SPECIALIZATION_IDX 3 +#define NESTED_CLIPPING_SPECIALIZATION_IDX 4 +#define HSL_BLEND_MODES_SPECIALIZATION_IDX 5 +#define CLOCKWISE_FILL_SPECIALIZATION_IDX 6 +#define BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX 7 +#define SPECIALIZATION_COUNT 8 +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/constants.minified.glsl b/defold-rive/include/generated/shaders/constants.minified.glsl new file mode 100644 index 00000000..2d29eb31 --- /dev/null +++ b/defold-rive/include/generated/shaders/constants.minified.glsl @@ -0,0 +1,188 @@ +/* + * Copyright 2022 Rive + */ + +#define TESS_TEXTURE_WIDTH float(2048) +#define TESS_TEXTURE_WIDTH_LOG2 11 + +#define GRAD_TEXTURE_WIDTH float(512) +#define GRAD_TEXTURE_INVERSE_WIDTH float(0.001953125) + +// Width to use for a texture that emulates a storage buffer. +// +// Minimize width since the texture needs to be updated in entire rows from the +// resource buffer. Since these only serve paths and contours, both of those are +// limited to 16-bit indices, 2048 is the min specified texture size in ES3, and +// no path buffer uses more than 4 texels, we can safely use a width of 128. +#define STORAGE_TEXTURE_WIDTH 128 +#define STORAGE_TEXTURE_SHIFT_Y 7 +#define STORAGE_TEXTURE_MASK_X 0x7fu + +// Flags that state whether/how we need to render solid-color borders to the +// left and/or right side of a GradientSpan. (Borders of complex gradients +// stretch all the way to the left/right edges of the texture, whereas borders +// of simple gradients just need to stretch 1px to the left/right of the +// span.) +#define GRAD_SPAN_FLAG_LEFT_BORDER 0x80000000u +#define GRAD_SPAN_FLAG_RIGHT_BORDER 0x40000000u +#define GRAD_SPAN_FLAG_COMPLEX_BORDER 0x20000000u +#define GRAD_SPAN_FLAGS_MASK \ + (GRAD_SPAN_FLAG_LEFT_BORDER | GRAD_SPAN_FLAG_RIGHT_BORDER | \ + GRAD_SPAN_FLAG_COMPLEX_BORDER) + +// Tells shaders that a cubic should actually be drawn as the single, non-AA +// triangle: [p0, p1, p3]. This is used to squeeze in more rare triangles, like +// "grout" triangles from self intersections on interior triangulation, where it +// wouldn't be worth it to put them in their own dedicated draw call. +#define RETROFITTED_TRIANGLE_CONTOUR_FLAG (1u << 31u) + +// Tells the tessellation shader to re-run Wang's formula on the given curve, +// figure out how many segments it actually needs, and make any excess segments +// degenerate by co-locating their vertices at T=0. (Used on the "outerCurve" +// patches that are drawn with interior triangulations.) +#define CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG (1u << 30u) + +// Flags for specifying the join type. +#define JOIN_TYPE_MASK (3u << 28u) +#define MITER_CLIP_JOIN_CONTOUR_FLAG (3u << 28u) +#define MITER_REVERT_JOIN_CONTOUR_FLAG (2u << 28u) +#define BEVEL_JOIN_CONTOUR_FLAG (1u << 28u) + +// When a join is being used to emulate a stroke cap, the shader emits +// additional vertices at T=0 and T=1 for round joins, and changes the miter +// limit to 1 for miter-clip joins. +#define EMULATED_STROKE_CAP_CONTOUR_FLAG (1u << 27u) + +// Flip the sign on interpolated fragment coverage for fills. Ignored on +// strokes. This is used when reversing the winding direction of a path. +#define NEGATE_PATH_FILL_COVERAGE_FLAG (1u << 26u) + +// Internal contour flags. +#define MIRRORED_CONTOUR_CONTOUR_FLAG (1u << 25u) +#define JOIN_TANGENT_0_CONTOUR_FLAG (1u << 24u) +#define JOIN_TANGENT_INNER_CONTOUR_FLAG (1u << 23u) +#define LEFT_JOIN_CONTOUR_FLAG (1u << 22u) +#define RIGHT_JOIN_CONTOUR_FLAG (1u << 21u) +#define CONTOUR_ID_MASK 0xffffu + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Mirrors pls::PaintType. +#define CLIP_UPDATE_PAINT_TYPE 0u +#define SOLID_COLOR_PAINT_TYPE 1u +#define LINEAR_GRADIENT_PAINT_TYPE 2u +#define RADIAL_GRADIENT_PAINT_TYPE 3u +#define IMAGE_PAINT_TYPE 4u + +// Paint flags, found in the x-component value of @paintBuffer. +#define PAINT_FLAG_NON_ZERO_FILL 0x100u +#define PAINT_FLAG_EVEN_ODD_FILL 0x200u +#define PAINT_FLAG_HAS_CLIP_RECT 0x400u + +// PLS draw resources are either updated per flush or per draw. They go into set +// 0 or set 1, depending on how often they are updated. +#define PER_FLUSH_BINDINGS_SET 0 +#define PER_DRAW_BINDINGS_SET 1 + +// Index at which we access each resource. +#define TESS_VERTEX_TEXTURE_IDX 0 +#define GRAD_TEXTURE_IDX 1 +#define IMAGE_TEXTURE_IDX 2 +#define PATH_BUFFER_IDX 3 +#define PAINT_BUFFER_IDX 4 +#define PAINT_AUX_BUFFER_IDX 5 +#define CONTOUR_BUFFER_IDX 6 +#define FLUSH_UNIFORM_BUFFER_IDX 7 +#define PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX 8 +#define IMAGE_DRAW_UNIFORM_BUFFER_IDX 9 +// Coverage buffer used in coverageAtomic mode. +#define COVERAGE_BUFFER_IDX 10 +#define DST_COLOR_TEXTURE_IDX 11 +#define DEFAULT_BINDINGS_SET_SIZE 12 + +// Samplers are accessed at the same index as their corresponding texture, so we +// put them in a separate binding set. +#define SAMPLER_BINDINGS_SET 2 + +// PLS textures are accessed at the same index as their PLS planes, so we put +// them in a separate binding set. +#define PLS_TEXTURE_BINDINGS_SET 3 + +#define BINDINGS_SET_COUNT 4 + +// Index of each pixel local storage plane. +#define COLOR_PLANE_IDX 0 +#define CLIP_PLANE_IDX 1 +#define SCRATCH_COLOR_PLANE_IDX 2 +#define COVERAGE_PLANE_IDX 3 + +// acos(1/4), because the miter limit is always 4. +#define MITER_ANGLE_LIMIT float(1.318116071652817965746) + +// Raw bit representation of the largest denormalized fp16 value. We offset all +// (1-based) path IDs by this value in order to avoid denorms, which have been +// empirically unreliable on Android as ID values. +#define MAX_DENORM_F16 1023u + +// Blend modes. Mirrors rive::BlendMode, but 0-based and contiguous for tighter +// packing. +#define BLEND_SRC_OVER 0u +#define BLEND_MODE_SCREEN 1u +#define BLEND_MODE_OVERLAY 2u +#define BLEND_MODE_DARKEN 3u +#define BLEND_MODE_LIGHTEN 4u +#define BLEND_MODE_COLORDODGE 5u +#define BLEND_MODE_COLORBURN 6u +#define BLEND_MODE_HARDLIGHT 7u +#define BLEND_MODE_SOFTLIGHT 8u +#define BLEND_MODE_DIFFERENCE 9u +#define BLEND_MODE_EXCLUSION 10u +#define BLEND_MODE_MULTIPLY 11u +#define BLEND_MODE_HUE 12u +#define BLEND_MODE_SATURATION 13u +#define BLEND_MODE_COLOR 14u +#define BLEND_MODE_LUMINOSITY 15u + +// Fixed-point coverage values for atomic mode. +// Atomic mode uses 7:9 fixed point, so the winding number breaks if a shape has +// more than 64 levels of self overlap in either winding direction at any point. +#define FIXED_COVERAGE_FACTOR float(512) +#define FIXED_COVERAGE_INVERSE_FACTOR float(0.001953125) +#define FIXED_COVERAGE_ZERO float(1 << 15) +#define FIXED_COVERAGE_ZERO_UINT (1u << 15) +#define FIXED_COVERAGE_ONE (FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO) + +// Fixed-point coverage values for clockwiseAtomic mode. +// clockwiseAtomic mode uses 5:8 fixed point, so the winding number breaks if a +// shape has more than 16 levels of self overlap in either winding direction at +// any point. +#define CLOCKWISE_COVERAGE_BIT_COUNT 15u +#define CLOCKWISE_COVERAGE_MASK (0x7fffu) +#define CLOCKWISE_FILL_ZERO_VALUE (1u << 14) + +// Binding points for storage buffers. +#define PAINT_STORAGE_BUFFER_IDX 8 +#define PAINT_MATRIX_STORAGE_BUFFER_IDX 9 +#define PAINT_TRANSLATE_STORAGE_BUFFER_IDX 10 +#define CLIPRECT_MATRIX_STORAGE_BUFFER_IDX 11 +#define CLIPRECT_TRANSLATE_STORAGE_BUFFER_IDX 12 + +// Indices for SPIRV specialization constants (used in lieu of #defines in +// Vulkan.) +#define CLIPPING_SPECIALIZATION_IDX 0 +#define CLIP_RECT_SPECIALIZATION_IDX 1 +#define ADVANCED_BLEND_SPECIALIZATION_IDX 2 +#define EVEN_ODD_SPECIALIZATION_IDX 3 +#define NESTED_CLIPPING_SPECIALIZATION_IDX 4 +#define HSL_BLEND_MODES_SPECIALIZATION_IDX 5 +#define CLOCKWISE_FILL_SPECIALIZATION_IDX 6 +#define BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX 7 +#define SPECIALIZATION_COUNT 8 diff --git a/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.exports.h b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.glsl.hpp b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.glsl.hpp new file mode 100644 index 00000000..aab8aa6e --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.glsl.hpp @@ -0,0 +1,76 @@ +#pragma once + +#include "draw_clockwise_image_mesh.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char draw_clockwise_image_mesh[] = R"===(/* + * Copyright 2024 Rive + */ + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), _EXPORTED_a_position) + + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 meshColor = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + meshColor.w *= imageDrawUniforms.opacity; + + EMIT_FRAG_DATA(meshColor); +} +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.minified.glsl b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.minified.glsl new file mode 100644 index 00000000..661d4cf8 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_image_mesh.minified.glsl @@ -0,0 +1,65 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), _EXPORTED_a_position) + + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 meshColor = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + meshColor.w *= imageDrawUniforms.opacity; + + EMIT_FRAG_DATA(meshColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/draw_clockwise_path.exports.h b/defold-rive/include/generated/shaders/draw_clockwise_path.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_path.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/draw_clockwise_path.glsl.hpp b/defold-rive/include/generated/shaders/draw_clockwise_path.glsl.hpp new file mode 100644 index 00000000..8451c219 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_path.glsl.hpp @@ -0,0 +1,391 @@ +#pragma once + +#include "draw_clockwise_path.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char draw_clockwise_path[] = R"===(/* + * Copyright 2023 Rive + */ + +#ifdef _EXPORTED_DRAW_PATH +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +// [localVertexID, outset, fillCoverage, vertexType] +ATTR(0, float4, _EXPORTED_a_patchVertexData); +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + uint4 coverageData = + STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +_EXPORTED_OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + uint4 coverageData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +STORAGE_BUFFER_U32_ATOMIC(COVERAGE_BUFFER_IDX, CoverageBuffer, coverageBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef _EXPORTED_BORROWED_COVERAGE_PREPASS +INLINE void apply_borrowed_coverage(half borrowedCoverage, uint coverageIndex) +{ + // Try to apply borrowedCoverage, assuming the existing coverage value + // is zero. + uint borrowedCoverageFixed = uint(abs(borrowedCoverage) * 255.); + uint targetCoverageValue = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE - borrowedCoverageFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverageValue); + if (coverageBeforeMax >= uniforms.coverageBufferPrefix) + { + // Coverage was not zero. Undo the atomicMax and then subtract + // borrowedCoverageFixed this time. + uint undoAtomicMax = + coverageBeforeMax - max(coverageBeforeMax, targetCoverageValue); + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + undoAtomicMax - borrowedCoverageFixed); + } +} +#endif + +INLINE void apply_stroke_coverage(INOUT(float) paintAlpha, + half fragCoverage, + uint coverageIndex) +{ + if (min(paintAlpha, fragCoverage) >= 1.) + { + // Solid stroke pixels don't need to work out coverage at all. We can + // just blast them out without ever touching the coverage buffer. + return; + } + + half X; + uint fragCoverageFixed = uint(abs(fragCoverage) * 255.); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX( + coverageBuffer, + coverageIndex, + uniforms.coverageBufferPrefix | fragCoverageFixed); + if (coverageBeforeMax < uniforms.coverageBufferPrefix) + { + // This is the first fragment of the stroke to touch this pixel. Just + // multiply in our coverage and write it out. + X = fragCoverage; + } + else + { + // This pixel has been touched previously by a fragment in the stroke. + // Multiply in an incremental coverage value that mixes with what's + // already in the framebuffer. + half c1 = cast_uint_to_half(coverageBeforeMax & 0xffu) * (1. / 255.); + half c2 = max(c1, fragCoverage); + X = (c2 - c1) / (1. - c1 * paintAlpha); + } + + paintAlpha *= X; +} + +INLINE void apply_fill_coverage(INOUT(float) paintAlpha, + half fragCoverageRemaining, + uint coverageIndex) +{ + uint coverageInitialValue = + STORAGE_BUFFER_LOAD(coverageBuffer, coverageIndex); + if (min(paintAlpha, fragCoverageRemaining) >= 1. && + (coverageInitialValue < uniforms.coverageBufferPrefix || + coverageInitialValue >= + (uniforms.coverageBufferPrefix | CLOCKWISE_FILL_ZERO_VALUE))) + { + // If we're solid, AND the current coverage at this pixel is >= 0, then + // we can just write out or color without working out coverage any + // further. + return; + } + + half X = .0; // Amount by which to multiply paintAlpha. + uint fragCoverageRemainingFixed = uint(abs(fragCoverageRemaining) * 255.); + if (coverageInitialValue < uniforms.coverageBufferPrefix) + { + // The initial coverage value does not belong to this path. We *might* + // be the first fragment of the path to touch this pixel. Attempt to + // write out our coverage with an atomicMax. + uint targetCoverage = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE + fragCoverageRemainingFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverage); + if (coverageBeforeMax <= uniforms.coverageBufferPrefix) + { + // Success! We were the first fragment of the path at this pixel. + X = fragCoverageRemaining; // Just multiply paintAlpha by coverage. +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + X = min(X, 1.); +#endif + fragCoverageRemaining = .0; // We're done. + } + else if (coverageBeforeMax < targetCoverage) + { + // We were not first fragment of the path at this pixel, AND our + // atomicMax had an effect that we now have to account for in + // paintAlpha. Coverage increased from "coverageBeforeMax" to + // "fragCoverageRemaining". + // + // NOTE: because we know coverage was initially zero, and because + // coverage is always positive in this pass, we know + // coverageBeforeMax >= 0. + uint c1Fixed = (coverageBeforeMax & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE; + half c1 = cast_uint_to_half(c1Fixed) * (1. / 255.); + half c2 = fragCoverageRemaining; +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + c2 = min(c2, 1.); +#endif + // Apply the coverage increase from the atomicMax here. The next + // step will apply the remaining increase. + X = (c2 - c1) / (1. - c1 * paintAlpha); + + // We increased coverage by an amount of "fragCoverageRemaining" - + // "coverageBeforeMax". However, we wanted to increase coverage by + // "fragCoverageRemaining". So the remaining amount we still need to + // increase by is "coverageBeforeMax". + fragCoverageRemainingFixed = c1Fixed; + fragCoverageRemaining = c1; + } + } + + if (fragCoverageRemaining > .0) + { + // At this point we know the value in the coverage buffer belongs to + // this path, so we can do a simple atomicAdd. + uint coverageBeforeAdd = + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + fragCoverageRemainingFixed); + half c1 = + cast_int_to_half(int((coverageBeforeAdd & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE)) * + (1. / 255.); + half c2 = c1 + fragCoverageRemaining; + c1 = clamp(c1, .0, 1.); + c2 = clamp(c2, .0, 1.); + // Apply the coverage increase from c1 -> c2 that we just did, in + // addition to any coverage that had been applied previously. + half one_minus_c1a = 1. - c1 * paintAlpha; + if (one_minus_c1a <= .0) + discard; + X += (1. - X * paintAlpha) * (c2 - c1) / one_minus_c1a; + } + + paintAlpha *= X; +} + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + VARYING_UNPACK(v_coveragePlacement, uint2); + VARYING_UNPACK(v_coverageCoord, float2); + + half4 paintColor; + uint pathID = v_pathID; + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + paintColor = unpackUnorm4x8(paintData.y); + } + else // LINEAR_GRADIENT_PAINT_TYPE, + // RADIAL_GRADIENT_PAINT_TYPE, or + // IMAGE_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + if (paintType != IMAGE_PAINT_TYPE) + { + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + paintColor = + TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, gradSampler, float2(x, y), .0); + } + else + { + float opacity = uintBitsToFloat(paintData.y); + float lod = translate.z; + paintColor = TEXTURE_SAMPLE_LOD(_EXPORTED_imageTexture, + imageSampler, + paintCoord, + lod); + paintColor.w *= opacity; + } + } + + if (paintColor.w == .0) + { + discard; + } + + // Swizzle the coverage buffer in a tiled format, starting with 32x32 + // row-major tiles. + uint coverageIndex = v_coveragePlacement.x; + uint coveragePitch = v_coveragePlacement.y; + uint2 coverageCoord = uint2(floor(v_coverageCoord)); + coverageIndex += (coverageCoord.y >> 5) * (coveragePitch << 5) + + (coverageCoord.x >> 5) * (32 << 5); + // Subdivide each main tile into 4x4 column-major tiles. + coverageIndex += ((coverageCoord.x & 0x1f) >> 2) * (32 << 2) + + ((coverageCoord.y & 0x1f) >> 2) * (4 << 2); + // Let the 4x4 tiles be row-major. + coverageIndex += (coverageCoord.y & 0x3) * 4 + (coverageCoord.x & 0x3); + +#ifdef _EXPORTED_BORROWED_COVERAGE_PREPASS + if (_EXPORTED_BORROWED_COVERAGE_PREPASS) + { +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + half borrowedCoverage = -v_windingWeight; +#else + half borrowedCoverage = max(-v_edgeDistance.x, .0); +#endif + apply_borrowed_coverage(borrowedCoverage, coverageIndex); + discard; + } +#endif // BORROWED_COVERAGE_PREPASS + +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + if (v_edgeDistance.y >= .0) // Is this a stroke? + { + half fragCoverage = + clamp(min(v_edgeDistance.x, v_edgeDistance.y), .0, 1.); + apply_stroke_coverage(paintColor.w, fragCoverage, coverageIndex); + } + else // It's a fill. +#endif // !DRAW_INTERIOR_TRIANGLES + { +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + half fragCoverage = v_windingWeight; +#else + half fragCoverage = clamp(v_edgeDistance.x, .0, 1.); +#endif + apply_fill_coverage(paintColor.w, fragCoverage, coverageIndex); + } + + EMIT_FRAG_DATA(paintColor); +} +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/draw_clockwise_path.minified.glsl b/defold-rive/include/generated/shaders/draw_clockwise_path.minified.glsl new file mode 100644 index 00000000..78266087 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_clockwise_path.minified.glsl @@ -0,0 +1,380 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef DRAW_PATH +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +// [localVertexID, outset, fillCoverage, vertexType] +ATTR(0, float4, _EXPORTED_a_patchVertexData); +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + uint4 coverageData = + STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef DRAW_INTERIOR_TRIANGLES +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + uint4 coverageData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +STORAGE_BUFFER_U32_ATOMIC(COVERAGE_BUFFER_IDX, CoverageBuffer, coverageBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef BORROWED_COVERAGE_PREPASS +INLINE void apply_borrowed_coverage(half borrowedCoverage, uint coverageIndex) +{ + // Try to apply borrowedCoverage, assuming the existing coverage value + // is zero. + uint borrowedCoverageFixed = uint(abs(borrowedCoverage) * 255.); + uint targetCoverageValue = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE - borrowedCoverageFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverageValue); + if (coverageBeforeMax >= uniforms.coverageBufferPrefix) + { + // Coverage was not zero. Undo the atomicMax and then subtract + // borrowedCoverageFixed this time. + uint undoAtomicMax = + coverageBeforeMax - max(coverageBeforeMax, targetCoverageValue); + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + undoAtomicMax - borrowedCoverageFixed); + } +} +#endif + +INLINE void apply_stroke_coverage(INOUT(float) paintAlpha, + half fragCoverage, + uint coverageIndex) +{ + if (min(paintAlpha, fragCoverage) >= 1.) + { + // Solid stroke pixels don't need to work out coverage at all. We can + // just blast them out without ever touching the coverage buffer. + return; + } + + half X; + uint fragCoverageFixed = uint(abs(fragCoverage) * 255.); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX( + coverageBuffer, + coverageIndex, + uniforms.coverageBufferPrefix | fragCoverageFixed); + if (coverageBeforeMax < uniforms.coverageBufferPrefix) + { + // This is the first fragment of the stroke to touch this pixel. Just + // multiply in our coverage and write it out. + X = fragCoverage; + } + else + { + // This pixel has been touched previously by a fragment in the stroke. + // Multiply in an incremental coverage value that mixes with what's + // already in the framebuffer. + half c1 = cast_uint_to_half(coverageBeforeMax & 0xffu) * (1. / 255.); + half c2 = max(c1, fragCoverage); + X = (c2 - c1) / (1. - c1 * paintAlpha); + } + + paintAlpha *= X; +} + +INLINE void apply_fill_coverage(INOUT(float) paintAlpha, + half fragCoverageRemaining, + uint coverageIndex) +{ + uint coverageInitialValue = + STORAGE_BUFFER_LOAD(coverageBuffer, coverageIndex); + if (min(paintAlpha, fragCoverageRemaining) >= 1. && + (coverageInitialValue < uniforms.coverageBufferPrefix || + coverageInitialValue >= + (uniforms.coverageBufferPrefix | CLOCKWISE_FILL_ZERO_VALUE))) + { + // If we're solid, AND the current coverage at this pixel is >= 0, then + // we can just write out or color without working out coverage any + // further. + return; + } + + half X = .0; // Amount by which to multiply paintAlpha. + uint fragCoverageRemainingFixed = uint(abs(fragCoverageRemaining) * 255.); + if (coverageInitialValue < uniforms.coverageBufferPrefix) + { + // The initial coverage value does not belong to this path. We *might* + // be the first fragment of the path to touch this pixel. Attempt to + // write out our coverage with an atomicMax. + uint targetCoverage = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE + fragCoverageRemainingFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverage); + if (coverageBeforeMax <= uniforms.coverageBufferPrefix) + { + // Success! We were the first fragment of the path at this pixel. + X = fragCoverageRemaining; // Just multiply paintAlpha by coverage. +#ifdef DRAW_INTERIOR_TRIANGLES + X = min(X, 1.); +#endif + fragCoverageRemaining = .0; // We're done. + } + else if (coverageBeforeMax < targetCoverage) + { + // We were not first fragment of the path at this pixel, AND our + // atomicMax had an effect that we now have to account for in + // paintAlpha. Coverage increased from "coverageBeforeMax" to + // "fragCoverageRemaining". + // + // NOTE: because we know coverage was initially zero, and because + // coverage is always positive in this pass, we know + // coverageBeforeMax >= 0. + uint c1Fixed = (coverageBeforeMax & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE; + half c1 = cast_uint_to_half(c1Fixed) * (1. / 255.); + half c2 = fragCoverageRemaining; +#ifdef DRAW_INTERIOR_TRIANGLES + c2 = min(c2, 1.); +#endif + // Apply the coverage increase from the atomicMax here. The next + // step will apply the remaining increase. + X = (c2 - c1) / (1. - c1 * paintAlpha); + + // We increased coverage by an amount of "fragCoverageRemaining" - + // "coverageBeforeMax". However, we wanted to increase coverage by + // "fragCoverageRemaining". So the remaining amount we still need to + // increase by is "coverageBeforeMax". + fragCoverageRemainingFixed = c1Fixed; + fragCoverageRemaining = c1; + } + } + + if (fragCoverageRemaining > .0) + { + // At this point we know the value in the coverage buffer belongs to + // this path, so we can do a simple atomicAdd. + uint coverageBeforeAdd = + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + fragCoverageRemainingFixed); + half c1 = + cast_int_to_half(int((coverageBeforeAdd & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE)) * + (1. / 255.); + half c2 = c1 + fragCoverageRemaining; + c1 = clamp(c1, .0, 1.); + c2 = clamp(c2, .0, 1.); + // Apply the coverage increase from c1 -> c2 that we just did, in + // addition to any coverage that had been applied previously. + half one_minus_c1a = 1. - c1 * paintAlpha; + if (one_minus_c1a <= .0) + discard; + X += (1. - X * paintAlpha) * (c2 - c1) / one_minus_c1a; + } + + paintAlpha *= X; +} + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + VARYING_UNPACK(v_coveragePlacement, uint2); + VARYING_UNPACK(v_coverageCoord, float2); + + half4 paintColor; + uint pathID = v_pathID; + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + paintColor = unpackUnorm4x8(paintData.y); + } + else // LINEAR_GRADIENT_PAINT_TYPE, + // RADIAL_GRADIENT_PAINT_TYPE, or + // IMAGE_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + if (paintType != IMAGE_PAINT_TYPE) + { + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + paintColor = + TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, gradSampler, float2(x, y), .0); + } + else + { + float opacity = uintBitsToFloat(paintData.y); + float lod = translate.z; + paintColor = TEXTURE_SAMPLE_LOD(_EXPORTED_imageTexture, + imageSampler, + paintCoord, + lod); + paintColor.w *= opacity; + } + } + + if (paintColor.w == .0) + { + discard; + } + + // Swizzle the coverage buffer in a tiled format, starting with 32x32 + // row-major tiles. + uint coverageIndex = v_coveragePlacement.x; + uint coveragePitch = v_coveragePlacement.y; + uint2 coverageCoord = uint2(floor(v_coverageCoord)); + coverageIndex += (coverageCoord.y >> 5) * (coveragePitch << 5) + + (coverageCoord.x >> 5) * (32 << 5); + // Subdivide each main tile into 4x4 column-major tiles. + coverageIndex += ((coverageCoord.x & 0x1f) >> 2) * (32 << 2) + + ((coverageCoord.y & 0x1f) >> 2) * (4 << 2); + // Let the 4x4 tiles be row-major. + coverageIndex += (coverageCoord.y & 0x3) * 4 + (coverageCoord.x & 0x3); + +#ifdef BORROWED_COVERAGE_PREPASS + if (BORROWED_COVERAGE_PREPASS) + { +#ifdef DRAW_INTERIOR_TRIANGLES + half borrowedCoverage = -v_windingWeight; +#else + half borrowedCoverage = max(-v_edgeDistance.x, .0); +#endif + apply_borrowed_coverage(borrowedCoverage, coverageIndex); + discard; + } +#endif // BORROWED_COVERAGE_PREPASS + +#ifndef DRAW_INTERIOR_TRIANGLES + if (v_edgeDistance.y >= .0) // Is this a stroke? + { + half fragCoverage = + clamp(min(v_edgeDistance.x, v_edgeDistance.y), .0, 1.); + apply_stroke_coverage(paintColor.w, fragCoverage, coverageIndex); + } + else // It's a fill. +#endif // !DRAW_INTERIOR_TRIANGLES + { +#ifdef DRAW_INTERIOR_TRIANGLES + half fragCoverage = v_windingWeight; +#else + half fragCoverage = clamp(v_edgeDistance.x, .0, 1.); +#endif + apply_fill_coverage(paintColor.w, fragCoverage, coverageIndex); + } + + EMIT_FRAG_DATA(paintColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/draw_image_mesh.exports.h b/defold-rive/include/generated/shaders/draw_image_mesh.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_image_mesh.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/draw_image_mesh.glsl.hpp b/defold-rive/include/generated/shaders/draw_image_mesh.glsl.hpp new file mode 100644 index 00000000..fd5fc2e8 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_image_mesh.glsl.hpp @@ -0,0 +1,214 @@ +#pragma once + +#include "draw_image_mesh.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char draw_image_mesh[] = R"===(/* + * Copyright 2023 Rive + */ + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef _EXPORTED_ENABLE_CLIPPING +_EXPORTED_OPTIONALLY_FLAT VARYING(1, half, v_clipID); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), _EXPORTED_a_position) + + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING) + { + v_clipID = id_bits_to_f16(imageDrawUniforms.clipID, + uniforms.pathIDGranularity); + } +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { +#ifndef _EXPORTED_RENDER_MODE_MSAA + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef _EXPORTED_RENDER_MODE_MSAA + pos.z = normalize_z_index(imageDrawUniforms.zIndex); +#endif + + VARYING_PACK(v_texCoord); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#ifdef _EXPORTED_RENDER_MODE_MSAA +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, _EXPORTED_dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifndef _EXPORTED_RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN_WITH_IMAGE_UNIFORMS(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + half4 color = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + half coverage = 1.; + +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif + + PLS_INTERLOCK_BEGIN; + +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING && v_clipID != .0) + { + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + half clipCoverage = + clipContentID == v_clipID ? clipData.x : make_half(.0); + coverage = min(coverage, clipCoverage); + } +#endif + + // Blend with the framebuffer color. + color.w *= imageDrawUniforms.opacity * coverage; + half4 dstColor = PLS_LOAD4F(colorBuffer); +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + if (_EXPORTED_ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + color = + advanced_blend(color, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } + else +#endif + { + color.xyz *= color.w; + color = color + dstColor * (1. - color.w); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + PLS_PRESERVE_UI(coverageCountBuffer); + + PLS_INTERLOCK_END; + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 color = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + color.w *= imageDrawUniforms.opacity; + +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + if (_EXPORTED_ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(_EXPORTED_dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + imageDrawUniforms.blendMode); + } + else +#endif // !ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + + EMIT_FRAG_DATA(color); +} + +#endif // RENDER_MODE_MSAA +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/draw_image_mesh.minified.glsl b/defold-rive/include/generated/shaders/draw_image_mesh.minified.glsl new file mode 100644 index 00000000..6b6bf93e --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_image_mesh.minified.glsl @@ -0,0 +1,203 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, _EXPORTED_a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, _EXPORTED_a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef ENABLE_CLIPPING +OPTIONALLY_FLAT VARYING(1, half, v_clipID); +#endif +#ifdef ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(_EXPORTED_drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, _EXPORTED_a_position, float2); + ATTR_UNPACK(_vertexID, uv, _EXPORTED_a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), _EXPORTED_a_position) + + imageDrawUniforms.translate; + v_texCoord = _EXPORTED_a_texCoord; +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING) + { + v_clipID = id_bits_to_f16(imageDrawUniforms.clipID, + uniforms.pathIDGranularity); + } +#endif +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { +#ifndef RENDER_MODE_MSAA + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef RENDER_MODE_MSAA + pos.z = normalize_z_index(imageDrawUniforms.zIndex); +#endif + + VARYING_PACK(v_texCoord); +#ifdef ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#ifdef RENDER_MODE_MSAA +#ifdef ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, _EXPORTED_dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifndef RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN_WITH_IMAGE_UNIFORMS(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + half4 color = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + half coverage = 1.; + +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif + + PLS_INTERLOCK_BEGIN; + +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING && v_clipID != .0) + { + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + half clipCoverage = + clipContentID == v_clipID ? clipData.x : make_half(.0); + coverage = min(coverage, clipCoverage); + } +#endif + + // Blend with the framebuffer color. + color.w *= imageDrawUniforms.opacity * coverage; + half4 dstColor = PLS_LOAD4F(colorBuffer); +#ifdef ENABLE_ADVANCED_BLEND + if (ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + color = + advanced_blend(color, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } + else +#endif + { + color.xyz *= color.w; + color = color + dstColor * (1. - color.w); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + PLS_PRESERVE_UI(coverageCountBuffer); + + PLS_INTERLOCK_END; + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 color = TEXTURE_SAMPLE(_EXPORTED_imageTexture, imageSampler, v_texCoord); + color.w *= imageDrawUniforms.opacity; + +#ifdef ENABLE_ADVANCED_BLEND + if (ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(_EXPORTED_dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + imageDrawUniforms.blendMode); + } + else +#endif // !ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + + EMIT_FRAG_DATA(color); +} + +#endif // RENDER_MODE_MSAA +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/draw_path.exports.h b/defold-rive/include/generated/shaders/draw_path.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/draw_path.glsl.hpp b/defold-rive/include/generated/shaders/draw_path.glsl.hpp new file mode 100644 index 00000000..b09999a5 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path.glsl.hpp @@ -0,0 +1,570 @@ +#pragma once + +#include "draw_path.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char draw_path[] = R"===(/* + * Copyright 2022 Rive + */ + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +#else +ATTR(0, + float4, + _EXPORTED_a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_paint); +#ifndef _EXPORTED_RENDER_MODE_MSAA +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +_EXPORTED_OPTIONALLY_FLAT VARYING(1, half, v_windingWeight); +#else +NO_PERSPECTIVE VARYING(2, half2, v_edgeDistance); +#endif +_EXPORTED_OPTIONALLY_FLAT VARYING(3, half, v_pathID); +#ifdef _EXPORTED_ENABLE_CLIPPING +_EXPORTED_OPTIONALLY_FLAT VARYING(4, half, v_clipID); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(5, float4, v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND +_EXPORTED_OPTIONALLY_FLAT VARYING(6, half, v_blendMode); +#endif +VARYING_BLOCK_END + +#ifdef _EXPORTED_VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); +#else + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); +#endif + + VARYING_INIT(v_paint, float4); +#ifndef RENDER_MODE_MSAA +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + VARYING_INIT(v_windingWeight, half); +#else + VARYING_INIT(v_edgeDistance, half2); +#endif + VARYING_INIT(v_pathID, half); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + VARYING_INIT(v_blendMode, half); +#endif + + bool shouldDiscardVertex = false; + uint pathID; + float2 vertexPosition; +#ifdef _EXPORTED_RENDER_MODE_MSAA + ushort pathZIndex; +#endif + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); +#else + shouldDiscardVertex = + !unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition +#ifndef _EXPORTED_RENDER_MODE_MSAA + , + v_edgeDistance +#else + , + pathZIndex +#endif + VERTEX_CONTEXT_UNPACK); +#endif // !DRAW_INTERIOR_TRIANGLES + + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + +#ifndef _EXPORTED_RENDER_MODE_MSAA + // Encode the integral pathID as a "half" that we know the hardware will see + // as a unique value in the fragment shader. + v_pathID = id_bits_to_f16(pathID, uniforms.pathIDGranularity); + + // Indicate even-odd fill rule by making pathID negative. + if ((paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + v_pathID = -v_pathID; +#endif // !RENDER_MODE_MSAA + + uint paintType = paintData.x & 0xfu; +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING) + { + uint clipIDBits = + (paintType == CLIP_UPDATE_PAINT_TYPE ? paintData.y : paintData.x) >> + 16; + v_clipID = id_bits_to_f16(clipIDBits, uniforms.pathIDGranularity); + // Negative clipID means to update the clip buffer instead of the color + // buffer. + if (paintType == CLIP_UPDATE_PAINT_TYPE) + v_clipID = -v_clipID; + } +#endif +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + if (_EXPORTED_ENABLE_ADVANCED_BLEND) + { + v_blendMode = float((paintData.x >> 4) & 0xfu); + } +#endif + + // Paint matrices operate on the fragment shader's "_fragCoord", which is + // bottom-up in GL. + float2 fragCoord = vertexPosition; +#ifdef FRAG_COORD_BOTTOM_UP + fragCoord.y = float(uniforms.renderTargetHeight) - fragCoord.y; +#endif + +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + // clipRectInverseMatrix transforms from pixel coordinates to a space + // where the clipRect is the normalized rectangle: [-1, -1, 1, 1]. + float2x2 clipRectInverseMatrix = make_float2x2( + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 2u)); + float4 clipRectInverseTranslate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 3u); +#ifndef _EXPORTED_RENDER_MODE_MSAA + v_clipRect = + find_clip_rect_coverage_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + + // Unpack the paint once we have a position. + if (paintType == SOLID_COLOR_PAINT_TYPE) + { + half4 color = unpackUnorm4x8(paintData.y); + v_paint = float4(color); + } +#ifdef _EXPORTED_ENABLE_CLIPPING + else if (_EXPORTED_ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { + half outerClipID = + id_bits_to_f16(paintData.x >> 16, uniforms.pathIDGranularity); + v_paint = float4(outerClipID, 0, 0, 0); + } +#endif + else + { + float2x2 paintMatrix = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 paintTranslate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(paintMatrix, fragCoord) + paintTranslate.xy; + if (paintType == LINEAR_GRADIENT_PAINT_TYPE || + paintType == RADIAL_GRADIENT_PAINT_TYPE) + { + // v_paint.a contains "-row" of the gradient ramp at texel center, + // in normalized space. + v_paint.w = -uintBitsToFloat(paintData.y); + // abs(v_paint.b) contains either: + // - 2 if the gradient ramp spans an entire row. + // - x0 of the gradient ramp in normalized space, if it's a simple + // 2-texel ramp. + float gradientSpan = paintTranslate.z; + // gradientSpan is either ~1 (complex gradients span the whole width + // of the texture minus 1px), or 1/GRAD_TEXTURE_WIDTH (simple + // gradients span 1px). + if (gradientSpan > .9) + { + // Complex ramps span an entire row. Set it to 2 to convey this. + v_paint.z = 2.; + } + else + { + // This is a simple ramp. + v_paint.z = paintTranslate.w; + } + if (paintType == LINEAR_GRADIENT_PAINT_TYPE) + { + // The paint is a linear gradient. + v_paint.y = .0; + v_paint.x = paintCoord.x; + } + else + { + // The paint is a radial gradient. Mark v_paint.b negative to + // indicate this to the fragment shader. (v_paint.b can't be + // zero because the gradient ramp is aligned on pixel centers, + // so negating it will always produce a negative number.) + v_paint.z = -v_paint.z; + v_paint.xy = paintCoord.xy; + } + } + else // IMAGE_PAINT_TYPE + { + // v_paint.a <= -1. signals that the paint is an image. + // -v_paint.a - 2 is the texture mipmap level-of-detail. + // v_paint.b is the image opacity. + // v_paint.rg is the normalized image texture coordinate (built into + // the paintMatrix). + float opacity = uintBitsToFloat(paintData.y); + float lod = paintTranslate.z; + v_paint = float4(paintCoord.x, paintCoord.y, opacity, -2. - lod); + } + } + + float4 pos; + if (!shouldDiscardVertex) + { + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef _EXPORTED_RENDER_MODE_MSAA + pos.z = normalize_z_index(pathZIndex); +#endif + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_paint); +#ifndef _EXPORTED_RENDER_MODE_MSAA +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + VARYING_PACK(v_windingWeight); +#else + VARYING_PACK(v_edgeDistance); +#endif + VARYING_PACK(v_pathID); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + VARYING_PACK(v_blendMode); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#ifdef _EXPORTED_RENDER_MODE_MSAA +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, _EXPORTED_dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE half4 find_paint_color(float4 paint FRAGMENT_CONTEXT_DECL) +{ + if (paint.w >= .0) // Is the paint a solid color? + { + return cast_float4_to_half4(paint); + } + else if (paint.w > -1.) // Is paint is a gradient (linear or radial)? + { + float t = + paint.z > .0 ? /*linear*/ paint.x : /*radial*/ length(paint.xy); + t = clamp(t, .0, 1.); + float span = abs(paint.z); + float x = span > 1. + ? /*entire row*/ (1. - 1. / GRAD_TEXTURE_WIDTH) * t + + (.5 / GRAD_TEXTURE_WIDTH) + : /*two texels*/ (1. / GRAD_TEXTURE_WIDTH) * t + span; + float row = -paint.w; + // Our gradient texture is not mipmapped. Issue a texture-sample that + // explicitly does not find derivatives for LOD computation (by + // specifying derivatives directly). + return TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, + gradSampler, + float2(x, row), + .0); + } + else // The paint is an image. + { + half lod = -paint.w - 2.; + half4 color = + TEXTURE_SAMPLE_LOD(_EXPORTED_imageTexture, imageSampler, paint.xy, lod); + half opacity = paint.z; + color.w *= opacity; + return color; + } +} + +#ifndef _EXPORTED_RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + VARYING_UNPACK(v_windingWeight, half); +#else + VARYING_UNPACK(v_edgeDistance, half2); +#endif + VARYING_UNPACK(v_pathID, half); +#ifdef _EXPORTED_ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_BEGIN; +#endif + + half2 coverageData = unpackHalf2x16(PLS_LOADUI(coverageCountBuffer)); + half coverageBufferID = coverageData.y; + half coverageCount = + coverageBufferID == v_pathID ? coverageData.x : make_half(.0); + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES + coverageCount += v_windingWeight; + PLS_PRESERVE_UI(coverageCountBuffer); +#else + if (v_edgeDistance.y >= .0) // Stroke. + coverageCount = + max(min(v_edgeDistance.x, v_edgeDistance.y), coverageCount); + else // Fill. (Back-face culling ensures v_edgeDistance.x is appropriately + // signed.) + coverageCount += v_edgeDistance.x; + + // Save the updated coverage. + PLS_STOREUI(coverageCountBuffer, + packHalf2x16(make_half2(coverageCount, v_pathID))); +#endif + + // Convert coverageCount to coverage. + half coverage; +#ifdef _EXPORTED_CLOCKWISE_FILL + if (_EXPORTED_CLOCKWISE_FILL) + { + coverage = clamp(coverageCount, make_half(.0), make_half(1.)); + } + else +#endif // CLOCKWISE_FILL + { + coverage = abs(coverageCount); +#ifdef _EXPORTED_ENABLE_EVEN_ODD + if (_EXPORTED_ENABLE_EVEN_ODD && v_pathID < .0 /*even-odd*/) + { + coverage = 1. - make_half(abs(fract(coverage * .5) * 2. + -1.)); + } +#endif + // This also caps stroke coverage, which can be >1. + coverage = min(coverage, make_half(1.)); + } + +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING && v_clipID < .0) // Update the clip buffer. + { + half clipID = -v_clipID; +#ifdef _EXPORTED_ENABLE_NESTED_CLIPPING + if (_EXPORTED_ENABLE_NESTED_CLIPPING) + { + half outerClipID = v_paint.x; + if (outerClipID != .0) + { + // This is a nested clip. Intersect coverage with the enclosing + // clip (outerClipID). + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + half outerClipCoverage; + if (clipContentID != clipID) + { + // First hit: either clipBuffer contains outerClipCoverage, + // or this pixel is not inside the outer clip and + // outerClipCoverage is zero. + outerClipCoverage = + clipContentID == outerClipID ? clipData.x : .0; +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // Stash outerClipCoverage before overwriting clipBuffer, in + // case we hit this pixel again and need it. (Not necessary + // when drawing interior triangles because they always go + // last and don't overlap.) + PLS_STORE4F(scratchColorBuffer, + make_half4(outerClipCoverage, .0, .0, .0)); +#endif + } + else + { + // Subsequent hit: outerClipCoverage is stashed in + // scratchColorBuffer. + outerClipCoverage = PLS_LOAD4F(scratchColorBuffer).x; +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need + // to preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + coverage = min(coverage, outerClipCoverage); + } + } +#endif // @ENABLE_NESTED_CLIPPING + PLS_STOREUI(clipBuffer, packHalf2x16(make_half2(coverage, clipID))); + PLS_PRESERVE_4F(colorBuffer); + } + else // Render to the main framebuffer. +#endif // @ENABLE_CLIPPING + { +#ifdef _EXPORTED_ENABLE_CLIPPING + if (_EXPORTED_ENABLE_CLIPPING) + { + // Apply the clip. + if (v_clipID != .0) + { + // Clip IDs are not necessarily drawn in monotonically + // increasing order, so always check exact equality of the + // clipID. + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + coverage = (clipContentID == v_clipID) + ? min(clipData.x, coverage) + : make_half(.0); + } + } +#endif +#ifdef _EXPORTED_ENABLE_CLIP_RECT + if (_EXPORTED_ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif // ENABLE_CLIP_RECT + + half4 color = find_paint_color(v_paint FRAGMENT_CONTEXT_UNPACK); + color.w *= coverage; + + half4 dstColor; + if (coverageBufferID != v_pathID) + { + // This is the first fragment from pathID to touch this pixel. + dstColor = PLS_LOAD4F(colorBuffer); +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // We don't need to store coverage when drawing interior triangles + // because they always go last and don't overlap, so every fragment + // is the final one in the path. + PLS_STORE4F(scratchColorBuffer, dstColor); +#endif + } + else + { + dstColor = PLS_LOAD4F(scratchColorBuffer); +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need to + // preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + + // Blend with the framebuffer color. +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + if (_EXPORTED_ENABLE_ADVANCED_BLEND && + v_blendMode != cast_uint_to_half(BLEND_SRC_OVER)) + { + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif + { + color.xyz *= color.w; + color = color + dstColor * (1. - color.w); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + } + +#ifndef _EXPORTED_DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_END; +#endif + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + + half4 color = find_paint_color(v_paint); + +#ifdef _EXPORTED_ENABLE_ADVANCED_BLEND + if (_EXPORTED_ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(_EXPORTED_dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif // ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + EMIT_FRAG_DATA(color); +} + +#endif // !RENDER_MODE_MSAA + +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/draw_path.minified.glsl b/defold-rive/include/generated/shaders/draw_path.minified.glsl new file mode 100644 index 00000000..ad300cd3 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path.minified.glsl @@ -0,0 +1,559 @@ +/* + * Copyright 2022 Rive + */ + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef DRAW_INTERIOR_TRIANGLES +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +#else +ATTR(0, + float4, + _EXPORTED_a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, _EXPORTED_a_mirroredVertexData); +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_paint); +#ifndef RENDER_MODE_MSAA +#ifdef DRAW_INTERIOR_TRIANGLES +OPTIONALLY_FLAT VARYING(1, half, v_windingWeight); +#else +NO_PERSPECTIVE VARYING(2, half2, v_edgeDistance); +#endif +OPTIONALLY_FLAT VARYING(3, half, v_pathID); +#ifdef ENABLE_CLIPPING +OPTIONALLY_FLAT VARYING(4, half, v_clipID); +#endif +#ifdef ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(5, float4, v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef ENABLE_ADVANCED_BLEND +OPTIONALLY_FLAT VARYING(6, half, v_blendMode); +#endif +VARYING_BLOCK_END + +#ifdef VERTEX +VERTEX_MAIN(_EXPORTED_drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef DRAW_INTERIOR_TRIANGLES + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_triangleVertex, float3); +#else + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, _EXPORTED_a_mirroredVertexData, float4); +#endif + + VARYING_INIT(v_paint, float4); +#ifndef RENDER_MODE_MSAA +#ifdef DRAW_INTERIOR_TRIANGLES + VARYING_INIT(v_windingWeight, half); +#else + VARYING_INIT(v_edgeDistance, half2); +#endif + VARYING_INIT(v_pathID, half); +#ifdef ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef ENABLE_ADVANCED_BLEND + VARYING_INIT(v_blendMode, half); +#endif + + bool shouldDiscardVertex = false; + uint pathID; + float2 vertexPosition; +#ifdef RENDER_MODE_MSAA + ushort pathZIndex; +#endif + +#ifdef DRAW_INTERIOR_TRIANGLES + vertexPosition = + unpack_interior_triangle_vertex(_EXPORTED_a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); +#else + shouldDiscardVertex = + !unpack_tessellated_path_vertex(_EXPORTED_a_patchVertexData, + _EXPORTED_a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition +#ifndef RENDER_MODE_MSAA + , + v_edgeDistance +#else + , + pathZIndex +#endif + VERTEX_CONTEXT_UNPACK); +#endif // !DRAW_INTERIOR_TRIANGLES + + uint2 paintData = STORAGE_BUFFER_LOAD2(_EXPORTED_paintBuffer, pathID); + +#ifndef RENDER_MODE_MSAA + // Encode the integral pathID as a "half" that we know the hardware will see + // as a unique value in the fragment shader. + v_pathID = id_bits_to_f16(pathID, uniforms.pathIDGranularity); + + // Indicate even-odd fill rule by making pathID negative. + if ((paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + v_pathID = -v_pathID; +#endif // !RENDER_MODE_MSAA + + uint paintType = paintData.x & 0xfu; +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING) + { + uint clipIDBits = + (paintType == CLIP_UPDATE_PAINT_TYPE ? paintData.y : paintData.x) >> + 16; + v_clipID = id_bits_to_f16(clipIDBits, uniforms.pathIDGranularity); + // Negative clipID means to update the clip buffer instead of the color + // buffer. + if (paintType == CLIP_UPDATE_PAINT_TYPE) + v_clipID = -v_clipID; + } +#endif +#ifdef ENABLE_ADVANCED_BLEND + if (ENABLE_ADVANCED_BLEND) + { + v_blendMode = float((paintData.x >> 4) & 0xfu); + } +#endif + + // Paint matrices operate on the fragment shader's "_fragCoord", which is + // bottom-up in GL. + float2 fragCoord = vertexPosition; +#ifdef FRAG_COORD_BOTTOM_UP + fragCoord.y = float(uniforms.renderTargetHeight) - fragCoord.y; +#endif + +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + // clipRectInverseMatrix transforms from pixel coordinates to a space + // where the clipRect is the normalized rectangle: [-1, -1, 1, 1]. + float2x2 clipRectInverseMatrix = make_float2x2( + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 2u)); + float4 clipRectInverseTranslate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 3u); +#ifndef RENDER_MODE_MSAA + v_clipRect = + find_clip_rect_coverage_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + + // Unpack the paint once we have a position. + if (paintType == SOLID_COLOR_PAINT_TYPE) + { + half4 color = unpackUnorm4x8(paintData.y); + v_paint = float4(color); + } +#ifdef ENABLE_CLIPPING + else if (ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { + half outerClipID = + id_bits_to_f16(paintData.x >> 16, uniforms.pathIDGranularity); + v_paint = float4(outerClipID, 0, 0, 0); + } +#endif + else + { + float2x2 paintMatrix = + make_float2x2(STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u)); + float4 paintTranslate = + STORAGE_BUFFER_LOAD4(_EXPORTED_paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(paintMatrix, fragCoord) + paintTranslate.xy; + if (paintType == LINEAR_GRADIENT_PAINT_TYPE || + paintType == RADIAL_GRADIENT_PAINT_TYPE) + { + // v_paint.a contains "-row" of the gradient ramp at texel center, + // in normalized space. + v_paint.w = -uintBitsToFloat(paintData.y); + // abs(v_paint.b) contains either: + // - 2 if the gradient ramp spans an entire row. + // - x0 of the gradient ramp in normalized space, if it's a simple + // 2-texel ramp. + float gradientSpan = paintTranslate.z; + // gradientSpan is either ~1 (complex gradients span the whole width + // of the texture minus 1px), or 1/GRAD_TEXTURE_WIDTH (simple + // gradients span 1px). + if (gradientSpan > .9) + { + // Complex ramps span an entire row. Set it to 2 to convey this. + v_paint.z = 2.; + } + else + { + // This is a simple ramp. + v_paint.z = paintTranslate.w; + } + if (paintType == LINEAR_GRADIENT_PAINT_TYPE) + { + // The paint is a linear gradient. + v_paint.y = .0; + v_paint.x = paintCoord.x; + } + else + { + // The paint is a radial gradient. Mark v_paint.b negative to + // indicate this to the fragment shader. (v_paint.b can't be + // zero because the gradient ramp is aligned on pixel centers, + // so negating it will always produce a negative number.) + v_paint.z = -v_paint.z; + v_paint.xy = paintCoord.xy; + } + } + else // IMAGE_PAINT_TYPE + { + // v_paint.a <= -1. signals that the paint is an image. + // -v_paint.a - 2 is the texture mipmap level-of-detail. + // v_paint.b is the image opacity. + // v_paint.rg is the normalized image texture coordinate (built into + // the paintMatrix). + float opacity = uintBitsToFloat(paintData.y); + float lod = paintTranslate.z; + v_paint = float4(paintCoord.x, paintCoord.y, opacity, -2. - lod); + } + } + + float4 pos; + if (!shouldDiscardVertex) + { + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef RENDER_MODE_MSAA + pos.z = normalize_z_index(pathZIndex); +#endif + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_paint); +#ifndef RENDER_MODE_MSAA +#ifdef DRAW_INTERIOR_TRIANGLES + VARYING_PACK(v_windingWeight); +#else + VARYING_PACK(v_edgeDistance); +#endif + VARYING_PACK(v_pathID); +#ifdef ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef ENABLE_ADVANCED_BLEND + VARYING_PACK(v_blendMode); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, _EXPORTED_gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, _EXPORTED_imageTexture); +#ifdef RENDER_MODE_MSAA +#ifdef ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, _EXPORTED_dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE half4 find_paint_color(float4 paint FRAGMENT_CONTEXT_DECL) +{ + if (paint.w >= .0) // Is the paint a solid color? + { + return cast_float4_to_half4(paint); + } + else if (paint.w > -1.) // Is paint is a gradient (linear or radial)? + { + float t = + paint.z > .0 ? /*linear*/ paint.x : /*radial*/ length(paint.xy); + t = clamp(t, .0, 1.); + float span = abs(paint.z); + float x = span > 1. + ? /*entire row*/ (1. - 1. / GRAD_TEXTURE_WIDTH) * t + + (.5 / GRAD_TEXTURE_WIDTH) + : /*two texels*/ (1. / GRAD_TEXTURE_WIDTH) * t + span; + float row = -paint.w; + // Our gradient texture is not mipmapped. Issue a texture-sample that + // explicitly does not find derivatives for LOD computation (by + // specifying derivatives directly). + return TEXTURE_SAMPLE_LOD(_EXPORTED_gradTexture, + gradSampler, + float2(x, row), + .0); + } + else // The paint is an image. + { + half lod = -paint.w - 2.; + half4 color = + TEXTURE_SAMPLE_LOD(_EXPORTED_imageTexture, imageSampler, paint.xy, lod); + half opacity = paint.z; + color.w *= opacity; + return color; + } +} + +#ifndef RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN(_EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef DRAW_INTERIOR_TRIANGLES + VARYING_UNPACK(v_windingWeight, half); +#else + VARYING_UNPACK(v_edgeDistance, half2); +#endif + VARYING_UNPACK(v_pathID, half); +#ifdef ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif +#ifdef ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + +#ifndef DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_BEGIN; +#endif + + half2 coverageData = unpackHalf2x16(PLS_LOADUI(coverageCountBuffer)); + half coverageBufferID = coverageData.y; + half coverageCount = + coverageBufferID == v_pathID ? coverageData.x : make_half(.0); + +#ifdef DRAW_INTERIOR_TRIANGLES + coverageCount += v_windingWeight; + PLS_PRESERVE_UI(coverageCountBuffer); +#else + if (v_edgeDistance.y >= .0) // Stroke. + coverageCount = + max(min(v_edgeDistance.x, v_edgeDistance.y), coverageCount); + else // Fill. (Back-face culling ensures v_edgeDistance.x is appropriately + // signed.) + coverageCount += v_edgeDistance.x; + + // Save the updated coverage. + PLS_STOREUI(coverageCountBuffer, + packHalf2x16(make_half2(coverageCount, v_pathID))); +#endif + + // Convert coverageCount to coverage. + half coverage; +#ifdef CLOCKWISE_FILL + if (CLOCKWISE_FILL) + { + coverage = clamp(coverageCount, make_half(.0), make_half(1.)); + } + else +#endif // CLOCKWISE_FILL + { + coverage = abs(coverageCount); +#ifdef ENABLE_EVEN_ODD + if (ENABLE_EVEN_ODD && v_pathID < .0 /*even-odd*/) + { + coverage = 1. - make_half(abs(fract(coverage * .5) * 2. + -1.)); + } +#endif + // This also caps stroke coverage, which can be >1. + coverage = min(coverage, make_half(1.)); + } + +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING && v_clipID < .0) // Update the clip buffer. + { + half clipID = -v_clipID; +#ifdef ENABLE_NESTED_CLIPPING + if (ENABLE_NESTED_CLIPPING) + { + half outerClipID = v_paint.x; + if (outerClipID != .0) + { + // This is a nested clip. Intersect coverage with the enclosing + // clip (outerClipID). + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + half outerClipCoverage; + if (clipContentID != clipID) + { + // First hit: either clipBuffer contains outerClipCoverage, + // or this pixel is not inside the outer clip and + // outerClipCoverage is zero. + outerClipCoverage = + clipContentID == outerClipID ? clipData.x : .0; +#ifndef DRAW_INTERIOR_TRIANGLES + // Stash outerClipCoverage before overwriting clipBuffer, in + // case we hit this pixel again and need it. (Not necessary + // when drawing interior triangles because they always go + // last and don't overlap.) + PLS_STORE4F(scratchColorBuffer, + make_half4(outerClipCoverage, .0, .0, .0)); +#endif + } + else + { + // Subsequent hit: outerClipCoverage is stashed in + // scratchColorBuffer. + outerClipCoverage = PLS_LOAD4F(scratchColorBuffer).x; +#ifndef DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need + // to preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + coverage = min(coverage, outerClipCoverage); + } + } +#endif // @ENABLE_NESTED_CLIPPING + PLS_STOREUI(clipBuffer, packHalf2x16(make_half2(coverage, clipID))); + PLS_PRESERVE_4F(colorBuffer); + } + else // Render to the main framebuffer. +#endif // @ENABLE_CLIPPING + { +#ifdef ENABLE_CLIPPING + if (ENABLE_CLIPPING) + { + // Apply the clip. + if (v_clipID != .0) + { + // Clip IDs are not necessarily drawn in monotonically + // increasing order, so always check exact equality of the + // clipID. + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.y; + coverage = (clipContentID == v_clipID) + ? min(clipData.x, coverage) + : make_half(.0); + } + } +#endif +#ifdef ENABLE_CLIP_RECT + if (ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif // ENABLE_CLIP_RECT + + half4 color = find_paint_color(v_paint FRAGMENT_CONTEXT_UNPACK); + color.w *= coverage; + + half4 dstColor; + if (coverageBufferID != v_pathID) + { + // This is the first fragment from pathID to touch this pixel. + dstColor = PLS_LOAD4F(colorBuffer); +#ifndef DRAW_INTERIOR_TRIANGLES + // We don't need to store coverage when drawing interior triangles + // because they always go last and don't overlap, so every fragment + // is the final one in the path. + PLS_STORE4F(scratchColorBuffer, dstColor); +#endif + } + else + { + dstColor = PLS_LOAD4F(scratchColorBuffer); +#ifndef DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need to + // preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + + // Blend with the framebuffer color. +#ifdef ENABLE_ADVANCED_BLEND + if (ENABLE_ADVANCED_BLEND && + v_blendMode != cast_uint_to_half(BLEND_SRC_OVER)) + { + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif + { + color.xyz *= color.w; + color = color + dstColor * (1. - color.w); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + } + +#ifndef DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_END; +#endif + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, _EXPORTED_drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + + half4 color = find_paint_color(v_paint); + +#ifdef ENABLE_ADVANCED_BLEND + if (ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(_EXPORTED_dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif // ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + EMIT_FRAG_DATA(color); +} + +#endif // !RENDER_MODE_MSAA + +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/draw_path_common.exports.h b/defold-rive/include/generated/shaders/draw_path_common.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path_common.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/draw_path_common.glsl.hpp b/defold-rive/include/generated/shaders/draw_path_common.glsl.hpp new file mode 100644 index 00000000..c412cb56 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path_common.glsl.hpp @@ -0,0 +1,353 @@ +#pragma once + +#include "draw_path_common.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char draw_path_common[] = R"===(/* + * Copyright 2023 Rive + */ + +// Common functions shared by draw shaders. + +#ifdef _EXPORTED_VERTEX + +VERTEX_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, + TESS_VERTEX_TEXTURE_IDX, + _EXPORTED_tessVertexTexture); +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, _EXPORTED_pathBuffer); +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, _EXPORTED_contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +#ifdef _EXPORTED_DRAW_PATH +INLINE int2 tess_texel_coord(int texelIndex) +{ + return int2(texelIndex & ((1 << TESS_TEXTURE_WIDTH_LOG2) - 1), + texelIndex >> TESS_TEXTURE_WIDTH_LOG2); +} + +INLINE float manhattan_pixel_width(float2x2 M, float2 normalized) +{ + + float2 v = MUL(M, normalized); + return (abs(v.x) + abs(v.y)) * (1. / dot(v, v)); +} + +INLINE bool unpack_tessellated_path_vertex(float4 patchVertexData, + float4 mirroredVertexData, + int _instanceID, + OUT(uint) outPathID, + OUT(float2) outVertexPosition +#ifndef _EXPORTED_RENDER_MODE_MSAA + , + OUT(half2) outEdgeDistance +#else + , + OUT(ushort) outPathZIndex +#endif + VERTEX_CONTEXT_DECL) +{ + // Unpack patchVertexData. + int localVertexID = int(patchVertexData.x); + float outset = patchVertexData.y; + float fillCoverage = patchVertexData.z; + int patchSegmentSpan = floatBitsToInt(patchVertexData.w) >> 2; + int vertexType = floatBitsToInt(patchVertexData.w) & 3; + + // Fetch a vertex that definitely belongs to the contour we're drawing. + int vertexIDOnContour = min(localVertexID, patchSegmentSpan - 1); + int tessVertexIdx = _instanceID * patchSegmentSpan + vertexIDOnContour; + uint4 tessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, tess_texel_coord(tessVertexIdx)); + uint contourIDWithFlags = tessVertexData.w; + + // Fetch and unpack the contour referenced by the tessellation vertex. + uint4 contourData = + STORAGE_BUFFER_LOAD4(_EXPORTED_contourBuffer, + contour_data_idx(contourIDWithFlags)); + float2 midpoint = uintBitsToFloat(contourData.xy); + outPathID = contourData.z & 0xffffu; + uint vertexIndex0 = contourData.w; + + // Fetch and unpack the path. + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + + float strokeRadius = uintBitsToFloat(pathData.z); +#ifdef _EXPORTED_RENDER_MODE_MSAA + outPathZIndex = cast_uint_to_ushort(pathData.w); +#endif + + // Fix the tessellation vertex if we fetched the wrong one in order to + // guarantee we got the correct contour ID and flags, or if we belong to a + // mirrored contour and this vertex has an alternate position when mirrored. + uint mirroredContourFlag = + contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG; + if (mirroredContourFlag != 0u) + { + localVertexID = int(mirroredVertexData.x); + outset = mirroredVertexData.y; + fillCoverage = mirroredVertexData.z; + } + if (localVertexID != vertexIDOnContour) + { + // This can peek one vertex before or after the contour, but the + // tessellator guarantees there is always at least one padding vertex at + // the beginning and end of the data. + tessVertexIdx += localVertexID - vertexIDOnContour; + uint4 replacementTessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, tess_texel_coord(tessVertexIdx)); + if ((replacementTessVertexData.w & + (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu)) != + (contourIDWithFlags & (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu))) + { + // We crossed over into a new contour. Either wrap to the first + // vertex in the contour or leave it clamped at the final vertex of + // the contour. + bool isClosed = strokeRadius == .0 || // filled + midpoint.x != .0; // explicity closed stroke + if (isClosed) + { + tessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, + tess_texel_coord(int(vertexIndex0))); + } + } + else + { + tessVertexData = replacementTessVertexData; + } + // MIRRORED_CONTOUR_CONTOUR_FLAG is not preserved at vertexIndex0. + // Preserve it here. By not preserving this flag, the normal and + // mirrored contour can both share the same contour record. + contourIDWithFlags = + (tessVertexData.w & ~MIRRORED_CONTOUR_CONTOUR_FLAG) | + mirroredContourFlag; + } + + // Finish unpacking tessVertexData. + float theta = uintBitsToFloat(tessVertexData.z); + float2 norm = float2(sin(theta), -cos(theta)); + float2 origin = uintBitsToFloat(tessVertexData.xy); + float2 postTransformVertexOffset; + + if (strokeRadius != .0) // Is this a stroke? + { + // Ensure strokes always emit clockwise triangles. + outset *= sign(determinant(M)); + + // Joins only emanate from the outer side of the stroke. + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outset = min(outset, .0); + if ((contourIDWithFlags & RIGHT_JOIN_CONTOUR_FLAG) != 0u) + outset = max(outset, .0); + + float aaRadius = manhattan_pixel_width(M, norm) * AA_RADIUS; + half globalCoverage = 1.; + if (aaRadius > strokeRadius) + { + // The stroke is narrower than the AA ramp. Instead of emitting + // subpixel geometry, make the stroke as wide as the AA ramp and + // apply a global coverage multiplier. + globalCoverage = + cast_float_to_half(strokeRadius) / cast_float_to_half(aaRadius); + strokeRadius = aaRadius; + } + + // Extend the vertex by half the width of the AA ramp. + float2 vertexOffset = + MUL(norm, strokeRadius + aaRadius); // Bloat stroke width for AA. + +#ifndef _EXPORTED_RENDER_MODE_MSAA + // Calculate the AA distance to both the outset and inset edges of the + // stroke. The fragment shader will use whichever is lesser. + float x = outset * (strokeRadius + aaRadius); + outEdgeDistance = cast_float2_to_half2( + (1. / (aaRadius * 2.)) * (float2(x, -x) + strokeRadius) + .5); +#endif + + uint joinType = contourIDWithFlags & JOIN_TYPE_MASK; + if (joinType != 0u) + { + // This vertex belongs to a miter or bevel join. Begin by finding + // the bisector, which is the same as the miter line. The first two + // vertices in the join peek forward to figure out the bisector, and + // the final two peek backward. + int peekDir = 2; + if ((contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) == 0u) + peekDir = -peekDir; + if ((contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != 0u) + peekDir = -peekDir; + int2 otherJoinTexelCoord = + tess_texel_coord(tessVertexIdx + peekDir); + uint4 otherJoinData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, otherJoinTexelCoord); + float otherJoinTheta = uintBitsToFloat(otherJoinData.z); + float joinAngle = abs(otherJoinTheta - theta); + if (joinAngle > PI) + joinAngle = 2. * PI - joinAngle; + bool isTan0 = + (contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) != 0u; + bool isLeftJoin = + (contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u; + float bisectTheta = + joinAngle * (isTan0 == isLeftJoin ? -.5 : .5) + theta; + float2 bisector = float2(sin(bisectTheta), -cos(bisectTheta)); + float bisectPixelWidth = manhattan_pixel_width(M, bisector); + + // Generalize everything to a "miter-clip", which is proposed in the + // SVG-2 draft. Bevel joins are converted to miter-clip joins with a + // miter limit of 1/2 pixel. They technically bleed out 1/2 pixel + // when drawn this way, but they seem to look fine and there is not + // an obvious solution to antialias them without an ink bleed. + float miterRatio = cos(joinAngle * .5); + float clipRadius; + if ((joinType == MITER_CLIP_JOIN_CONTOUR_FLAG) || + (joinType == MITER_REVERT_JOIN_CONTOUR_FLAG && + miterRatio >= .25)) + { + // Miter! (Or square cap.) + // We currently use hard coded miter limits: + // * 1 for square caps being emulated as miter-clip joins. + // * 4, which is the SVG default, for all other miter joins. + float miterInverseLimit = + (contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != + 0u + ? 1. + : .25; + clipRadius = + strokeRadius * (1. / max(miterRatio, miterInverseLimit)); + } + else + { + // Bevel! (Or butt cap.) + clipRadius = strokeRadius * miterRatio + + /* 1/2px bleed! */ bisectPixelWidth * .5; + } + float clipAARadius = clipRadius + bisectPixelWidth * AA_RADIUS; + if ((contourIDWithFlags & JOIN_TANGENT_INNER_CONTOUR_FLAG) != 0u) + { + // Reposition the inner join vertices at the miter-clip + // positions. Leave the outer join vertices as duplicates on the + // surrounding curve endpoints. We emit duplicate vertex + // positions because we need a hard stop on the clip distance + // (see below). + // + // Use aaRadius here because we're tracking AA on the mitered + // edge, NOT the outer clip edge. + float strokeAARaidus = strokeRadius + aaRadius; + // clipAARadius must be 1/16 of an AA ramp (~1/16 pixel) longer + // than the miter length before we start clipping, to ensure we + // are solving for a numerically stable intersection. + float slop = aaRadius * .125; + if (strokeAARaidus <= clipAARadius * miterRatio + slop) + { + // The miter point is before the clip line. Extend out to + // the miter point. + float miterAARadius = strokeAARaidus * (1. / miterRatio); + vertexOffset = bisector * miterAARadius; + } + else + { + // The clip line is before the miter point. Find where the + // clip line and the mitered edge intersect. + float2 bisectAAOffset = bisector * clipAARadius; + float2 k = float2(dot(vertexOffset, vertexOffset), + dot(bisectAAOffset, bisectAAOffset)); + vertexOffset = + MUL(k, inverse(float2x2(vertexOffset, bisectAAOffset))); + } + } + // The clip distance tells us how to antialias the outer clipped + // edge. Since joins only emanate from the outset side of the + // stroke, we can repurpose the inset distance as the clip distance. + float2 pt = abs(outset) * vertexOffset; + float clipDistance = (clipAARadius - dot(pt, bisector)) / + (bisectPixelWidth * (AA_RADIUS * 2.)); +#ifndef _EXPORTED_RENDER_MODE_MSAA + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outEdgeDistance.y = cast_float_to_half(clipDistance); + else + outEdgeDistance.x = cast_float_to_half(clipDistance); +#endif + } + +#ifndef _EXPORTED_RENDER_MODE_MSAA + outEdgeDistance *= globalCoverage; + + // Bias outEdgeDistance.y slightly upwards in order to guarantee + // outEdgeDistance.y is >= 0 at every pixel. "outEdgeDistance.y < 0" is + // used to differentiate between strokes and fills. + outEdgeDistance.y = max(outEdgeDistance.y, make_half(1e-4)); +#endif + + postTransformVertexOffset = MUL(M, outset * vertexOffset); + + // Throw away the fan triangles since we're a stroke. + if (vertexType != STROKE_VERTEX) + return false; + } + else // This is a fill. + { + // Place the fan point. + if (vertexType == FAN_MIDPOINT_VERTEX) + origin = midpoint; + + // Offset the vertex for Manhattan AA. + postTransformVertexOffset = + sign(MUL(outset * norm, inverse(M))) * AA_RADIUS; + + if (bool(contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != + bool(contourIDWithFlags & NEGATE_PATH_FILL_COVERAGE_FLAG)) + { + fillCoverage = -fillCoverage; + } + +#ifndef _EXPORTED_RENDER_MODE_MSAA + // "outEdgeDistance.y < 0" indicates to the fragment shader that this is + // a fill. + outEdgeDistance = make_half2(fillCoverage, -1.); +#endif + + // If we're actually just drawing a triangle, throw away the entire + // patch except a single fan triangle. + if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u && + vertexType != FAN_VERTEX) + return false; + } + + outVertexPosition = MUL(M, origin) + postTransformVertexOffset + translate; + return true; +} +#endif // @DRAW_PATH + +#ifdef _EXPORTED_DRAW_INTERIOR_TRIANGLES +INLINE float2 +unpack_interior_triangle_vertex(float3 triangleVertex, + OUT(uint) outPathID, + OUT(half) outWindingWeight VERTEX_CONTEXT_DECL) +{ + outPathID = floatBitsToUint(triangleVertex.z) & 0xffffu; + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + outWindingWeight = cast_int_to_half(floatBitsToInt(triangleVertex.z) >> 16); + return MUL(M, triangleVertex.xy) + translate; +} +#endif // @DRAW_INTERIOR_TRIANGLES + +#endif // @VERTEX +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/draw_path_common.minified.glsl b/defold-rive/include/generated/shaders/draw_path_common.minified.glsl new file mode 100644 index 00000000..5d33b512 --- /dev/null +++ b/defold-rive/include/generated/shaders/draw_path_common.minified.glsl @@ -0,0 +1,342 @@ +/* + * Copyright 2023 Rive + */ + +// Common functions shared by draw shaders. + +#ifdef VERTEX + +VERTEX_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, + TESS_VERTEX_TEXTURE_IDX, + _EXPORTED_tessVertexTexture); +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, _EXPORTED_pathBuffer); +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, _EXPORTED_paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, _EXPORTED_paintAuxBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, _EXPORTED_contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +#ifdef DRAW_PATH +INLINE int2 tess_texel_coord(int texelIndex) +{ + return int2(texelIndex & ((1 << TESS_TEXTURE_WIDTH_LOG2) - 1), + texelIndex >> TESS_TEXTURE_WIDTH_LOG2); +} + +INLINE float manhattan_pixel_width(float2x2 M, float2 normalized) +{ + + float2 v = MUL(M, normalized); + return (abs(v.x) + abs(v.y)) * (1. / dot(v, v)); +} + +INLINE bool unpack_tessellated_path_vertex(float4 patchVertexData, + float4 mirroredVertexData, + int _instanceID, + OUT(uint) outPathID, + OUT(float2) outVertexPosition +#ifndef RENDER_MODE_MSAA + , + OUT(half2) outEdgeDistance +#else + , + OUT(ushort) outPathZIndex +#endif + VERTEX_CONTEXT_DECL) +{ + // Unpack patchVertexData. + int localVertexID = int(patchVertexData.x); + float outset = patchVertexData.y; + float fillCoverage = patchVertexData.z; + int patchSegmentSpan = floatBitsToInt(patchVertexData.w) >> 2; + int vertexType = floatBitsToInt(patchVertexData.w) & 3; + + // Fetch a vertex that definitely belongs to the contour we're drawing. + int vertexIDOnContour = min(localVertexID, patchSegmentSpan - 1); + int tessVertexIdx = _instanceID * patchSegmentSpan + vertexIDOnContour; + uint4 tessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, tess_texel_coord(tessVertexIdx)); + uint contourIDWithFlags = tessVertexData.w; + + // Fetch and unpack the contour referenced by the tessellation vertex. + uint4 contourData = + STORAGE_BUFFER_LOAD4(_EXPORTED_contourBuffer, + contour_data_idx(contourIDWithFlags)); + float2 midpoint = uintBitsToFloat(contourData.xy); + outPathID = contourData.z & 0xffffu; + uint vertexIndex0 = contourData.w; + + // Fetch and unpack the path. + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + + float strokeRadius = uintBitsToFloat(pathData.z); +#ifdef RENDER_MODE_MSAA + outPathZIndex = cast_uint_to_ushort(pathData.w); +#endif + + // Fix the tessellation vertex if we fetched the wrong one in order to + // guarantee we got the correct contour ID and flags, or if we belong to a + // mirrored contour and this vertex has an alternate position when mirrored. + uint mirroredContourFlag = + contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG; + if (mirroredContourFlag != 0u) + { + localVertexID = int(mirroredVertexData.x); + outset = mirroredVertexData.y; + fillCoverage = mirroredVertexData.z; + } + if (localVertexID != vertexIDOnContour) + { + // This can peek one vertex before or after the contour, but the + // tessellator guarantees there is always at least one padding vertex at + // the beginning and end of the data. + tessVertexIdx += localVertexID - vertexIDOnContour; + uint4 replacementTessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, tess_texel_coord(tessVertexIdx)); + if ((replacementTessVertexData.w & + (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu)) != + (contourIDWithFlags & (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu))) + { + // We crossed over into a new contour. Either wrap to the first + // vertex in the contour or leave it clamped at the final vertex of + // the contour. + bool isClosed = strokeRadius == .0 || // filled + midpoint.x != .0; // explicity closed stroke + if (isClosed) + { + tessVertexData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, + tess_texel_coord(int(vertexIndex0))); + } + } + else + { + tessVertexData = replacementTessVertexData; + } + // MIRRORED_CONTOUR_CONTOUR_FLAG is not preserved at vertexIndex0. + // Preserve it here. By not preserving this flag, the normal and + // mirrored contour can both share the same contour record. + contourIDWithFlags = + (tessVertexData.w & ~MIRRORED_CONTOUR_CONTOUR_FLAG) | + mirroredContourFlag; + } + + // Finish unpacking tessVertexData. + float theta = uintBitsToFloat(tessVertexData.z); + float2 norm = float2(sin(theta), -cos(theta)); + float2 origin = uintBitsToFloat(tessVertexData.xy); + float2 postTransformVertexOffset; + + if (strokeRadius != .0) // Is this a stroke? + { + // Ensure strokes always emit clockwise triangles. + outset *= sign(determinant(M)); + + // Joins only emanate from the outer side of the stroke. + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outset = min(outset, .0); + if ((contourIDWithFlags & RIGHT_JOIN_CONTOUR_FLAG) != 0u) + outset = max(outset, .0); + + float aaRadius = manhattan_pixel_width(M, norm) * AA_RADIUS; + half globalCoverage = 1.; + if (aaRadius > strokeRadius) + { + // The stroke is narrower than the AA ramp. Instead of emitting + // subpixel geometry, make the stroke as wide as the AA ramp and + // apply a global coverage multiplier. + globalCoverage = + cast_float_to_half(strokeRadius) / cast_float_to_half(aaRadius); + strokeRadius = aaRadius; + } + + // Extend the vertex by half the width of the AA ramp. + float2 vertexOffset = + MUL(norm, strokeRadius + aaRadius); // Bloat stroke width for AA. + +#ifndef RENDER_MODE_MSAA + // Calculate the AA distance to both the outset and inset edges of the + // stroke. The fragment shader will use whichever is lesser. + float x = outset * (strokeRadius + aaRadius); + outEdgeDistance = cast_float2_to_half2( + (1. / (aaRadius * 2.)) * (float2(x, -x) + strokeRadius) + .5); +#endif + + uint joinType = contourIDWithFlags & JOIN_TYPE_MASK; + if (joinType != 0u) + { + // This vertex belongs to a miter or bevel join. Begin by finding + // the bisector, which is the same as the miter line. The first two + // vertices in the join peek forward to figure out the bisector, and + // the final two peek backward. + int peekDir = 2; + if ((contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) == 0u) + peekDir = -peekDir; + if ((contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != 0u) + peekDir = -peekDir; + int2 otherJoinTexelCoord = + tess_texel_coord(tessVertexIdx + peekDir); + uint4 otherJoinData = + TEXEL_FETCH(_EXPORTED_tessVertexTexture, otherJoinTexelCoord); + float otherJoinTheta = uintBitsToFloat(otherJoinData.z); + float joinAngle = abs(otherJoinTheta - theta); + if (joinAngle > PI) + joinAngle = 2. * PI - joinAngle; + bool isTan0 = + (contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) != 0u; + bool isLeftJoin = + (contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u; + float bisectTheta = + joinAngle * (isTan0 == isLeftJoin ? -.5 : .5) + theta; + float2 bisector = float2(sin(bisectTheta), -cos(bisectTheta)); + float bisectPixelWidth = manhattan_pixel_width(M, bisector); + + // Generalize everything to a "miter-clip", which is proposed in the + // SVG-2 draft. Bevel joins are converted to miter-clip joins with a + // miter limit of 1/2 pixel. They technically bleed out 1/2 pixel + // when drawn this way, but they seem to look fine and there is not + // an obvious solution to antialias them without an ink bleed. + float miterRatio = cos(joinAngle * .5); + float clipRadius; + if ((joinType == MITER_CLIP_JOIN_CONTOUR_FLAG) || + (joinType == MITER_REVERT_JOIN_CONTOUR_FLAG && + miterRatio >= .25)) + { + // Miter! (Or square cap.) + // We currently use hard coded miter limits: + // * 1 for square caps being emulated as miter-clip joins. + // * 4, which is the SVG default, for all other miter joins. + float miterInverseLimit = + (contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != + 0u + ? 1. + : .25; + clipRadius = + strokeRadius * (1. / max(miterRatio, miterInverseLimit)); + } + else + { + // Bevel! (Or butt cap.) + clipRadius = strokeRadius * miterRatio + + /* 1/2px bleed! */ bisectPixelWidth * .5; + } + float clipAARadius = clipRadius + bisectPixelWidth * AA_RADIUS; + if ((contourIDWithFlags & JOIN_TANGENT_INNER_CONTOUR_FLAG) != 0u) + { + // Reposition the inner join vertices at the miter-clip + // positions. Leave the outer join vertices as duplicates on the + // surrounding curve endpoints. We emit duplicate vertex + // positions because we need a hard stop on the clip distance + // (see below). + // + // Use aaRadius here because we're tracking AA on the mitered + // edge, NOT the outer clip edge. + float strokeAARaidus = strokeRadius + aaRadius; + // clipAARadius must be 1/16 of an AA ramp (~1/16 pixel) longer + // than the miter length before we start clipping, to ensure we + // are solving for a numerically stable intersection. + float slop = aaRadius * .125; + if (strokeAARaidus <= clipAARadius * miterRatio + slop) + { + // The miter point is before the clip line. Extend out to + // the miter point. + float miterAARadius = strokeAARaidus * (1. / miterRatio); + vertexOffset = bisector * miterAARadius; + } + else + { + // The clip line is before the miter point. Find where the + // clip line and the mitered edge intersect. + float2 bisectAAOffset = bisector * clipAARadius; + float2 k = float2(dot(vertexOffset, vertexOffset), + dot(bisectAAOffset, bisectAAOffset)); + vertexOffset = + MUL(k, inverse(float2x2(vertexOffset, bisectAAOffset))); + } + } + // The clip distance tells us how to antialias the outer clipped + // edge. Since joins only emanate from the outset side of the + // stroke, we can repurpose the inset distance as the clip distance. + float2 pt = abs(outset) * vertexOffset; + float clipDistance = (clipAARadius - dot(pt, bisector)) / + (bisectPixelWidth * (AA_RADIUS * 2.)); +#ifndef RENDER_MODE_MSAA + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outEdgeDistance.y = cast_float_to_half(clipDistance); + else + outEdgeDistance.x = cast_float_to_half(clipDistance); +#endif + } + +#ifndef RENDER_MODE_MSAA + outEdgeDistance *= globalCoverage; + + // Bias outEdgeDistance.y slightly upwards in order to guarantee + // outEdgeDistance.y is >= 0 at every pixel. "outEdgeDistance.y < 0" is + // used to differentiate between strokes and fills. + outEdgeDistance.y = max(outEdgeDistance.y, make_half(1e-4)); +#endif + + postTransformVertexOffset = MUL(M, outset * vertexOffset); + + // Throw away the fan triangles since we're a stroke. + if (vertexType != STROKE_VERTEX) + return false; + } + else // This is a fill. + { + // Place the fan point. + if (vertexType == FAN_MIDPOINT_VERTEX) + origin = midpoint; + + // Offset the vertex for Manhattan AA. + postTransformVertexOffset = + sign(MUL(outset * norm, inverse(M))) * AA_RADIUS; + + if (bool(contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != + bool(contourIDWithFlags & NEGATE_PATH_FILL_COVERAGE_FLAG)) + { + fillCoverage = -fillCoverage; + } + +#ifndef RENDER_MODE_MSAA + // "outEdgeDistance.y < 0" indicates to the fragment shader that this is + // a fill. + outEdgeDistance = make_half2(fillCoverage, -1.); +#endif + + // If we're actually just drawing a triangle, throw away the entire + // patch except a single fan triangle. + if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u && + vertexType != FAN_VERTEX) + return false; + } + + outVertexPosition = MUL(M, origin) + postTransformVertexOffset + translate; + return true; +} +#endif // @DRAW_PATH + +#ifdef DRAW_INTERIOR_TRIANGLES +INLINE float2 +unpack_interior_triangle_vertex(float3 triangleVertex, + OUT(uint) outPathID, + OUT(half) outWindingWeight VERTEX_CONTEXT_DECL) +{ + outPathID = floatBitsToUint(triangleVertex.z) & 0xffffu; + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + outWindingWeight = cast_int_to_half(floatBitsToInt(triangleVertex.z) >> 16); + return MUL(M, triangleVertex.xy) + translate; +} +#endif // @DRAW_INTERIOR_TRIANGLES + +#endif // @VERTEX diff --git a/defold-rive/include/generated/shaders/glsl.exports.h b/defold-rive/include/generated/shaders/glsl.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/glsl.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/glsl.glsl.hpp b/defold-rive/include/generated/shaders/glsl.glsl.hpp new file mode 100644 index 00000000..0fe94fbb --- /dev/null +++ b/defold-rive/include/generated/shaders/glsl.glsl.hpp @@ -0,0 +1,560 @@ +#pragma once + +#include "glsl.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char glsl[] = R"===(/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define GLSL + +#ifndef _EXPORTED_GLSL_VERSION +// In "#version 320 es", Qualcomm incorrectly substitutes __VERSION__ to 300. +// @GLSL_VERSION is a workaround for this. +#define _EXPORTED_GLSL_VERSION __VERSION__ +#endif + +#define float2 vec2 +#define float3 vec3 +#define packed_float3 vec3 +#define float4 vec4 + +#define half mediump float +#define half2 mediump vec2 +#define half3 mediump vec3 +#define half4 mediump vec4 +#define half3x3 mediump mat3x3 +#define half2x3 mediump mat2x3 + +#define int2 ivec2 +#define int3 ivec3 +#define int4 ivec4 + +#define short mediump int +#define short2 mediump ivec2 +#define short3 mediump ivec3 +#define short4 mediump ivec4 + +#define uint2 uvec2 +#define uint3 uvec3 +#define uint4 uvec4 + +#define ushort mediump uint +#define ushort2 mediump uvec2 +#define ushort3 mediump uvec3 +#define ushort4 mediump uvec4 + +#define float2x2 mat2 + +#define INLINE +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#ifdef GL_ANGLE_base_vertex_base_instance_shader_builtin +#extension GL_ANGLE_base_vertex_base_instance_shader_builtin : require +#endif + +#ifdef _EXPORTED_ENABLE_KHR_BLEND +#extension GL_KHR_blend_equation_advanced : require +#endif + +// clang-format off +#if defined(_EXPORTED_RENDER_MODE_MSAA) && defined(_EXPORTED_ENABLE_CLIP_RECT) && defined(GL_ES) +// clang-format on +#ifdef GL_EXT_clip_cull_distance +#extension GL_EXT_clip_cull_distance : require +#elif defined(GL_ANGLE_clip_cull_distance) +#extension GL_ANGLE_clip_cull_distance : require +#endif +#endif // RENDER_MODE_MSAA && ENABLE_CLIP_RECT + +#if _EXPORTED_GLSL_VERSION >= 310 +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(binding = IDX, std140) uniform NAME \ + { +#else +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(std140) uniform NAME \ + { +#endif +// clang-format barrier... Otherwise it tries to merge this #define into the +// above macro... +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; + +#define ATTR_BLOCK_BEGIN(NAME) +#define ATTR(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#define ATTR_BLOCK_END +#define ATTR_LOAD(A, B, C, D) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) + +#ifdef _EXPORTED_VERTEX +#if _EXPORTED_GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) out TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) out TYPE NAME +#endif +#else +#if _EXPORTED_GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) in TYPE NAME +#endif +#endif +#define FLAT flat +#define VARYING_BLOCK_BEGIN +#define VARYING_BLOCK_END + +// clang-format off +#ifdef _EXPORTED_TARGET_VULKAN + // Since Vulkan is compiled offline and not all platforms support noperspective, don't use it. +#define NO_PERSPECTIVE +#else +#ifdef GL_NV_shader_noperspective_interpolation +#extension GL_NV_shader_noperspective_interpolation : require +#define NO_PERSPECTIVE noperspective +#else +#define NO_PERSPECTIVE +#endif +#endif +// clang-format on + +#ifdef _EXPORTED_VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef _EXPORTED_FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#ifdef _EXPORTED_TARGET_VULKAN +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp utexture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform mediump texture2D NAME +#elif _EXPORTED_GLSL_VERSION >= 310 +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(binding = IDX) uniform mediump sampler2D NAME +#else +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform mediump sampler2D NAME +#endif +#define TEXTURE_RG32UI(SET, IDX, NAME) TEXTURE_RGBA32UI(SET, IDX, NAME) + +#ifdef _EXPORTED_TARGET_VULKAN +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + texture(sampler2D(NAME, SAMPLER_NAME), COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(sampler2D(NAME, SAMPLER_NAME), COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(sampler2D(NAME, SAMPLER_NAME), COORD, DDX, DDY) +#else +// SAMPLER_LINEAR and SAMPLER_MIPMAP are no-ops because in GL, sampling +// parameters are API-level state tied to the texture. +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) texture(NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(NAME, COORD, DDX, DDY) +#endif + +#define TEXEL_FETCH(NAME, COORD) texelFetch(NAME, COORD, 0) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RG32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32F(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_LOAD4(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) +#define STORAGE_BUFFER_LOAD2(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) \ + .xy + +#else + +#ifdef GL_ARB_shader_storage_buffer_object +#extension GL_ARB_shader_storage_buffer_object : require +#endif +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint2 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + float4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32_ATOMIC(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) buffer GLSL_STRUCT_NAME { uint _values[]; } \ + NAME +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_ATOMIC_MAX(NAME, I, X) atomicMax(NAME._values[I], X) +#define STORAGE_BUFFER_ATOMIC_ADD(NAME, I, X) atomicAdd(NAME._values[I], X) + +#endif // DISABLE_SHADER_STORAGE_BUFFERS + +// Define macros for implementing pixel local storage based on available +// extensions. +#ifdef _EXPORTED_PLS_IMPL_ANGLE + +#extension GL_ANGLE_shader_pixel_local_storage : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp pixelLocalANGLE NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp upixelLocalANGLE NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) pixelLocalLoadANGLE(PLANE) +#define PLS_LOADUI(PLANE) pixelLocalLoadANGLE(PLANE).x +#define PLS_STORE4F(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, VALUE) +#define PLS_STOREUI(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_ANGLE + +#ifdef _EXPORTED_PLS_IMPL_EXT_NATIVE + +#extension GL_EXT_shader_pixel_local_storage : enable + +#define PLS_BLOCK_BEGIN \ + __pixel_localEXT PLS \ + { +#define PLS_DECL4F(IDX, NAME) layout(rgba8) lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(r32ui) highp uint NAME +#define PLS_BLOCK_END \ + } \ + ; + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = PLANE +#define PLS_PRESERVE_UI(PLANE) PLANE = PLANE + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH + +#extension GL_EXT_shader_framebuffer_fetch : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) inout lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) inout highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE.x +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +// When using multiple color attachments, we have to write a value to every +// color attachment, every shader invocation, or else the contents become +// undefined. +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, PLS_LOAD4F(PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, PLS_LOADUI(PLANE)) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_FRAMEBUFFER_FETCH + +#ifdef _EXPORTED_PLS_IMPL_STORAGE_TEXTURE + +#ifdef GL_ARB_shader_image_load_store +#extension GL_ARB_shader_image_load_store : require +#endif +#if defined(GL_ARB_fragment_shader_interlock) +#extension GL_ARB_fragment_shader_interlock : require +#define PLS_INTERLOCK_BEGIN beginInvocationInterlockARB() +#define PLS_INTERLOCK_END endInvocationInterlockARB() +#elif defined(GL_INTEL_fragment_shader_ordering) +#extension GL_INTEL_fragment_shader_ordering : require +#define PLS_INTERLOCK_BEGIN beginFragmentShaderOrderingINTEL() +#define PLS_INTERLOCK_END +#else +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END +#endif + +#define PLS_BLOCK_BEGIN +#ifdef _EXPORTED_TARGET_VULKAN +#define PLS_DECL4F(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, rgba8) \ + uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) imageLoad(PLANE, _plsCoord) +#define PLS_LOADUI(PLANE) imageLoad(PLANE, _plsCoord).x +#define PLS_STORE4F(PLANE, VALUE) imageStore(PLANE, _plsCoord, VALUE) +#define PLS_STOREUI(PLANE, VALUE) imageStore(PLANE, _plsCoord, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#ifndef _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define _EXPORTED_USING_PLS_STORAGE_TEXTURES + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#ifdef _EXPORTED_PLS_IMPL_SUBPASS_LOAD + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F_READONLY(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform lowp subpassInput _in_##NAME; +#define PLS_DECL4F(IDX, NAME) \ + PLS_DECL4F_READONLY(IDX, NAME); \ + layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform highp usubpassInput _in_##NAME; \ + layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) subpassLoad(_in_##PLANE) +#define PLS_LOADUI(PLANE) subpassLoad(_in_##PLANE).x +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, subpassLoad(_in_##PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, subpassLoad(_in_##PLANE).x) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef _EXPORTED_PLS_IMPL_NONE + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) vec4(0) +#define PLS_LOADUI(PLANE) 0u +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = vec4(1, 0, 1, 1) +#define PLS_PRESERVE_UI(PLANE) PLANE.x = 0u + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef _EXPORTED_TARGET_VULKAN +#define gl_VertexID gl_VertexIndex +#endif + +// clang-format off +#ifdef _EXPORTED_ENABLE_INSTANCE_INDEX +#ifdef _EXPORTED_TARGET_VULKAN +#define INSTANCE_INDEX gl_InstanceIndex +#else +#ifdef _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE + // This uniform is specifically named "SPIRV_Cross_BaseInstance" for compatibility with + // SPIRV-Cross sytems that search for it by name. + uniform int SPIRV_Cross_BaseInstance; +#define INSTANCE_INDEX (gl_InstanceID + SPIRV_Cross_BaseInstance) +#else +#define INSTANCE_INDEX (gl_InstanceID + gl_BaseInstance) +#endif +#endif +#else +#define INSTANCE_INDEX 0 +#endif +// clang-format on + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + void main() \ + { \ + int _vertexID = gl_VertexID; \ + int _instanceID = INSTANCE_INDEX; + +#define IMAGE_RECT_VERTEX_MAIN VERTEX_MAIN + +// clang-format off +#define IMAGE_MESH_VERTEX_MAIN(NAME, PositionAttr, position, UVAttr, uv, _vertexID) \ + VERTEX_MAIN(NAME, PositionAttr, position, _vertexID, _instanceID) +// clang-format on + +#define VARYING_INIT(NAME, TYPE) +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) + +#define EMIT_VERTEX(_pos) \ + gl_Position = _pos; \ + } + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + layout(location = 0) out DATA_TYPE _fd; \ + void main() + +#define EMIT_FRAG_DATA(VALUE) _fd = VALUE + +#define _fragCoord gl_FragCoord.xy + +#define FRAGMENT_CONTEXT_DECL +#define FRAGMENT_CONTEXT_UNPACK + +#ifdef _EXPORTED_USING_PLS_STORAGE_TEXTURES + +#ifdef _EXPORTED_TARGET_VULKAN +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_LOADUI_ATOMIC(PLANE) imageLoad(PLANE, _plsCoord).x +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + imageStore(PLANE, _plsCoord, uvec4(VALUE)) +#define PLS_ATOMIC_MAX(PLANE, X) imageAtomicMax(PLANE, _plsCoord, X) +#define PLS_ATOMIC_ADD(PLANE, X) imageAtomicAdd(PLANE, _plsCoord, X) + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) \ + void main() \ + { \ + int2 _plsCoord = ivec2(floor(_fragCoord)); + +#define EMIT_PLS } + +#else // !USING_PLS_STORAGE_TEXTURES + +#define PLS_CONTEXT_DECL +#define PLS_CONTEXT_UNPACK + +#define PLS_MAIN(NAME) void main() +#define EMIT_PLS + +#endif // !USING_PLS_STORAGE_TEXTURES + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR EMIT_PLS + +#define MUL(A, B) ((A) * (B)) + +#ifndef _EXPORTED_TARGET_VULKAN +#define FRAG_COORD_BOTTOM_UP +#endif + +precision highp float; +precision highp int; + +#if _EXPORTED_GLSL_VERSION < 310 +// Polyfill ES 3.1+ methods. +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return float4(vals) * (1. / 255.); +} +#endif + +// clang-format off +#if _EXPORTED_GLSL_VERSION >= 310 && defined(_EXPORTED_VERTEX) && defined(_EXPORTED_RENDER_MODE_MSAA) && defined(_EXPORTED_ENABLE_CLIP_RECT) +out gl_PerVertex +{ + // Redeclare gl_ClipDistance with exactly 4 clip planes. + float gl_ClipDistance[4]; + float4 gl_Position; +}; +#endif +// clang-format on +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/glsl.minified.glsl b/defold-rive/include/generated/shaders/glsl.minified.glsl new file mode 100644 index 00000000..6374bebf --- /dev/null +++ b/defold-rive/include/generated/shaders/glsl.minified.glsl @@ -0,0 +1,549 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define GLSL + +#ifndef GLSL_VERSION +// In "#version 320 es", Qualcomm incorrectly substitutes __VERSION__ to 300. +// @GLSL_VERSION is a workaround for this. +#define GLSL_VERSION __VERSION__ +#endif + +#define float2 vec2 +#define float3 vec3 +#define packed_float3 vec3 +#define float4 vec4 + +#define half mediump float +#define half2 mediump vec2 +#define half3 mediump vec3 +#define half4 mediump vec4 +#define half3x3 mediump mat3x3 +#define half2x3 mediump mat2x3 + +#define int2 ivec2 +#define int3 ivec3 +#define int4 ivec4 + +#define short mediump int +#define short2 mediump ivec2 +#define short3 mediump ivec3 +#define short4 mediump ivec4 + +#define uint2 uvec2 +#define uint3 uvec3 +#define uint4 uvec4 + +#define ushort mediump uint +#define ushort2 mediump uvec2 +#define ushort3 mediump uvec3 +#define ushort4 mediump uvec4 + +#define float2x2 mat2 + +#define INLINE +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#ifdef GL_ANGLE_base_vertex_base_instance_shader_builtin +#extension GL_ANGLE_base_vertex_base_instance_shader_builtin : require +#endif + +#ifdef ENABLE_KHR_BLEND +#extension GL_KHR_blend_equation_advanced : require +#endif + +// clang-format off +#if defined(RENDER_MODE_MSAA) && defined(ENABLE_CLIP_RECT) && defined(GL_ES) +// clang-format on +#ifdef GL_EXT_clip_cull_distance +#extension GL_EXT_clip_cull_distance : require +#elif defined(GL_ANGLE_clip_cull_distance) +#extension GL_ANGLE_clip_cull_distance : require +#endif +#endif // RENDER_MODE_MSAA && ENABLE_CLIP_RECT + +#if GLSL_VERSION >= 310 +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(binding = IDX, std140) uniform NAME \ + { +#else +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(std140) uniform NAME \ + { +#endif +// clang-format barrier... Otherwise it tries to merge this #define into the +// above macro... +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; + +#define ATTR_BLOCK_BEGIN(NAME) +#define ATTR(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#define ATTR_BLOCK_END +#define ATTR_LOAD(A, B, C, D) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) + +#ifdef VERTEX +#if GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) out TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) out TYPE NAME +#endif +#else +#if GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) in TYPE NAME +#endif +#endif +#define FLAT flat +#define VARYING_BLOCK_BEGIN +#define VARYING_BLOCK_END + +// clang-format off +#ifdef TARGET_VULKAN + // Since Vulkan is compiled offline and not all platforms support noperspective, don't use it. +#define NO_PERSPECTIVE +#else +#ifdef GL_NV_shader_noperspective_interpolation +#extension GL_NV_shader_noperspective_interpolation : require +#define NO_PERSPECTIVE noperspective +#else +#define NO_PERSPECTIVE +#endif +#endif +// clang-format on + +#ifdef VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#ifdef TARGET_VULKAN +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp utexture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform mediump texture2D NAME +#elif GLSL_VERSION >= 310 +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(binding = IDX) uniform mediump sampler2D NAME +#else +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform mediump sampler2D NAME +#endif +#define TEXTURE_RG32UI(SET, IDX, NAME) TEXTURE_RGBA32UI(SET, IDX, NAME) + +#ifdef TARGET_VULKAN +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + texture(sampler2D(NAME, SAMPLER_NAME), COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(sampler2D(NAME, SAMPLER_NAME), COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(sampler2D(NAME, SAMPLER_NAME), COORD, DDX, DDY) +#else +// SAMPLER_LINEAR and SAMPLER_MIPMAP are no-ops because in GL, sampling +// parameters are API-level state tied to the texture. +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) texture(NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(NAME, COORD, DDX, DDY) +#endif + +#define TEXEL_FETCH(NAME, COORD) texelFetch(NAME, COORD, 0) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef DISABLE_SHADER_STORAGE_BUFFERS + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RG32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32F(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_LOAD4(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) +#define STORAGE_BUFFER_LOAD2(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) \ + .xy + +#else + +#ifdef GL_ARB_shader_storage_buffer_object +#extension GL_ARB_shader_storage_buffer_object : require +#endif +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint2 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + float4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32_ATOMIC(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) buffer GLSL_STRUCT_NAME { uint _values[]; } \ + NAME +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_ATOMIC_MAX(NAME, I, X) atomicMax(NAME._values[I], X) +#define STORAGE_BUFFER_ATOMIC_ADD(NAME, I, X) atomicAdd(NAME._values[I], X) + +#endif // DISABLE_SHADER_STORAGE_BUFFERS + +// Define macros for implementing pixel local storage based on available +// extensions. +#ifdef PLS_IMPL_ANGLE + +#extension GL_ANGLE_shader_pixel_local_storage : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp pixelLocalANGLE NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp upixelLocalANGLE NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) pixelLocalLoadANGLE(PLANE) +#define PLS_LOADUI(PLANE) pixelLocalLoadANGLE(PLANE).x +#define PLS_STORE4F(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, VALUE) +#define PLS_STOREUI(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_ANGLE + +#ifdef PLS_IMPL_EXT_NATIVE + +#extension GL_EXT_shader_pixel_local_storage : enable + +#define PLS_BLOCK_BEGIN \ + __pixel_localEXT PLS \ + { +#define PLS_DECL4F(IDX, NAME) layout(rgba8) lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(r32ui) highp uint NAME +#define PLS_BLOCK_END \ + } \ + ; + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = PLANE +#define PLS_PRESERVE_UI(PLANE) PLANE = PLANE + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef PLS_IMPL_FRAMEBUFFER_FETCH + +#extension GL_EXT_shader_framebuffer_fetch : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) inout lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) inout highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE.x +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +// When using multiple color attachments, we have to write a value to every +// color attachment, every shader invocation, or else the contents become +// undefined. +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, PLS_LOAD4F(PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, PLS_LOADUI(PLANE)) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_FRAMEBUFFER_FETCH + +#ifdef PLS_IMPL_STORAGE_TEXTURE + +#ifdef GL_ARB_shader_image_load_store +#extension GL_ARB_shader_image_load_store : require +#endif +#if defined(GL_ARB_fragment_shader_interlock) +#extension GL_ARB_fragment_shader_interlock : require +#define PLS_INTERLOCK_BEGIN beginInvocationInterlockARB() +#define PLS_INTERLOCK_END endInvocationInterlockARB() +#elif defined(GL_INTEL_fragment_shader_ordering) +#extension GL_INTEL_fragment_shader_ordering : require +#define PLS_INTERLOCK_BEGIN beginFragmentShaderOrderingINTEL() +#define PLS_INTERLOCK_END +#else +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END +#endif + +#define PLS_BLOCK_BEGIN +#ifdef TARGET_VULKAN +#define PLS_DECL4F(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, rgba8) \ + uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) imageLoad(PLANE, _plsCoord) +#define PLS_LOADUI(PLANE) imageLoad(PLANE, _plsCoord).x +#define PLS_STORE4F(PLANE, VALUE) imageStore(PLANE, _plsCoord, VALUE) +#define PLS_STOREUI(PLANE, VALUE) imageStore(PLANE, _plsCoord, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#ifndef USING_PLS_STORAGE_TEXTURES +#define USING_PLS_STORAGE_TEXTURES + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#ifdef PLS_IMPL_SUBPASS_LOAD + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F_READONLY(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform lowp subpassInput _in_##NAME; +#define PLS_DECL4F(IDX, NAME) \ + PLS_DECL4F_READONLY(IDX, NAME); \ + layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform highp usubpassInput _in_##NAME; \ + layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) subpassLoad(_in_##PLANE) +#define PLS_LOADUI(PLANE) subpassLoad(_in_##PLANE).x +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, subpassLoad(_in_##PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, subpassLoad(_in_##PLANE).x) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef PLS_IMPL_NONE + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) vec4(0) +#define PLS_LOADUI(PLANE) 0u +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.x = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = vec4(1, 0, 1, 1) +#define PLS_PRESERVE_UI(PLANE) PLANE.x = 0u + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef TARGET_VULKAN +#define gl_VertexID gl_VertexIndex +#endif + +// clang-format off +#ifdef ENABLE_INSTANCE_INDEX +#ifdef TARGET_VULKAN +#define INSTANCE_INDEX gl_InstanceIndex +#else +#ifdef ENABLE_SPIRV_CROSS_BASE_INSTANCE + // This uniform is specifically named "SPIRV_Cross_BaseInstance" for compatibility with + // SPIRV-Cross sytems that search for it by name. + uniform int SPIRV_Cross_BaseInstance; +#define INSTANCE_INDEX (gl_InstanceID + SPIRV_Cross_BaseInstance) +#else +#define INSTANCE_INDEX (gl_InstanceID + gl_BaseInstance) +#endif +#endif +#else +#define INSTANCE_INDEX 0 +#endif +// clang-format on + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + void main() \ + { \ + int _vertexID = gl_VertexID; \ + int _instanceID = INSTANCE_INDEX; + +#define IMAGE_RECT_VERTEX_MAIN VERTEX_MAIN + +// clang-format off +#define IMAGE_MESH_VERTEX_MAIN(NAME, PositionAttr, position, UVAttr, uv, _vertexID) \ + VERTEX_MAIN(NAME, PositionAttr, position, _vertexID, _instanceID) +// clang-format on + +#define VARYING_INIT(NAME, TYPE) +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) + +#define EMIT_VERTEX(_pos) \ + gl_Position = _pos; \ + } + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + layout(location = 0) out DATA_TYPE _fd; \ + void main() + +#define EMIT_FRAG_DATA(VALUE) _fd = VALUE + +#define _fragCoord gl_FragCoord.xy + +#define FRAGMENT_CONTEXT_DECL +#define FRAGMENT_CONTEXT_UNPACK + +#ifdef USING_PLS_STORAGE_TEXTURES + +#ifdef TARGET_VULKAN +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_LOADUI_ATOMIC(PLANE) imageLoad(PLANE, _plsCoord).x +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + imageStore(PLANE, _plsCoord, uvec4(VALUE)) +#define PLS_ATOMIC_MAX(PLANE, X) imageAtomicMax(PLANE, _plsCoord, X) +#define PLS_ATOMIC_ADD(PLANE, X) imageAtomicAdd(PLANE, _plsCoord, X) + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) \ + void main() \ + { \ + int2 _plsCoord = ivec2(floor(_fragCoord)); + +#define EMIT_PLS } + +#else // !USING_PLS_STORAGE_TEXTURES + +#define PLS_CONTEXT_DECL +#define PLS_CONTEXT_UNPACK + +#define PLS_MAIN(NAME) void main() +#define EMIT_PLS + +#endif // !USING_PLS_STORAGE_TEXTURES + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR EMIT_PLS + +#define MUL(A, B) ((A) * (B)) + +#ifndef TARGET_VULKAN +#define FRAG_COORD_BOTTOM_UP +#endif + +precision highp float; +precision highp int; + +#if GLSL_VERSION < 310 +// Polyfill ES 3.1+ methods. +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return float4(vals) * (1. / 255.); +} +#endif + +// clang-format off +#if GLSL_VERSION >= 310 && defined(VERTEX) && defined(RENDER_MODE_MSAA) && defined(ENABLE_CLIP_RECT) +out gl_PerVertex +{ + // Redeclare gl_ClipDistance with exactly 4 clip planes. + float gl_ClipDistance[4]; + float4 gl_Position; +}; +#endif +// clang-format on diff --git a/defold-rive/include/generated/shaders/glsl.stamp b/defold-rive/include/generated/shaders/glsl.stamp new file mode 100644 index 00000000..e69de29b diff --git a/defold-rive/include/generated/shaders/hlsl.exports.h b/defold-rive/include/generated/shaders/hlsl.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/hlsl.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/hlsl.glsl.hpp b/defold-rive/include/generated/shaders/hlsl.glsl.hpp new file mode 100644 index 00000000..b4a35d3f --- /dev/null +++ b/defold-rive/include/generated/shaders/hlsl.glsl.hpp @@ -0,0 +1,416 @@ +#pragma once + +#include "hlsl.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char hlsl[] = R"===(/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma warning(disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma warning(disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +typedef float3 packed_float3; + +#ifdef _EXPORTED_ENABLE_MIN_16_PRECISION + +typedef min16int short; + +typedef min16uint ushort; + +#else + +typedef int short; + +typedef uint ushort; + +#endif + +#define INLINE inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define UNIFORM_BUFFER_REGISTER(IDX) register(b##IDX) + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + cbuffer NAME : UNIFORM_BUFFER_REGISTER(IDX) \ + { \ + struct \ + { + +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; \ + } + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE noperspective +#define _EXPORTED_OPTIONALLY_FLAT nointerpolation +#define FLAT nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : TEXCOORD##IDX + +#define VARYING_BLOCK_END \ + float4 _pos : SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef _EXPORTED_VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef _EXPORTED_FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) \ + SamplerState NAME : register(s##TEXTURE_IDX); +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D RasterizerOrderedTexture2D +#else +#define PLS_TEX2D RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) \ + uniform PLS_TEX2D NAME : register(u##IDX) +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME : register(u##IDX) +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME : register(u##IDX) +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + cbuffer DrawUniforms \ + : UNIFORM_BUFFER_REGISTER(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX) \ + { \ + uint baseInstance; \ + uint NAME##_pad0; \ + uint NAME##_pad1; \ + uint NAME##_pad2; \ + } \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : SV_VertexID, uint _instanceIDWithoutBase \ + : SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [earlydepthstencil] half4 NAME(Varyings _varyings) : SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat asfloat +#define intBitsToFloat asfloat +#define floatBitsToInt asint +#define floatBitsToUint asuint +#define inversesqrt rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2(f16tof32(x), f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = f32tof16(v.x); + uint y = f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.xy |= vals.zw; + vals.x |= vals.y; + return vals.x; +} + +INLINE float atan(float y, float x) { return atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return lerp(x, y, s); } + +INLINE half mix(half x, half y, half s) { return x + s * (y - x); } +INLINE half2 mix(half2 x, half2 y, half2 s) { return x + s * (y - x); } +INLINE half3 mix(half3 x, half3 y, half3 s) { return x + s * (y - x); } +INLINE half4 mix(half4 x, half4 y, half4 s) { return x + s * (y - x); } + +INLINE float fract(float x) { return frac(x); } +INLINE float2 fract(float2 x) { return frac(x); } +INLINE float3 fract(float3 x) { return frac(x); } +INLINE float4 fract(float4 x) { return frac(x); } + +INLINE half fract(half x) { return frac(x); } +INLINE half2 fract(half2 x) { return half2(frac(x)); } +INLINE half3 fract(half3 x) { return half3(frac(x)); } +INLINE half4 fract(half4 x) { return half4(frac(x)); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE half rive_sign(half x) { return sign(x); } +INLINE half2 rive_sign(half2 x) { return half2(sign(x)); } +INLINE half3 rive_sign(half3 x) { return half3(sign(x)); } +INLINE half4 rive_sign(half4 x) { return half4(sign(x)); } + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE half rive_abs(half x) { return abs(x); } +INLINE half2 rive_abs(half2 x) { return half2(abs(x)); } +INLINE half3 rive_abs(half3 x) { return half3(abs(x)); } +INLINE half4 rive_abs(half4 x) { return half4(abs(x)); } + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE half rive_sqrt(half x) { return sqrt(x); } +INLINE half2 rive_sqrt(half2 x) { return half2(sqrt(x)); } +INLINE half3 rive_sqrt(half3 x) { return half3(sqrt(x)); } +INLINE half4 rive_sqrt(half4 x) { return half4(sqrt(x)); } + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/hlsl.minified.glsl b/defold-rive/include/generated/shaders/hlsl.minified.glsl new file mode 100644 index 00000000..257edcc1 --- /dev/null +++ b/defold-rive/include/generated/shaders/hlsl.minified.glsl @@ -0,0 +1,405 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma warning(disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma warning(disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +typedef float3 packed_float3; + +#ifdef ENABLE_MIN_16_PRECISION + +typedef min16int short; + +typedef min16uint ushort; + +#else + +typedef int short; + +typedef uint ushort; + +#endif + +#define INLINE inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define UNIFORM_BUFFER_REGISTER(IDX) register(b##IDX) + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + cbuffer NAME : UNIFORM_BUFFER_REGISTER(IDX) \ + { \ + struct \ + { + +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; \ + } + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE noperspective +#define OPTIONALLY_FLAT nointerpolation +#define FLAT nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : TEXCOORD##IDX + +#define VARYING_BLOCK_END \ + float4 _pos : SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + uniform Texture2D NAME : register(t##IDX) + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) \ + SamplerState NAME : register(s##TEXTURE_IDX); +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D RasterizerOrderedTexture2D +#else +#define PLS_TEX2D RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) \ + uniform PLS_TEX2D NAME : register(u##IDX) +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME : register(u##IDX) +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME : register(u##IDX) +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + cbuffer DrawUniforms \ + : UNIFORM_BUFFER_REGISTER(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX) \ + { \ + uint baseInstance; \ + uint NAME##_pad0; \ + uint NAME##_pad1; \ + uint NAME##_pad2; \ + } \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : SV_VertexID, uint _instanceIDWithoutBase \ + : SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [earlydepthstencil] half4 NAME(Varyings _varyings) : SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat asfloat +#define intBitsToFloat asfloat +#define floatBitsToInt asint +#define floatBitsToUint asuint +#define inversesqrt rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME : register(t##IDX) + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2(f16tof32(x), f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = f32tof16(v.x); + uint y = f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.xy |= vals.zw; + vals.x |= vals.y; + return vals.x; +} + +INLINE float atan(float y, float x) { return atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return lerp(x, y, s); } + +INLINE half mix(half x, half y, half s) { return x + s * (y - x); } +INLINE half2 mix(half2 x, half2 y, half2 s) { return x + s * (y - x); } +INLINE half3 mix(half3 x, half3 y, half3 s) { return x + s * (y - x); } +INLINE half4 mix(half4 x, half4 y, half4 s) { return x + s * (y - x); } + +INLINE float fract(float x) { return frac(x); } +INLINE float2 fract(float2 x) { return frac(x); } +INLINE float3 fract(float3 x) { return frac(x); } +INLINE float4 fract(float4 x) { return frac(x); } + +INLINE half fract(half x) { return frac(x); } +INLINE half2 fract(half2 x) { return half2(frac(x)); } +INLINE half3 fract(half3 x) { return half3(frac(x)); } +INLINE half4 fract(half4 x) { return half4(frac(x)); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE half rive_sign(half x) { return sign(x); } +INLINE half2 rive_sign(half2 x) { return half2(sign(x)); } +INLINE half3 rive_sign(half3 x) { return half3(sign(x)); } +INLINE half4 rive_sign(half4 x) { return half4(sign(x)); } + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE half rive_abs(half x) { return abs(x); } +INLINE half2 rive_abs(half2 x) { return half2(abs(x)); } +INLINE half3 rive_abs(half3 x) { return half3(abs(x)); } +INLINE half4 rive_abs(half4 x) { return half4(abs(x)); } + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE half rive_sqrt(half x) { return sqrt(x); } +INLINE half2 rive_sqrt(half2 x) { return half2(sqrt(x)); } +INLINE half3 rive_sqrt(half3 x) { return half3(sqrt(x)); } +INLINE half4 rive_sqrt(half4 x) { return half4(sqrt(x)); } + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt diff --git a/defold-rive/include/generated/shaders/metal.exports.h b/defold-rive/include/generated/shaders/metal.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/metal.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/metal.glsl.hpp b/defold-rive/include/generated/shaders/metal.glsl.hpp new file mode 100644 index 00000000..0a920f26 --- /dev/null +++ b/defold-rive/include/generated/shaders/metal.glsl.hpp @@ -0,0 +1,496 @@ +#pragma once + +#include "metal.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char metal[] = R"===(/* + * Copyright 2023 Rive + */ + +// This header provides Metal-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define METAL + +// #define native metal types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define packed_float3 packed_float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +#define INLINE inline +#define OUT(ARG_TYPE) thread ARG_TYPE& +#define INOUT(ARG_TYPE) thread ARG_TYPE& + +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) +#define MUL(A, B) ((A) * (B)) +#define atan atan2 +#define inversesqrt rsqrt + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + struct NAME \ + { +#define UNIFORM_BLOCK_END(NAME) \ + } \ + ; + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs[ID].NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { +#define VARYING(IDX, TYPE, NAME) TYPE NAME +#define FLAT [[flat]] +#define NO_PERSPECTIVE [[center_no_perspective]] +#ifndef _EXPORTED_OPTIONALLY_FLAT +// Don't use no-perspective interpolation for varyings that need to be flat. +// No-persective interpolation appears to break the guarantee that a varying == +// "x" when all barycentric values also == "x". Default (perspective-correct) +// interpolation does preserve this guarantee, and seems to be faster faster +// than flat on Apple Silicon. +#define _EXPORTED_OPTIONALLY_FLAT +#endif +#define VARYING_BLOCK_END \ + float4 _pos [[position]] [[invariant]]; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) thread TYPE& NAME = _varyings.NAME +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN \ + struct VertexStorageBuffers \ + { +#define VERTEX_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN \ + struct FragmentStorageBuffers \ + { +#define FRAG_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + constant uint2* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + constant uint4* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + constant float4* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_LOAD4(NAME, I) _buffers.NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) _buffers.NAME[I] + +#define VERTEX_TEXTURE_BLOCK_BEGIN \ + struct VertexTextures \ + { +#define VERTEX_TEXTURE_BLOCK_END \ + } \ + ; + +#define FRAG_TEXTURE_BLOCK_BEGIN \ + struct FragmentTextures \ + { +#define FRAG_TEXTURE_BLOCK_END \ + } \ + ; + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME + +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + constexpr sampler NAME(filter::linear, mip_filter::none); +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + constexpr sampler NAME(filter::linear, mip_filter::linear); + +#define TEXEL_FETCH(TEXTURE, COORD) _textures.TEXTURE.read(uint2(COORD)) +#define TEXTURE_SAMPLE(TEXTURE, SAMPLER_NAME, COORD) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(TEXTURE, SAMPLER_NAME, COORD, LOD) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD, level(LOD)) +#define TEXTURE_SAMPLE_GRAD(TEXTURE, SAMPLER_NAME, COORD, DDX, DDY) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD, gradient2d(DDX, DDY)) + +#define VERTEX_CONTEXT_DECL \ + , VertexTextures _textures, VertexStorageBuffers _buffers +#define VERTEX_CONTEXT_UNPACK , _textures, _buffers + +#ifdef _EXPORTED_ENABLE_INSTANCE_INDEX +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + uint _instanceID [[instance_id]], \ + constant uint& _baseInstance \ + [[buffer(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + _instanceID += _baseInstance; \ + Varyings _varyings; +#else +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + uint _instanceID [[instance_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; +#endif + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + constant PositionAttr* position [[buffer(0)]], \ + constant UVAttr* uv [[buffer(1)]]) \ + { \ + Varyings _varyings; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE __attribute__((visibility("default"))) fragment NAME( \ + Varyings _varyings [[stage_in]]) \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL \ + , float2 _fragCoord, FragmentTextures _textures, \ + FragmentStorageBuffers _buffers +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord, _textures, _buffers + +#ifdef _EXPORTED_PLS_IMPL_DEVICE_BUFFER + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#ifdef _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +// Apple Silicon doesn't support fragment-fragment memory barriers, so on this +// hardware we use raster order groups instead. Since the PLS plane indices +// collide with other buffer bindings, offset the binding indices of these +// buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + device uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#define PLS_DECLUI(IDX, NAME) \ + device uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + device atomic_uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#else +// Since the PLS plane indices collide with other buffer bindings, offset the +// binding indices of these buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + device uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI(IDX, NAME) \ + device uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + device atomic_uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#endif // @PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , PLS _pls, uint _plsIdx +#define PLS_CONTEXT_UNPACK , _pls, _plsIdx + +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(_pls.PLANE[_plsIdx]) +#define PLS_LOADUI(PLANE) _pls.PLANE[_plsIdx] +#define PLS_LOADUI_ATOMIC(PLANE) \ + atomic_load_explicit(&_pls.PLANE[_plsIdx], \ + memory_order::memory_order_relaxed) +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE[_plsIdx] = packUnorm4x8(VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE[_plsIdx] = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + atomic_store_explicit(&_pls.PLANE[_plsIdx], \ + VALUE, \ + memory_order::memory_order_relaxed) +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_ATOMIC_MAX(PLANE, X) \ + atomic_fetch_max_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + memory_order::memory_order_relaxed) + +#define PLS_ATOMIC_ADD(PLANE, X) \ + atomic_fetch_add_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + memory_order::memory_order_relaxed) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME) \ + __attribute__((visibility("default"))) fragment NAME( \ + PLS _pls, \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2(metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + __attribute__((visibility("default"))) fragment NAME( \ + PLS _pls, \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2(metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_MAIN(NAME) void PLS_METAL_MAIN(NAME) +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + void PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + half4 PLS_METAL_MAIN(NAME) \ + { \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + half4 PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + { \ + half4 _fragColor; + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; \ + EMIT_PLS + +#else // Default implementation -- framebuffer reads. + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#define PLS_DECL4F(IDX, NAME) [[color(IDX)]] half4 NAME +#define PLS_DECLUI(IDX, NAME) [[color(IDX)]] uint NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , thread PLS &_inpls, thread PLS &_pls +#define PLS_CONTEXT_UNPACK , _inpls, _pls + +#define PLS_LOAD4F(PLANE) _inpls.PLANE +#define PLS_LOADUI(PLANE) _inpls.PLANE +#define PLS_LOADUI_ATOMIC(PLANE) PLS_LOADUI +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE) PLS_STOREUI +#define PLS_PRESERVE_4F(PLANE) _pls.PLANE = _inpls.PLANE +#define PLS_PRESERVE_UI(PLANE) _pls.PLANE = _inpls.PLANE + +INLINE uint pls_atomic_max(thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = metal::max(originalValue, x); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(_pls.PLANE, X) + +INLINE uint pls_atomic_add(thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = originalValue + x; + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(_pls.PLANE, X) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME, ...) \ + PLS __attribute__((visibility("default"))) fragment NAME(__VA_ARGS__) \ + { \ + float2 _fragCoord [[maybe_unused]] = _varyings._pos.xy; \ + PLS _pls; + +#define PLS_MAIN(NAME, ...) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS \ + } \ + return _pls; + +#define PLS_FRAG_COLOR_METAL_MAIN(NAME, ...) \ + struct FragmentOut \ + { \ + half4 _color [[color(0)]]; \ + PLS _pls; \ + }; \ + FragmentOut __attribute__((visibility("default"))) fragment NAME( \ + __VA_ARGS__) \ + { \ + float2 _fragCoord [[maybe_unused]] = _varyings._pos.xy; \ + half4 _fragColor; \ + PLS _pls; + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + __VA_ARGS__ constant \ + _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return {._color = _fragColor, ._pls = _pls}; + +#endif // PLS_IMPL_DEVICE_BUFFER + +#define discard discard_fragment() + +using namespace metal; + +template INLINE vec floatBitsToUint(vec x) +{ + return as_type>(x); +} + +template INLINE vec floatBitsToInt(vec x) +{ + return as_type>(x); +} + +INLINE uint floatBitsToUint(float x) { return as_type(x); } + +INLINE int floatBitsToInt(float x) { return as_type(x); } + +template INLINE vec uintBitsToFloat(vec x) +{ + return as_type>(x); +} + +INLINE float uintBitsToFloat(uint x) { return as_type(x); } +INLINE half2 unpackHalf2x16(uint x) { return as_type(x); } +INLINE uint packHalf2x16(half2 x) { return as_type(x); } +INLINE half4 unpackUnorm4x8(uint x) { return unpack_unorm4x8_to_half(x); } +INLINE uint packUnorm4x8(half4 x) { return pack_half_to_unorm4x8(x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 m_ = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + float det = (m_[0][0] * m[0][0]) + (m_[0][1] * m[1][0]); + return m_ * (1 / det); +} + +INLINE half3 mix(half3 a, half3 b, bool3 c) +{ + half3 result; + for (int i = 0; i < 3; ++i) + result[i] = c[i] ? b[i] : a[i]; + return result; +} +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/metal.minified.glsl b/defold-rive/include/generated/shaders/metal.minified.glsl new file mode 100644 index 00000000..653ffc0f --- /dev/null +++ b/defold-rive/include/generated/shaders/metal.minified.glsl @@ -0,0 +1,485 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides Metal-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define METAL + +// #define native metal types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define packed_float3 packed_float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +#define INLINE inline +#define OUT(ARG_TYPE) thread ARG_TYPE& +#define INOUT(ARG_TYPE) thread ARG_TYPE& + +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) +#define MUL(A, B) ((A) * (B)) +#define atan atan2 +#define inversesqrt rsqrt + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + struct NAME \ + { +#define UNIFORM_BLOCK_END(NAME) \ + } \ + ; + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs[ID].NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { +#define VARYING(IDX, TYPE, NAME) TYPE NAME +#define FLAT [[flat]] +#define NO_PERSPECTIVE [[center_no_perspective]] +#ifndef OPTIONALLY_FLAT +// Don't use no-perspective interpolation for varyings that need to be flat. +// No-persective interpolation appears to break the guarantee that a varying == +// "x" when all barycentric values also == "x". Default (perspective-correct) +// interpolation does preserve this guarantee, and seems to be faster faster +// than flat on Apple Silicon. +#define OPTIONALLY_FLAT +#endif +#define VARYING_BLOCK_END \ + float4 _pos [[position]] [[invariant]]; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) thread TYPE& NAME = _varyings.NAME +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN \ + struct VertexStorageBuffers \ + { +#define VERTEX_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN \ + struct FragmentStorageBuffers \ + { +#define FRAG_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + constant uint2* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + constant uint4* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + constant float4* NAME [[buffer(IDX)]] +#define STORAGE_BUFFER_LOAD4(NAME, I) _buffers.NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) _buffers.NAME[I] + +#define VERTEX_TEXTURE_BLOCK_BEGIN \ + struct VertexTextures \ + { +#define VERTEX_TEXTURE_BLOCK_END \ + } \ + ; + +#define FRAG_TEXTURE_BLOCK_BEGIN \ + struct FragmentTextures \ + { +#define FRAG_TEXTURE_BLOCK_END \ + } \ + ; + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) [[texture(IDX)]] texture2d NAME + +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + constexpr sampler NAME(filter::linear, mip_filter::none); +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + constexpr sampler NAME(filter::linear, mip_filter::linear); + +#define TEXEL_FETCH(TEXTURE, COORD) _textures.TEXTURE.read(uint2(COORD)) +#define TEXTURE_SAMPLE(TEXTURE, SAMPLER_NAME, COORD) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(TEXTURE, SAMPLER_NAME, COORD, LOD) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD, level(LOD)) +#define TEXTURE_SAMPLE_GRAD(TEXTURE, SAMPLER_NAME, COORD, DDX, DDY) \ + _textures.TEXTURE.sample(SAMPLER_NAME, COORD, gradient2d(DDX, DDY)) + +#define VERTEX_CONTEXT_DECL \ + , VertexTextures _textures, VertexStorageBuffers _buffers +#define VERTEX_CONTEXT_UNPACK , _textures, _buffers + +#ifdef ENABLE_INSTANCE_INDEX +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + uint _instanceID [[instance_id]], \ + constant uint& _baseInstance \ + [[buffer(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + _instanceID += _baseInstance; \ + Varyings _varyings; +#else +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + uint _instanceID [[instance_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; +#endif + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + constant Attrs* attrs [[buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + __attribute__((visibility("default"))) Varyings vertex NAME( \ + uint _vertexID [[vertex_id]], \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + constant PositionAttr* position [[buffer(0)]], \ + constant UVAttr* uv [[buffer(1)]]) \ + { \ + Varyings _varyings; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE __attribute__((visibility("default"))) fragment NAME( \ + Varyings _varyings [[stage_in]]) \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL \ + , float2 _fragCoord, FragmentTextures _textures, \ + FragmentStorageBuffers _buffers +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord, _textures, _buffers + +#ifdef PLS_IMPL_DEVICE_BUFFER + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#ifdef PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +// Apple Silicon doesn't support fragment-fragment memory barriers, so on this +// hardware we use raster order groups instead. Since the PLS plane indices +// collide with other buffer bindings, offset the binding indices of these +// buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + device uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#define PLS_DECLUI(IDX, NAME) \ + device uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + device atomic_uint* NAME \ + [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), raster_order_group(0)]] +#else +// Since the PLS plane indices collide with other buffer bindings, offset the +// binding indices of these buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + device uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI(IDX, NAME) \ + device uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + device atomic_uint* NAME [[buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#endif // @PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , PLS _pls, uint _plsIdx +#define PLS_CONTEXT_UNPACK , _pls, _plsIdx + +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(_pls.PLANE[_plsIdx]) +#define PLS_LOADUI(PLANE) _pls.PLANE[_plsIdx] +#define PLS_LOADUI_ATOMIC(PLANE) \ + atomic_load_explicit(&_pls.PLANE[_plsIdx], \ + memory_order::memory_order_relaxed) +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE[_plsIdx] = packUnorm4x8(VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE[_plsIdx] = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + atomic_store_explicit(&_pls.PLANE[_plsIdx], \ + VALUE, \ + memory_order::memory_order_relaxed) +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_ATOMIC_MAX(PLANE, X) \ + atomic_fetch_max_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + memory_order::memory_order_relaxed) + +#define PLS_ATOMIC_ADD(PLANE, X) \ + atomic_fetch_add_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + memory_order::memory_order_relaxed) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME) \ + __attribute__((visibility("default"))) fragment NAME( \ + PLS _pls, \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2(metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + __attribute__((visibility("default"))) fragment NAME( \ + PLS _pls, \ + constant _EXPORTED_FlushUniforms& uniforms \ + [[buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2(metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_MAIN(NAME) void PLS_METAL_MAIN(NAME) +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + void PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + half4 PLS_METAL_MAIN(NAME) \ + { \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + half4 PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + { \ + half4 _fragColor; + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; \ + EMIT_PLS + +#else // Default implementation -- framebuffer reads. + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#define PLS_DECL4F(IDX, NAME) [[color(IDX)]] half4 NAME +#define PLS_DECLUI(IDX, NAME) [[color(IDX)]] uint NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , thread PLS &_inpls, thread PLS &_pls +#define PLS_CONTEXT_UNPACK , _inpls, _pls + +#define PLS_LOAD4F(PLANE) _inpls.PLANE +#define PLS_LOADUI(PLANE) _inpls.PLANE +#define PLS_LOADUI_ATOMIC(PLANE) PLS_LOADUI +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE) PLS_STOREUI +#define PLS_PRESERVE_4F(PLANE) _pls.PLANE = _inpls.PLANE +#define PLS_PRESERVE_UI(PLANE) _pls.PLANE = _inpls.PLANE + +INLINE uint pls_atomic_max(thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = metal::max(originalValue, x); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(_pls.PLANE, X) + +INLINE uint pls_atomic_add(thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = originalValue + x; + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(_pls.PLANE, X) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME, ...) \ + PLS __attribute__((visibility("default"))) fragment NAME(__VA_ARGS__) \ + { \ + float2 _fragCoord [[maybe_unused]] = _varyings._pos.xy; \ + PLS _pls; + +#define PLS_MAIN(NAME, ...) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + constant _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS \ + } \ + return _pls; + +#define PLS_FRAG_COLOR_METAL_MAIN(NAME, ...) \ + struct FragmentOut \ + { \ + half4 _color [[color(0)]]; \ + PLS _pls; \ + }; \ + FragmentOut __attribute__((visibility("default"))) fragment NAME( \ + __VA_ARGS__) \ + { \ + float2 _fragCoord [[maybe_unused]] = _varyings._pos.xy; \ + half4 _fragColor; \ + PLS _pls; + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + __VA_ARGS__ constant \ + _EXPORTED_ImageDrawUniforms& imageDrawUniforms \ + [[buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return {._color = _fragColor, ._pls = _pls}; + +#endif // PLS_IMPL_DEVICE_BUFFER + +#define discard discard_fragment() + +using namespace metal; + +template INLINE vec floatBitsToUint(vec x) +{ + return as_type>(x); +} + +template INLINE vec floatBitsToInt(vec x) +{ + return as_type>(x); +} + +INLINE uint floatBitsToUint(float x) { return as_type(x); } + +INLINE int floatBitsToInt(float x) { return as_type(x); } + +template INLINE vec uintBitsToFloat(vec x) +{ + return as_type>(x); +} + +INLINE float uintBitsToFloat(uint x) { return as_type(x); } +INLINE half2 unpackHalf2x16(uint x) { return as_type(x); } +INLINE uint packHalf2x16(half2 x) { return as_type(x); } +INLINE half4 unpackUnorm4x8(uint x) { return unpack_unorm4x8_to_half(x); } +INLINE uint packUnorm4x8(half4 x) { return pack_half_to_unorm4x8(x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 m_ = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + float det = (m_[0][0] * m[0][0]) + (m_[0][1] * m[1][0]); + return m_ * (1 / det); +} + +INLINE half3 mix(half3 a, half3 b, bool3 c) +{ + half3 result; + for (int i = 0; i < 3; ++i) + result[i] = c[i] ? b[i] : a[i]; + return result; +} diff --git a/defold-rive/include/generated/shaders/pls_load_store_ext.exports.h b/defold-rive/include/generated/shaders/pls_load_store_ext.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/pls_load_store_ext.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/pls_load_store_ext.glsl.hpp b/defold-rive/include/generated/shaders/pls_load_store_ext.glsl.hpp new file mode 100644 index 00000000..5076ae5e --- /dev/null +++ b/defold-rive/include/generated/shaders/pls_load_store_ext.glsl.hpp @@ -0,0 +1,113 @@ +#pragma once + +#include "pls_load_store_ext.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char pls_load_store_ext[] = R"===(/* + * Copyright 2022 Rive + */ + +// The EXT_shader_pixel_local_storage extension does not provide a mechanism to +// load, store, or clear pixel local storage contents. This shader performs +// custom load, store, and clear operations via fullscreen draws. + +#ifdef _EXPORTED_VERTEX +void main() +{ + // [-1, -1] .. [+1, +1] + gl_Position = vec4(mix(vec2(-1, 1), + vec2(1, -1), + equal(gl_VertexID & ivec2(1, 2), ivec2(0))), + 0, + 1); +} +#endif + +#ifdef _EXPORTED_FRAGMENT + +#extension GL_EXT_shader_pixel_local_storage : require +#ifdef GL_ARM_shader_framebuffer_fetch +#extension GL_ARM_shader_framebuffer_fetch : require +#else +#extension GL_EXT_shader_framebuffer_fetch : require +#endif + +#ifdef _EXPORTED_CLEAR_COLOR +#if __VERSION__ >= 310 +layout(binding = 0, std140) uniform ClearColor { uniform highp vec4 value; } +clearColor; +#else +uniform mediump vec4 _EXPORTED_clearColor; +#endif +#endif + +#ifdef GL_EXT_shader_pixel_local_storage + +#ifdef _EXPORTED_STORE_COLOR +__pixel_local_inEXT PLS +#else +__pixel_local_outEXT PLS +#endif +{ + layout(rgba8) mediump vec4 colorBuffer; + layout(r32ui) highp uint clipBuffer; + layout(rgba8) mediump vec4 scratchColorBuffer; + layout(r32ui) highp uint coverageCountBuffer; +}; + +#ifndef GL_ARM_shader_framebuffer_fetch +#ifdef _EXPORTED_LOAD_COLOR +layout(location = 0) inout mediump vec4 fragColor; +#endif +#endif + +#ifdef _EXPORTED_STORE_COLOR +layout(location = 0) out mediump vec4 fragColor; +#endif + +void main() +{ +#ifdef _EXPORTED_CLEAR_COLOR +#if __VERSION__ >= 310 + colorBuffer = clearColor.value; +#else + colorBuffer = _EXPORTED_clearColor; +#endif +#endif + +#ifdef _EXPORTED_LOAD_COLOR +#ifdef GL_ARM_shader_framebuffer_fetch + colorBuffer = gl_LastFragColorARM; +#else + colorBuffer = fragColor; +#endif +#endif + +#ifdef _EXPORTED_CLEAR_COVERAGE + coverageCountBuffer = 0u; +#endif + +#ifdef _EXPORTED_CLEAR_CLIP + clipBuffer = 0u; +#endif + +#ifdef _EXPORTED_STORE_COLOR + fragColor = colorBuffer; +#endif +} + +#else + +// This shader is being parsed by WebGPU for introspection purposes. +layout(location = 0) out mediump vec4 unused; +void main() { unused = vec4(0, 1, 0, 1); } + +#endif // GL_EXT_shader_pixel_local_storage + +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/pls_load_store_ext.minified.glsl b/defold-rive/include/generated/shaders/pls_load_store_ext.minified.glsl new file mode 100644 index 00000000..1f3822c9 --- /dev/null +++ b/defold-rive/include/generated/shaders/pls_load_store_ext.minified.glsl @@ -0,0 +1,102 @@ +/* + * Copyright 2022 Rive + */ + +// The EXT_shader_pixel_local_storage extension does not provide a mechanism to +// load, store, or clear pixel local storage contents. This shader performs +// custom load, store, and clear operations via fullscreen draws. + +#ifdef VERTEX +void main() +{ + // [-1, -1] .. [+1, +1] + gl_Position = vec4(mix(vec2(-1, 1), + vec2(1, -1), + equal(gl_VertexID & ivec2(1, 2), ivec2(0))), + 0, + 1); +} +#endif + +#ifdef FRAGMENT + +#extension GL_EXT_shader_pixel_local_storage : require +#ifdef GL_ARM_shader_framebuffer_fetch +#extension GL_ARM_shader_framebuffer_fetch : require +#else +#extension GL_EXT_shader_framebuffer_fetch : require +#endif + +#ifdef CLEAR_COLOR +#if __VERSION__ >= 310 +layout(binding = 0, std140) uniform ClearColor { uniform highp vec4 value; } +clearColor; +#else +uniform mediump vec4 _EXPORTED_clearColor; +#endif +#endif + +#ifdef GL_EXT_shader_pixel_local_storage + +#ifdef STORE_COLOR +__pixel_local_inEXT PLS +#else +__pixel_local_outEXT PLS +#endif +{ + layout(rgba8) mediump vec4 colorBuffer; + layout(r32ui) highp uint clipBuffer; + layout(rgba8) mediump vec4 scratchColorBuffer; + layout(r32ui) highp uint coverageCountBuffer; +}; + +#ifndef GL_ARM_shader_framebuffer_fetch +#ifdef LOAD_COLOR +layout(location = 0) inout mediump vec4 fragColor; +#endif +#endif + +#ifdef STORE_COLOR +layout(location = 0) out mediump vec4 fragColor; +#endif + +void main() +{ +#ifdef CLEAR_COLOR +#if __VERSION__ >= 310 + colorBuffer = clearColor.value; +#else + colorBuffer = _EXPORTED_clearColor; +#endif +#endif + +#ifdef LOAD_COLOR +#ifdef GL_ARM_shader_framebuffer_fetch + colorBuffer = gl_LastFragColorARM; +#else + colorBuffer = fragColor; +#endif +#endif + +#ifdef CLEAR_COVERAGE + coverageCountBuffer = 0u; +#endif + +#ifdef CLEAR_CLIP + clipBuffer = 0u; +#endif + +#ifdef STORE_COLOR + fragColor = colorBuffer; +#endif +} + +#else + +// This shader is being parsed by WebGPU for introspection purposes. +layout(location = 0) out mediump vec4 unused; +void main() { unused = vec4(0, 1, 0, 1); } + +#endif // GL_EXT_shader_pixel_local_storage + +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/rhi.exports.h b/defold-rive/include/generated/shaders/rhi.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/rhi.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/rhi.glsl.hpp b/defold-rive/include/generated/shaders/rhi.glsl.hpp new file mode 100644 index 00000000..285bf897 --- /dev/null +++ b/defold-rive/include/generated/shaders/rhi.glsl.hpp @@ -0,0 +1,366 @@ +#pragma once + +#include "rhi.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char rhi[] = R"===(/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma warning(disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma warning(disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +typedef float3 packed_float3; + +#ifdef _EXPORTED_ENABLE_MIN_16_PRECISION + +typedef min16uint ushort; + +#else + +typedef uint ushort; + +#endif + +#define SPLAT(A, B) A##B + +#define INLINE inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : SPLAT(ATTRIBUTE, IDX) +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE noperspective +#define _EXPORTED_OPTIONALLY_FLAT nointerpolation +#define FLAT nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : SPLAT(TEXCOORD, IDX) + +#define VARYING_BLOCK_END \ + float4 _pos : SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef _EXPORTED_VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef _EXPORTED_FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform Texture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform Texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform Texture2D NAME + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) SamplerState NAME; +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D RasterizerOrderedTexture2D +#else +#define PLS_TEX2D RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + \ + uint baseInstance; \ + \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : SV_VertexID, uint _instanceIDWithoutBase \ + : SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [earlydepthstencil] half4 NAME(Varyings _varyings) : SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat asfloat +#define intBitsToFloat asfloat +#define floatBitsToInt asint +#define floatBitsToUint asuint +#define inversesqrt rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2(f16tof32(x), f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = f32tof16(v.x); + uint y = f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.xy |= vals.zw; + vals.x |= vals.y; + return vals.x; +} + +INLINE float atan(float y, float x) { return atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return lerp(x, y, s); } + +INLINE float fract(float x) { return frac(x); } +INLINE float2 fract(float2 x) { return frac(x); } +INLINE float3 fract(float3 x) { return frac(x); } +INLINE float4 fract(float4 x) { return frac(x); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/rhi.minified.glsl b/defold-rive/include/generated/shaders/rhi.minified.glsl new file mode 100644 index 00000000..fca0e018 --- /dev/null +++ b/defold-rive/include/generated/shaders/rhi.minified.glsl @@ -0,0 +1,355 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma warning(disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma warning(disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef _ARE_TOKEN_NAMES_PRESERVED +#define half half +#define half2 half2 +#define half3 half3 +#define half4 half4 +#define short short +#define short2 short2 +#define short3 short3 +#define short4 short4 +#define ushort ushort +#define ushort2 ushort2 +#define ushort3 ushort3 +#define ushort4 ushort4 +#define float2 float2 +#define float3 float3 +#define float4 float4 +#define bool2 bool2 +#define bool3 bool3 +#define bool4 bool4 +#define uint2 uint2 +#define uint3 uint3 +#define uint4 uint4 +#define int2 int2 +#define int3 int3 +#define int4 int4 +#define float4x2 float4x2 +#define ushort ushort +#define float2x2 float2x2 +#define half3x3 half3x3 +#define half2x3 half2x3 +#endif + +typedef float3 packed_float3; + +#ifdef ENABLE_MIN_16_PRECISION + +typedef min16uint ushort; + +#else + +typedef uint ushort; + +#endif + +#define SPLAT(A, B) A##B + +#define INLINE inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : SPLAT(ATTRIBUTE, IDX) +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE noperspective +#define OPTIONALLY_FLAT nointerpolation +#define FLAT nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : SPLAT(TEXCOORD, IDX) + +#define VARYING_BLOCK_END \ + float4 _pos : SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform Texture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform Texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform Texture2D NAME + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) SamplerState NAME; +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D RasterizerOrderedTexture2D +#else +#define PLS_TEX2D RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + \ + uint baseInstance; \ + \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : SV_VertexID, uint _instanceIDWithoutBase \ + : SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [earlydepthstencil] half4 NAME(Varyings _varyings) : SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat asfloat +#define intBitsToFloat asfloat +#define floatBitsToInt asint +#define floatBitsToUint asuint +#define inversesqrt rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + StructuredBuffer NAME + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2(f16tof32(x), f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = f32tof16(v.x); + uint y = f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.xy |= vals.zw; + vals.x |= vals.y; + return vals.x; +} + +INLINE float atan(float y, float x) { return atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return lerp(x, y, s); } + +INLINE float fract(float x) { return frac(x); } +INLINE float2 fract(float2 x) { return frac(x); } +INLINE float3 fract(float3 x) { return frac(x); } +INLINE float4 fract(float4 x) { return frac(x); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt diff --git a/defold-rive/include/generated/shaders/specialization.exports.h b/defold-rive/include/generated/shaders/specialization.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/specialization.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/specialization.glsl.hpp b/defold-rive/include/generated/shaders/specialization.glsl.hpp new file mode 100644 index 00000000..620617f3 --- /dev/null +++ b/defold-rive/include/generated/shaders/specialization.glsl.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "specialization.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char specialization[] = R"===(layout(constant_id = CLIPPING_SPECIALIZATION_IDX) const + bool kEnableClipping = false; +layout(constant_id = CLIP_RECT_SPECIALIZATION_IDX) const + bool kEnableClipRect = false; +layout(constant_id = ADVANCED_BLEND_SPECIALIZATION_IDX) const + bool kEnableAdvancedBlend = false; +layout(constant_id = EVEN_ODD_SPECIALIZATION_IDX) const + bool kEnableEvenOdd = false; +layout(constant_id = NESTED_CLIPPING_SPECIALIZATION_IDX) const + bool kEnableNestedClipping = false; +layout(constant_id = HSL_BLEND_MODES_SPECIALIZATION_IDX) const + bool kEnableHSLBlendModes = false; +layout(constant_id = CLOCKWISE_FILL_SPECIALIZATION_IDX) const + bool kClockwiseFill = false; +layout(constant_id = BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX) const + bool kBorrowedCoveragePrepass = false; + +#define _EXPORTED_ENABLE_CLIPPING kEnableClipping +#define _EXPORTED_ENABLE_CLIP_RECT kEnableClipRect +#define _EXPORTED_ENABLE_ADVANCED_BLEND kEnableAdvancedBlend +#define _EXPORTED_ENABLE_EVEN_ODD kEnableEvenOdd +#define _EXPORTED_ENABLE_NESTED_CLIPPING kEnableNestedClipping +#define _EXPORTED_ENABLE_HSL_BLEND_MODES kEnableHSLBlendModes +#define _EXPORTED_CLOCKWISE_FILL kClockwiseFill +#define _EXPORTED_BORROWED_COVERAGE_PREPASS kBorrowedCoveragePrepass +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/specialization.minified.glsl b/defold-rive/include/generated/shaders/specialization.minified.glsl new file mode 100644 index 00000000..17609c41 --- /dev/null +++ b/defold-rive/include/generated/shaders/specialization.minified.glsl @@ -0,0 +1,25 @@ +layout(constant_id = CLIPPING_SPECIALIZATION_IDX) const + bool kEnableClipping = false; +layout(constant_id = CLIP_RECT_SPECIALIZATION_IDX) const + bool kEnableClipRect = false; +layout(constant_id = ADVANCED_BLEND_SPECIALIZATION_IDX) const + bool kEnableAdvancedBlend = false; +layout(constant_id = EVEN_ODD_SPECIALIZATION_IDX) const + bool kEnableEvenOdd = false; +layout(constant_id = NESTED_CLIPPING_SPECIALIZATION_IDX) const + bool kEnableNestedClipping = false; +layout(constant_id = HSL_BLEND_MODES_SPECIALIZATION_IDX) const + bool kEnableHSLBlendModes = false; +layout(constant_id = CLOCKWISE_FILL_SPECIALIZATION_IDX) const + bool kClockwiseFill = false; +layout(constant_id = BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX) const + bool kBorrowedCoveragePrepass = false; + +#define ENABLE_CLIPPING kEnableClipping +#define ENABLE_CLIP_RECT kEnableClipRect +#define ENABLE_ADVANCED_BLEND kEnableAdvancedBlend +#define ENABLE_EVEN_ODD kEnableEvenOdd +#define ENABLE_NESTED_CLIPPING kEnableNestedClipping +#define ENABLE_HSL_BLEND_MODES kEnableHSLBlendModes +#define CLOCKWISE_FILL kClockwiseFill +#define BORROWED_COVERAGE_PREPASS kBorrowedCoveragePrepass diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.fixedcolor_frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.fixedcolor_frag.h new file mode 100644 index 00000000..f3303482 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.fixedcolor_frag.h @@ -0,0 +1,574 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_mesh_fixedcolor_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000248,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000126, + 0x000001a3,0x000001b1,0x000001b8,0x00000234,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61,0x34667628, + 0x0000003b,0x00040005,0x0000000f,0x777a7978,0x00000000,0x00090005,0x00000016,0x74736163, + 0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005,0x00000015, + 0x00007978,0x00080005,0x0000001c,0x74736163,0x6e69755f,0x6f745f74,0x6873755f,0x2874726f, + 0x003b3175,0x00030005,0x0000001b,0x00000078,0x00060005,0x0000001f,0x656b616d,0x6c61685f, + 0x31662866,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00060005,0x00000023,0x656b616d, + 0x6c61685f,0x66283266,0x00003b31,0x00030005,0x00000022,0x00000078,0x00060005,0x00000027, + 0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000026,0x00000078,0x00070005, + 0x0000002c,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x0000002b, + 0x00000078,0x00060005,0x00000030,0x5f6e696d,0x756c6176,0x66762865,0x00003b34,0x00040005, + 0x0000002f,0x346e696d,0x00000000,0x00060005,0x00000034,0x6d6f7266,0x7869665f,0x75286465, + 0x00003b31,0x00030005,0x00000033,0x00000078,0x00080005,0x0000003a,0x6c707061,0x6c635f79, + 0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005,0x00000037,0x70696c63,0x00004449, + 0x00050005,0x00000038,0x70696c63,0x61746144,0x00000000,0x00050005,0x00000039,0x65766f63, + 0x65676172,0x00000000,0x000b0005,0x00000045,0x6f736572,0x5f65766c,0x6e696170,0x31752874, + 0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000,0x00040005,0x00000040,0x68746170, + 0x00004449,0x00060005,0x00000041,0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00060005, + 0x00000042,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005,0x00000043,0x67617266, + 0x70696c43,0x0074754f,0x00050005,0x00000044,0x736c705f,0x726f6f43,0x00000064,0x00080005, + 0x0000004a,0x74696d65,0x736c705f,0x696c635f,0x66762870,0x69763b34,0x00003b32,0x00050005, + 0x00000048,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000049,0x736c705f,0x726f6f43, + 0x00000064,0x00030005,0x00000063,0x00746572,0x00030005,0x0000006d,0x00746572,0x00040005, + 0x0000008a,0x326e696d,0x00000000,0x00040005,0x00000090,0x316e696d,0x00000000,0x00040005, + 0x0000009f,0x61726170,0x0000006d,0x00040005,0x000000ab,0x61726170,0x0000006d,0x00050005, + 0x000000ba,0x6e696170,0x74614474,0x00000061,0x00050005,0x000000bc,0x6e696150,0x66754274, + 0x00726566,0x00050006,0x000000bc,0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000be, + 0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005,0x000000c4, + 0x65766f63,0x65676172,0x00000000,0x00060005,0x000000cf,0x616e456b,0x45656c62,0x4f6e6576, + 0x00006464,0x00040005,0x000000e5,0x61726170,0x0000006d,0x00040005,0x000000e7,0x61726170, + 0x0000006d,0x00060005,0x000000ea,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00040005, + 0x000000ed,0x70696c63,0x00004449,0x00060005,0x000000f8,0x5f6e695f,0x70696c63,0x66667542, + 0x00007265,0x00040005,0x000000fc,0x61726170,0x0000006d,0x00040005,0x000000fe,0x61726170, + 0x0000006d,0x00040005,0x000000ff,0x61726170,0x0000006d,0x00060005,0x00000103,0x616e456b, + 0x43656c62,0x5270696c,0x00746365,0x00030005,0x0000010f,0x0000004d,0x00060005,0x00000111, + 0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000111,0x00000000,0x6c61765f, + 0x00736575,0x00090005,0x00000113,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875, + 0x72656666,0x00000000,0x00040005,0x00000118,0x61726170,0x0000006d,0x00050005,0x0000011d, + 0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000123,0x70696c63,0x726f6f43,0x00000064, + 0x00060005,0x00000126,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005,0x0000012d, + 0x74736964,0x00005958,0x00040005,0x00000136,0x61726170,0x0000006d,0x00070005,0x00000138, + 0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x00000143,0x6e696170, + 0x70795474,0x00000065,0x00040005,0x0000015d,0x61726170,0x0000006d,0x00030005,0x00000160, + 0x0000004d,0x00040005,0x00000163,0x61726170,0x0000006d,0x00050005,0x00000167,0x6e617274, + 0x74616c73,0x00000065,0x00050005,0x0000016d,0x6e696170,0x6f6f4374,0x00006472,0x00030005, + 0x00000175,0x00000074,0x00030005,0x00000183,0x00000078,0x00030005,0x0000018b,0x00000079, + 0x00080005,0x00000191,0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065, + 0x00050005,0x00000195,0x64617267,0x706d6153,0x0072656c,0x00050005,0x000001a3,0x70696c63, + 0x66667542,0x00007265,0x00050005,0x000001a5,0x736c705f,0x726f6f43,0x00000064,0x00050005, + 0x000001aa,0x67616d69,0x6c6f4365,0x0000726f,0x00080005,0x000001ab,0x5058455f,0x4554524f, + 0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x000001ad,0x67616d69,0x6d615365, + 0x72656c70,0x00000000,0x00050005,0x000001b1,0x65745f76,0x6f6f4378,0x00006472,0x00060005, + 0x000001b4,0x67616d69,0x766f4365,0x67617265,0x00000065,0x00070005,0x000001b7,0x70696c63, + 0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x000001b8,0x6c635f76,0x65527069, + 0x00007463,0x00040005,0x000001b9,0x61726170,0x0000006d,0x00040005,0x000001bc,0x61726170, + 0x0000006d,0x00040005,0x000001bf,0x61726170,0x0000006d,0x00070005,0x000001c3,0x7473616c, + 0x65766f43,0x65676172,0x61746144,0x00000000,0x00080005,0x000001c6,0x65766f63,0x65676172, + 0x6d6f7441,0x75426369,0x72656666,0x00000000,0x00050005,0x000001cc,0x7473616c,0x68746150, + 0x00004449,0x00040005,0x000001d0,0x61726170,0x0000006d,0x00070005,0x000001d2,0x7473616c, + 0x65766f43,0x65676172,0x6e756f43,0x00000074,0x00040005,0x000001d6,0x61726170,0x0000006d, + 0x00050005,0x000001d8,0x67617266,0x70696c43,0x0074754f,0x00040005,0x000001d9,0x61726170, + 0x0000006d,0x00060005,0x000001db,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00040005, + 0x000001dc,0x61726170,0x0000006d,0x00040005,0x000001de,0x61726170,0x0000006d,0x00040005, + 0x000001e0,0x61726170,0x0000006d,0x00040005,0x000001e1,0x61726170,0x0000006d,0x00040005, + 0x000001e3,0x61726170,0x0000006d,0x00090005,0x000001f6,0x5058455f,0x4554524f,0x6d495f44, + 0x44656761,0x55776172,0x6f66696e,0x00736d72,0x00060006,0x000001f6,0x00000000,0x77656976, + 0x7274614d,0x00007869,0x00060006,0x000001f6,0x00000001,0x6e617274,0x74616c73,0x00000065, + 0x00050006,0x000001f6,0x00000002,0x6361706f,0x00797469,0x00050006,0x000001f6,0x00000003, + 0x64646170,0x00676e69,0x00090006,0x000001f6,0x00000004,0x70696c63,0x74636552,0x65766e49, + 0x4d657372,0x69727461,0x00000078,0x000a0006,0x000001f6,0x00000005,0x70696c63,0x74636552, + 0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x000001f6,0x00000006, + 0x70696c63,0x00004449,0x00060006,0x000001f6,0x00000007,0x6e656c62,0x646f4d64,0x00000065, + 0x00050006,0x000001f6,0x00000008,0x646e497a,0x00007865,0x00070005,0x000001f8,0x67616d69, + 0x61724465,0x696e5577,0x6d726f66,0x00000073,0x00050005,0x00000201,0x70696c63,0x61746144, + 0x00000000,0x00040005,0x0000020d,0x61726170,0x0000006d,0x00040005,0x00000210,0x61726170, + 0x0000006d,0x00040005,0x00000212,0x61726170,0x0000006d,0x00040005,0x00000218,0x61726170, + 0x0000006d,0x00050005,0x00000234,0x6172665f,0x6c6f4367,0x0000726f,0x00040005,0x00000236, + 0x61726170,0x0000006d,0x00040005,0x00000238,0x61726170,0x0000006d,0x00080005,0x0000023f, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00080005,0x00000240, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000241, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000242, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000243,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x00000245,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000245,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000245, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x00000245,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x00000245,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000245,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000245,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000245,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000245,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000245,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000245, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x00000245,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x00000245,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x00000247,0x66696e75,0x736d726f,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047, + 0x00000010,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x0000001c,0x00000000, + 0x00030047,0x0000001f,0x00000000,0x00030047,0x0000001e,0x00000000,0x00030047,0x00000023, + 0x00000000,0x00030047,0x00000022,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047, + 0x00000026,0x00000000,0x00030047,0x00000030,0x00000000,0x00030047,0x0000002f,0x00000000, + 0x00030047,0x00000034,0x00000000,0x00030047,0x00000038,0x00000000,0x00030047,0x00000039, + 0x00000000,0x00030047,0x00000041,0x00000000,0x00030047,0x00000042,0x00000000,0x00030047, + 0x00000043,0x00000000,0x00030047,0x00000048,0x00000000,0x00030047,0x0000004d,0x00000000, + 0x00030047,0x0000004e,0x00000000,0x00030047,0x00000052,0x00000000,0x00030047,0x00000053, + 0x00000000,0x00030047,0x00000057,0x00000000,0x00030047,0x00000058,0x00000000,0x00030047, + 0x0000005c,0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047,0x00000060,0x00000000, + 0x00030047,0x00000063,0x00000000,0x00030047,0x00000064,0x00000000,0x00030047,0x00000067, + 0x00000000,0x00030047,0x0000006a,0x00000000,0x00030047,0x0000006d,0x00000000,0x00030047, + 0x0000006e,0x00000000,0x00030047,0x00000070,0x00000000,0x00030047,0x00000072,0x00000000, + 0x00030047,0x00000075,0x00000000,0x00030047,0x00000078,0x00000000,0x00030047,0x0000008a, + 0x00000000,0x00030047,0x0000008b,0x00000000,0x00030047,0x0000008c,0x00000000,0x00030047, + 0x0000008d,0x00000000,0x00030047,0x0000008e,0x00000000,0x00030047,0x0000008f,0x00000000, + 0x00030047,0x00000090,0x00000000,0x00030047,0x00000092,0x00000000,0x00030047,0x00000094, + 0x00000000,0x00030047,0x00000095,0x00000000,0x00030047,0x00000096,0x00000000,0x00030047, + 0x000000a0,0x00000000,0x00030047,0x000000a3,0x00000000,0x00030047,0x000000a4,0x00000000, + 0x00030047,0x000000ab,0x00000000,0x00030047,0x000000ac,0x00000000,0x00030047,0x000000b3, + 0x00000000,0x00030047,0x000000b5,0x00000000,0x00030047,0x000000b6,0x00000000,0x00040047, + 0x000000bb,0x00000006,0x00000008,0x00040048,0x000000bc,0x00000000,0x00000018,0x00050048, + 0x000000bc,0x00000000,0x00000023,0x00000000,0x00030047,0x000000bc,0x00000003,0x00040047, + 0x000000be,0x00000022,0x00000000,0x00040047,0x000000be,0x00000021,0x00000004,0x00030047, + 0x000000c4,0x00000000,0x00030047,0x000000c5,0x00000000,0x00030047,0x000000cd,0x00000000, + 0x00030047,0x000000ce,0x00000000,0x00040047,0x000000cf,0x00000001,0x00000003,0x00030047, + 0x000000da,0x00000000,0x00030047,0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000, + 0x00030047,0x000000df,0x00000000,0x00030047,0x000000e1,0x00000000,0x00030047,0x000000e2, + 0x00000000,0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e4,0x00000000,0x00030047, + 0x000000e5,0x00000000,0x00030047,0x000000e6,0x00000000,0x00030047,0x000000e7,0x00000000, + 0x00030047,0x000000e8,0x00000000,0x00030047,0x000000e9,0x00000000,0x00040047,0x000000ea, + 0x00000001,0x00000000,0x00030047,0x000000f8,0x00000000,0x00040047,0x000000f8,0x00000022, + 0x00000003,0x00040047,0x000000f8,0x00000021,0x00000001,0x00040047,0x000000f8,0x0000002b, + 0x00000001,0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fb,0x00000000,0x00030047, + 0x000000fe,0x00000000,0x00030047,0x000000ff,0x00000000,0x00030047,0x00000100,0x00000000, + 0x00040047,0x00000103,0x00000001,0x00000001,0x00040047,0x00000110,0x00000006,0x00000010, + 0x00040048,0x00000111,0x00000000,0x00000018,0x00050048,0x00000111,0x00000000,0x00000023, + 0x00000000,0x00030047,0x00000111,0x00000003,0x00040047,0x00000113,0x00000022,0x00000000, + 0x00040047,0x00000113,0x00000021,0x00000005,0x00040047,0x00000126,0x0000000b,0x0000000f, + 0x00030047,0x0000012d,0x00000000,0x00030047,0x00000137,0x00000000,0x00030047,0x00000138, + 0x00000000,0x00030047,0x0000013a,0x00000000,0x00030047,0x0000013c,0x00000000,0x00030047, + 0x0000013d,0x00000000,0x00030047,0x0000013e,0x00000000,0x00030047,0x0000013f,0x00000000, + 0x00030047,0x00000140,0x00000000,0x00030047,0x00000141,0x00000000,0x00030047,0x00000142, + 0x00000000,0x00030047,0x00000154,0x00000000,0x00030047,0x00000155,0x00000000,0x00030047, + 0x0000015a,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e,0x00000000, + 0x00030047,0x00000191,0x00000000,0x00040047,0x00000191,0x00000022,0x00000000,0x00040047, + 0x00000191,0x00000021,0x00000001,0x00030047,0x00000192,0x00000000,0x00030047,0x00000195, + 0x00000000,0x00040047,0x00000195,0x00000022,0x00000002,0x00040047,0x00000195,0x00000021, + 0x00000001,0x00030047,0x00000196,0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047, + 0x0000019d,0x00000000,0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a0,0x00000000, + 0x00030047,0x000001a3,0x00000000,0x00040047,0x000001a3,0x0000001e,0x00000001,0x00030047, + 0x000001a4,0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047,0x000001ab,0x00000000, + 0x00040047,0x000001ab,0x00000022,0x00000001,0x00040047,0x000001ab,0x00000021,0x00000002, + 0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ad,0x00000000,0x00040047,0x000001ad, + 0x00000022,0x00000002,0x00040047,0x000001ad,0x00000021,0x00000002,0x00030047,0x000001ae, + 0x00000000,0x00040047,0x000001b1,0x0000001e,0x00000000,0x00030047,0x000001b3,0x00000000, + 0x00030047,0x000001b4,0x00000000,0x00030047,0x000001b7,0x00000000,0x00040047,0x000001b8, + 0x0000001e,0x00000001,0x00030047,0x000001bb,0x00000000,0x00030047,0x000001bc,0x00000000, + 0x00030047,0x000001bd,0x00000000,0x00030047,0x000001be,0x00000000,0x00030047,0x000001bf, + 0x00000000,0x00030047,0x000001c0,0x00000000,0x00030047,0x000001c1,0x00000000,0x00030047, + 0x000001c2,0x00000000,0x00040047,0x000001c6,0x00000022,0x00000003,0x00040047,0x000001c6, + 0x00000021,0x00000003,0x00030047,0x000001c6,0x00000017,0x00030047,0x000001cc,0x00000000, + 0x00030047,0x000001d1,0x00000000,0x00030047,0x000001d2,0x00000000,0x00030047,0x000001d7, + 0x00000000,0x00030047,0x000001d8,0x00000000,0x00030047,0x000001d9,0x00000000,0x00030047, + 0x000001da,0x00000000,0x00030047,0x000001db,0x00000000,0x00030047,0x000001dd,0x00000000, + 0x00030047,0x000001de,0x00000000,0x00030047,0x000001df,0x00000000,0x00030047,0x000001e0, + 0x00000000,0x00030047,0x000001e1,0x00000000,0x00030047,0x000001e2,0x00000000,0x00030047, + 0x000001e9,0x00000000,0x00030047,0x000001eb,0x00000000,0x00030047,0x000001ec,0x00000000, + 0x00030047,0x000001ed,0x00000000,0x00050048,0x000001f6,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000001f6,0x00000001,0x00000023,0x00000010,0x00050048,0x000001f6,0x00000002, + 0x00000023,0x00000018,0x00050048,0x000001f6,0x00000003,0x00000023,0x0000001c,0x00050048, + 0x000001f6,0x00000004,0x00000023,0x00000020,0x00050048,0x000001f6,0x00000005,0x00000023, + 0x00000030,0x00050048,0x000001f6,0x00000006,0x00000023,0x00000038,0x00050048,0x000001f6, + 0x00000007,0x00000023,0x0000003c,0x00050048,0x000001f6,0x00000008,0x00000023,0x00000040, + 0x00030047,0x000001f6,0x00000002,0x00040047,0x000001f8,0x00000022,0x00000000,0x00040047, + 0x000001f8,0x00000021,0x00000009,0x00030047,0x00000201,0x00000000,0x00030047,0x00000203, + 0x00000000,0x00030047,0x00000205,0x00000000,0x00030047,0x00000208,0x00000000,0x00030047, + 0x0000020a,0x00000000,0x00030047,0x0000020b,0x00000000,0x00030047,0x0000020c,0x00000000, + 0x00030047,0x00000210,0x00000000,0x00030047,0x00000211,0x00000000,0x00030047,0x00000212, + 0x00000000,0x00030047,0x00000213,0x00000000,0x00030047,0x00000216,0x00000000,0x00030047, + 0x0000021c,0x00000000,0x00030047,0x0000021d,0x00000000,0x00030047,0x0000021f,0x00000000, + 0x00030047,0x00000220,0x00000000,0x00030047,0x00000223,0x00000000,0x00030047,0x00000224, + 0x00000000,0x00030047,0x00000225,0x00000000,0x00030047,0x00000226,0x00000000,0x00030047, + 0x0000022d,0x00000000,0x00030047,0x0000022f,0x00000000,0x00030047,0x00000230,0x00000000, + 0x00030047,0x00000231,0x00000000,0x00030047,0x00000232,0x00000000,0x00030047,0x00000233, + 0x00000000,0x00030047,0x00000234,0x00000000,0x00040047,0x00000234,0x0000001e,0x00000000, + 0x00030047,0x00000235,0x00000000,0x00030047,0x00000236,0x00000000,0x00030047,0x00000237, + 0x00000000,0x00040047,0x0000023f,0x00000001,0x00000002,0x00040047,0x00000240,0x00000001, + 0x00000004,0x00040047,0x00000241,0x00000001,0x00000005,0x00040047,0x00000242,0x00000001, + 0x00000006,0x00040047,0x00000243,0x00000001,0x00000007,0x00050048,0x00000245,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000245,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000245,0x00000002,0x00000023,0x00000008,0x00050048,0x00000245,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x00000245,0x00000004,0x00000023,0x00000010,0x00050048,0x00000245, + 0x00000005,0x00000023,0x00000014,0x00050048,0x00000245,0x00000006,0x00000023,0x00000018, + 0x00050048,0x00000245,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000245,0x00000008, + 0x00000023,0x00000020,0x00050048,0x00000245,0x00000009,0x00000023,0x00000030,0x00050048, + 0x00000245,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000245,0x0000000b,0x00000023, + 0x00000038,0x00030047,0x00000245,0x00000002,0x00040047,0x00000247,0x00000022,0x00000000, + 0x00040047,0x00000247,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000004, + 0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d, + 0x00040017,0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007,0x00000012, + 0x00040021,0x00000014,0x00000012,0x00000013,0x00040015,0x00000018,0x00000020,0x00000000, + 0x00040020,0x00000019,0x00000007,0x00000018,0x00040021,0x0000001a,0x00000018,0x00000019, + 0x00040021,0x00000021,0x00000012,0x00000007,0x00040021,0x00000025,0x0000000c,0x00000007, + 0x00040018,0x00000029,0x00000012,0x00000002,0x00040021,0x0000002a,0x00000029,0x0000000d, + 0x00040021,0x0000002e,0x00000006,0x0000000d,0x00040021,0x00000032,0x00000006,0x00000019, + 0x00060021,0x00000036,0x00000002,0x00000019,0x0000000d,0x00000007,0x00040015,0x0000003c, + 0x00000020,0x00000001,0x00040017,0x0000003d,0x0000003c,0x00000002,0x00040020,0x0000003e, + 0x00000007,0x0000003d,0x00080021,0x0000003f,0x00000002,0x00000019,0x00000007,0x0000000d, + 0x0000000d,0x0000003e,0x00050021,0x00000047,0x00000002,0x0000000d,0x0000003e,0x0004002b, + 0x00000018,0x00000065,0x00000000,0x0004002b,0x00000018,0x00000068,0x00000001,0x0004002b, + 0x00000018,0x00000073,0x00000002,0x0004002b,0x00000018,0x00000076,0x00000003,0x0004002b, + 0x00000006,0x0000007f,0x3f800000,0x0004002b,0x00000006,0x00000080,0x00000000,0x0004002b, + 0x00000006,0x0000009b,0x3b000000,0x0004002b,0x00000006,0x0000009d,0xc2800000,0x0004002b, + 0x00000006,0x000000aa,0x3a808081,0x00020014,0x000000ad,0x00040017,0x000000ae,0x000000ad, + 0x00000002,0x00040017,0x000000b8,0x00000018,0x00000002,0x00040020,0x000000b9,0x00000007, + 0x000000b8,0x0003001d,0x000000bb,0x000000b8,0x0003001e,0x000000bc,0x000000bb,0x00040020, + 0x000000bd,0x00000002,0x000000bc,0x0004003b,0x000000bd,0x000000be,0x00000002,0x0004002b, + 0x0000003c,0x000000bf,0x00000000,0x00040020,0x000000c1,0x00000002,0x000000b8,0x0004002b, + 0x00000018,0x000000c8,0x00000300,0x00030031,0x000000ad,0x000000cf,0x0004002b,0x00000018, + 0x000000d4,0x00000200,0x0004002b,0x00000006,0x000000db,0x3f000000,0x0004002b,0x00000006, + 0x000000de,0x40000000,0x0004002b,0x00000006,0x000000e0,0xbf800000,0x00030031,0x000000ad, + 0x000000ea,0x0004002b,0x00000018,0x000000f0,0x00000010,0x00090019,0x000000f6,0x00000006, + 0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x000000f7, + 0x00000000,0x000000f6,0x0004003b,0x000000f7,0x000000f8,0x00000000,0x0005002c,0x0000003d, + 0x000000fa,0x000000bf,0x000000bf,0x00030031,0x000000ad,0x00000103,0x0004002b,0x00000018, + 0x00000108,0x00000400,0x00040020,0x0000010e,0x00000007,0x00000029,0x0003001d,0x00000110, + 0x0000000c,0x0003001e,0x00000111,0x00000110,0x00040020,0x00000112,0x00000002,0x00000111, + 0x0004003b,0x00000112,0x00000113,0x00000002,0x0004002b,0x00000018,0x00000115,0x00000004, + 0x00040020,0x00000119,0x00000002,0x0000000c,0x00040020,0x00000125,0x00000001,0x0000000c, + 0x0004003b,0x00000125,0x00000126,0x00000001,0x0004002b,0x00000018,0x00000146,0x0000000f, + 0x00090019,0x0000018f,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, + 0x00000000,0x00040020,0x00000190,0x00000000,0x0000018f,0x0004003b,0x00000190,0x00000191, + 0x00000000,0x0002001a,0x00000193,0x00040020,0x00000194,0x00000000,0x00000193,0x0004003b, + 0x00000194,0x00000195,0x00000000,0x0003001b,0x00000197,0x0000018f,0x00040020,0x000001a2, + 0x00000003,0x0000000c,0x0004003b,0x000001a2,0x000001a3,0x00000003,0x0004003b,0x00000190, + 0x000001ab,0x00000000,0x0004003b,0x00000194,0x000001ad,0x00000000,0x00040020,0x000001b0, + 0x00000001,0x00000012,0x0004003b,0x000001b0,0x000001b1,0x00000001,0x0004003b,0x00000125, + 0x000001b8,0x00000001,0x00090019,0x000001c4,0x00000018,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000021,0x00040020,0x000001c5,0x00000000,0x000001c4,0x0004003b, + 0x000001c5,0x000001c6,0x00000000,0x00040017,0x000001c9,0x00000018,0x00000004,0x0004002b, + 0x0000003c,0x000001ce,0x00000010,0x0004002b,0x00000018,0x000001d4,0x0000ffff,0x00040017, + 0x000001ea,0x00000006,0x00000003,0x000b001e,0x000001f6,0x0000000c,0x00000012,0x00000006, + 0x00000006,0x0000000c,0x00000012,0x00000018,0x00000018,0x00000018,0x00040020,0x000001f7, + 0x00000002,0x000001f6,0x0004003b,0x000001f7,0x000001f8,0x00000002,0x0004002b,0x0000003c, + 0x000001f9,0x00000006,0x00040020,0x000001fa,0x00000002,0x00000018,0x0004002b,0x0000003c, + 0x00000217,0x00000002,0x00040020,0x00000219,0x00000002,0x00000006,0x0004003b,0x000001a2, + 0x00000234,0x00000003,0x0004002b,0x00000018,0x0000023d,0x00008000,0x0007002c,0x000001c9, + 0x0000023e,0x0000023d,0x0000023d,0x0000023d,0x0000023d,0x00030031,0x000000ad,0x0000023f, + 0x00030031,0x000000ad,0x00000240,0x00030031,0x000000ad,0x00000241,0x00030031,0x000000ad, + 0x00000242,0x00030031,0x000000ad,0x00000243,0x00040017,0x00000244,0x0000003c,0x00000004, + 0x000e001e,0x00000245,0x00000006,0x00000006,0x00000006,0x00000006,0x00000018,0x00000018, + 0x00000018,0x00000018,0x00000244,0x00000018,0x00000018,0x00000006,0x00040020,0x00000246, + 0x00000002,0x00000245,0x0004003b,0x00000246,0x00000247,0x00000002,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000003e,0x000001a5, + 0x00000007,0x0004003b,0x0000000d,0x000001aa,0x00000007,0x0004003b,0x00000007,0x000001b4, + 0x00000007,0x0004003b,0x00000007,0x000001b7,0x00000007,0x0004003b,0x0000000d,0x000001b9, + 0x00000007,0x0004003b,0x0000000d,0x000001bc,0x00000007,0x0004003b,0x00000007,0x000001bf, + 0x00000007,0x0004003b,0x00000019,0x000001c3,0x00000007,0x0004003b,0x00000019,0x000001cc, + 0x00000007,0x0004003b,0x00000019,0x000001d0,0x00000007,0x0004003b,0x00000007,0x000001d2, + 0x00000007,0x0004003b,0x00000019,0x000001d6,0x00000007,0x0004003b,0x0000000d,0x000001d8, + 0x00000007,0x0004003b,0x00000007,0x000001d9,0x00000007,0x0004003b,0x0000000d,0x000001db, + 0x00000007,0x0004003b,0x00000019,0x000001dc,0x00000007,0x0004003b,0x00000007,0x000001de, + 0x00000007,0x0004003b,0x0000000d,0x000001e0,0x00000007,0x0004003b,0x0000000d,0x000001e1, + 0x00000007,0x0004003b,0x0000003e,0x000001e3,0x00000007,0x0004003b,0x0000000d,0x00000201, + 0x00000007,0x0004003b,0x0000000d,0x00000205,0x00000007,0x0004003b,0x00000019,0x0000020d, + 0x00000007,0x0004003b,0x0000000d,0x00000210,0x00000007,0x0004003b,0x00000007,0x00000212, + 0x00000007,0x0004003b,0x00000007,0x00000218,0x00000007,0x0004003b,0x0000000d,0x00000236, + 0x00000007,0x0004003b,0x0000003e,0x00000238,0x00000007,0x0004003d,0x0000000c,0x000001a6, + 0x00000126,0x0007004f,0x00000012,0x000001a7,0x000001a6,0x000001a6,0x00000000,0x00000001, + 0x0006000c,0x00000012,0x000001a8,0x00000001,0x00000008,0x000001a7,0x0004006e,0x0000003d, + 0x000001a9,0x000001a8,0x0003003e,0x000001a5,0x000001a9,0x0004003d,0x0000018f,0x000001ac, + 0x000001ab,0x0004003d,0x00000193,0x000001ae,0x000001ad,0x00050056,0x00000197,0x000001af, + 0x000001ac,0x000001ae,0x0004003d,0x00000012,0x000001b2,0x000001b1,0x00050057,0x0000000c, + 0x000001b3,0x000001af,0x000001b2,0x0003003e,0x000001aa,0x000001b3,0x0003003e,0x000001b4, + 0x0000007f,0x000300f7,0x000001b6,0x00000000,0x000400fa,0x00000103,0x000001b5,0x000001b6, + 0x000200f8,0x000001b5,0x0004003d,0x0000000c,0x000001ba,0x000001b8,0x0003003e,0x000001b9, + 0x000001ba,0x00050039,0x0000000c,0x000001bb,0x00000010,0x000001b9,0x0003003e,0x000001bc, + 0x000001bb,0x00050039,0x00000006,0x000001bd,0x00000030,0x000001bc,0x0003003e,0x000001b7, + 0x000001bd,0x0004003d,0x00000006,0x000001be,0x000001b7,0x0003003e,0x000001bf,0x00000080, + 0x00050039,0x00000006,0x000001c0,0x0000001f,0x000001bf,0x0004003d,0x00000006,0x000001c1, + 0x000001b4,0x0008000c,0x00000006,0x000001c2,0x00000001,0x0000002b,0x000001be,0x000001c0, + 0x000001c1,0x0003003e,0x000001b4,0x000001c2,0x000200f9,0x000001b6,0x000200f8,0x000001b6, + 0x0004003d,0x000001c4,0x000001c7,0x000001c6,0x0004003d,0x0000003d,0x000001c8,0x000001a5, + 0x00050062,0x000001c9,0x000001ca,0x000001c7,0x000001c8,0x00050051,0x00000018,0x000001cb, + 0x000001ca,0x00000000,0x0003003e,0x000001c3,0x000001cb,0x0004003d,0x00000018,0x000001cd, + 0x000001c3,0x000500c2,0x00000018,0x000001cf,0x000001cd,0x000001ce,0x0003003e,0x000001d0, + 0x000001cf,0x00050039,0x00000018,0x000001d1,0x0000001c,0x000001d0,0x0003003e,0x000001cc, + 0x000001d1,0x0004003d,0x00000018,0x000001d3,0x000001c3,0x000500c7,0x00000018,0x000001d5, + 0x000001d3,0x000001d4,0x0003003e,0x000001d6,0x000001d5,0x00050039,0x00000006,0x000001d7, + 0x00000034,0x000001d6,0x0003003e,0x000001d2,0x000001d7,0x0003003e,0x000001d9,0x00000080, + 0x00050039,0x0000000c,0x000001da,0x00000027,0x000001d9,0x0003003e,0x000001d8,0x000001da, + 0x0004003d,0x00000018,0x000001dd,0x000001cc,0x0003003e,0x000001dc,0x000001dd,0x0004003d, + 0x00000006,0x000001df,0x000001d2,0x0003003e,0x000001de,0x000001df,0x0004003d,0x0000000c, + 0x000001e2,0x000001d8,0x0003003e,0x000001e1,0x000001e2,0x0004003d,0x0000003d,0x000001e4, + 0x000001a5,0x0003003e,0x000001e3,0x000001e4,0x00090039,0x00000002,0x000001e5,0x00000045, + 0x000001dc,0x000001de,0x000001e0,0x000001e1,0x000001e3,0x0004003d,0x0000000c,0x000001e6, + 0x000001e0,0x0003003e,0x000001db,0x000001e6,0x0004003d,0x0000000c,0x000001e7,0x000001e1, + 0x0003003e,0x000001d8,0x000001e7,0x00050041,0x00000007,0x000001e8,0x000001db,0x00000076, + 0x0004003d,0x00000006,0x000001e9,0x000001e8,0x0004003d,0x0000000c,0x000001eb,0x000001db, + 0x0008004f,0x000001ea,0x000001ec,0x000001eb,0x000001eb,0x00000000,0x00000001,0x00000002, + 0x0005008e,0x000001ea,0x000001ed,0x000001ec,0x000001e9,0x00050041,0x00000007,0x000001ee, + 0x000001db,0x00000065,0x00050051,0x00000006,0x000001ef,0x000001ed,0x00000000,0x0003003e, + 0x000001ee,0x000001ef,0x00050041,0x00000007,0x000001f0,0x000001db,0x00000068,0x00050051, + 0x00000006,0x000001f1,0x000001ed,0x00000001,0x0003003e,0x000001f0,0x000001f1,0x00050041, + 0x00000007,0x000001f2,0x000001db,0x00000073,0x00050051,0x00000006,0x000001f3,0x000001ed, + 0x00000002,0x0003003e,0x000001f2,0x000001f3,0x000300f7,0x000001f5,0x00000000,0x000400fa, + 0x000000ea,0x000001f4,0x000001f5,0x000200f8,0x000001f4,0x00050041,0x000001fa,0x000001fb, + 0x000001f8,0x000001f9,0x0004003d,0x00000018,0x000001fc,0x000001fb,0x000500ab,0x000000ad, + 0x000001fd,0x000001fc,0x00000065,0x000200f9,0x000001f5,0x000200f8,0x000001f5,0x000700f5, + 0x000000ad,0x000001fe,0x000000ea,0x000001b6,0x000001fd,0x000001f4,0x000300f7,0x00000200, + 0x00000000,0x000400fa,0x000001fe,0x000001ff,0x00000200,0x000200f8,0x000001ff,0x00050041, + 0x00000007,0x00000202,0x000001d8,0x00000076,0x0004003d,0x00000006,0x00000203,0x00000202, + 0x000500b7,0x000000ad,0x00000204,0x00000203,0x00000080,0x000300f7,0x00000207,0x00000000, + 0x000400fa,0x00000204,0x00000206,0x00000209,0x000200f8,0x00000206,0x0004003d,0x0000000c, + 0x00000208,0x000001d8,0x0003003e,0x00000205,0x00000208,0x000200f9,0x00000207,0x000200f8, + 0x00000209,0x0004003d,0x000000f6,0x0000020a,0x000000f8,0x00050062,0x0000000c,0x0000020b, + 0x0000020a,0x000000fa,0x0003003e,0x00000205,0x0000020b,0x000200f9,0x00000207,0x000200f8, + 0x00000207,0x0004003d,0x0000000c,0x0000020c,0x00000205,0x0003003e,0x00000201,0x0000020c, + 0x00050041,0x000001fa,0x0000020e,0x000001f8,0x000001f9,0x0004003d,0x00000018,0x0000020f, + 0x0000020e,0x0003003e,0x0000020d,0x0000020f,0x0004003d,0x0000000c,0x00000211,0x00000201, + 0x0003003e,0x00000210,0x00000211,0x0004003d,0x00000006,0x00000213,0x000001b4,0x0003003e, + 0x00000212,0x00000213,0x00070039,0x00000002,0x00000214,0x0000003a,0x0000020d,0x00000210, + 0x00000212,0x0004003d,0x00000006,0x00000215,0x00000212,0x0003003e,0x000001b4,0x00000215, + 0x000200f9,0x00000200,0x000200f8,0x00000200,0x0004003d,0x00000006,0x00000216,0x000001b4, + 0x00050041,0x00000219,0x0000021a,0x000001f8,0x00000217,0x0004003d,0x00000006,0x0000021b, + 0x0000021a,0x0003003e,0x00000218,0x0000021b,0x00050039,0x00000006,0x0000021c,0x0000000a, + 0x00000218,0x00050085,0x00000006,0x0000021d,0x00000216,0x0000021c,0x00050041,0x00000007, + 0x0000021e,0x000001aa,0x00000076,0x0004003d,0x00000006,0x0000021f,0x0000021e,0x00050085, + 0x00000006,0x00000220,0x0000021f,0x0000021d,0x00050041,0x00000007,0x00000221,0x000001aa, + 0x00000076,0x0003003e,0x00000221,0x00000220,0x00050041,0x00000007,0x00000222,0x000001aa, + 0x00000076,0x0004003d,0x00000006,0x00000223,0x00000222,0x0004003d,0x0000000c,0x00000224, + 0x000001aa,0x0008004f,0x000001ea,0x00000225,0x00000224,0x00000224,0x00000000,0x00000001, + 0x00000002,0x0005008e,0x000001ea,0x00000226,0x00000225,0x00000223,0x00050041,0x00000007, + 0x00000227,0x000001aa,0x00000065,0x00050051,0x00000006,0x00000228,0x00000226,0x00000000, + 0x0003003e,0x00000227,0x00000228,0x00050041,0x00000007,0x00000229,0x000001aa,0x00000068, + 0x00050051,0x00000006,0x0000022a,0x00000226,0x00000001,0x0003003e,0x00000229,0x0000022a, + 0x00050041,0x00000007,0x0000022b,0x000001aa,0x00000073,0x00050051,0x00000006,0x0000022c, + 0x00000226,0x00000002,0x0003003e,0x0000022b,0x0000022c,0x0004003d,0x0000000c,0x0000022d, + 0x000001db,0x00050041,0x00000007,0x0000022e,0x000001aa,0x00000076,0x0004003d,0x00000006, + 0x0000022f,0x0000022e,0x00050083,0x00000006,0x00000230,0x0000007f,0x0000022f,0x0005008e, + 0x0000000c,0x00000231,0x0000022d,0x00000230,0x0004003d,0x0000000c,0x00000232,0x000001aa, + 0x00050081,0x0000000c,0x00000233,0x00000231,0x00000232,0x0003003e,0x000001db,0x00000233, + 0x0004003d,0x0000000c,0x00000235,0x000001db,0x0003003e,0x00000234,0x00000235,0x0004003d, + 0x0000000c,0x00000237,0x000001d8,0x0003003e,0x00000236,0x00000237,0x0004003d,0x0000003d, + 0x00000239,0x000001a5,0x0003003e,0x00000238,0x00000239,0x00060039,0x00000002,0x0000023a, + 0x0000004a,0x00000236,0x00000238,0x0004003d,0x000001c4,0x0000023b,0x000001c6,0x0004003d, + 0x0000003d,0x0000023c,0x000001a5,0x00040063,0x0000023b,0x0000023c,0x0000023e,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x0000004d,0x00000007,0x0004003d, + 0x00000006,0x0000004c,0x00000009,0x0003003e,0x0000004d,0x0000004c,0x0004003d,0x00000006, + 0x0000004e,0x0000004d,0x000200fe,0x0000004e,0x00010038,0x00050036,0x0000000c,0x00000010, + 0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003b, + 0x0000000d,0x00000052,0x00000007,0x0004003d,0x0000000c,0x00000051,0x0000000f,0x0003003e, + 0x00000052,0x00000051,0x0004003d,0x0000000c,0x00000053,0x00000052,0x000200fe,0x00000053, + 0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013, + 0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x00000057,0x00000007,0x0004003d, + 0x00000012,0x00000056,0x00000015,0x0003003e,0x00000057,0x00000056,0x0004003d,0x00000012, + 0x00000058,0x00000057,0x000200fe,0x00000058,0x00010038,0x00050036,0x00000018,0x0000001c, + 0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b,0x000200f8,0x0000001d,0x0004003b, + 0x00000019,0x0000005c,0x00000007,0x0004003d,0x00000018,0x0000005b,0x0000001b,0x0003003e, + 0x0000005c,0x0000005b,0x0004003d,0x00000018,0x0000005d,0x0000005c,0x000200fe,0x0000005d, + 0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000,0x00000008,0x00030037,0x00000007, + 0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000006,0x00000060,0x0000001e,0x000200fe, + 0x00000060,0x00010038,0x00050036,0x00000012,0x00000023,0x00000000,0x00000021,0x00030037, + 0x00000007,0x00000022,0x000200f8,0x00000024,0x0004003b,0x00000013,0x00000063,0x00000007, + 0x0004003d,0x00000006,0x00000064,0x00000022,0x00050041,0x00000007,0x00000066,0x00000063, + 0x00000065,0x0003003e,0x00000066,0x00000064,0x0004003d,0x00000006,0x00000067,0x00000022, + 0x00050041,0x00000007,0x00000069,0x00000063,0x00000068,0x0003003e,0x00000069,0x00000067, + 0x0004003d,0x00000012,0x0000006a,0x00000063,0x000200fe,0x0000006a,0x00010038,0x00050036, + 0x0000000c,0x00000027,0x00000000,0x00000025,0x00030037,0x00000007,0x00000026,0x000200f8, + 0x00000028,0x0004003b,0x0000000d,0x0000006d,0x00000007,0x0004003d,0x00000006,0x0000006e, + 0x00000026,0x00050041,0x00000007,0x0000006f,0x0000006d,0x00000065,0x0003003e,0x0000006f, + 0x0000006e,0x0004003d,0x00000006,0x00000070,0x00000026,0x00050041,0x00000007,0x00000071, + 0x0000006d,0x00000068,0x0003003e,0x00000071,0x00000070,0x0004003d,0x00000006,0x00000072, + 0x00000026,0x00050041,0x00000007,0x00000074,0x0000006d,0x00000073,0x0003003e,0x00000074, + 0x00000072,0x0004003d,0x00000006,0x00000075,0x00000026,0x00050041,0x00000007,0x00000077, + 0x0000006d,0x00000076,0x0003003e,0x00000077,0x00000075,0x0004003d,0x0000000c,0x00000078, + 0x0000006d,0x000200fe,0x00000078,0x00010038,0x00050036,0x00000029,0x0000002c,0x00000000, + 0x0000002a,0x00030037,0x0000000d,0x0000002b,0x000200f8,0x0000002d,0x0004003d,0x0000000c, + 0x0000007b,0x0000002b,0x0007004f,0x00000012,0x0000007c,0x0000007b,0x0000007b,0x00000000, + 0x00000001,0x0004003d,0x0000000c,0x0000007d,0x0000002b,0x0007004f,0x00000012,0x0000007e, + 0x0000007d,0x0000007d,0x00000002,0x00000003,0x00050051,0x00000006,0x00000081,0x0000007c, + 0x00000000,0x00050051,0x00000006,0x00000082,0x0000007c,0x00000001,0x00050051,0x00000006, + 0x00000083,0x0000007e,0x00000000,0x00050051,0x00000006,0x00000084,0x0000007e,0x00000001, + 0x00050050,0x00000012,0x00000085,0x00000081,0x00000082,0x00050050,0x00000012,0x00000086, + 0x00000083,0x00000084,0x00050050,0x00000029,0x00000087,0x00000085,0x00000086,0x000200fe, + 0x00000087,0x00010038,0x00050036,0x00000006,0x00000030,0x00000000,0x0000002e,0x00030037, + 0x0000000d,0x0000002f,0x000200f8,0x00000031,0x0004003b,0x00000013,0x0000008a,0x00000007, + 0x0004003b,0x00000007,0x00000090,0x00000007,0x0004003d,0x0000000c,0x0000008b,0x0000002f, + 0x0007004f,0x00000012,0x0000008c,0x0000008b,0x0000008b,0x00000000,0x00000001,0x0004003d, + 0x0000000c,0x0000008d,0x0000002f,0x0007004f,0x00000012,0x0000008e,0x0000008d,0x0000008d, + 0x00000002,0x00000003,0x0007000c,0x00000012,0x0000008f,0x00000001,0x00000025,0x0000008c, + 0x0000008e,0x0003003e,0x0000008a,0x0000008f,0x00050041,0x00000007,0x00000091,0x0000008a, + 0x00000065,0x0004003d,0x00000006,0x00000092,0x00000091,0x00050041,0x00000007,0x00000093, + 0x0000008a,0x00000068,0x0004003d,0x00000006,0x00000094,0x00000093,0x0007000c,0x00000006, + 0x00000095,0x00000001,0x00000025,0x00000092,0x00000094,0x0003003e,0x00000090,0x00000095, + 0x0004003d,0x00000006,0x00000096,0x00000090,0x000200fe,0x00000096,0x00010038,0x00050036, + 0x00000006,0x00000034,0x00000000,0x00000032,0x00030037,0x00000019,0x00000033,0x000200f8, + 0x00000035,0x0004003b,0x00000007,0x0000009f,0x00000007,0x0004003d,0x00000018,0x00000099, + 0x00000033,0x00040070,0x00000006,0x0000009a,0x00000099,0x00050085,0x00000006,0x0000009c, + 0x0000009a,0x0000009b,0x00050081,0x00000006,0x0000009e,0x0000009c,0x0000009d,0x0003003e, + 0x0000009f,0x0000009e,0x00050039,0x00000006,0x000000a0,0x0000000a,0x0000009f,0x000200fe, + 0x000000a0,0x00010038,0x00050036,0x00000002,0x0000003a,0x00000000,0x00000036,0x00030037, + 0x00000019,0x00000037,0x00030037,0x0000000d,0x00000038,0x00030037,0x00000007,0x00000039, + 0x000200f8,0x0000003b,0x0004003b,0x00000007,0x000000ab,0x00000007,0x0004003d,0x0000000c, + 0x000000a3,0x00000038,0x0007004f,0x00000012,0x000000a4,0x000000a3,0x000000a3,0x00000000, + 0x00000001,0x0004003d,0x00000018,0x000000a5,0x00000037,0x0006000c,0x0000000c,0x000000a6, + 0x00000001,0x00000040,0x000000a5,0x0007004f,0x00000012,0x000000a7,0x000000a6,0x000000a6, + 0x00000000,0x00000001,0x00050083,0x00000012,0x000000a8,0x000000a4,0x000000a7,0x0006000c, + 0x00000012,0x000000a9,0x00000001,0x00000004,0x000000a8,0x0003003e,0x000000ab,0x000000aa, + 0x00050039,0x00000012,0x000000ac,0x00000023,0x000000ab,0x000500b8,0x000000ae,0x000000af, + 0x000000a9,0x000000ac,0x0004009b,0x000000ad,0x000000b0,0x000000af,0x000300f7,0x000000b2, + 0x00000000,0x000400fa,0x000000b0,0x000000b1,0x000000b7,0x000200f8,0x000000b1,0x0004003d, + 0x00000006,0x000000b3,0x00000039,0x00050041,0x00000007,0x000000b4,0x00000038,0x00000073, + 0x0004003d,0x00000006,0x000000b5,0x000000b4,0x0007000c,0x00000006,0x000000b6,0x00000001, + 0x00000025,0x000000b3,0x000000b5,0x0003003e,0x00000039,0x000000b6,0x000200f9,0x000000b2, + 0x000200f8,0x000000b7,0x0003003e,0x00000039,0x00000080,0x000200f9,0x000000b2,0x000200f8, + 0x000000b2,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000,0x0000003f, + 0x00030037,0x00000019,0x00000040,0x00030037,0x00000007,0x00000041,0x00030037,0x0000000d, + 0x00000042,0x00030037,0x0000000d,0x00000043,0x00030037,0x0000003e,0x00000044,0x000200f8, + 0x00000046,0x0004003b,0x000000b9,0x000000ba,0x00000007,0x0004003b,0x00000007,0x000000c4, + 0x00000007,0x0004003b,0x00000007,0x000000e5,0x00000007,0x0004003b,0x00000007,0x000000e7, + 0x00000007,0x0004003b,0x00000019,0x000000ed,0x00000007,0x0004003b,0x00000019,0x000000fc, + 0x00000007,0x0004003b,0x0000000d,0x000000fe,0x00000007,0x0004003b,0x00000007,0x000000ff, + 0x00000007,0x0004003b,0x0000010e,0x0000010f,0x00000007,0x0004003b,0x0000000d,0x00000118, + 0x00000007,0x0004003b,0x0000000d,0x0000011d,0x00000007,0x0004003b,0x00000013,0x00000123, + 0x00000007,0x0004003b,0x00000013,0x0000012d,0x00000007,0x0004003b,0x00000013,0x00000136, + 0x00000007,0x0004003b,0x00000007,0x00000138,0x00000007,0x0004003b,0x00000019,0x00000143, + 0x00000007,0x0004003b,0x00000007,0x0000015d,0x00000007,0x0004003b,0x0000010e,0x00000160, + 0x00000007,0x0004003b,0x0000000d,0x00000163,0x00000007,0x0004003b,0x0000000d,0x00000167, + 0x00000007,0x0004003b,0x00000013,0x0000016d,0x00000007,0x0004003b,0x00000007,0x00000175, + 0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007,0x0004003b,0x00000007,0x00000183, + 0x00000007,0x0004003b,0x00000007,0x0000018b,0x00000007,0x0004003d,0x00000018,0x000000c0, + 0x00000040,0x00060041,0x000000c1,0x000000c2,0x000000be,0x000000bf,0x000000c0,0x0004003d, + 0x000000b8,0x000000c3,0x000000c2,0x0003003e,0x000000ba,0x000000c3,0x0004003d,0x00000006, + 0x000000c5,0x00000041,0x0003003e,0x000000c4,0x000000c5,0x00050041,0x00000019,0x000000c6, + 0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000c7,0x000000c6,0x000500c7,0x00000018, + 0x000000c9,0x000000c7,0x000000c8,0x000500ab,0x000000ad,0x000000ca,0x000000c9,0x00000065, + 0x000300f7,0x000000cc,0x00000000,0x000400fa,0x000000ca,0x000000cb,0x000000cc,0x000200f8, + 0x000000cb,0x0004003d,0x00000006,0x000000cd,0x000000c4,0x0006000c,0x00000006,0x000000ce, + 0x00000001,0x00000004,0x000000cd,0x0003003e,0x000000c4,0x000000ce,0x000300f7,0x000000d1, + 0x00000000,0x000400fa,0x000000cf,0x000000d0,0x000000d1,0x000200f8,0x000000d0,0x00050041, + 0x00000019,0x000000d2,0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000d3,0x000000d2, + 0x000500c7,0x00000018,0x000000d5,0x000000d3,0x000000d4,0x000500ab,0x000000ad,0x000000d6, + 0x000000d5,0x00000065,0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x000700f5,0x000000ad, + 0x000000d7,0x000000cf,0x000000cb,0x000000d6,0x000000d0,0x000300f7,0x000000d9,0x00000000, + 0x000400fa,0x000000d7,0x000000d8,0x000000d9,0x000200f8,0x000000d8,0x0004003d,0x00000006, + 0x000000da,0x000000c4,0x00050085,0x00000006,0x000000dc,0x000000da,0x000000db,0x0006000c, + 0x00000006,0x000000dd,0x00000001,0x0000000a,0x000000dc,0x00050085,0x00000006,0x000000df, + 0x000000dd,0x000000de,0x00050081,0x00000006,0x000000e1,0x000000df,0x000000e0,0x0006000c, + 0x00000006,0x000000e2,0x00000001,0x00000004,0x000000e1,0x00050083,0x00000006,0x000000e3, + 0x0000007f,0x000000e2,0x0003003e,0x000000c4,0x000000e3,0x000200f9,0x000000d9,0x000200f8, + 0x000000d9,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d,0x00000006,0x000000e4, + 0x000000c4,0x0003003e,0x000000e5,0x00000080,0x00050039,0x00000006,0x000000e6,0x0000001f, + 0x000000e5,0x0003003e,0x000000e7,0x0000007f,0x00050039,0x00000006,0x000000e8,0x0000001f, + 0x000000e7,0x0008000c,0x00000006,0x000000e9,0x00000001,0x0000002b,0x000000e4,0x000000e6, + 0x000000e8,0x0003003e,0x000000c4,0x000000e9,0x000300f7,0x000000ec,0x00000000,0x000400fa, + 0x000000ea,0x000000eb,0x000000ec,0x000200f8,0x000000eb,0x00050041,0x00000019,0x000000ee, + 0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000ef,0x000000ee,0x000500c2,0x00000018, + 0x000000f1,0x000000ef,0x000000f0,0x0003003e,0x000000ed,0x000000f1,0x0004003d,0x00000018, + 0x000000f2,0x000000ed,0x000500ab,0x000000ad,0x000000f3,0x000000f2,0x00000065,0x000300f7, + 0x000000f5,0x00000000,0x000400fa,0x000000f3,0x000000f4,0x000000f5,0x000200f8,0x000000f4, + 0x0004003d,0x000000f6,0x000000f9,0x000000f8,0x00050062,0x0000000c,0x000000fb,0x000000f9, + 0x000000fa,0x0004003d,0x00000018,0x000000fd,0x000000ed,0x0003003e,0x000000fc,0x000000fd, + 0x0003003e,0x000000fe,0x000000fb,0x0004003d,0x00000006,0x00000100,0x000000c4,0x0003003e, + 0x000000ff,0x00000100,0x00070039,0x00000002,0x00000101,0x0000003a,0x000000fc,0x000000fe, + 0x000000ff,0x0004003d,0x00000006,0x00000102,0x000000ff,0x0003003e,0x000000c4,0x00000102, + 0x000200f9,0x000000f5,0x000200f8,0x000000f5,0x000200f9,0x000000ec,0x000200f8,0x000000ec, + 0x000300f7,0x00000105,0x00000000,0x000400fa,0x00000103,0x00000104,0x00000105,0x000200f8, + 0x00000104,0x00050041,0x00000019,0x00000106,0x000000ba,0x00000065,0x0004003d,0x00000018, + 0x00000107,0x00000106,0x000500c7,0x00000018,0x00000109,0x00000107,0x00000108,0x000500ab, + 0x000000ad,0x0000010a,0x00000109,0x00000065,0x000200f9,0x00000105,0x000200f8,0x00000105, + 0x000700f5,0x000000ad,0x0000010b,0x00000103,0x000000ec,0x0000010a,0x00000104,0x000300f7, + 0x0000010d,0x00000000,0x000400fa,0x0000010b,0x0000010c,0x0000010d,0x000200f8,0x0000010c, + 0x0004003d,0x00000018,0x00000114,0x00000040,0x00050084,0x00000018,0x00000116,0x00000114, + 0x00000115,0x00050080,0x00000018,0x00000117,0x00000116,0x00000073,0x00060041,0x00000119, + 0x0000011a,0x00000113,0x000000bf,0x00000117,0x0004003d,0x0000000c,0x0000011b,0x0000011a, + 0x0003003e,0x00000118,0x0000011b,0x00050039,0x00000029,0x0000011c,0x0000002c,0x00000118, + 0x0003003e,0x0000010f,0x0000011c,0x0004003d,0x00000018,0x0000011e,0x00000040,0x00050084, + 0x00000018,0x0000011f,0x0000011e,0x00000115,0x00050080,0x00000018,0x00000120,0x0000011f, + 0x00000076,0x00060041,0x00000119,0x00000121,0x00000113,0x000000bf,0x00000120,0x0004003d, + 0x0000000c,0x00000122,0x00000121,0x0003003e,0x0000011d,0x00000122,0x0004003d,0x00000029, + 0x00000124,0x0000010f,0x0004003d,0x0000000c,0x00000127,0x00000126,0x0007004f,0x00000012, + 0x00000128,0x00000127,0x00000127,0x00000000,0x00000001,0x00050091,0x00000012,0x00000129, + 0x00000124,0x00000128,0x0004003d,0x0000000c,0x0000012a,0x0000011d,0x0007004f,0x00000012, + 0x0000012b,0x0000012a,0x0000012a,0x00000000,0x00000001,0x00050081,0x00000012,0x0000012c, + 0x00000129,0x0000012b,0x0003003e,0x00000123,0x0000012c,0x0004003d,0x00000012,0x0000012e, + 0x00000123,0x0006000c,0x00000012,0x0000012f,0x00000001,0x00000004,0x0000012e,0x0004003d, + 0x0000000c,0x00000130,0x0000011d,0x0007004f,0x00000012,0x00000131,0x00000130,0x00000130, + 0x00000002,0x00000003,0x00050085,0x00000012,0x00000132,0x0000012f,0x00000131,0x0004003d, + 0x0000000c,0x00000133,0x0000011d,0x0007004f,0x00000012,0x00000134,0x00000133,0x00000133, + 0x00000002,0x00000003,0x00050083,0x00000012,0x00000135,0x00000132,0x00000134,0x0003003e, + 0x00000136,0x00000135,0x00050039,0x00000012,0x00000137,0x00000016,0x00000136,0x0003003e, + 0x0000012d,0x00000137,0x00050041,0x00000007,0x00000139,0x0000012d,0x00000065,0x0004003d, + 0x00000006,0x0000013a,0x00000139,0x00050041,0x00000007,0x0000013b,0x0000012d,0x00000068, + 0x0004003d,0x00000006,0x0000013c,0x0000013b,0x0007000c,0x00000006,0x0000013d,0x00000001, + 0x00000025,0x0000013a,0x0000013c,0x00050081,0x00000006,0x0000013e,0x0000013d,0x000000db, + 0x0008000c,0x00000006,0x0000013f,0x00000001,0x0000002b,0x0000013e,0x00000080,0x0000007f, + 0x0003003e,0x00000138,0x0000013f,0x0004003d,0x00000006,0x00000140,0x000000c4,0x0004003d, + 0x00000006,0x00000141,0x00000138,0x0007000c,0x00000006,0x00000142,0x00000001,0x00000025, + 0x00000140,0x00000141,0x0003003e,0x000000c4,0x00000142,0x000200f9,0x0000010d,0x000200f8, + 0x0000010d,0x00050041,0x00000019,0x00000144,0x000000ba,0x00000065,0x0004003d,0x00000018, + 0x00000145,0x00000144,0x000500c7,0x00000018,0x00000147,0x00000145,0x00000146,0x0003003e, + 0x00000143,0x00000147,0x0004003d,0x00000018,0x00000148,0x00000143,0x000500b2,0x000000ad, + 0x00000149,0x00000148,0x00000068,0x000300f7,0x0000014b,0x00000000,0x000400fa,0x00000149, + 0x0000014a,0x0000015f,0x000200f8,0x0000014a,0x00050041,0x00000019,0x0000014c,0x000000ba, + 0x00000068,0x0004003d,0x00000018,0x0000014d,0x0000014c,0x0006000c,0x0000000c,0x0000014e, + 0x00000001,0x00000040,0x0000014d,0x0003003e,0x00000042,0x0000014e,0x0004003d,0x00000018, + 0x0000014f,0x00000143,0x000500aa,0x000000ad,0x00000150,0x0000014f,0x00000065,0x000500a7, + 0x000000ad,0x00000151,0x000000ea,0x00000150,0x000300f7,0x00000153,0x00000000,0x000400fa, + 0x00000151,0x00000152,0x00000153,0x000200f8,0x00000152,0x0004003d,0x0000000c,0x00000154, + 0x00000042,0x0007004f,0x00000012,0x00000155,0x00000154,0x00000154,0x00000002,0x00000003, + 0x00050041,0x00000007,0x00000156,0x00000043,0x00000065,0x00050051,0x00000006,0x00000157, + 0x00000155,0x00000000,0x0003003e,0x00000156,0x00000157,0x00050041,0x00000007,0x00000158, + 0x00000043,0x00000068,0x00050051,0x00000006,0x00000159,0x00000155,0x00000001,0x0003003e, + 0x00000158,0x00000159,0x0004003d,0x00000006,0x0000015a,0x000000c4,0x00050041,0x00000007, + 0x0000015b,0x00000043,0x00000073,0x0003003e,0x0000015b,0x0000015a,0x00050041,0x00000007, + 0x0000015c,0x00000043,0x00000076,0x0003003e,0x0000015c,0x0000007f,0x0003003e,0x0000015d, + 0x00000080,0x00050039,0x0000000c,0x0000015e,0x00000027,0x0000015d,0x0003003e,0x00000042, + 0x0000015e,0x000200f9,0x00000153,0x000200f8,0x00000153,0x000200f9,0x0000014b,0x000200f8, + 0x0000015f,0x0004003d,0x00000018,0x00000161,0x00000040,0x00050084,0x00000018,0x00000162, + 0x00000161,0x00000115,0x00060041,0x00000119,0x00000164,0x00000113,0x000000bf,0x00000162, + 0x0004003d,0x0000000c,0x00000165,0x00000164,0x0003003e,0x00000163,0x00000165,0x00050039, + 0x00000029,0x00000166,0x0000002c,0x00000163,0x0003003e,0x00000160,0x00000166,0x0004003d, + 0x00000018,0x00000168,0x00000040,0x00050084,0x00000018,0x00000169,0x00000168,0x00000115, + 0x00050080,0x00000018,0x0000016a,0x00000169,0x00000068,0x00060041,0x00000119,0x0000016b, + 0x00000113,0x000000bf,0x0000016a,0x0004003d,0x0000000c,0x0000016c,0x0000016b,0x0003003e, + 0x00000167,0x0000016c,0x0004003d,0x00000029,0x0000016e,0x00000160,0x0004003d,0x0000000c, + 0x0000016f,0x00000126,0x0007004f,0x00000012,0x00000170,0x0000016f,0x0000016f,0x00000000, + 0x00000001,0x00050091,0x00000012,0x00000171,0x0000016e,0x00000170,0x0004003d,0x0000000c, + 0x00000172,0x00000167,0x0007004f,0x00000012,0x00000173,0x00000172,0x00000172,0x00000000, + 0x00000001,0x00050081,0x00000012,0x00000174,0x00000171,0x00000173,0x0003003e,0x0000016d, + 0x00000174,0x0004003d,0x00000018,0x00000176,0x00000143,0x000500aa,0x000000ad,0x00000177, + 0x00000176,0x00000073,0x000300f7,0x0000017a,0x00000000,0x000400fa,0x00000177,0x00000179, + 0x0000017d,0x000200f8,0x00000179,0x00050041,0x00000007,0x0000017b,0x0000016d,0x00000065, + 0x0004003d,0x00000006,0x0000017c,0x0000017b,0x0003003e,0x00000178,0x0000017c,0x000200f9, + 0x0000017a,0x000200f8,0x0000017d,0x0004003d,0x00000012,0x0000017e,0x0000016d,0x0006000c, + 0x00000006,0x0000017f,0x00000001,0x00000042,0x0000017e,0x0003003e,0x00000178,0x0000017f, + 0x000200f9,0x0000017a,0x000200f8,0x0000017a,0x0004003d,0x00000006,0x00000180,0x00000178, + 0x0003003e,0x00000175,0x00000180,0x0004003d,0x00000006,0x00000181,0x00000175,0x0008000c, + 0x00000006,0x00000182,0x00000001,0x0000002b,0x00000181,0x00000080,0x0000007f,0x0003003e, + 0x00000175,0x00000182,0x0004003d,0x00000006,0x00000184,0x00000175,0x00050041,0x00000007, + 0x00000185,0x00000167,0x00000073,0x0004003d,0x00000006,0x00000186,0x00000185,0x00050085, + 0x00000006,0x00000187,0x00000184,0x00000186,0x00050041,0x00000007,0x00000188,0x00000167, + 0x00000076,0x0004003d,0x00000006,0x00000189,0x00000188,0x00050081,0x00000006,0x0000018a, + 0x00000187,0x00000189,0x0003003e,0x00000183,0x0000018a,0x00050041,0x00000019,0x0000018c, + 0x000000ba,0x00000068,0x0004003d,0x00000018,0x0000018d,0x0000018c,0x0004007c,0x00000006, + 0x0000018e,0x0000018d,0x0003003e,0x0000018b,0x0000018e,0x0004003d,0x0000018f,0x00000192, + 0x00000191,0x0004003d,0x00000193,0x00000196,0x00000195,0x00050056,0x00000197,0x00000198, + 0x00000192,0x00000196,0x0004003d,0x00000006,0x00000199,0x00000183,0x0004003d,0x00000006, + 0x0000019a,0x0000018b,0x00050050,0x00000012,0x0000019b,0x00000199,0x0000019a,0x00070058, + 0x0000000c,0x0000019c,0x00000198,0x0000019b,0x00000002,0x00000080,0x0003003e,0x00000042, + 0x0000019c,0x000200f9,0x0000014b,0x000200f8,0x0000014b,0x0004003d,0x00000006,0x0000019d, + 0x000000c4,0x00050041,0x00000007,0x0000019e,0x00000042,0x00000076,0x0004003d,0x00000006, + 0x0000019f,0x0000019e,0x00050085,0x00000006,0x000001a0,0x0000019f,0x0000019d,0x00050041, + 0x00000007,0x000001a1,0x00000042,0x00000076,0x0003003e,0x000001a1,0x000001a0,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000004a,0x00000000,0x00000047,0x00030037,0x0000000d, + 0x00000048,0x00030037,0x0000003e,0x00000049,0x000200f8,0x0000004b,0x0004003d,0x0000000c, + 0x000001a4,0x00000048,0x0003003e,0x000001a3,0x000001a4,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.frag.h new file mode 100644 index 00000000..b99086c8 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.frag.h @@ -0,0 +1,1264 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_mesh_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x0000052b,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000003b9, + 0x0000045f,0x00000461,0x0000046f,0x00000476,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61,0x34667628, + 0x0000003b,0x00040005,0x0000000f,0x777a7978,0x00000000,0x00090005,0x00000016,0x74736163, + 0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005,0x00000015, + 0x00007978,0x00080005,0x0000001c,0x74736163,0x6e69755f,0x6f745f74,0x6873755f,0x2874726f, + 0x003b3175,0x00030005,0x0000001b,0x00000078,0x00060005,0x0000001f,0x656b616d,0x6c61685f, + 0x31662866,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00070005,0x00000024,0x656b616d, + 0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x00000022,0x00000078,0x00030005, + 0x00000023,0x00000079,0x00060005,0x00000028,0x656b616d,0x6c61685f,0x66283266,0x00003b31, + 0x00030005,0x00000027,0x00000078,0x00080005,0x0000002f,0x656b616d,0x6c61685f,0x66283366, + 0x31663b31,0x3b31663b,0x00000000,0x00030005,0x0000002c,0x00000078,0x00030005,0x0000002d, + 0x00000079,0x00030005,0x0000002e,0x0000007a,0x00060005,0x00000033,0x656b616d,0x6c61685f, + 0x66283366,0x00003b31,0x00030005,0x00000032,0x00000078,0x00060005,0x00000037,0x656b616d, + 0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000036,0x00000078,0x00080005,0x0000003e, + 0x656b616d,0x6c61685f,0x33783266,0x33667628,0x3366763b,0x0000003b,0x00030005,0x0000003c, + 0x00000061,0x00030005,0x0000003d,0x00000062,0x00070005,0x00000043,0x656b616d,0x6f6c665f, + 0x78327461,0x66762832,0x00003b34,0x00030005,0x00000042,0x00000078,0x00060005,0x00000046, + 0x756d6e75,0x7069746c,0x7628796c,0x003b3466,0x00040005,0x00000045,0x6f6c6f63,0x00000072, + 0x00060005,0x0000004a,0x5f6e696d,0x756c6176,0x66762865,0x00003b34,0x00040005,0x00000049, + 0x346e696d,0x00000000,0x00050005,0x0000004e,0x766e696d,0x66762833,0x00003b33,0x00030005, + 0x0000004d,0x00000063,0x00050005,0x00000051,0x7678616d,0x66762833,0x00003b33,0x00030005, + 0x00000050,0x00000063,0x00050005,0x00000054,0x766d756c,0x66762833,0x00003b33,0x00030005, + 0x00000053,0x00000063,0x00050005,0x00000057,0x76746173,0x66762833,0x00003b33,0x00030005, + 0x00000056,0x00000063,0x00060005,0x0000005b,0x70696c63,0x6c6f635f,0x7628726f,0x003b3366, + 0x00040005,0x0000005a,0x6f6c6f63,0x00000072,0x00070005,0x00000060,0x5f746573,0x286d756c, + 0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005e,0x73616263,0x00000065,0x00040005, + 0x0000005f,0x6d756c63,0x00000000,0x00090005,0x00000066,0x5f746573,0x5f6d756c,0x28746173, + 0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005,0x00000063,0x73616263,0x00000065, + 0x00040005,0x00000064,0x74617363,0x00000000,0x00040005,0x00000065,0x6d756c63,0x00000000, + 0x000b0005,0x0000006c,0x61766461,0x6465636e,0x656c625f,0x635f646e,0x6666656f,0x66762873, + 0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000069,0x00637273,0x00030005,0x0000006a, + 0x00747364,0x00040005,0x0000006b,0x65646f6d,0x00000000,0x000e0005,0x00000072,0x61766461, + 0x6465636e,0x6c6f635f,0x625f726f,0x646e656c,0x6572705f,0x6372735f,0x65766f5f,0x66762872, + 0x66763b33,0x31753b34,0x0000003b,0x00030005,0x0000006f,0x00637273,0x00030005,0x00000070, + 0x00747364,0x00040005,0x00000071,0x65646f6d,0x00000000,0x00060005,0x00000076,0x6d6f7266, + 0x7869665f,0x75286465,0x00003b31,0x00030005,0x00000075,0x00000078,0x00080005,0x0000007c, + 0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005,0x00000079, + 0x70696c63,0x00004449,0x00050005,0x0000007a,0x70696c63,0x61746144,0x00000000,0x00050005, + 0x0000007b,0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000087,0x6f736572,0x5f65766c, + 0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000,0x00040005, + 0x00000082,0x68746170,0x00004449,0x00060005,0x00000083,0x65766f63,0x65676172,0x6e756f43, + 0x00000074,0x00060005,0x00000084,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005, + 0x00000085,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000086,0x736c705f,0x726f6f43, + 0x00000064,0x00080005,0x0000008c,0x74696d65,0x736c705f,0x6c6f635f,0x7628726f,0x763b3466, + 0x003b3269,0x00060005,0x0000008a,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005, + 0x0000008b,0x736c705f,0x726f6f43,0x00000064,0x00080005,0x00000090,0x74696d65,0x736c705f, + 0x696c635f,0x66762870,0x69763b34,0x00003b32,0x00050005,0x0000008e,0x67617266,0x70696c43, + 0x0074754f,0x00050005,0x0000008f,0x736c705f,0x726f6f43,0x00000064,0x00030005,0x000000a9, + 0x00746572,0x00030005,0x000000b3,0x00746572,0x00030005,0x000000bb,0x00746572,0x00030005, + 0x000000c6,0x00746572,0x00030005,0x000000d0,0x00746572,0x00030005,0x000000de,0x00746572, + 0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005,0x00000116,0x61726170,0x0000006d, + 0x00040005,0x00000124,0x326e696d,0x00000000,0x00040005,0x0000012a,0x316e696d,0x00000000, + 0x00040005,0x0000014b,0x61726170,0x0000006d,0x00040005,0x0000014c,0x61726170,0x0000006d, + 0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000152,0x61726170,0x0000006d, + 0x00040005,0x00000155,0x61726170,0x0000006d,0x00030005,0x0000015b,0x006d756c,0x00040005, + 0x0000015c,0x61726170,0x0000006d,0x00040005,0x0000015f,0x636e696d,0x00006c6f,0x00040005, + 0x00000160,0x61726170,0x0000006d,0x00040005,0x00000163,0x6378616d,0x00006c6f,0x00040005, + 0x00000164,0x61726170,0x0000006d,0x00040005,0x0000018f,0x7361626c,0x00000065,0x00040005, + 0x00000190,0x61726170,0x0000006d,0x00040005,0x00000193,0x6d756c6c,0x00000000,0x00040005, + 0x00000194,0x61726170,0x0000006d,0x00040005,0x00000197,0x6669646c,0x00000066,0x00040005, + 0x0000019b,0x6f6c6f63,0x00000072,0x00040005,0x0000019d,0x61726170,0x0000006d,0x00040005, + 0x000001a1,0x61726170,0x0000006d,0x00040005,0x000001a6,0x626e696d,0x00657361,0x00040005, + 0x000001a7,0x61726170,0x0000006d,0x00040005,0x000001aa,0x73616273,0x00000065,0x00040005, + 0x000001ab,0x61726170,0x0000006d,0x00040005,0x000001ae,0x74617373,0x00000000,0x00040005, + 0x000001af,0x61726170,0x0000006d,0x00040005,0x000001b6,0x6f6c6f63,0x00000072,0x00040005, + 0x000001c1,0x61726170,0x0000006d,0x00040005,0x000001c3,0x61726170,0x0000006d,0x00040005, + 0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001db,0x66656f63,0x00007366,0x00030005, + 0x000001e9,0x00000069,0x00040005,0x00000222,0x61726170,0x0000006d,0x00040005,0x00000225, + 0x61726170,0x0000006d,0x00040005,0x00000228,0x61726170,0x0000006d,0x00040005,0x00000236, + 0x61726170,0x0000006d,0x00040005,0x00000239,0x61726170,0x0000006d,0x00030005,0x0000023e, + 0x00000069,0x00030005,0x00000267,0x00000069,0x00080005,0x000002d4,0x616e456b,0x48656c62, + 0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005,0x000002d8,0x61726170,0x0000006d, + 0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002dd,0x61726170,0x0000006d, + 0x00040005,0x000002df,0x61726170,0x0000006d,0x00040005,0x000002e1,0x61726170,0x0000006d, + 0x00040005,0x000002e8,0x61726170,0x0000006d,0x00040005,0x000002ea,0x61726170,0x0000006d, + 0x00040005,0x000002ed,0x61726170,0x0000006d,0x00040005,0x000002ef,0x61726170,0x0000006d, + 0x00040005,0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f8,0x61726170,0x0000006d, + 0x00040005,0x000002fa,0x61726170,0x0000006d,0x00040005,0x000002fd,0x61726170,0x0000006d, + 0x00040005,0x000002ff,0x61726170,0x0000006d,0x00040005,0x00000306,0x61726170,0x0000006d, + 0x00040005,0x00000308,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170,0x0000006d, + 0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005,0x00000315,0x66656f63,0x00007366, + 0x00040005,0x00000316,0x61726170,0x0000006d,0x00040005,0x00000318,0x61726170,0x0000006d, + 0x00040005,0x0000031b,0x61726170,0x0000006d,0x00030005,0x0000031e,0x00000070,0x00040005, + 0x00000322,0x61726170,0x0000006d,0x00040005,0x00000325,0x61726170,0x0000006d,0x00040005, + 0x00000327,0x61726170,0x0000006d,0x00040005,0x00000329,0x61726170,0x0000006d,0x00040005, + 0x00000336,0x61726170,0x0000006d,0x00040005,0x00000342,0x61726170,0x0000006d,0x00050005, + 0x00000350,0x6e696170,0x74614474,0x00000061,0x00050005,0x00000352,0x6e696150,0x66754274, + 0x00726566,0x00050006,0x00000352,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000354, + 0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005,0x00000359, + 0x65766f63,0x65676172,0x00000000,0x00060005,0x00000364,0x616e456b,0x45656c62,0x4f6e6576, + 0x00006464,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037a,0x61726170, + 0x0000006d,0x00060005,0x0000037d,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00040005, + 0x00000380,0x70696c63,0x00004449,0x00060005,0x0000038b,0x5f6e695f,0x70696c63,0x66667542, + 0x00007265,0x00040005,0x0000038f,0x61726170,0x0000006d,0x00040005,0x00000391,0x61726170, + 0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00060005,0x00000396,0x616e456b, + 0x43656c62,0x5270696c,0x00746365,0x00030005,0x000003a2,0x0000004d,0x00060005,0x000003a4, + 0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x000003a4,0x00000000,0x6c61765f, + 0x00736575,0x00090005,0x000003a6,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875, + 0x72656666,0x00000000,0x00040005,0x000003ab,0x61726170,0x0000006d,0x00050005,0x000003b0, + 0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003b6,0x70696c63,0x726f6f43,0x00000064, + 0x00060005,0x000003b9,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005,0x000003c0, + 0x74736964,0x00005958,0x00040005,0x000003c9,0x61726170,0x0000006d,0x00070005,0x000003cb, + 0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x000003d6,0x6e696170, + 0x70795474,0x00000065,0x00040005,0x000003f0,0x61726170,0x0000006d,0x00030005,0x000003f3, + 0x0000004d,0x00040005,0x000003f6,0x61726170,0x0000006d,0x00050005,0x000003fa,0x6e617274, + 0x74616c73,0x00000065,0x00050005,0x00000400,0x6e696170,0x6f6f4374,0x00006472,0x00030005, + 0x00000408,0x00000074,0x00030005,0x00000416,0x00000078,0x00030005,0x0000041e,0x00000079, + 0x00080005,0x00000424,0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065, + 0x00050005,0x00000428,0x64617267,0x706d6153,0x0072656c,0x00080005,0x00000435,0x616e456b, + 0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005,0x0000043e,0x6e656c62, + 0x646f4d64,0x00000065,0x00040005,0x00000444,0x61726170,0x0000006d,0x00050005,0x0000044a, + 0x43747364,0x726f6c6f,0x00000000,0x00060005,0x0000044b,0x5f6e695f,0x6f6c6f63,0x66754272, + 0x00726566,0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000451,0x61726170, + 0x0000006d,0x00040005,0x00000454,0x61726170,0x0000006d,0x00040005,0x00000455,0x61726170, + 0x0000006d,0x00050005,0x0000045f,0x6f6c6f63,0x66754272,0x00726566,0x00050005,0x00000461, + 0x70696c63,0x66667542,0x00007265,0x00050005,0x00000463,0x736c705f,0x726f6f43,0x00000064, + 0x00050005,0x00000468,0x67616d69,0x6c6f4365,0x0000726f,0x00080005,0x00000469,0x5058455f, + 0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x0000046b,0x67616d69, + 0x6d615365,0x72656c70,0x00000000,0x00050005,0x0000046f,0x65745f76,0x6f6f4378,0x00006472, + 0x00060005,0x00000472,0x67616d69,0x766f4365,0x67617265,0x00000065,0x00070005,0x00000475, + 0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x00000476,0x6c635f76, + 0x65527069,0x00007463,0x00040005,0x00000477,0x61726170,0x0000006d,0x00040005,0x0000047a, + 0x61726170,0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00070005,0x00000481, + 0x7473616c,0x65766f43,0x65676172,0x61746144,0x00000000,0x00080005,0x00000484,0x65766f63, + 0x65676172,0x6d6f7441,0x75426369,0x72656666,0x00000000,0x00050005,0x0000048a,0x7473616c, + 0x68746150,0x00004449,0x00040005,0x0000048e,0x61726170,0x0000006d,0x00070005,0x00000490, + 0x7473616c,0x65766f43,0x65676172,0x6e756f43,0x00000074,0x00040005,0x00000494,0x61726170, + 0x0000006d,0x00050005,0x00000496,0x67617266,0x70696c43,0x0074754f,0x00040005,0x00000497, + 0x61726170,0x0000006d,0x00060005,0x00000499,0x67617266,0x6f6c6f43,0x74754f72,0x00000000, + 0x00040005,0x0000049a,0x61726170,0x0000006d,0x00040005,0x0000049c,0x61726170,0x0000006d, + 0x00040005,0x0000049e,0x61726170,0x0000006d,0x00040005,0x0000049f,0x61726170,0x0000006d, + 0x00040005,0x000004a1,0x61726170,0x0000006d,0x00090005,0x000004b3,0x5058455f,0x4554524f, + 0x6d495f44,0x44656761,0x55776172,0x6f66696e,0x00736d72,0x00060006,0x000004b3,0x00000000, + 0x77656976,0x7274614d,0x00007869,0x00060006,0x000004b3,0x00000001,0x6e617274,0x74616c73, + 0x00000065,0x00050006,0x000004b3,0x00000002,0x6361706f,0x00797469,0x00050006,0x000004b3, + 0x00000003,0x64646170,0x00676e69,0x00090006,0x000004b3,0x00000004,0x70696c63,0x74636552, + 0x65766e49,0x4d657372,0x69727461,0x00000078,0x000a0006,0x000004b3,0x00000005,0x70696c63, + 0x74636552,0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x000004b3, + 0x00000006,0x70696c63,0x00004449,0x00060006,0x000004b3,0x00000007,0x6e656c62,0x646f4d64, + 0x00000065,0x00050006,0x000004b3,0x00000008,0x646e497a,0x00007865,0x00070005,0x000004b5, + 0x67616d69,0x61724465,0x696e5577,0x6d726f66,0x00000073,0x00050005,0x000004be,0x70696c63, + 0x61746144,0x00000000,0x00040005,0x000004ca,0x61726170,0x0000006d,0x00040005,0x000004cd, + 0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d5, + 0x61726170,0x0000006d,0x00050005,0x000004e8,0x43747364,0x726f6c6f,0x00000000,0x00040005, + 0x000004f1,0x61726170,0x0000006d,0x00040005,0x000004f4,0x61726170,0x0000006d,0x00040005, + 0x000004f8,0x61726170,0x0000006d,0x00040005,0x000004fb,0x61726170,0x0000006d,0x00040005, + 0x000004fc,0x61726170,0x0000006d,0x00040005,0x00000516,0x61726170,0x0000006d,0x00040005, + 0x00000518,0x61726170,0x0000006d,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005, + 0x0000051d,0x61726170,0x0000006d,0x00080005,0x00000524,0x616e456b,0x4e656c62,0x65747365, + 0x696c4364,0x6e697070,0x00000067,0x00060005,0x00000525,0x6f6c436b,0x69776b63,0x69466573, + 0x00006c6c,0x00090005,0x00000526,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065, + 0x73736170,0x00000000,0x00080005,0x00000528,0x5058455f,0x4554524f,0x6c465f44,0x55687375, + 0x6f66696e,0x00736d72,0x00090006,0x00000528,0x00000000,0x64617267,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00090006,0x00000528,0x00000001,0x73736574,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x00000528,0x00000002,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006, + 0x00000528,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00080006,0x00000528,0x00000004,0x646e6572,0x61547265,0x74656772, + 0x74646957,0x00000068,0x00080006,0x00000528,0x00000005,0x646e6572,0x61547265,0x74656772, + 0x67696548,0x00007468,0x00070006,0x00000528,0x00000006,0x6f6c6f63,0x656c4372,0x61567261, + 0x0065756c,0x00080006,0x00000528,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672, + 0x00006575,0x000a0006,0x00000528,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055, + 0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000528,0x00000009,0x65766f63,0x65676172, + 0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x00000528,0x0000000a,0x68746170, + 0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x00000528,0x0000000b,0x74726576, + 0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x0000052a,0x66696e75,0x736d726f, + 0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000,0x00030047, + 0x00000016,0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x0000001f,0x00000000, + 0x00030047,0x0000001e,0x00000000,0x00030047,0x00000024,0x00000000,0x00030047,0x00000022, + 0x00000000,0x00030047,0x00000023,0x00000000,0x00030047,0x00000028,0x00000000,0x00030047, + 0x00000027,0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047,0x0000002c,0x00000000, + 0x00030047,0x0000002d,0x00000000,0x00030047,0x0000002e,0x00000000,0x00030047,0x00000033, + 0x00000000,0x00030047,0x00000032,0x00000000,0x00030047,0x00000037,0x00000000,0x00030047, + 0x00000036,0x00000000,0x00030047,0x0000003e,0x00000000,0x00030047,0x0000003c,0x00000000, + 0x00030047,0x0000003d,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047,0x00000045, + 0x00000000,0x00030047,0x0000004a,0x00000000,0x00030047,0x00000049,0x00000000,0x00030047, + 0x0000004e,0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047,0x00000051,0x00000000, + 0x00030047,0x00000050,0x00000000,0x00030047,0x00000054,0x00000000,0x00030047,0x00000053, + 0x00000000,0x00030047,0x00000057,0x00000000,0x00030047,0x00000056,0x00000000,0x00030047, + 0x0000005b,0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x00000060,0x00000000, + 0x00030047,0x0000005e,0x00000000,0x00030047,0x0000005f,0x00000000,0x00030047,0x00000066, + 0x00000000,0x00030047,0x00000063,0x00000000,0x00030047,0x00000064,0x00000000,0x00030047, + 0x00000065,0x00000000,0x00030047,0x0000006c,0x00000000,0x00030047,0x00000069,0x00000000, + 0x00030047,0x0000006a,0x00000000,0x00030047,0x0000006b,0x00000000,0x00030047,0x00000072, + 0x00000000,0x00030047,0x0000006f,0x00000000,0x00030047,0x00000070,0x00000000,0x00030047, + 0x00000071,0x00000000,0x00030047,0x00000076,0x00000000,0x00030047,0x0000007a,0x00000000, + 0x00030047,0x0000007b,0x00000000,0x00030047,0x00000083,0x00000000,0x00030047,0x00000084, + 0x00000000,0x00030047,0x00000085,0x00000000,0x00030047,0x0000008a,0x00000000,0x00030047, + 0x0000008e,0x00000000,0x00030047,0x00000093,0x00000000,0x00030047,0x00000094,0x00000000, + 0x00030047,0x00000098,0x00000000,0x00030047,0x00000099,0x00000000,0x00030047,0x0000009d, + 0x00000000,0x00030047,0x0000009e,0x00000000,0x00030047,0x000000a2,0x00000000,0x00030047, + 0x000000a3,0x00000000,0x00030047,0x000000a6,0x00000000,0x00030047,0x000000a9,0x00000000, + 0x00030047,0x000000aa,0x00000000,0x00030047,0x000000ad,0x00000000,0x00030047,0x000000b0, + 0x00000000,0x00030047,0x000000b3,0x00000000,0x00030047,0x000000b4,0x00000000,0x00030047, + 0x000000b6,0x00000000,0x00030047,0x000000b8,0x00000000,0x00030047,0x000000bb,0x00000000, + 0x00030047,0x000000bc,0x00000000,0x00030047,0x000000be,0x00000000,0x00030047,0x000000c0, + 0x00000000,0x00030047,0x000000c3,0x00000000,0x00030047,0x000000c6,0x00000000,0x00030047, + 0x000000c7,0x00000000,0x00030047,0x000000c9,0x00000000,0x00030047,0x000000cb,0x00000000, + 0x00030047,0x000000cd,0x00000000,0x00030047,0x000000d0,0x00000000,0x00030047,0x000000d1, + 0x00000000,0x00030047,0x000000d3,0x00000000,0x00030047,0x000000d5,0x00000000,0x00030047, + 0x000000d7,0x00000000,0x00030047,0x000000da,0x00000000,0x00030047,0x000000de,0x00000000, + 0x00030047,0x000000e0,0x00000000,0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e5, + 0x00000000,0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fe,0x00000000,0x00030047, + 0x00000104,0x00000000,0x00030047,0x00000105,0x00000000,0x00030047,0x00000106,0x00000000, + 0x00030047,0x00000107,0x00000000,0x00030047,0x00000108,0x00000000,0x00030047,0x0000010f, + 0x00000000,0x00030047,0x00000110,0x00000000,0x00030047,0x00000111,0x00000000,0x00030047, + 0x00000112,0x00000000,0x00030047,0x00000113,0x00000000,0x00030047,0x00000114,0x00000000, + 0x00030047,0x00000116,0x00000000,0x00030047,0x00000117,0x00000000,0x00030047,0x00000119, + 0x00000000,0x00030047,0x0000011a,0x00000000,0x00030047,0x00000121,0x00000000,0x00030047, + 0x00000124,0x00000000,0x00030047,0x00000125,0x00000000,0x00030047,0x00000126,0x00000000, + 0x00030047,0x00000127,0x00000000,0x00030047,0x00000128,0x00000000,0x00030047,0x00000129, + 0x00000000,0x00030047,0x0000012a,0x00000000,0x00030047,0x0000012c,0x00000000,0x00030047, + 0x0000012e,0x00000000,0x00030047,0x0000012f,0x00000000,0x00030047,0x00000130,0x00000000, + 0x00030047,0x00000134,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047,0x00000137, + 0x00000000,0x00030047,0x00000139,0x00000000,0x00030047,0x0000013a,0x00000000,0x00030047, + 0x0000013e,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047,0x00000141,0x00000000, + 0x00030047,0x00000143,0x00000000,0x00030047,0x00000144,0x00000000,0x00030047,0x00000147, + 0x00000000,0x00030047,0x0000014b,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047, + 0x0000014d,0x00000000,0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000, + 0x00030047,0x00000152,0x00000000,0x00030047,0x00000153,0x00000000,0x00030047,0x00000154, + 0x00000000,0x00030047,0x00000155,0x00000000,0x00030047,0x00000156,0x00000000,0x00030047, + 0x00000157,0x00000000,0x00030047,0x00000158,0x00000000,0x00030047,0x0000015b,0x00000000, + 0x00030047,0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e, + 0x00000000,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000160,0x00000000,0x00030047, + 0x00000161,0x00000000,0x00030047,0x00000162,0x00000000,0x00030047,0x00000163,0x00000000, + 0x00030047,0x00000164,0x00000000,0x00030047,0x00000165,0x00000000,0x00030047,0x00000166, + 0x00000000,0x00030047,0x00000167,0x00000000,0x00030047,0x0000016b,0x00000000,0x00030047, + 0x0000016c,0x00000000,0x00030047,0x0000016d,0x00000000,0x00030047,0x0000016e,0x00000000, + 0x00030047,0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047,0x00000171, + 0x00000000,0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000,0x00030047, + 0x00000174,0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176,0x00000000, + 0x00030047,0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047,0x00000179, + 0x00000000,0x00030047,0x0000017d,0x00000000,0x00030047,0x0000017e,0x00000000,0x00030047, + 0x0000017f,0x00000000,0x00030047,0x00000180,0x00000000,0x00030047,0x00000181,0x00000000, + 0x00030047,0x00000182,0x00000000,0x00030047,0x00000183,0x00000000,0x00030047,0x00000184, + 0x00000000,0x00030047,0x00000185,0x00000000,0x00030047,0x00000186,0x00000000,0x00030047, + 0x00000187,0x00000000,0x00030047,0x00000188,0x00000000,0x00030047,0x00000189,0x00000000, + 0x00030047,0x0000018a,0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047,0x0000018c, + 0x00000000,0x00030047,0x0000018f,0x00000000,0x00030047,0x00000190,0x00000000,0x00030047, + 0x00000191,0x00000000,0x00030047,0x00000192,0x00000000,0x00030047,0x00000193,0x00000000, + 0x00030047,0x00000194,0x00000000,0x00030047,0x00000195,0x00000000,0x00030047,0x00000196, + 0x00000000,0x00030047,0x00000197,0x00000000,0x00030047,0x00000198,0x00000000,0x00030047, + 0x00000199,0x00000000,0x00030047,0x0000019a,0x00000000,0x00030047,0x0000019b,0x00000000, + 0x00030047,0x0000019c,0x00000000,0x00030047,0x0000019d,0x00000000,0x00030047,0x0000019e, + 0x00000000,0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a0,0x00000000,0x00030047, + 0x000001a1,0x00000000,0x00030047,0x000001a2,0x00000000,0x00030047,0x000001a3,0x00000000, + 0x00030047,0x000001a6,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047,0x000001a8, + 0x00000000,0x00030047,0x000001a9,0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047, + 0x000001ab,0x00000000,0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ad,0x00000000, + 0x00030047,0x000001ae,0x00000000,0x00030047,0x000001af,0x00000000,0x00030047,0x000001b0, + 0x00000000,0x00030047,0x000001b1,0x00000000,0x00030047,0x000001b2,0x00000000,0x00030047, + 0x000001b6,0x00000000,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001b8,0x00000000, + 0x00030047,0x000001b9,0x00000000,0x00030047,0x000001ba,0x00000000,0x00030047,0x000001bb, + 0x00000000,0x00030047,0x000001bc,0x00000000,0x00030047,0x000001bd,0x00000000,0x00030047, + 0x000001be,0x00000000,0x00030047,0x000001bf,0x00000000,0x00030047,0x000001c1,0x00000000, + 0x00030047,0x000001c2,0x00000000,0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4, + 0x00000000,0x00030047,0x000001c5,0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047, + 0x000001c7,0x00000000,0x00030047,0x000001ca,0x00000000,0x00030047,0x000001db,0x00000000, + 0x00030047,0x000001dc,0x00000000,0x00030047,0x000001dd,0x00000000,0x00030047,0x000001de, + 0x00000000,0x00030047,0x000001e0,0x00000000,0x00030047,0x000001e1,0x00000000,0x00030047, + 0x000001e2,0x00000000,0x00030047,0x000001e3,0x00000000,0x00030047,0x000001e4,0x00000000, + 0x00030047,0x000001e5,0x00000000,0x00030047,0x000001e6,0x00000000,0x00030047,0x000001f4, + 0x00000000,0x00030047,0x000001fd,0x00000000,0x00030047,0x000001fe,0x00000000,0x00030047, + 0x00000201,0x00000000,0x00030047,0x00000202,0x00000000,0x00030047,0x00000208,0x00000000, + 0x00030047,0x00000209,0x00000000,0x00030047,0x0000020a,0x00000000,0x00030047,0x0000020d, + 0x00000000,0x00030047,0x0000020e,0x00000000,0x00030047,0x0000020f,0x00000000,0x00030047, + 0x00000210,0x00000000,0x00030047,0x00000215,0x00000000,0x00030047,0x00000216,0x00000000, + 0x00030047,0x00000217,0x00000000,0x00030047,0x00000219,0x00000000,0x00030047,0x0000021a, + 0x00000000,0x00030047,0x0000021b,0x00000000,0x00030047,0x0000021d,0x00000000,0x00030047, + 0x0000021e,0x00000000,0x00030047,0x0000021f,0x00000000,0x00030047,0x00000220,0x00000000, + 0x00030047,0x00000221,0x00000000,0x00030047,0x00000222,0x00000000,0x00030047,0x00000223, + 0x00000000,0x00030047,0x00000224,0x00000000,0x00030047,0x00000225,0x00000000,0x00030047, + 0x00000226,0x00000000,0x00030047,0x00000227,0x00000000,0x00030047,0x00000228,0x00000000, + 0x00030047,0x00000229,0x00000000,0x00030047,0x0000022a,0x00000000,0x00030047,0x0000022b, + 0x00000000,0x00030047,0x0000022d,0x00000000,0x00030047,0x0000022e,0x00000000,0x00030047, + 0x0000022f,0x00000000,0x00030047,0x00000230,0x00000000,0x00030047,0x00000231,0x00000000, + 0x00030047,0x00000232,0x00000000,0x00030047,0x00000233,0x00000000,0x00030047,0x00000234, + 0x00000000,0x00030047,0x00000235,0x00000000,0x00030047,0x00000236,0x00000000,0x00030047, + 0x00000237,0x00000000,0x00030047,0x00000238,0x00000000,0x00030047,0x00000239,0x00000000, + 0x00030047,0x0000023a,0x00000000,0x00030047,0x0000023b,0x00000000,0x00030047,0x0000023c, + 0x00000000,0x00030047,0x00000248,0x00000000,0x00030047,0x0000024f,0x00000000,0x00030047, + 0x00000250,0x00000000,0x00030047,0x00000253,0x00000000,0x00030047,0x00000254,0x00000000, + 0x00030047,0x0000025a,0x00000000,0x00030047,0x0000025b,0x00000000,0x00030047,0x0000025c, + 0x00000000,0x00030047,0x0000025f,0x00000000,0x00030047,0x00000260,0x00000000,0x00030047, + 0x00000261,0x00000000,0x00030047,0x00000262,0x00000000,0x00030047,0x00000271,0x00000000, + 0x00030047,0x00000278,0x00000000,0x00030047,0x0000027b,0x00000000,0x00030047,0x0000027c, + 0x00000000,0x00030047,0x0000027d,0x00000000,0x00030047,0x00000280,0x00000000,0x00030047, + 0x00000281,0x00000000,0x00030047,0x00000284,0x00000000,0x00030047,0x00000285,0x00000000, + 0x00030047,0x00000286,0x00000000,0x00030047,0x00000287,0x00000000,0x00030047,0x0000028c, + 0x00000000,0x00030047,0x00000294,0x00000000,0x00030047,0x00000297,0x00000000,0x00030047, + 0x00000298,0x00000000,0x00030047,0x00000299,0x00000000,0x00030047,0x0000029c,0x00000000, + 0x00030047,0x0000029d,0x00000000,0x00030047,0x000002a1,0x00000000,0x00030047,0x000002a2, + 0x00000000,0x00030047,0x000002a4,0x00000000,0x00030047,0x000002a7,0x00000000,0x00030047, + 0x000002a8,0x00000000,0x00030047,0x000002aa,0x00000000,0x00030047,0x000002ab,0x00000000, + 0x00030047,0x000002ac,0x00000000,0x00030047,0x000002b2,0x00000000,0x00030047,0x000002b5, + 0x00000000,0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b7,0x00000000,0x00030047, + 0x000002ba,0x00000000,0x00030047,0x000002bb,0x00000000,0x00030047,0x000002be,0x00000000, + 0x00030047,0x000002bf,0x00000000,0x00030047,0x000002c0,0x00000000,0x00030047,0x000002c1, + 0x00000000,0x00030047,0x000002c6,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047, + 0x000002c8,0x00000000,0x00030047,0x000002c9,0x00000000,0x00030047,0x000002cb,0x00000000, + 0x00030047,0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000,0x00030047,0x000002ce, + 0x00000000,0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0,0x00000000,0x00030047, + 0x000002d1,0x00000000,0x00030047,0x000002d2,0x00000000,0x00040047,0x000002d4,0x00000001, + 0x00000005,0x00030047,0x000002d7,0x00000000,0x00030047,0x000002d8,0x00000000,0x00030047, + 0x000002d9,0x00000000,0x00030047,0x000002da,0x00000000,0x00030047,0x000002db,0x00000000, + 0x00030047,0x000002dc,0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047,0x000002de, + 0x00000000,0x00030047,0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000,0x00030047, + 0x000002e1,0x00000000,0x00030047,0x000002e2,0x00000000,0x00030047,0x000002e3,0x00000000, + 0x00030047,0x000002e7,0x00000000,0x00030047,0x000002e8,0x00000000,0x00030047,0x000002e9, + 0x00000000,0x00030047,0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000,0x00030047, + 0x000002ec,0x00000000,0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee,0x00000000, + 0x00030047,0x000002ef,0x00000000,0x00030047,0x000002f0,0x00000000,0x00030047,0x000002f1, + 0x00000000,0x00030047,0x000002f2,0x00000000,0x00030047,0x000002f3,0x00000000,0x00030047, + 0x000002f7,0x00000000,0x00030047,0x000002f8,0x00000000,0x00030047,0x000002f9,0x00000000, + 0x00030047,0x000002fa,0x00000000,0x00030047,0x000002fb,0x00000000,0x00030047,0x000002fc, + 0x00000000,0x00030047,0x000002fd,0x00000000,0x00030047,0x000002fe,0x00000000,0x00030047, + 0x000002ff,0x00000000,0x00030047,0x00000300,0x00000000,0x00030047,0x00000301,0x00000000, + 0x00030047,0x00000305,0x00000000,0x00030047,0x00000306,0x00000000,0x00030047,0x00000307, + 0x00000000,0x00030047,0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047, + 0x0000030a,0x00000000,0x00030047,0x0000030b,0x00000000,0x00030047,0x0000030c,0x00000000, + 0x00030047,0x0000030d,0x00000000,0x00030047,0x0000030e,0x00000000,0x00030047,0x0000030f, + 0x00000000,0x00030047,0x00000312,0x00000000,0x00030047,0x00000315,0x00000000,0x00030047, + 0x00000316,0x00000000,0x00030047,0x00000317,0x00000000,0x00030047,0x00000318,0x00000000, + 0x00030047,0x00000319,0x00000000,0x00030047,0x0000031a,0x00000000,0x00030047,0x0000031b, + 0x00000000,0x00030047,0x0000031c,0x00000000,0x00030047,0x0000031d,0x00000000,0x00030047, + 0x0000031e,0x00000000,0x00030047,0x00000320,0x00000000,0x00030047,0x00000321,0x00000000, + 0x00030047,0x00000322,0x00000000,0x00030047,0x00000324,0x00000000,0x00030047,0x00000325, + 0x00000000,0x00030047,0x00000326,0x00000000,0x00030047,0x00000327,0x00000000,0x00030047, + 0x00000328,0x00000000,0x00030047,0x00000329,0x00000000,0x00030047,0x0000032a,0x00000000, + 0x00030047,0x0000032b,0x00000000,0x00030047,0x0000032c,0x00000000,0x00030047,0x0000032d, + 0x00000000,0x00030047,0x00000337,0x00000000,0x00030047,0x0000033a,0x00000000,0x00030047, + 0x0000033b,0x00000000,0x00030047,0x00000342,0x00000000,0x00030047,0x00000343,0x00000000, + 0x00030047,0x00000349,0x00000000,0x00030047,0x0000034b,0x00000000,0x00030047,0x0000034c, + 0x00000000,0x00040047,0x00000351,0x00000006,0x00000008,0x00040048,0x00000352,0x00000000, + 0x00000018,0x00050048,0x00000352,0x00000000,0x00000023,0x00000000,0x00030047,0x00000352, + 0x00000003,0x00040047,0x00000354,0x00000022,0x00000000,0x00040047,0x00000354,0x00000021, + 0x00000004,0x00030047,0x00000359,0x00000000,0x00030047,0x0000035a,0x00000000,0x00030047, + 0x00000362,0x00000000,0x00030047,0x00000363,0x00000000,0x00040047,0x00000364,0x00000001, + 0x00000003,0x00030047,0x0000036f,0x00000000,0x00030047,0x00000370,0x00000000,0x00030047, + 0x00000371,0x00000000,0x00030047,0x00000372,0x00000000,0x00030047,0x00000374,0x00000000, + 0x00030047,0x00000375,0x00000000,0x00030047,0x00000376,0x00000000,0x00030047,0x00000377, + 0x00000000,0x00030047,0x00000378,0x00000000,0x00030047,0x00000379,0x00000000,0x00030047, + 0x0000037a,0x00000000,0x00030047,0x0000037b,0x00000000,0x00030047,0x0000037c,0x00000000, + 0x00040047,0x0000037d,0x00000001,0x00000000,0x00030047,0x0000038b,0x00000000,0x00040047, + 0x0000038b,0x00000022,0x00000003,0x00040047,0x0000038b,0x00000021,0x00000001,0x00040047, + 0x0000038b,0x0000002b,0x00000001,0x00030047,0x0000038c,0x00000000,0x00030047,0x0000038e, + 0x00000000,0x00030047,0x00000391,0x00000000,0x00030047,0x00000392,0x00000000,0x00030047, + 0x00000393,0x00000000,0x00040047,0x00000396,0x00000001,0x00000001,0x00040047,0x000003a3, + 0x00000006,0x00000010,0x00040048,0x000003a4,0x00000000,0x00000018,0x00050048,0x000003a4, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000003a4,0x00000003,0x00040047,0x000003a6, + 0x00000022,0x00000000,0x00040047,0x000003a6,0x00000021,0x00000005,0x00040047,0x000003b9, + 0x0000000b,0x0000000f,0x00030047,0x000003c0,0x00000000,0x00030047,0x000003ca,0x00000000, + 0x00030047,0x000003cb,0x00000000,0x00030047,0x000003cd,0x00000000,0x00030047,0x000003cf, + 0x00000000,0x00030047,0x000003d0,0x00000000,0x00030047,0x000003d1,0x00000000,0x00030047, + 0x000003d2,0x00000000,0x00030047,0x000003d3,0x00000000,0x00030047,0x000003d4,0x00000000, + 0x00030047,0x000003d5,0x00000000,0x00030047,0x000003e7,0x00000000,0x00030047,0x000003e8, + 0x00000000,0x00030047,0x000003ed,0x00000000,0x00030047,0x000003f0,0x00000000,0x00030047, + 0x000003f1,0x00000000,0x00030047,0x00000424,0x00000000,0x00040047,0x00000424,0x00000022, + 0x00000000,0x00040047,0x00000424,0x00000021,0x00000001,0x00030047,0x00000425,0x00000000, + 0x00030047,0x00000428,0x00000000,0x00040047,0x00000428,0x00000022,0x00000002,0x00040047, + 0x00000428,0x00000021,0x00000001,0x00030047,0x00000429,0x00000000,0x00030047,0x0000042f, + 0x00000000,0x00030047,0x00000430,0x00000000,0x00030047,0x00000432,0x00000000,0x00030047, + 0x00000433,0x00000000,0x00040047,0x00000435,0x00000001,0x00000002,0x00030047,0x00000439, + 0x00000000,0x00030047,0x0000043e,0x00000000,0x00030047,0x00000445,0x00000000,0x00030047, + 0x0000044a,0x00000000,0x00030047,0x0000044b,0x00000000,0x00040047,0x0000044b,0x00000022, + 0x00000003,0x00040047,0x0000044b,0x00000021,0x00000000,0x00040047,0x0000044b,0x0000002b, + 0x00000000,0x00030047,0x0000044c,0x00000000,0x00030047,0x0000044d,0x00000000,0x00030047, + 0x0000044e,0x00000000,0x00030047,0x0000044f,0x00000000,0x00030047,0x00000450,0x00000000, + 0x00030047,0x00000451,0x00000000,0x00030047,0x00000452,0x00000000,0x00030047,0x00000453, + 0x00000000,0x00030047,0x00000454,0x00000000,0x00030047,0x00000455,0x00000000,0x00030047, + 0x00000456,0x00000000,0x00030047,0x00000457,0x00000000,0x00030047,0x0000045f,0x00000000, + 0x00040047,0x0000045f,0x0000001e,0x00000000,0x00030047,0x00000460,0x00000000,0x00030047, + 0x00000461,0x00000000,0x00040047,0x00000461,0x0000001e,0x00000001,0x00030047,0x00000462, + 0x00000000,0x00030047,0x00000468,0x00000000,0x00030047,0x00000469,0x00000000,0x00040047, + 0x00000469,0x00000022,0x00000001,0x00040047,0x00000469,0x00000021,0x00000002,0x00030047, + 0x0000046a,0x00000000,0x00030047,0x0000046b,0x00000000,0x00040047,0x0000046b,0x00000022, + 0x00000002,0x00040047,0x0000046b,0x00000021,0x00000002,0x00030047,0x0000046c,0x00000000, + 0x00040047,0x0000046f,0x0000001e,0x00000000,0x00030047,0x00000471,0x00000000,0x00030047, + 0x00000472,0x00000000,0x00030047,0x00000475,0x00000000,0x00040047,0x00000476,0x0000001e, + 0x00000001,0x00030047,0x00000479,0x00000000,0x00030047,0x0000047a,0x00000000,0x00030047, + 0x0000047b,0x00000000,0x00030047,0x0000047c,0x00000000,0x00030047,0x0000047d,0x00000000, + 0x00030047,0x0000047e,0x00000000,0x00030047,0x0000047f,0x00000000,0x00030047,0x00000480, + 0x00000000,0x00040047,0x00000484,0x00000022,0x00000003,0x00040047,0x00000484,0x00000021, + 0x00000003,0x00030047,0x00000484,0x00000017,0x00030047,0x0000048a,0x00000000,0x00030047, + 0x0000048f,0x00000000,0x00030047,0x00000490,0x00000000,0x00030047,0x00000495,0x00000000, + 0x00030047,0x00000496,0x00000000,0x00030047,0x00000497,0x00000000,0x00030047,0x00000498, + 0x00000000,0x00030047,0x00000499,0x00000000,0x00030047,0x0000049b,0x00000000,0x00030047, + 0x0000049c,0x00000000,0x00030047,0x0000049d,0x00000000,0x00030047,0x0000049e,0x00000000, + 0x00030047,0x0000049f,0x00000000,0x00030047,0x000004a0,0x00000000,0x00030047,0x000004a7, + 0x00000000,0x00030047,0x000004a8,0x00000000,0x00030047,0x000004a9,0x00000000,0x00030047, + 0x000004aa,0x00000000,0x00050048,0x000004b3,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000004b3,0x00000001,0x00000023,0x00000010,0x00050048,0x000004b3,0x00000002,0x00000023, + 0x00000018,0x00050048,0x000004b3,0x00000003,0x00000023,0x0000001c,0x00050048,0x000004b3, + 0x00000004,0x00000023,0x00000020,0x00050048,0x000004b3,0x00000005,0x00000023,0x00000030, + 0x00050048,0x000004b3,0x00000006,0x00000023,0x00000038,0x00050048,0x000004b3,0x00000007, + 0x00000023,0x0000003c,0x00050048,0x000004b3,0x00000008,0x00000023,0x00000040,0x00030047, + 0x000004b3,0x00000002,0x00040047,0x000004b5,0x00000022,0x00000000,0x00040047,0x000004b5, + 0x00000021,0x00000009,0x00030047,0x000004be,0x00000000,0x00030047,0x000004c0,0x00000000, + 0x00030047,0x000004c2,0x00000000,0x00030047,0x000004c5,0x00000000,0x00030047,0x000004c7, + 0x00000000,0x00030047,0x000004c8,0x00000000,0x00030047,0x000004c9,0x00000000,0x00030047, + 0x000004cd,0x00000000,0x00030047,0x000004ce,0x00000000,0x00030047,0x000004cf,0x00000000, + 0x00030047,0x000004d0,0x00000000,0x00030047,0x000004d3,0x00000000,0x00030047,0x000004d9, + 0x00000000,0x00030047,0x000004da,0x00000000,0x00030047,0x000004dc,0x00000000,0x00030047, + 0x000004dd,0x00000000,0x00030047,0x000004e8,0x00000000,0x00030047,0x000004e9,0x00000000, + 0x00030047,0x000004ea,0x00000000,0x00030047,0x000004ec,0x00000000,0x00030047,0x000004ed, + 0x00000000,0x00030047,0x000004ee,0x00000000,0x00030047,0x000004ef,0x00000000,0x00030047, + 0x000004f0,0x00000000,0x00030047,0x000004f1,0x00000000,0x00030047,0x000004f2,0x00000000, + 0x00030047,0x000004f3,0x00000000,0x00030047,0x000004f7,0x00000000,0x00030047,0x000004f8, + 0x00000000,0x00030047,0x000004f9,0x00000000,0x00030047,0x000004fa,0x00000000,0x00030047, + 0x000004fb,0x00000000,0x00030047,0x000004fc,0x00000000,0x00030047,0x000004fd,0x00000000, + 0x00030047,0x00000505,0x00000000,0x00030047,0x00000506,0x00000000,0x00030047,0x00000507, + 0x00000000,0x00030047,0x00000508,0x00000000,0x00030047,0x0000050f,0x00000000,0x00030047, + 0x00000511,0x00000000,0x00030047,0x00000512,0x00000000,0x00030047,0x00000513,0x00000000, + 0x00030047,0x00000514,0x00000000,0x00030047,0x00000515,0x00000000,0x00030047,0x00000516, + 0x00000000,0x00030047,0x00000517,0x00000000,0x00030047,0x0000051b,0x00000000,0x00030047, + 0x0000051c,0x00000000,0x00040047,0x00000524,0x00000001,0x00000004,0x00040047,0x00000525, + 0x00000001,0x00000006,0x00040047,0x00000526,0x00000001,0x00000007,0x00050048,0x00000528, + 0x00000000,0x00000023,0x00000000,0x00050048,0x00000528,0x00000001,0x00000023,0x00000004, + 0x00050048,0x00000528,0x00000002,0x00000023,0x00000008,0x00050048,0x00000528,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x00000528,0x00000004,0x00000023,0x00000010,0x00050048, + 0x00000528,0x00000005,0x00000023,0x00000014,0x00050048,0x00000528,0x00000006,0x00000023, + 0x00000018,0x00050048,0x00000528,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000528, + 0x00000008,0x00000023,0x00000020,0x00050048,0x00000528,0x00000009,0x00000023,0x00000030, + 0x00050048,0x00000528,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000528,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x00000528,0x00000002,0x00040047,0x0000052a,0x00000022, + 0x00000000,0x00040047,0x0000052a,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006, + 0x00000004,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c, + 0x0000000d,0x00040017,0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007, + 0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00040015,0x00000018,0x00000020, + 0x00000000,0x00040020,0x00000019,0x00000007,0x00000018,0x00040021,0x0000001a,0x00000018, + 0x00000019,0x00050021,0x00000021,0x00000012,0x00000007,0x00000007,0x00040021,0x00000026, + 0x00000012,0x00000007,0x00040017,0x0000002a,0x00000006,0x00000003,0x00060021,0x0000002b, + 0x0000002a,0x00000007,0x00000007,0x00000007,0x00040021,0x00000031,0x0000002a,0x00000007, + 0x00040021,0x00000035,0x0000000c,0x00000007,0x00040020,0x00000039,0x00000007,0x0000002a, + 0x00040018,0x0000003a,0x0000002a,0x00000002,0x00050021,0x0000003b,0x0000003a,0x00000039, + 0x00000039,0x00040018,0x00000040,0x00000012,0x00000002,0x00040021,0x00000041,0x00000040, + 0x0000000d,0x00040021,0x00000048,0x00000006,0x0000000d,0x00040021,0x0000004c,0x00000006, + 0x00000039,0x00040021,0x00000059,0x0000002a,0x00000039,0x00050021,0x0000005d,0x0000002a, + 0x00000039,0x00000039,0x00060021,0x00000062,0x0000002a,0x00000039,0x00000039,0x00000039, + 0x00060021,0x00000068,0x0000002a,0x00000039,0x00000039,0x00000019,0x00060021,0x0000006e, + 0x0000002a,0x00000039,0x0000000d,0x00000019,0x00040021,0x00000074,0x00000006,0x00000019, + 0x00060021,0x00000078,0x00000002,0x00000019,0x0000000d,0x00000007,0x00040015,0x0000007e, + 0x00000020,0x00000001,0x00040017,0x0000007f,0x0000007e,0x00000002,0x00040020,0x00000080, + 0x00000007,0x0000007f,0x00080021,0x00000081,0x00000002,0x00000019,0x00000007,0x0000000d, + 0x0000000d,0x00000080,0x00050021,0x00000089,0x00000002,0x0000000d,0x00000080,0x0004002b, + 0x00000018,0x000000ab,0x00000000,0x0004002b,0x00000018,0x000000ae,0x00000001,0x0004002b, + 0x00000018,0x000000c1,0x00000002,0x0004002b,0x00000018,0x000000d8,0x00000003,0x00040020, + 0x000000dd,0x00000007,0x0000003a,0x0004002b,0x0000007e,0x000000df,0x00000000,0x0004002b, + 0x0000007e,0x000000e2,0x00000001,0x0004002b,0x00000006,0x000000ec,0x3f800000,0x0004002b, + 0x00000006,0x000000ed,0x00000000,0x00020014,0x000000f7,0x0004002b,0x00000006,0x00000115, + 0x3f7f7f7f,0x00040017,0x00000118,0x000000f7,0x00000003,0x0004002b,0x00000006,0x00000148, + 0x3e99999a,0x0004002b,0x00000006,0x00000149,0x3f170a3d,0x0004002b,0x00000006,0x0000014a, + 0x3de147ae,0x00040020,0x000001e8,0x00000007,0x0000007e,0x0004002b,0x0000007e,0x000001f0, + 0x00000003,0x0004002b,0x00000006,0x000001f5,0x3f000000,0x0004002b,0x00000006,0x000001fa, + 0x40000000,0x0004002b,0x00000006,0x0000028d,0x3e800000,0x0004002b,0x00000006,0x0000029e, + 0x41800000,0x0004002b,0x00000006,0x000002a3,0x41400000,0x0004002b,0x00000006,0x000002a9, + 0x40400000,0x00030031,0x000000f7,0x000002d4,0x0004002b,0x00000006,0x00000332,0x3b000000, + 0x0004002b,0x00000006,0x00000334,0xc2800000,0x0004002b,0x00000006,0x00000341,0x3a808081, + 0x00040017,0x00000344,0x000000f7,0x00000002,0x00040017,0x0000034e,0x00000018,0x00000002, + 0x00040020,0x0000034f,0x00000007,0x0000034e,0x0003001d,0x00000351,0x0000034e,0x0003001e, + 0x00000352,0x00000351,0x00040020,0x00000353,0x00000002,0x00000352,0x0004003b,0x00000353, + 0x00000354,0x00000002,0x00040020,0x00000356,0x00000002,0x0000034e,0x0004002b,0x00000018, + 0x0000035d,0x00000300,0x00030031,0x000000f7,0x00000364,0x0004002b,0x00000018,0x00000369, + 0x00000200,0x0004002b,0x00000006,0x00000373,0xbf800000,0x00030031,0x000000f7,0x0000037d, + 0x0004002b,0x00000018,0x00000383,0x00000010,0x00090019,0x00000389,0x00000006,0x00000006, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x0000038a,0x00000000, + 0x00000389,0x0004003b,0x0000038a,0x0000038b,0x00000000,0x0005002c,0x0000007f,0x0000038d, + 0x000000df,0x000000df,0x00030031,0x000000f7,0x00000396,0x0004002b,0x00000018,0x0000039b, + 0x00000400,0x00040020,0x000003a1,0x00000007,0x00000040,0x0003001d,0x000003a3,0x0000000c, + 0x0003001e,0x000003a4,0x000003a3,0x00040020,0x000003a5,0x00000002,0x000003a4,0x0004003b, + 0x000003a5,0x000003a6,0x00000002,0x0004002b,0x00000018,0x000003a8,0x00000004,0x00040020, + 0x000003ac,0x00000002,0x0000000c,0x00040020,0x000003b8,0x00000001,0x0000000c,0x0004003b, + 0x000003b8,0x000003b9,0x00000001,0x0004002b,0x00000018,0x000003d9,0x0000000f,0x00090019, + 0x00000422,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x00000423,0x00000000,0x00000422,0x0004003b,0x00000423,0x00000424,0x00000000, + 0x0002001a,0x00000426,0x00040020,0x00000427,0x00000000,0x00000426,0x0004003b,0x00000427, + 0x00000428,0x00000000,0x0003001b,0x0000042a,0x00000422,0x00030031,0x000000f7,0x00000435, + 0x0004002b,0x0000007e,0x00000441,0x00000004,0x0004003b,0x0000038a,0x0000044b,0x00000000, + 0x00040020,0x0000045e,0x00000003,0x0000000c,0x0004003b,0x0000045e,0x0000045f,0x00000003, + 0x0004003b,0x0000045e,0x00000461,0x00000003,0x0004003b,0x00000423,0x00000469,0x00000000, + 0x0004003b,0x00000427,0x0000046b,0x00000000,0x00040020,0x0000046e,0x00000001,0x00000012, + 0x0004003b,0x0000046e,0x0000046f,0x00000001,0x0004003b,0x000003b8,0x00000476,0x00000001, + 0x00090019,0x00000482,0x00000018,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x00000483,0x00000000,0x00000482,0x0004003b,0x00000483,0x00000484, + 0x00000000,0x00040017,0x00000487,0x00000018,0x00000004,0x0004002b,0x0000007e,0x0000048c, + 0x00000010,0x0004002b,0x00000018,0x00000492,0x0000ffff,0x000b001e,0x000004b3,0x0000000c, + 0x00000012,0x00000006,0x00000006,0x0000000c,0x00000012,0x00000018,0x00000018,0x00000018, + 0x00040020,0x000004b4,0x00000002,0x000004b3,0x0004003b,0x000004b4,0x000004b5,0x00000002, + 0x0004002b,0x0000007e,0x000004b6,0x00000006,0x00040020,0x000004b7,0x00000002,0x00000018, + 0x0004002b,0x0000007e,0x000004d4,0x00000002,0x00040020,0x000004d6,0x00000002,0x00000006, + 0x0004002b,0x0000007e,0x000004e1,0x00000007,0x0004002b,0x00000018,0x00000522,0x00008000, + 0x0007002c,0x00000487,0x00000523,0x00000522,0x00000522,0x00000522,0x00000522,0x00030031, + 0x000000f7,0x00000524,0x00030031,0x000000f7,0x00000525,0x00030031,0x000000f7,0x00000526, + 0x00040017,0x00000527,0x0000007e,0x00000004,0x000e001e,0x00000528,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000018,0x00000018,0x00000018,0x00000018,0x00000527,0x00000018, + 0x00000018,0x00000006,0x00040020,0x00000529,0x00000002,0x00000528,0x0004003b,0x00000529, + 0x0000052a,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000080,0x00000463,0x00000007,0x0004003b,0x0000000d,0x00000468, + 0x00000007,0x0004003b,0x00000007,0x00000472,0x00000007,0x0004003b,0x00000007,0x00000475, + 0x00000007,0x0004003b,0x0000000d,0x00000477,0x00000007,0x0004003b,0x0000000d,0x0000047a, + 0x00000007,0x0004003b,0x00000007,0x0000047d,0x00000007,0x0004003b,0x00000019,0x00000481, + 0x00000007,0x0004003b,0x00000019,0x0000048a,0x00000007,0x0004003b,0x00000019,0x0000048e, + 0x00000007,0x0004003b,0x00000007,0x00000490,0x00000007,0x0004003b,0x00000019,0x00000494, + 0x00000007,0x0004003b,0x0000000d,0x00000496,0x00000007,0x0004003b,0x00000007,0x00000497, + 0x00000007,0x0004003b,0x0000000d,0x00000499,0x00000007,0x0004003b,0x00000019,0x0000049a, + 0x00000007,0x0004003b,0x00000007,0x0000049c,0x00000007,0x0004003b,0x0000000d,0x0000049e, + 0x00000007,0x0004003b,0x0000000d,0x0000049f,0x00000007,0x0004003b,0x00000080,0x000004a1, + 0x00000007,0x0004003b,0x0000000d,0x000004be,0x00000007,0x0004003b,0x0000000d,0x000004c2, + 0x00000007,0x0004003b,0x00000019,0x000004ca,0x00000007,0x0004003b,0x0000000d,0x000004cd, + 0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b,0x00000007,0x000004d5, + 0x00000007,0x0004003b,0x0000000d,0x000004e8,0x00000007,0x0004003b,0x0000000d,0x000004f1, + 0x00000007,0x0004003b,0x00000019,0x000004f4,0x00000007,0x0004003b,0x00000039,0x000004f8, + 0x00000007,0x0004003b,0x0000000d,0x000004fb,0x00000007,0x0004003b,0x00000019,0x000004fc, + 0x00000007,0x0004003b,0x0000000d,0x00000516,0x00000007,0x0004003b,0x00000080,0x00000518, + 0x00000007,0x0004003b,0x0000000d,0x0000051b,0x00000007,0x0004003b,0x00000080,0x0000051d, + 0x00000007,0x0004003d,0x0000000c,0x00000464,0x000003b9,0x0007004f,0x00000012,0x00000465, + 0x00000464,0x00000464,0x00000000,0x00000001,0x0006000c,0x00000012,0x00000466,0x00000001, + 0x00000008,0x00000465,0x0004006e,0x0000007f,0x00000467,0x00000466,0x0003003e,0x00000463, + 0x00000467,0x0004003d,0x00000422,0x0000046a,0x00000469,0x0004003d,0x00000426,0x0000046c, + 0x0000046b,0x00050056,0x0000042a,0x0000046d,0x0000046a,0x0000046c,0x0004003d,0x00000012, + 0x00000470,0x0000046f,0x00050057,0x0000000c,0x00000471,0x0000046d,0x00000470,0x0003003e, + 0x00000468,0x00000471,0x0003003e,0x00000472,0x000000ec,0x000300f7,0x00000474,0x00000000, + 0x000400fa,0x00000396,0x00000473,0x00000474,0x000200f8,0x00000473,0x0004003d,0x0000000c, + 0x00000478,0x00000476,0x0003003e,0x00000477,0x00000478,0x00050039,0x0000000c,0x00000479, + 0x00000010,0x00000477,0x0003003e,0x0000047a,0x00000479,0x00050039,0x00000006,0x0000047b, + 0x0000004a,0x0000047a,0x0003003e,0x00000475,0x0000047b,0x0004003d,0x00000006,0x0000047c, + 0x00000475,0x0003003e,0x0000047d,0x000000ed,0x00050039,0x00000006,0x0000047e,0x0000001f, + 0x0000047d,0x0004003d,0x00000006,0x0000047f,0x00000472,0x0008000c,0x00000006,0x00000480, + 0x00000001,0x0000002b,0x0000047c,0x0000047e,0x0000047f,0x0003003e,0x00000472,0x00000480, + 0x000200f9,0x00000474,0x000200f8,0x00000474,0x0004003d,0x00000482,0x00000485,0x00000484, + 0x0004003d,0x0000007f,0x00000486,0x00000463,0x00050062,0x00000487,0x00000488,0x00000485, + 0x00000486,0x00050051,0x00000018,0x00000489,0x00000488,0x00000000,0x0003003e,0x00000481, + 0x00000489,0x0004003d,0x00000018,0x0000048b,0x00000481,0x000500c2,0x00000018,0x0000048d, + 0x0000048b,0x0000048c,0x0003003e,0x0000048e,0x0000048d,0x00050039,0x00000018,0x0000048f, + 0x0000001c,0x0000048e,0x0003003e,0x0000048a,0x0000048f,0x0004003d,0x00000018,0x00000491, + 0x00000481,0x000500c7,0x00000018,0x00000493,0x00000491,0x00000492,0x0003003e,0x00000494, + 0x00000493,0x00050039,0x00000006,0x00000495,0x00000076,0x00000494,0x0003003e,0x00000490, + 0x00000495,0x0003003e,0x00000497,0x000000ed,0x00050039,0x0000000c,0x00000498,0x00000037, + 0x00000497,0x0003003e,0x00000496,0x00000498,0x0004003d,0x00000018,0x0000049b,0x0000048a, + 0x0003003e,0x0000049a,0x0000049b,0x0004003d,0x00000006,0x0000049d,0x00000490,0x0003003e, + 0x0000049c,0x0000049d,0x0004003d,0x0000000c,0x000004a0,0x00000496,0x0003003e,0x0000049f, + 0x000004a0,0x0004003d,0x0000007f,0x000004a2,0x00000463,0x0003003e,0x000004a1,0x000004a2, + 0x00090039,0x00000002,0x000004a3,0x00000087,0x0000049a,0x0000049c,0x0000049e,0x0000049f, + 0x000004a1,0x0004003d,0x0000000c,0x000004a4,0x0000049e,0x0003003e,0x00000499,0x000004a4, + 0x0004003d,0x0000000c,0x000004a5,0x0000049f,0x0003003e,0x00000496,0x000004a5,0x00050041, + 0x00000007,0x000004a6,0x00000499,0x000000d8,0x0004003d,0x00000006,0x000004a7,0x000004a6, + 0x0004003d,0x0000000c,0x000004a8,0x00000499,0x0008004f,0x0000002a,0x000004a9,0x000004a8, + 0x000004a8,0x00000000,0x00000001,0x00000002,0x0005008e,0x0000002a,0x000004aa,0x000004a9, + 0x000004a7,0x00050041,0x00000007,0x000004ab,0x00000499,0x000000ab,0x00050051,0x00000006, + 0x000004ac,0x000004aa,0x00000000,0x0003003e,0x000004ab,0x000004ac,0x00050041,0x00000007, + 0x000004ad,0x00000499,0x000000ae,0x00050051,0x00000006,0x000004ae,0x000004aa,0x00000001, + 0x0003003e,0x000004ad,0x000004ae,0x00050041,0x00000007,0x000004af,0x00000499,0x000000c1, + 0x00050051,0x00000006,0x000004b0,0x000004aa,0x00000002,0x0003003e,0x000004af,0x000004b0, + 0x000300f7,0x000004b2,0x00000000,0x000400fa,0x0000037d,0x000004b1,0x000004b2,0x000200f8, + 0x000004b1,0x00050041,0x000004b7,0x000004b8,0x000004b5,0x000004b6,0x0004003d,0x00000018, + 0x000004b9,0x000004b8,0x000500ab,0x000000f7,0x000004ba,0x000004b9,0x000000ab,0x000200f9, + 0x000004b2,0x000200f8,0x000004b2,0x000700f5,0x000000f7,0x000004bb,0x0000037d,0x00000474, + 0x000004ba,0x000004b1,0x000300f7,0x000004bd,0x00000000,0x000400fa,0x000004bb,0x000004bc, + 0x000004bd,0x000200f8,0x000004bc,0x00050041,0x00000007,0x000004bf,0x00000496,0x000000d8, + 0x0004003d,0x00000006,0x000004c0,0x000004bf,0x000500b7,0x000000f7,0x000004c1,0x000004c0, + 0x000000ed,0x000300f7,0x000004c4,0x00000000,0x000400fa,0x000004c1,0x000004c3,0x000004c6, + 0x000200f8,0x000004c3,0x0004003d,0x0000000c,0x000004c5,0x00000496,0x0003003e,0x000004c2, + 0x000004c5,0x000200f9,0x000004c4,0x000200f8,0x000004c6,0x0004003d,0x00000389,0x000004c7, + 0x0000038b,0x00050062,0x0000000c,0x000004c8,0x000004c7,0x0000038d,0x0003003e,0x000004c2, + 0x000004c8,0x000200f9,0x000004c4,0x000200f8,0x000004c4,0x0004003d,0x0000000c,0x000004c9, + 0x000004c2,0x0003003e,0x000004be,0x000004c9,0x00050041,0x000004b7,0x000004cb,0x000004b5, + 0x000004b6,0x0004003d,0x00000018,0x000004cc,0x000004cb,0x0003003e,0x000004ca,0x000004cc, + 0x0004003d,0x0000000c,0x000004ce,0x000004be,0x0003003e,0x000004cd,0x000004ce,0x0004003d, + 0x00000006,0x000004d0,0x00000472,0x0003003e,0x000004cf,0x000004d0,0x00070039,0x00000002, + 0x000004d1,0x0000007c,0x000004ca,0x000004cd,0x000004cf,0x0004003d,0x00000006,0x000004d2, + 0x000004cf,0x0003003e,0x00000472,0x000004d2,0x000200f9,0x000004bd,0x000200f8,0x000004bd, + 0x0004003d,0x00000006,0x000004d3,0x00000472,0x00050041,0x000004d6,0x000004d7,0x000004b5, + 0x000004d4,0x0004003d,0x00000006,0x000004d8,0x000004d7,0x0003003e,0x000004d5,0x000004d8, + 0x00050039,0x00000006,0x000004d9,0x0000000a,0x000004d5,0x00050085,0x00000006,0x000004da, + 0x000004d3,0x000004d9,0x00050041,0x00000007,0x000004db,0x00000468,0x000000d8,0x0004003d, + 0x00000006,0x000004dc,0x000004db,0x00050085,0x00000006,0x000004dd,0x000004dc,0x000004da, + 0x00050041,0x00000007,0x000004de,0x00000468,0x000000d8,0x0003003e,0x000004de,0x000004dd, + 0x000300f7,0x000004e0,0x00000000,0x000400fa,0x00000435,0x000004df,0x000004e0,0x000200f8, + 0x000004df,0x00050041,0x000004b7,0x000004e2,0x000004b5,0x000004e1,0x0004003d,0x00000018, + 0x000004e3,0x000004e2,0x000500ab,0x000000f7,0x000004e4,0x000004e3,0x000000ab,0x000200f9, + 0x000004e0,0x000200f8,0x000004e0,0x000700f5,0x000000f7,0x000004e5,0x00000435,0x000004bd, + 0x000004e4,0x000004df,0x000300f7,0x000004e7,0x00000000,0x000400fa,0x000004e5,0x000004e6, + 0x000004e7,0x000200f8,0x000004e6,0x0004003d,0x00000389,0x000004e9,0x0000044b,0x00050062, + 0x0000000c,0x000004ea,0x000004e9,0x0000038d,0x00050041,0x00000007,0x000004eb,0x00000499, + 0x000000d8,0x0004003d,0x00000006,0x000004ec,0x000004eb,0x00050083,0x00000006,0x000004ed, + 0x000000ec,0x000004ec,0x0005008e,0x0000000c,0x000004ee,0x000004ea,0x000004ed,0x0004003d, + 0x0000000c,0x000004ef,0x00000499,0x00050081,0x0000000c,0x000004f0,0x000004ee,0x000004ef, + 0x0003003e,0x000004e8,0x000004f0,0x0004003d,0x0000000c,0x000004f2,0x000004e8,0x0003003e, + 0x000004f1,0x000004f2,0x00050039,0x0000000c,0x000004f3,0x00000046,0x000004f1,0x00050041, + 0x000004b7,0x000004f5,0x000004b5,0x000004e1,0x0004003d,0x00000018,0x000004f6,0x000004f5, + 0x0003003e,0x000004f4,0x000004f6,0x00050039,0x00000018,0x000004f7,0x0000001c,0x000004f4, + 0x0004003d,0x0000000c,0x000004f9,0x00000468,0x0008004f,0x0000002a,0x000004fa,0x000004f9, + 0x000004f9,0x00000000,0x00000001,0x00000002,0x0003003e,0x000004f8,0x000004fa,0x0003003e, + 0x000004fb,0x000004f3,0x0003003e,0x000004fc,0x000004f7,0x00070039,0x0000002a,0x000004fd, + 0x00000072,0x000004f8,0x000004fb,0x000004fc,0x00050041,0x00000007,0x000004fe,0x00000468, + 0x000000ab,0x00050051,0x00000006,0x000004ff,0x000004fd,0x00000000,0x0003003e,0x000004fe, + 0x000004ff,0x00050041,0x00000007,0x00000500,0x00000468,0x000000ae,0x00050051,0x00000006, + 0x00000501,0x000004fd,0x00000001,0x0003003e,0x00000500,0x00000501,0x00050041,0x00000007, + 0x00000502,0x00000468,0x000000c1,0x00050051,0x00000006,0x00000503,0x000004fd,0x00000002, + 0x0003003e,0x00000502,0x00000503,0x000200f9,0x000004e7,0x000200f8,0x000004e7,0x00050041, + 0x00000007,0x00000504,0x00000468,0x000000d8,0x0004003d,0x00000006,0x00000505,0x00000504, + 0x0004003d,0x0000000c,0x00000506,0x00000468,0x0008004f,0x0000002a,0x00000507,0x00000506, + 0x00000506,0x00000000,0x00000001,0x00000002,0x0005008e,0x0000002a,0x00000508,0x00000507, + 0x00000505,0x00050041,0x00000007,0x00000509,0x00000468,0x000000ab,0x00050051,0x00000006, + 0x0000050a,0x00000508,0x00000000,0x0003003e,0x00000509,0x0000050a,0x00050041,0x00000007, + 0x0000050b,0x00000468,0x000000ae,0x00050051,0x00000006,0x0000050c,0x00000508,0x00000001, + 0x0003003e,0x0000050b,0x0000050c,0x00050041,0x00000007,0x0000050d,0x00000468,0x000000c1, + 0x00050051,0x00000006,0x0000050e,0x00000508,0x00000002,0x0003003e,0x0000050d,0x0000050e, + 0x0004003d,0x0000000c,0x0000050f,0x00000499,0x00050041,0x00000007,0x00000510,0x00000468, + 0x000000d8,0x0004003d,0x00000006,0x00000511,0x00000510,0x00050083,0x00000006,0x00000512, + 0x000000ec,0x00000511,0x0005008e,0x0000000c,0x00000513,0x0000050f,0x00000512,0x0004003d, + 0x0000000c,0x00000514,0x00000468,0x00050081,0x0000000c,0x00000515,0x00000513,0x00000514, + 0x0003003e,0x00000499,0x00000515,0x0004003d,0x0000000c,0x00000517,0x00000499,0x0003003e, + 0x00000516,0x00000517,0x0004003d,0x0000007f,0x00000519,0x00000463,0x0003003e,0x00000518, + 0x00000519,0x00060039,0x00000002,0x0000051a,0x0000008c,0x00000516,0x00000518,0x0004003d, + 0x0000000c,0x0000051c,0x00000496,0x0003003e,0x0000051b,0x0000051c,0x0004003d,0x0000007f, + 0x0000051e,0x00000463,0x0003003e,0x0000051d,0x0000051e,0x00060039,0x00000002,0x0000051f, + 0x00000090,0x0000051b,0x0000051d,0x0004003d,0x00000482,0x00000520,0x00000484,0x0004003d, + 0x0000007f,0x00000521,0x00000463,0x00040063,0x00000520,0x00000521,0x00000523,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000093,0x00000007,0x0004003d, + 0x00000006,0x00000092,0x00000009,0x0003003e,0x00000093,0x00000092,0x0004003d,0x00000006, + 0x00000094,0x00000093,0x000200fe,0x00000094,0x00010038,0x00050036,0x0000000c,0x00000010, + 0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003b, + 0x0000000d,0x00000098,0x00000007,0x0004003d,0x0000000c,0x00000097,0x0000000f,0x0003003e, + 0x00000098,0x00000097,0x0004003d,0x0000000c,0x00000099,0x00000098,0x000200fe,0x00000099, + 0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013, + 0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x0000009d,0x00000007,0x0004003d, + 0x00000012,0x0000009c,0x00000015,0x0003003e,0x0000009d,0x0000009c,0x0004003d,0x00000012, + 0x0000009e,0x0000009d,0x000200fe,0x0000009e,0x00010038,0x00050036,0x00000018,0x0000001c, + 0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b,0x000200f8,0x0000001d,0x0004003b, + 0x00000019,0x000000a2,0x00000007,0x0004003d,0x00000018,0x000000a1,0x0000001b,0x0003003e, + 0x000000a2,0x000000a1,0x0004003d,0x00000018,0x000000a3,0x000000a2,0x000200fe,0x000000a3, + 0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000,0x00000008,0x00030037,0x00000007, + 0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000006,0x000000a6,0x0000001e,0x000200fe, + 0x000000a6,0x00010038,0x00050036,0x00000012,0x00000024,0x00000000,0x00000021,0x00030037, + 0x00000007,0x00000022,0x00030037,0x00000007,0x00000023,0x000200f8,0x00000025,0x0004003b, + 0x00000013,0x000000a9,0x00000007,0x0004003d,0x00000006,0x000000aa,0x00000022,0x00050041, + 0x00000007,0x000000ac,0x000000a9,0x000000ab,0x0003003e,0x000000ac,0x000000aa,0x0004003d, + 0x00000006,0x000000ad,0x00000023,0x00050041,0x00000007,0x000000af,0x000000a9,0x000000ae, + 0x0003003e,0x000000af,0x000000ad,0x0004003d,0x00000012,0x000000b0,0x000000a9,0x000200fe, + 0x000000b0,0x00010038,0x00050036,0x00000012,0x00000028,0x00000000,0x00000026,0x00030037, + 0x00000007,0x00000027,0x000200f8,0x00000029,0x0004003b,0x00000013,0x000000b3,0x00000007, + 0x0004003d,0x00000006,0x000000b4,0x00000027,0x00050041,0x00000007,0x000000b5,0x000000b3, + 0x000000ab,0x0003003e,0x000000b5,0x000000b4,0x0004003d,0x00000006,0x000000b6,0x00000027, + 0x00050041,0x00000007,0x000000b7,0x000000b3,0x000000ae,0x0003003e,0x000000b7,0x000000b6, + 0x0004003d,0x00000012,0x000000b8,0x000000b3,0x000200fe,0x000000b8,0x00010038,0x00050036, + 0x0000002a,0x0000002f,0x00000000,0x0000002b,0x00030037,0x00000007,0x0000002c,0x00030037, + 0x00000007,0x0000002d,0x00030037,0x00000007,0x0000002e,0x000200f8,0x00000030,0x0004003b, + 0x00000039,0x000000bb,0x00000007,0x0004003d,0x00000006,0x000000bc,0x0000002c,0x00050041, + 0x00000007,0x000000bd,0x000000bb,0x000000ab,0x0003003e,0x000000bd,0x000000bc,0x0004003d, + 0x00000006,0x000000be,0x0000002d,0x00050041,0x00000007,0x000000bf,0x000000bb,0x000000ae, + 0x0003003e,0x000000bf,0x000000be,0x0004003d,0x00000006,0x000000c0,0x0000002e,0x00050041, + 0x00000007,0x000000c2,0x000000bb,0x000000c1,0x0003003e,0x000000c2,0x000000c0,0x0004003d, + 0x0000002a,0x000000c3,0x000000bb,0x000200fe,0x000000c3,0x00010038,0x00050036,0x0000002a, + 0x00000033,0x00000000,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8,0x00000034, + 0x0004003b,0x00000039,0x000000c6,0x00000007,0x0004003d,0x00000006,0x000000c7,0x00000032, + 0x00050041,0x00000007,0x000000c8,0x000000c6,0x000000ab,0x0003003e,0x000000c8,0x000000c7, + 0x0004003d,0x00000006,0x000000c9,0x00000032,0x00050041,0x00000007,0x000000ca,0x000000c6, + 0x000000ae,0x0003003e,0x000000ca,0x000000c9,0x0004003d,0x00000006,0x000000cb,0x00000032, + 0x00050041,0x00000007,0x000000cc,0x000000c6,0x000000c1,0x0003003e,0x000000cc,0x000000cb, + 0x0004003d,0x0000002a,0x000000cd,0x000000c6,0x000200fe,0x000000cd,0x00010038,0x00050036, + 0x0000000c,0x00000037,0x00000000,0x00000035,0x00030037,0x00000007,0x00000036,0x000200f8, + 0x00000038,0x0004003b,0x0000000d,0x000000d0,0x00000007,0x0004003d,0x00000006,0x000000d1, + 0x00000036,0x00050041,0x00000007,0x000000d2,0x000000d0,0x000000ab,0x0003003e,0x000000d2, + 0x000000d1,0x0004003d,0x00000006,0x000000d3,0x00000036,0x00050041,0x00000007,0x000000d4, + 0x000000d0,0x000000ae,0x0003003e,0x000000d4,0x000000d3,0x0004003d,0x00000006,0x000000d5, + 0x00000036,0x00050041,0x00000007,0x000000d6,0x000000d0,0x000000c1,0x0003003e,0x000000d6, + 0x000000d5,0x0004003d,0x00000006,0x000000d7,0x00000036,0x00050041,0x00000007,0x000000d9, + 0x000000d0,0x000000d8,0x0003003e,0x000000d9,0x000000d7,0x0004003d,0x0000000c,0x000000da, + 0x000000d0,0x000200fe,0x000000da,0x00010038,0x00050036,0x0000003a,0x0000003e,0x00000000, + 0x0000003b,0x00030037,0x00000039,0x0000003c,0x00030037,0x00000039,0x0000003d,0x000200f8, + 0x0000003f,0x0004003b,0x000000dd,0x000000de,0x00000007,0x0004003d,0x0000002a,0x000000e0, + 0x0000003c,0x00050041,0x00000039,0x000000e1,0x000000de,0x000000df,0x0003003e,0x000000e1, + 0x000000e0,0x0004003d,0x0000002a,0x000000e3,0x0000003d,0x00050041,0x00000039,0x000000e4, + 0x000000de,0x000000e2,0x0003003e,0x000000e4,0x000000e3,0x0004003d,0x0000003a,0x000000e5, + 0x000000de,0x000200fe,0x000000e5,0x00010038,0x00050036,0x00000040,0x00000043,0x00000000, + 0x00000041,0x00030037,0x0000000d,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000000c, + 0x000000e8,0x00000042,0x0007004f,0x00000012,0x000000e9,0x000000e8,0x000000e8,0x00000000, + 0x00000001,0x0004003d,0x0000000c,0x000000ea,0x00000042,0x0007004f,0x00000012,0x000000eb, + 0x000000ea,0x000000ea,0x00000002,0x00000003,0x00050051,0x00000006,0x000000ee,0x000000e9, + 0x00000000,0x00050051,0x00000006,0x000000ef,0x000000e9,0x00000001,0x00050051,0x00000006, + 0x000000f0,0x000000eb,0x00000000,0x00050051,0x00000006,0x000000f1,0x000000eb,0x00000001, + 0x00050050,0x00000012,0x000000f2,0x000000ee,0x000000ef,0x00050050,0x00000012,0x000000f3, + 0x000000f0,0x000000f1,0x00050050,0x00000040,0x000000f4,0x000000f2,0x000000f3,0x000200fe, + 0x000000f4,0x00010038,0x00050036,0x0000000c,0x00000046,0x00000000,0x0000000e,0x00030037, + 0x0000000d,0x00000045,0x000200f8,0x00000047,0x0004003b,0x00000007,0x00000111,0x00000007, + 0x0004003b,0x00000007,0x00000116,0x00000007,0x00050041,0x00000007,0x000000f8,0x00000045, + 0x000000d8,0x0004003d,0x00000006,0x000000f9,0x000000f8,0x000500b8,0x000000f7,0x000000fa, + 0x000000ed,0x000000f9,0x000300f7,0x000000fc,0x00000000,0x000400fa,0x000000fa,0x000000fb, + 0x000000fc,0x000200f8,0x000000fb,0x00050041,0x00000007,0x000000fd,0x00000045,0x000000d8, + 0x0004003d,0x00000006,0x000000fe,0x000000fd,0x000500b8,0x000000f7,0x000000ff,0x000000fe, + 0x000000ec,0x000200f9,0x000000fc,0x000200f8,0x000000fc,0x000700f5,0x000000f7,0x00000100, + 0x000000fa,0x00000047,0x000000ff,0x000000fb,0x000300f7,0x00000102,0x00000000,0x000400fa, + 0x00000100,0x00000101,0x00000102,0x000200f8,0x00000101,0x00050041,0x00000007,0x00000103, + 0x00000045,0x000000d8,0x0004003d,0x00000006,0x00000104,0x00000103,0x00050088,0x00000006, + 0x00000105,0x000000ec,0x00000104,0x0004003d,0x0000000c,0x00000106,0x00000045,0x0008004f, + 0x0000002a,0x00000107,0x00000106,0x00000106,0x00000000,0x00000001,0x00000002,0x0005008e, + 0x0000002a,0x00000108,0x00000107,0x00000105,0x00050041,0x00000007,0x00000109,0x00000045, + 0x000000ab,0x00050051,0x00000006,0x0000010a,0x00000108,0x00000000,0x0003003e,0x00000109, + 0x0000010a,0x00050041,0x00000007,0x0000010b,0x00000045,0x000000ae,0x00050051,0x00000006, + 0x0000010c,0x00000108,0x00000001,0x0003003e,0x0000010b,0x0000010c,0x00050041,0x00000007, + 0x0000010d,0x00000045,0x000000c1,0x00050051,0x00000006,0x0000010e,0x00000108,0x00000002, + 0x0003003e,0x0000010d,0x0000010e,0x0004003d,0x0000000c,0x0000010f,0x00000045,0x0008004f, + 0x0000002a,0x00000110,0x0000010f,0x0000010f,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x00000111,0x000000ec,0x00050039,0x0000002a,0x00000112,0x00000033,0x00000111,0x0004003d, + 0x0000000c,0x00000113,0x00000045,0x0008004f,0x0000002a,0x00000114,0x00000113,0x00000113, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000116,0x00000115,0x00050039,0x0000002a, + 0x00000117,0x00000033,0x00000116,0x000500ba,0x00000118,0x00000119,0x00000114,0x00000117, + 0x000600a9,0x0000002a,0x0000011a,0x00000119,0x00000112,0x00000110,0x00050041,0x00000007, + 0x0000011b,0x00000045,0x000000ab,0x00050051,0x00000006,0x0000011c,0x0000011a,0x00000000, + 0x0003003e,0x0000011b,0x0000011c,0x00050041,0x00000007,0x0000011d,0x00000045,0x000000ae, + 0x00050051,0x00000006,0x0000011e,0x0000011a,0x00000001,0x0003003e,0x0000011d,0x0000011e, + 0x00050041,0x00000007,0x0000011f,0x00000045,0x000000c1,0x00050051,0x00000006,0x00000120, + 0x0000011a,0x00000002,0x0003003e,0x0000011f,0x00000120,0x000200f9,0x00000102,0x000200f8, + 0x00000102,0x0004003d,0x0000000c,0x00000121,0x00000045,0x000200fe,0x00000121,0x00010038, + 0x00050036,0x00000006,0x0000004a,0x00000000,0x00000048,0x00030037,0x0000000d,0x00000049, + 0x000200f8,0x0000004b,0x0004003b,0x00000013,0x00000124,0x00000007,0x0004003b,0x00000007, + 0x0000012a,0x00000007,0x0004003d,0x0000000c,0x00000125,0x00000049,0x0007004f,0x00000012, + 0x00000126,0x00000125,0x00000125,0x00000000,0x00000001,0x0004003d,0x0000000c,0x00000127, + 0x00000049,0x0007004f,0x00000012,0x00000128,0x00000127,0x00000127,0x00000002,0x00000003, + 0x0007000c,0x00000012,0x00000129,0x00000001,0x00000025,0x00000126,0x00000128,0x0003003e, + 0x00000124,0x00000129,0x00050041,0x00000007,0x0000012b,0x00000124,0x000000ab,0x0004003d, + 0x00000006,0x0000012c,0x0000012b,0x00050041,0x00000007,0x0000012d,0x00000124,0x000000ae, + 0x0004003d,0x00000006,0x0000012e,0x0000012d,0x0007000c,0x00000006,0x0000012f,0x00000001, + 0x00000025,0x0000012c,0x0000012e,0x0003003e,0x0000012a,0x0000012f,0x0004003d,0x00000006, + 0x00000130,0x0000012a,0x000200fe,0x00000130,0x00010038,0x00050036,0x00000006,0x0000004e, + 0x00000000,0x0000004c,0x00030037,0x00000039,0x0000004d,0x000200f8,0x0000004f,0x00050041, + 0x00000007,0x00000133,0x0000004d,0x000000ab,0x0004003d,0x00000006,0x00000134,0x00000133, + 0x00050041,0x00000007,0x00000135,0x0000004d,0x000000ae,0x0004003d,0x00000006,0x00000136, + 0x00000135,0x0007000c,0x00000006,0x00000137,0x00000001,0x00000025,0x00000134,0x00000136, + 0x00050041,0x00000007,0x00000138,0x0000004d,0x000000c1,0x0004003d,0x00000006,0x00000139, + 0x00000138,0x0007000c,0x00000006,0x0000013a,0x00000001,0x00000025,0x00000137,0x00000139, + 0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000006,0x00000051,0x00000000,0x0000004c, + 0x00030037,0x00000039,0x00000050,0x000200f8,0x00000052,0x00050041,0x00000007,0x0000013d, + 0x00000050,0x000000ab,0x0004003d,0x00000006,0x0000013e,0x0000013d,0x00050041,0x00000007, + 0x0000013f,0x00000050,0x000000ae,0x0004003d,0x00000006,0x00000140,0x0000013f,0x0007000c, + 0x00000006,0x00000141,0x00000001,0x00000028,0x0000013e,0x00000140,0x00050041,0x00000007, + 0x00000142,0x00000050,0x000000c1,0x0004003d,0x00000006,0x00000143,0x00000142,0x0007000c, + 0x00000006,0x00000144,0x00000001,0x00000028,0x00000141,0x00000143,0x000200fe,0x00000144, + 0x00010038,0x00050036,0x00000006,0x00000054,0x00000000,0x0000004c,0x00030037,0x00000039, + 0x00000053,0x000200f8,0x00000055,0x0004003b,0x00000007,0x0000014b,0x00000007,0x0004003b, + 0x00000007,0x0000014c,0x00000007,0x0004003b,0x00000007,0x0000014d,0x00000007,0x0004003d, + 0x0000002a,0x00000147,0x00000053,0x0003003e,0x0000014b,0x00000148,0x0003003e,0x0000014c, + 0x00000149,0x0003003e,0x0000014d,0x0000014a,0x00070039,0x0000002a,0x0000014e,0x0000002f, + 0x0000014b,0x0000014c,0x0000014d,0x00050094,0x00000006,0x0000014f,0x00000147,0x0000014e, + 0x000200fe,0x0000014f,0x00010038,0x00050036,0x00000006,0x00000057,0x00000000,0x0000004c, + 0x00030037,0x00000039,0x00000056,0x000200f8,0x00000058,0x0004003b,0x00000039,0x00000152, + 0x00000007,0x0004003b,0x00000039,0x00000155,0x00000007,0x0004003d,0x0000002a,0x00000153, + 0x00000056,0x0003003e,0x00000152,0x00000153,0x00050039,0x00000006,0x00000154,0x00000051, + 0x00000152,0x0004003d,0x0000002a,0x00000156,0x00000056,0x0003003e,0x00000155,0x00000156, + 0x00050039,0x00000006,0x00000157,0x0000004e,0x00000155,0x00050083,0x00000006,0x00000158, + 0x00000154,0x00000157,0x000200fe,0x00000158,0x00010038,0x00050036,0x0000002a,0x0000005b, + 0x00000000,0x00000059,0x00030037,0x00000039,0x0000005a,0x000200f8,0x0000005c,0x0004003b, + 0x00000007,0x0000015b,0x00000007,0x0004003b,0x00000039,0x0000015c,0x00000007,0x0004003b, + 0x00000007,0x0000015f,0x00000007,0x0004003b,0x00000039,0x00000160,0x00000007,0x0004003b, + 0x00000007,0x00000163,0x00000007,0x0004003b,0x00000039,0x00000164,0x00000007,0x0004003d, + 0x0000002a,0x0000015d,0x0000005a,0x0003003e,0x0000015c,0x0000015d,0x00050039,0x00000006, + 0x0000015e,0x00000054,0x0000015c,0x0003003e,0x0000015b,0x0000015e,0x0004003d,0x0000002a, + 0x00000161,0x0000005a,0x0003003e,0x00000160,0x00000161,0x00050039,0x00000006,0x00000162, + 0x0000004e,0x00000160,0x0003003e,0x0000015f,0x00000162,0x0004003d,0x0000002a,0x00000165, + 0x0000005a,0x0003003e,0x00000164,0x00000165,0x00050039,0x00000006,0x00000166,0x00000051, + 0x00000164,0x0003003e,0x00000163,0x00000166,0x0004003d,0x00000006,0x00000167,0x0000015f, + 0x000500b8,0x000000f7,0x00000168,0x00000167,0x000000ed,0x000300f7,0x0000016a,0x00000000, + 0x000400fa,0x00000168,0x00000169,0x0000016a,0x000200f8,0x00000169,0x0004003d,0x00000006, + 0x0000016b,0x0000015b,0x0004003d,0x0000002a,0x0000016c,0x0000005a,0x0004003d,0x00000006, + 0x0000016d,0x0000015b,0x00060050,0x0000002a,0x0000016e,0x0000016d,0x0000016d,0x0000016d, + 0x00050083,0x0000002a,0x0000016f,0x0000016c,0x0000016e,0x0004003d,0x00000006,0x00000170, + 0x0000015b,0x0005008e,0x0000002a,0x00000171,0x0000016f,0x00000170,0x0004003d,0x00000006, + 0x00000172,0x0000015b,0x0004003d,0x00000006,0x00000173,0x0000015f,0x00050083,0x00000006, + 0x00000174,0x00000172,0x00000173,0x00060050,0x0000002a,0x00000175,0x00000174,0x00000174, + 0x00000174,0x00050088,0x0000002a,0x00000176,0x00000171,0x00000175,0x00060050,0x0000002a, + 0x00000177,0x0000016b,0x0000016b,0x0000016b,0x00050081,0x0000002a,0x00000178,0x00000177, + 0x00000176,0x0003003e,0x0000005a,0x00000178,0x000200f9,0x0000016a,0x000200f8,0x0000016a, + 0x0004003d,0x00000006,0x00000179,0x00000163,0x000500ba,0x000000f7,0x0000017a,0x00000179, + 0x000000ec,0x000300f7,0x0000017c,0x00000000,0x000400fa,0x0000017a,0x0000017b,0x0000017c, + 0x000200f8,0x0000017b,0x0004003d,0x00000006,0x0000017d,0x0000015b,0x0004003d,0x0000002a, + 0x0000017e,0x0000005a,0x0004003d,0x00000006,0x0000017f,0x0000015b,0x00060050,0x0000002a, + 0x00000180,0x0000017f,0x0000017f,0x0000017f,0x00050083,0x0000002a,0x00000181,0x0000017e, + 0x00000180,0x0004003d,0x00000006,0x00000182,0x0000015b,0x00050083,0x00000006,0x00000183, + 0x000000ec,0x00000182,0x0005008e,0x0000002a,0x00000184,0x00000181,0x00000183,0x0004003d, + 0x00000006,0x00000185,0x00000163,0x0004003d,0x00000006,0x00000186,0x0000015b,0x00050083, + 0x00000006,0x00000187,0x00000185,0x00000186,0x00060050,0x0000002a,0x00000188,0x00000187, + 0x00000187,0x00000187,0x00050088,0x0000002a,0x00000189,0x00000184,0x00000188,0x00060050, + 0x0000002a,0x0000018a,0x0000017d,0x0000017d,0x0000017d,0x00050081,0x0000002a,0x0000018b, + 0x0000018a,0x00000189,0x0003003e,0x0000005a,0x0000018b,0x000200f9,0x0000017c,0x000200f8, + 0x0000017c,0x0004003d,0x0000002a,0x0000018c,0x0000005a,0x000200fe,0x0000018c,0x00010038, + 0x00050036,0x0000002a,0x00000060,0x00000000,0x0000005d,0x00030037,0x00000039,0x0000005e, + 0x00030037,0x00000039,0x0000005f,0x000200f8,0x00000061,0x0004003b,0x00000007,0x0000018f, + 0x00000007,0x0004003b,0x00000039,0x00000190,0x00000007,0x0004003b,0x00000007,0x00000193, + 0x00000007,0x0004003b,0x00000039,0x00000194,0x00000007,0x0004003b,0x00000007,0x00000197, + 0x00000007,0x0004003b,0x00000039,0x0000019b,0x00000007,0x0004003b,0x00000007,0x0000019d, + 0x00000007,0x0004003b,0x00000039,0x000001a1,0x00000007,0x0004003d,0x0000002a,0x00000191, + 0x0000005e,0x0003003e,0x00000190,0x00000191,0x00050039,0x00000006,0x00000192,0x00000054, + 0x00000190,0x0003003e,0x0000018f,0x00000192,0x0004003d,0x0000002a,0x00000195,0x0000005f, + 0x0003003e,0x00000194,0x00000195,0x00050039,0x00000006,0x00000196,0x00000054,0x00000194, + 0x0003003e,0x00000193,0x00000196,0x0004003d,0x00000006,0x00000198,0x00000193,0x0004003d, + 0x00000006,0x00000199,0x0000018f,0x00050083,0x00000006,0x0000019a,0x00000198,0x00000199, + 0x0003003e,0x00000197,0x0000019a,0x0004003d,0x0000002a,0x0000019c,0x0000005e,0x0004003d, + 0x00000006,0x0000019e,0x00000197,0x0003003e,0x0000019d,0x0000019e,0x00050039,0x0000002a, + 0x0000019f,0x00000033,0x0000019d,0x00050081,0x0000002a,0x000001a0,0x0000019c,0x0000019f, + 0x0003003e,0x0000019b,0x000001a0,0x0004003d,0x0000002a,0x000001a2,0x0000019b,0x0003003e, + 0x000001a1,0x000001a2,0x00050039,0x0000002a,0x000001a3,0x0000005b,0x000001a1,0x000200fe, + 0x000001a3,0x00010038,0x00050036,0x0000002a,0x00000066,0x00000000,0x00000062,0x00030037, + 0x00000039,0x00000063,0x00030037,0x00000039,0x00000064,0x00030037,0x00000039,0x00000065, + 0x000200f8,0x00000067,0x0004003b,0x00000007,0x000001a6,0x00000007,0x0004003b,0x00000039, + 0x000001a7,0x00000007,0x0004003b,0x00000007,0x000001aa,0x00000007,0x0004003b,0x00000039, + 0x000001ab,0x00000007,0x0004003b,0x00000007,0x000001ae,0x00000007,0x0004003b,0x00000039, + 0x000001af,0x00000007,0x0004003b,0x00000039,0x000001b6,0x00000007,0x0004003b,0x00000007, + 0x000001c1,0x00000007,0x0004003b,0x00000039,0x000001c3,0x00000007,0x0004003b,0x00000039, + 0x000001c5,0x00000007,0x0004003d,0x0000002a,0x000001a8,0x00000063,0x0003003e,0x000001a7, + 0x000001a8,0x00050039,0x00000006,0x000001a9,0x0000004e,0x000001a7,0x0003003e,0x000001a6, + 0x000001a9,0x0004003d,0x0000002a,0x000001ac,0x00000063,0x0003003e,0x000001ab,0x000001ac, + 0x00050039,0x00000006,0x000001ad,0x00000057,0x000001ab,0x0003003e,0x000001aa,0x000001ad, + 0x0004003d,0x0000002a,0x000001b0,0x00000064,0x0003003e,0x000001af,0x000001b0,0x00050039, + 0x00000006,0x000001b1,0x00000057,0x000001af,0x0003003e,0x000001ae,0x000001b1,0x0004003d, + 0x00000006,0x000001b2,0x000001aa,0x000500ba,0x000000f7,0x000001b3,0x000001b2,0x000000ed, + 0x000300f7,0x000001b5,0x00000000,0x000400fa,0x000001b3,0x000001b4,0x000001c0,0x000200f8, + 0x000001b4,0x0004003d,0x0000002a,0x000001b7,0x00000063,0x0004003d,0x00000006,0x000001b8, + 0x000001a6,0x00060050,0x0000002a,0x000001b9,0x000001b8,0x000001b8,0x000001b8,0x00050083, + 0x0000002a,0x000001ba,0x000001b7,0x000001b9,0x0004003d,0x00000006,0x000001bb,0x000001ae, + 0x0005008e,0x0000002a,0x000001bc,0x000001ba,0x000001bb,0x0004003d,0x00000006,0x000001bd, + 0x000001aa,0x00060050,0x0000002a,0x000001be,0x000001bd,0x000001bd,0x000001bd,0x00050088, + 0x0000002a,0x000001bf,0x000001bc,0x000001be,0x0003003e,0x000001b6,0x000001bf,0x000200f9, + 0x000001b5,0x000200f8,0x000001c0,0x0003003e,0x000001c1,0x000000ed,0x00050039,0x0000002a, + 0x000001c2,0x00000033,0x000001c1,0x0003003e,0x000001b6,0x000001c2,0x000200f9,0x000001b5, + 0x000200f8,0x000001b5,0x0004003d,0x0000002a,0x000001c4,0x000001b6,0x0003003e,0x000001c3, + 0x000001c4,0x0004003d,0x0000002a,0x000001c6,0x00000065,0x0003003e,0x000001c5,0x000001c6, + 0x00060039,0x0000002a,0x000001c7,0x00000060,0x000001c3,0x000001c5,0x000200fe,0x000001c7, + 0x00010038,0x00050036,0x0000002a,0x0000006c,0x00000000,0x00000068,0x00030037,0x00000039, + 0x00000069,0x00030037,0x00000039,0x0000006a,0x00030037,0x00000019,0x0000006b,0x000200f8, + 0x0000006d,0x0004003b,0x00000039,0x000001db,0x00000007,0x0004003b,0x000001e8,0x000001e9, + 0x00000007,0x0004003b,0x00000007,0x00000222,0x00000007,0x0004003b,0x00000007,0x00000225, + 0x00000007,0x0004003b,0x00000007,0x00000228,0x00000007,0x0004003b,0x00000007,0x00000236, + 0x00000007,0x0004003b,0x00000007,0x00000239,0x00000007,0x0004003b,0x000001e8,0x0000023e, + 0x00000007,0x0004003b,0x000001e8,0x00000267,0x00000007,0x0004003b,0x00000007,0x000002d8, + 0x00000007,0x0004003b,0x00000007,0x000002da,0x00000007,0x0004003b,0x00000039,0x000002dd, + 0x00000007,0x0004003b,0x00000039,0x000002df,0x00000007,0x0004003b,0x00000039,0x000002e1, + 0x00000007,0x0004003b,0x00000007,0x000002e8,0x00000007,0x0004003b,0x00000007,0x000002ea, + 0x00000007,0x0004003b,0x00000039,0x000002ed,0x00000007,0x0004003b,0x00000039,0x000002ef, + 0x00000007,0x0004003b,0x00000039,0x000002f1,0x00000007,0x0004003b,0x00000007,0x000002f8, + 0x00000007,0x0004003b,0x00000007,0x000002fa,0x00000007,0x0004003b,0x00000039,0x000002fd, + 0x00000007,0x0004003b,0x00000039,0x000002ff,0x00000007,0x0004003b,0x00000007,0x00000306, + 0x00000007,0x0004003b,0x00000007,0x00000308,0x00000007,0x0004003b,0x00000039,0x0000030b, + 0x00000007,0x0004003b,0x00000039,0x0000030d,0x00000007,0x0004003d,0x00000018,0x000001ca, + 0x0000006b,0x000300f7,0x000001da,0x00000000,0x002100fb,0x000001ca,0x000001da,0x0000000b, + 0x000001cb,0x00000001,0x000001cc,0x00000002,0x000001cd,0x00000003,0x000001ce,0x00000004, + 0x000001cf,0x00000005,0x000001d0,0x00000006,0x000001d1,0x00000007,0x000001d2,0x00000008, + 0x000001d3,0x00000009,0x000001d4,0x0000000a,0x000001d5,0x0000000c,0x000001d6,0x0000000d, + 0x000001d7,0x0000000e,0x000001d8,0x0000000f,0x000001d9,0x000200f8,0x000001cb,0x0004003d, + 0x0000002a,0x000001dc,0x00000069,0x0004003d,0x0000002a,0x000001dd,0x0000006a,0x00050085, + 0x0000002a,0x000001de,0x000001dc,0x000001dd,0x0003003e,0x000001db,0x000001de,0x000200f9, + 0x000001da,0x000200f8,0x000001cc,0x0004003d,0x0000002a,0x000001e0,0x00000069,0x0004003d, + 0x0000002a,0x000001e1,0x0000006a,0x00050081,0x0000002a,0x000001e2,0x000001e0,0x000001e1, + 0x0004003d,0x0000002a,0x000001e3,0x00000069,0x0004003d,0x0000002a,0x000001e4,0x0000006a, + 0x00050085,0x0000002a,0x000001e5,0x000001e3,0x000001e4,0x00050083,0x0000002a,0x000001e6, + 0x000001e2,0x000001e5,0x0003003e,0x000001db,0x000001e6,0x000200f9,0x000001da,0x000200f8, + 0x000001cd,0x0003003e,0x000001e9,0x000000df,0x000200f9,0x000001ea,0x000200f8,0x000001ea, + 0x000400f6,0x000001ec,0x000001ed,0x00000000,0x000200f9,0x000001ee,0x000200f8,0x000001ee, + 0x0004003d,0x0000007e,0x000001ef,0x000001e9,0x000500b1,0x000000f7,0x000001f1,0x000001ef, + 0x000001f0,0x000400fa,0x000001f1,0x000001eb,0x000001ec,0x000200f8,0x000001eb,0x0004003d, + 0x0000007e,0x000001f2,0x000001e9,0x00050041,0x00000007,0x000001f3,0x0000006a,0x000001f2, + 0x0004003d,0x00000006,0x000001f4,0x000001f3,0x000500bc,0x000000f7,0x000001f6,0x000001f4, + 0x000001f5,0x000300f7,0x000001f8,0x00000000,0x000400fa,0x000001f6,0x000001f7,0x00000204, + 0x000200f8,0x000001f7,0x0004003d,0x0000007e,0x000001f9,0x000001e9,0x0004003d,0x0000007e, + 0x000001fb,0x000001e9,0x00050041,0x00000007,0x000001fc,0x00000069,0x000001fb,0x0004003d, + 0x00000006,0x000001fd,0x000001fc,0x00050085,0x00000006,0x000001fe,0x000001fa,0x000001fd, + 0x0004003d,0x0000007e,0x000001ff,0x000001e9,0x00050041,0x00000007,0x00000200,0x0000006a, + 0x000001ff,0x0004003d,0x00000006,0x00000201,0x00000200,0x00050085,0x00000006,0x00000202, + 0x000001fe,0x00000201,0x00050041,0x00000007,0x00000203,0x000001db,0x000001f9,0x0003003e, + 0x00000203,0x00000202,0x000200f9,0x000001f8,0x000200f8,0x00000204,0x0004003d,0x0000007e, + 0x00000205,0x000001e9,0x0004003d,0x0000007e,0x00000206,0x000001e9,0x00050041,0x00000007, + 0x00000207,0x00000069,0x00000206,0x0004003d,0x00000006,0x00000208,0x00000207,0x00050083, + 0x00000006,0x00000209,0x000000ec,0x00000208,0x00050085,0x00000006,0x0000020a,0x000001fa, + 0x00000209,0x0004003d,0x0000007e,0x0000020b,0x000001e9,0x00050041,0x00000007,0x0000020c, + 0x0000006a,0x0000020b,0x0004003d,0x00000006,0x0000020d,0x0000020c,0x00050083,0x00000006, + 0x0000020e,0x000000ec,0x0000020d,0x00050085,0x00000006,0x0000020f,0x0000020a,0x0000020e, + 0x00050083,0x00000006,0x00000210,0x000000ec,0x0000020f,0x00050041,0x00000007,0x00000211, + 0x000001db,0x00000205,0x0003003e,0x00000211,0x00000210,0x000200f9,0x000001f8,0x000200f8, + 0x000001f8,0x000200f9,0x000001ed,0x000200f8,0x000001ed,0x0004003d,0x0000007e,0x00000212, + 0x000001e9,0x00050080,0x0000007e,0x00000213,0x00000212,0x000000e2,0x0003003e,0x000001e9, + 0x00000213,0x000200f9,0x000001ea,0x000200f8,0x000001ec,0x000200f9,0x000001da,0x000200f8, + 0x000001ce,0x0004003d,0x0000002a,0x00000215,0x00000069,0x0004003d,0x0000002a,0x00000216, + 0x0000006a,0x0007000c,0x0000002a,0x00000217,0x00000001,0x00000025,0x00000215,0x00000216, + 0x0003003e,0x000001db,0x00000217,0x000200f9,0x000001da,0x000200f8,0x000001cf,0x0004003d, + 0x0000002a,0x00000219,0x00000069,0x0004003d,0x0000002a,0x0000021a,0x0000006a,0x0007000c, + 0x0000002a,0x0000021b,0x00000001,0x00000028,0x00000219,0x0000021a,0x0003003e,0x000001db, + 0x0000021b,0x000200f9,0x000001da,0x000200f8,0x000001d0,0x0004003d,0x0000002a,0x0000021d, + 0x0000006a,0x0004003d,0x0000002a,0x0000021e,0x00000069,0x00060050,0x0000002a,0x0000021f, + 0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a,0x00000220,0x0000021f,0x0000021e, + 0x00050088,0x0000002a,0x00000221,0x0000021d,0x00000220,0x0003003e,0x00000222,0x000000ec, + 0x00050039,0x0000002a,0x00000223,0x00000033,0x00000222,0x0007000c,0x0000002a,0x00000224, + 0x00000001,0x00000025,0x00000221,0x00000223,0x0003003e,0x00000225,0x000000ed,0x00050039, + 0x0000002a,0x00000226,0x00000033,0x00000225,0x0004003d,0x0000002a,0x00000227,0x0000006a, + 0x0003003e,0x00000228,0x000000ed,0x00050039,0x0000002a,0x00000229,0x00000033,0x00000228, + 0x000500bc,0x00000118,0x0000022a,0x00000227,0x00000229,0x000600a9,0x0000002a,0x0000022b, + 0x0000022a,0x00000226,0x00000224,0x0003003e,0x000001db,0x0000022b,0x000200f9,0x000001da, + 0x000200f8,0x000001d1,0x0004003d,0x0000002a,0x0000022d,0x0000006a,0x00060050,0x0000002a, + 0x0000022e,0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a,0x0000022f,0x0000022e, + 0x0000022d,0x0004003d,0x0000002a,0x00000230,0x00000069,0x00050088,0x0000002a,0x00000231, + 0x0000022f,0x00000230,0x00060050,0x0000002a,0x00000232,0x000000ec,0x000000ec,0x000000ec, + 0x0007000c,0x0000002a,0x00000233,0x00000001,0x00000025,0x00000231,0x00000232,0x00060050, + 0x0000002a,0x00000234,0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a,0x00000235, + 0x00000234,0x00000233,0x0003003e,0x00000236,0x000000ec,0x00050039,0x0000002a,0x00000237, + 0x00000033,0x00000236,0x0004003d,0x0000002a,0x00000238,0x0000006a,0x0003003e,0x00000239, + 0x000000ec,0x00050039,0x0000002a,0x0000023a,0x00000033,0x00000239,0x000500be,0x00000118, + 0x0000023b,0x00000238,0x0000023a,0x000600a9,0x0000002a,0x0000023c,0x0000023b,0x00000237, + 0x00000235,0x0003003e,0x000001db,0x0000023c,0x000200f9,0x000001da,0x000200f8,0x000001d2, + 0x0003003e,0x0000023e,0x000000df,0x000200f9,0x0000023f,0x000200f8,0x0000023f,0x000400f6, + 0x00000241,0x00000242,0x00000000,0x000200f9,0x00000243,0x000200f8,0x00000243,0x0004003d, + 0x0000007e,0x00000244,0x0000023e,0x000500b1,0x000000f7,0x00000245,0x00000244,0x000001f0, + 0x000400fa,0x00000245,0x00000240,0x00000241,0x000200f8,0x00000240,0x0004003d,0x0000007e, + 0x00000246,0x0000023e,0x00050041,0x00000007,0x00000247,0x00000069,0x00000246,0x0004003d, + 0x00000006,0x00000248,0x00000247,0x000500bc,0x000000f7,0x00000249,0x00000248,0x000001f5, + 0x000300f7,0x0000024b,0x00000000,0x000400fa,0x00000249,0x0000024a,0x00000256,0x000200f8, + 0x0000024a,0x0004003d,0x0000007e,0x0000024c,0x0000023e,0x0004003d,0x0000007e,0x0000024d, + 0x0000023e,0x00050041,0x00000007,0x0000024e,0x00000069,0x0000024d,0x0004003d,0x00000006, + 0x0000024f,0x0000024e,0x00050085,0x00000006,0x00000250,0x000001fa,0x0000024f,0x0004003d, + 0x0000007e,0x00000251,0x0000023e,0x00050041,0x00000007,0x00000252,0x0000006a,0x00000251, + 0x0004003d,0x00000006,0x00000253,0x00000252,0x00050085,0x00000006,0x00000254,0x00000250, + 0x00000253,0x00050041,0x00000007,0x00000255,0x000001db,0x0000024c,0x0003003e,0x00000255, + 0x00000254,0x000200f9,0x0000024b,0x000200f8,0x00000256,0x0004003d,0x0000007e,0x00000257, + 0x0000023e,0x0004003d,0x0000007e,0x00000258,0x0000023e,0x00050041,0x00000007,0x00000259, + 0x00000069,0x00000258,0x0004003d,0x00000006,0x0000025a,0x00000259,0x00050083,0x00000006, + 0x0000025b,0x000000ec,0x0000025a,0x00050085,0x00000006,0x0000025c,0x000001fa,0x0000025b, + 0x0004003d,0x0000007e,0x0000025d,0x0000023e,0x00050041,0x00000007,0x0000025e,0x0000006a, + 0x0000025d,0x0004003d,0x00000006,0x0000025f,0x0000025e,0x00050083,0x00000006,0x00000260, + 0x000000ec,0x0000025f,0x00050085,0x00000006,0x00000261,0x0000025c,0x00000260,0x00050083, + 0x00000006,0x00000262,0x000000ec,0x00000261,0x00050041,0x00000007,0x00000263,0x000001db, + 0x00000257,0x0003003e,0x00000263,0x00000262,0x000200f9,0x0000024b,0x000200f8,0x0000024b, + 0x000200f9,0x00000242,0x000200f8,0x00000242,0x0004003d,0x0000007e,0x00000264,0x0000023e, + 0x00050080,0x0000007e,0x00000265,0x00000264,0x000000e2,0x0003003e,0x0000023e,0x00000265, + 0x000200f9,0x0000023f,0x000200f8,0x00000241,0x000200f9,0x000001da,0x000200f8,0x000001d3, + 0x0003003e,0x00000267,0x000000df,0x000200f9,0x00000268,0x000200f8,0x00000268,0x000400f6, + 0x0000026a,0x0000026b,0x00000000,0x000200f9,0x0000026c,0x000200f8,0x0000026c,0x0004003d, + 0x0000007e,0x0000026d,0x00000267,0x000500b1,0x000000f7,0x0000026e,0x0000026d,0x000001f0, + 0x000400fa,0x0000026e,0x00000269,0x0000026a,0x000200f8,0x00000269,0x0004003d,0x0000007e, + 0x0000026f,0x00000267,0x00050041,0x00000007,0x00000270,0x00000069,0x0000026f,0x0004003d, + 0x00000006,0x00000271,0x00000270,0x000500bc,0x000000f7,0x00000272,0x00000271,0x000001f5, + 0x000300f7,0x00000274,0x00000000,0x000400fa,0x00000272,0x00000273,0x00000289,0x000200f8, + 0x00000273,0x0004003d,0x0000007e,0x00000275,0x00000267,0x0004003d,0x0000007e,0x00000276, + 0x00000267,0x00050041,0x00000007,0x00000277,0x0000006a,0x00000276,0x0004003d,0x00000006, + 0x00000278,0x00000277,0x0004003d,0x0000007e,0x00000279,0x00000267,0x00050041,0x00000007, + 0x0000027a,0x00000069,0x00000279,0x0004003d,0x00000006,0x0000027b,0x0000027a,0x00050085, + 0x00000006,0x0000027c,0x000001fa,0x0000027b,0x00050083,0x00000006,0x0000027d,0x000000ec, + 0x0000027c,0x0004003d,0x0000007e,0x0000027e,0x00000267,0x00050041,0x00000007,0x0000027f, + 0x0000006a,0x0000027e,0x0004003d,0x00000006,0x00000280,0x0000027f,0x00050085,0x00000006, + 0x00000281,0x0000027d,0x00000280,0x0004003d,0x0000007e,0x00000282,0x00000267,0x00050041, + 0x00000007,0x00000283,0x0000006a,0x00000282,0x0004003d,0x00000006,0x00000284,0x00000283, + 0x00050083,0x00000006,0x00000285,0x000000ec,0x00000284,0x00050085,0x00000006,0x00000286, + 0x00000281,0x00000285,0x00050083,0x00000006,0x00000287,0x00000278,0x00000286,0x00050041, + 0x00000007,0x00000288,0x000001db,0x00000275,0x0003003e,0x00000288,0x00000287,0x000200f9, + 0x00000274,0x000200f8,0x00000289,0x0004003d,0x0000007e,0x0000028a,0x00000267,0x00050041, + 0x00000007,0x0000028b,0x0000006a,0x0000028a,0x0004003d,0x00000006,0x0000028c,0x0000028b, + 0x000500bc,0x000000f7,0x0000028e,0x0000028c,0x0000028d,0x000300f7,0x00000290,0x00000000, + 0x000400fa,0x0000028e,0x0000028f,0x000002ae,0x000200f8,0x0000028f,0x0004003d,0x0000007e, + 0x00000291,0x00000267,0x0004003d,0x0000007e,0x00000292,0x00000267,0x00050041,0x00000007, + 0x00000293,0x0000006a,0x00000292,0x0004003d,0x00000006,0x00000294,0x00000293,0x0004003d, + 0x0000007e,0x00000295,0x00000267,0x00050041,0x00000007,0x00000296,0x00000069,0x00000295, + 0x0004003d,0x00000006,0x00000297,0x00000296,0x00050085,0x00000006,0x00000298,0x000001fa, + 0x00000297,0x00050083,0x00000006,0x00000299,0x00000298,0x000000ec,0x0004003d,0x0000007e, + 0x0000029a,0x00000267,0x00050041,0x00000007,0x0000029b,0x0000006a,0x0000029a,0x0004003d, + 0x00000006,0x0000029c,0x0000029b,0x00050085,0x00000006,0x0000029d,0x00000299,0x0000029c, + 0x0004003d,0x0000007e,0x0000029f,0x00000267,0x00050041,0x00000007,0x000002a0,0x0000006a, + 0x0000029f,0x0004003d,0x00000006,0x000002a1,0x000002a0,0x00050085,0x00000006,0x000002a2, + 0x0000029e,0x000002a1,0x00050083,0x00000006,0x000002a4,0x000002a2,0x000002a3,0x0004003d, + 0x0000007e,0x000002a5,0x00000267,0x00050041,0x00000007,0x000002a6,0x0000006a,0x000002a5, + 0x0004003d,0x00000006,0x000002a7,0x000002a6,0x00050085,0x00000006,0x000002a8,0x000002a4, + 0x000002a7,0x00050081,0x00000006,0x000002aa,0x000002a8,0x000002a9,0x00050085,0x00000006, + 0x000002ab,0x0000029d,0x000002aa,0x00050081,0x00000006,0x000002ac,0x00000294,0x000002ab, + 0x00050041,0x00000007,0x000002ad,0x000001db,0x00000291,0x0003003e,0x000002ad,0x000002ac, + 0x000200f9,0x00000290,0x000200f8,0x000002ae,0x0004003d,0x0000007e,0x000002af,0x00000267, + 0x0004003d,0x0000007e,0x000002b0,0x00000267,0x00050041,0x00000007,0x000002b1,0x0000006a, + 0x000002b0,0x0004003d,0x00000006,0x000002b2,0x000002b1,0x0004003d,0x0000007e,0x000002b3, + 0x00000267,0x00050041,0x00000007,0x000002b4,0x00000069,0x000002b3,0x0004003d,0x00000006, + 0x000002b5,0x000002b4,0x00050085,0x00000006,0x000002b6,0x000001fa,0x000002b5,0x00050083, + 0x00000006,0x000002b7,0x000002b6,0x000000ec,0x0004003d,0x0000007e,0x000002b8,0x00000267, + 0x00050041,0x00000007,0x000002b9,0x0000006a,0x000002b8,0x0004003d,0x00000006,0x000002ba, + 0x000002b9,0x0006000c,0x00000006,0x000002bb,0x00000001,0x0000001f,0x000002ba,0x0004003d, + 0x0000007e,0x000002bc,0x00000267,0x00050041,0x00000007,0x000002bd,0x0000006a,0x000002bc, + 0x0004003d,0x00000006,0x000002be,0x000002bd,0x00050083,0x00000006,0x000002bf,0x000002bb, + 0x000002be,0x00050085,0x00000006,0x000002c0,0x000002b7,0x000002bf,0x00050081,0x00000006, + 0x000002c1,0x000002b2,0x000002c0,0x00050041,0x00000007,0x000002c2,0x000001db,0x000002af, + 0x0003003e,0x000002c2,0x000002c1,0x000200f9,0x00000290,0x000200f8,0x00000290,0x000200f9, + 0x00000274,0x000200f8,0x00000274,0x000200f9,0x0000026b,0x000200f8,0x0000026b,0x0004003d, + 0x0000007e,0x000002c3,0x00000267,0x00050080,0x0000007e,0x000002c4,0x000002c3,0x000000e2, + 0x0003003e,0x00000267,0x000002c4,0x000200f9,0x00000268,0x000200f8,0x0000026a,0x000200f9, + 0x000001da,0x000200f8,0x000001d4,0x0004003d,0x0000002a,0x000002c6,0x0000006a,0x0004003d, + 0x0000002a,0x000002c7,0x00000069,0x00050083,0x0000002a,0x000002c8,0x000002c6,0x000002c7, + 0x0006000c,0x0000002a,0x000002c9,0x00000001,0x00000004,0x000002c8,0x0003003e,0x000001db, + 0x000002c9,0x000200f9,0x000001da,0x000200f8,0x000001d5,0x0004003d,0x0000002a,0x000002cb, + 0x00000069,0x0004003d,0x0000002a,0x000002cc,0x0000006a,0x00050081,0x0000002a,0x000002cd, + 0x000002cb,0x000002cc,0x0004003d,0x0000002a,0x000002ce,0x00000069,0x0005008e,0x0000002a, + 0x000002cf,0x000002ce,0x000001fa,0x0004003d,0x0000002a,0x000002d0,0x0000006a,0x00050085, + 0x0000002a,0x000002d1,0x000002cf,0x000002d0,0x00050083,0x0000002a,0x000002d2,0x000002cd, + 0x000002d1,0x0003003e,0x000001db,0x000002d2,0x000200f9,0x000001da,0x000200f8,0x000001d6, + 0x000300f7,0x000002d6,0x00000000,0x000400fa,0x000002d4,0x000002d5,0x000002d6,0x000200f8, + 0x000002d5,0x0004003d,0x0000002a,0x000002d7,0x00000069,0x0003003e,0x000002d8,0x000000ed, + 0x00050039,0x0000002a,0x000002d9,0x00000033,0x000002d8,0x0003003e,0x000002da,0x000000ec, + 0x00050039,0x0000002a,0x000002db,0x00000033,0x000002da,0x0008000c,0x0000002a,0x000002dc, + 0x00000001,0x0000002b,0x000002d7,0x000002d9,0x000002db,0x0003003e,0x00000069,0x000002dc, + 0x0004003d,0x0000002a,0x000002de,0x00000069,0x0003003e,0x000002dd,0x000002de,0x0004003d, + 0x0000002a,0x000002e0,0x0000006a,0x0003003e,0x000002df,0x000002e0,0x0004003d,0x0000002a, + 0x000002e2,0x0000006a,0x0003003e,0x000002e1,0x000002e2,0x00070039,0x0000002a,0x000002e3, + 0x00000066,0x000002dd,0x000002df,0x000002e1,0x0003003e,0x000001db,0x000002e3,0x000200f9, + 0x000001da,0x000200f8,0x000002d6,0x000200f9,0x000001d7,0x000200f8,0x000001d7,0x000300f7, + 0x000002e6,0x00000000,0x000400fa,0x000002d4,0x000002e5,0x000002e6,0x000200f8,0x000002e5, + 0x0004003d,0x0000002a,0x000002e7,0x00000069,0x0003003e,0x000002e8,0x000000ed,0x00050039, + 0x0000002a,0x000002e9,0x00000033,0x000002e8,0x0003003e,0x000002ea,0x000000ec,0x00050039, + 0x0000002a,0x000002eb,0x00000033,0x000002ea,0x0008000c,0x0000002a,0x000002ec,0x00000001, + 0x0000002b,0x000002e7,0x000002e9,0x000002eb,0x0003003e,0x00000069,0x000002ec,0x0004003d, + 0x0000002a,0x000002ee,0x0000006a,0x0003003e,0x000002ed,0x000002ee,0x0004003d,0x0000002a, + 0x000002f0,0x00000069,0x0003003e,0x000002ef,0x000002f0,0x0004003d,0x0000002a,0x000002f2, + 0x0000006a,0x0003003e,0x000002f1,0x000002f2,0x00070039,0x0000002a,0x000002f3,0x00000066, + 0x000002ed,0x000002ef,0x000002f1,0x0003003e,0x000001db,0x000002f3,0x000200f9,0x000001da, + 0x000200f8,0x000002e6,0x000200f9,0x000001d8,0x000200f8,0x000001d8,0x000300f7,0x000002f6, + 0x00000000,0x000400fa,0x000002d4,0x000002f5,0x000002f6,0x000200f8,0x000002f5,0x0004003d, + 0x0000002a,0x000002f7,0x00000069,0x0003003e,0x000002f8,0x000000ed,0x00050039,0x0000002a, + 0x000002f9,0x00000033,0x000002f8,0x0003003e,0x000002fa,0x000000ec,0x00050039,0x0000002a, + 0x000002fb,0x00000033,0x000002fa,0x0008000c,0x0000002a,0x000002fc,0x00000001,0x0000002b, + 0x000002f7,0x000002f9,0x000002fb,0x0003003e,0x00000069,0x000002fc,0x0004003d,0x0000002a, + 0x000002fe,0x00000069,0x0003003e,0x000002fd,0x000002fe,0x0004003d,0x0000002a,0x00000300, + 0x0000006a,0x0003003e,0x000002ff,0x00000300,0x00060039,0x0000002a,0x00000301,0x00000060, + 0x000002fd,0x000002ff,0x0003003e,0x000001db,0x00000301,0x000200f9,0x000001da,0x000200f8, + 0x000002f6,0x000200f9,0x000001d9,0x000200f8,0x000001d9,0x000300f7,0x00000304,0x00000000, + 0x000400fa,0x000002d4,0x00000303,0x00000304,0x000200f8,0x00000303,0x0004003d,0x0000002a, + 0x00000305,0x00000069,0x0003003e,0x00000306,0x000000ed,0x00050039,0x0000002a,0x00000307, + 0x00000033,0x00000306,0x0003003e,0x00000308,0x000000ec,0x00050039,0x0000002a,0x00000309, + 0x00000033,0x00000308,0x0008000c,0x0000002a,0x0000030a,0x00000001,0x0000002b,0x00000305, + 0x00000307,0x00000309,0x0003003e,0x00000069,0x0000030a,0x0004003d,0x0000002a,0x0000030c, + 0x0000006a,0x0003003e,0x0000030b,0x0000030c,0x0004003d,0x0000002a,0x0000030e,0x00000069, + 0x0003003e,0x0000030d,0x0000030e,0x00060039,0x0000002a,0x0000030f,0x00000060,0x0000030b, + 0x0000030d,0x0003003e,0x000001db,0x0000030f,0x000200f9,0x000001da,0x000200f8,0x00000304, + 0x000200f9,0x000001da,0x000200f8,0x000001da,0x0004003d,0x0000002a,0x00000312,0x000001db, + 0x000200fe,0x00000312,0x00010038,0x00050036,0x0000002a,0x00000072,0x00000000,0x0000006e, + 0x00030037,0x00000039,0x0000006f,0x00030037,0x0000000d,0x00000070,0x00030037,0x00000019, + 0x00000071,0x000200f8,0x00000073,0x0004003b,0x00000039,0x00000315,0x00000007,0x0004003b, + 0x00000039,0x00000316,0x00000007,0x0004003b,0x00000039,0x00000318,0x00000007,0x0004003b, + 0x00000019,0x0000031b,0x00000007,0x0004003b,0x00000013,0x0000031e,0x00000007,0x0004003b, + 0x00000007,0x00000322,0x00000007,0x0004003b,0x00000007,0x00000325,0x00000007,0x0004003b, + 0x00000039,0x00000327,0x00000007,0x0004003b,0x00000039,0x00000329,0x00000007,0x0004003d, + 0x0000002a,0x00000317,0x0000006f,0x0003003e,0x00000316,0x00000317,0x0004003d,0x0000000c, + 0x00000319,0x00000070,0x0008004f,0x0000002a,0x0000031a,0x00000319,0x00000319,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x00000318,0x0000031a,0x0004003d,0x00000018,0x0000031c, + 0x00000071,0x0003003e,0x0000031b,0x0000031c,0x00070039,0x0000002a,0x0000031d,0x0000006c, + 0x00000316,0x00000318,0x0000031b,0x0003003e,0x00000315,0x0000031d,0x00050041,0x00000007, + 0x0000031f,0x00000070,0x000000d8,0x0004003d,0x00000006,0x00000320,0x0000031f,0x00050083, + 0x00000006,0x00000321,0x000000ec,0x00000320,0x00050041,0x00000007,0x00000323,0x00000070, + 0x000000d8,0x0004003d,0x00000006,0x00000324,0x00000323,0x0003003e,0x00000322,0x00000324, + 0x0003003e,0x00000325,0x00000321,0x00060039,0x00000012,0x00000326,0x00000024,0x00000322, + 0x00000325,0x0003003e,0x0000031e,0x00000326,0x0004003d,0x0000002a,0x00000328,0x00000315, + 0x0003003e,0x00000327,0x00000328,0x0004003d,0x0000002a,0x0000032a,0x0000006f,0x0003003e, + 0x00000329,0x0000032a,0x00060039,0x0000003a,0x0000032b,0x0000003e,0x00000327,0x00000329, + 0x0004003d,0x00000012,0x0000032c,0x0000031e,0x00050091,0x0000002a,0x0000032d,0x0000032b, + 0x0000032c,0x000200fe,0x0000032d,0x00010038,0x00050036,0x00000006,0x00000076,0x00000000, + 0x00000074,0x00030037,0x00000019,0x00000075,0x000200f8,0x00000077,0x0004003b,0x00000007, + 0x00000336,0x00000007,0x0004003d,0x00000018,0x00000330,0x00000075,0x00040070,0x00000006, + 0x00000331,0x00000330,0x00050085,0x00000006,0x00000333,0x00000331,0x00000332,0x00050081, + 0x00000006,0x00000335,0x00000333,0x00000334,0x0003003e,0x00000336,0x00000335,0x00050039, + 0x00000006,0x00000337,0x0000000a,0x00000336,0x000200fe,0x00000337,0x00010038,0x00050036, + 0x00000002,0x0000007c,0x00000000,0x00000078,0x00030037,0x00000019,0x00000079,0x00030037, + 0x0000000d,0x0000007a,0x00030037,0x00000007,0x0000007b,0x000200f8,0x0000007d,0x0004003b, + 0x00000007,0x00000342,0x00000007,0x0004003d,0x0000000c,0x0000033a,0x0000007a,0x0007004f, + 0x00000012,0x0000033b,0x0000033a,0x0000033a,0x00000000,0x00000001,0x0004003d,0x00000018, + 0x0000033c,0x00000079,0x0006000c,0x0000000c,0x0000033d,0x00000001,0x00000040,0x0000033c, + 0x0007004f,0x00000012,0x0000033e,0x0000033d,0x0000033d,0x00000000,0x00000001,0x00050083, + 0x00000012,0x0000033f,0x0000033b,0x0000033e,0x0006000c,0x00000012,0x00000340,0x00000001, + 0x00000004,0x0000033f,0x0003003e,0x00000342,0x00000341,0x00050039,0x00000012,0x00000343, + 0x00000028,0x00000342,0x000500b8,0x00000344,0x00000345,0x00000340,0x00000343,0x0004009b, + 0x000000f7,0x00000346,0x00000345,0x000300f7,0x00000348,0x00000000,0x000400fa,0x00000346, + 0x00000347,0x0000034d,0x000200f8,0x00000347,0x0004003d,0x00000006,0x00000349,0x0000007b, + 0x00050041,0x00000007,0x0000034a,0x0000007a,0x000000c1,0x0004003d,0x00000006,0x0000034b, + 0x0000034a,0x0007000c,0x00000006,0x0000034c,0x00000001,0x00000025,0x00000349,0x0000034b, + 0x0003003e,0x0000007b,0x0000034c,0x000200f9,0x00000348,0x000200f8,0x0000034d,0x0003003e, + 0x0000007b,0x000000ed,0x000200f9,0x00000348,0x000200f8,0x00000348,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000087,0x00000000,0x00000081,0x00030037,0x00000019,0x00000082, + 0x00030037,0x00000007,0x00000083,0x00030037,0x0000000d,0x00000084,0x00030037,0x0000000d, + 0x00000085,0x00030037,0x00000080,0x00000086,0x000200f8,0x00000088,0x0004003b,0x0000034f, + 0x00000350,0x00000007,0x0004003b,0x00000007,0x00000359,0x00000007,0x0004003b,0x00000007, + 0x00000378,0x00000007,0x0004003b,0x00000007,0x0000037a,0x00000007,0x0004003b,0x00000019, + 0x00000380,0x00000007,0x0004003b,0x00000019,0x0000038f,0x00000007,0x0004003b,0x0000000d, + 0x00000391,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b,0x000003a1, + 0x000003a2,0x00000007,0x0004003b,0x0000000d,0x000003ab,0x00000007,0x0004003b,0x0000000d, + 0x000003b0,0x00000007,0x0004003b,0x00000013,0x000003b6,0x00000007,0x0004003b,0x00000013, + 0x000003c0,0x00000007,0x0004003b,0x00000013,0x000003c9,0x00000007,0x0004003b,0x00000007, + 0x000003cb,0x00000007,0x0004003b,0x00000019,0x000003d6,0x00000007,0x0004003b,0x00000007, + 0x000003f0,0x00000007,0x0004003b,0x000003a1,0x000003f3,0x00000007,0x0004003b,0x0000000d, + 0x000003f6,0x00000007,0x0004003b,0x0000000d,0x000003fa,0x00000007,0x0004003b,0x00000013, + 0x00000400,0x00000007,0x0004003b,0x00000007,0x00000408,0x00000007,0x0004003b,0x00000007, + 0x0000040b,0x00000007,0x0004003b,0x00000007,0x00000416,0x00000007,0x0004003b,0x00000007, + 0x0000041e,0x00000007,0x0004003b,0x00000019,0x0000043e,0x00000007,0x0004003b,0x00000019, + 0x00000444,0x00000007,0x0004003b,0x0000000d,0x0000044a,0x00000007,0x0004003b,0x0000000d, + 0x0000044e,0x00000007,0x0004003b,0x00000039,0x00000451,0x00000007,0x0004003b,0x0000000d, + 0x00000454,0x00000007,0x0004003b,0x00000019,0x00000455,0x00000007,0x0004003d,0x00000018, + 0x00000355,0x00000082,0x00060041,0x00000356,0x00000357,0x00000354,0x000000df,0x00000355, + 0x0004003d,0x0000034e,0x00000358,0x00000357,0x0003003e,0x00000350,0x00000358,0x0004003d, + 0x00000006,0x0000035a,0x00000083,0x0003003e,0x00000359,0x0000035a,0x00050041,0x00000019, + 0x0000035b,0x00000350,0x000000ab,0x0004003d,0x00000018,0x0000035c,0x0000035b,0x000500c7, + 0x00000018,0x0000035e,0x0000035c,0x0000035d,0x000500ab,0x000000f7,0x0000035f,0x0000035e, + 0x000000ab,0x000300f7,0x00000361,0x00000000,0x000400fa,0x0000035f,0x00000360,0x00000361, + 0x000200f8,0x00000360,0x0004003d,0x00000006,0x00000362,0x00000359,0x0006000c,0x00000006, + 0x00000363,0x00000001,0x00000004,0x00000362,0x0003003e,0x00000359,0x00000363,0x000300f7, + 0x00000366,0x00000000,0x000400fa,0x00000364,0x00000365,0x00000366,0x000200f8,0x00000365, + 0x00050041,0x00000019,0x00000367,0x00000350,0x000000ab,0x0004003d,0x00000018,0x00000368, + 0x00000367,0x000500c7,0x00000018,0x0000036a,0x00000368,0x00000369,0x000500ab,0x000000f7, + 0x0000036b,0x0000036a,0x000000ab,0x000200f9,0x00000366,0x000200f8,0x00000366,0x000700f5, + 0x000000f7,0x0000036c,0x00000364,0x00000360,0x0000036b,0x00000365,0x000300f7,0x0000036e, + 0x00000000,0x000400fa,0x0000036c,0x0000036d,0x0000036e,0x000200f8,0x0000036d,0x0004003d, + 0x00000006,0x0000036f,0x00000359,0x00050085,0x00000006,0x00000370,0x0000036f,0x000001f5, + 0x0006000c,0x00000006,0x00000371,0x00000001,0x0000000a,0x00000370,0x00050085,0x00000006, + 0x00000372,0x00000371,0x000001fa,0x00050081,0x00000006,0x00000374,0x00000372,0x00000373, + 0x0006000c,0x00000006,0x00000375,0x00000001,0x00000004,0x00000374,0x00050083,0x00000006, + 0x00000376,0x000000ec,0x00000375,0x0003003e,0x00000359,0x00000376,0x000200f9,0x0000036e, + 0x000200f8,0x0000036e,0x000200f9,0x00000361,0x000200f8,0x00000361,0x0004003d,0x00000006, + 0x00000377,0x00000359,0x0003003e,0x00000378,0x000000ed,0x00050039,0x00000006,0x00000379, + 0x0000001f,0x00000378,0x0003003e,0x0000037a,0x000000ec,0x00050039,0x00000006,0x0000037b, + 0x0000001f,0x0000037a,0x0008000c,0x00000006,0x0000037c,0x00000001,0x0000002b,0x00000377, + 0x00000379,0x0000037b,0x0003003e,0x00000359,0x0000037c,0x000300f7,0x0000037f,0x00000000, + 0x000400fa,0x0000037d,0x0000037e,0x0000037f,0x000200f8,0x0000037e,0x00050041,0x00000019, + 0x00000381,0x00000350,0x000000ab,0x0004003d,0x00000018,0x00000382,0x00000381,0x000500c2, + 0x00000018,0x00000384,0x00000382,0x00000383,0x0003003e,0x00000380,0x00000384,0x0004003d, + 0x00000018,0x00000385,0x00000380,0x000500ab,0x000000f7,0x00000386,0x00000385,0x000000ab, + 0x000300f7,0x00000388,0x00000000,0x000400fa,0x00000386,0x00000387,0x00000388,0x000200f8, + 0x00000387,0x0004003d,0x00000389,0x0000038c,0x0000038b,0x00050062,0x0000000c,0x0000038e, + 0x0000038c,0x0000038d,0x0004003d,0x00000018,0x00000390,0x00000380,0x0003003e,0x0000038f, + 0x00000390,0x0003003e,0x00000391,0x0000038e,0x0004003d,0x00000006,0x00000393,0x00000359, + 0x0003003e,0x00000392,0x00000393,0x00070039,0x00000002,0x00000394,0x0000007c,0x0000038f, + 0x00000391,0x00000392,0x0004003d,0x00000006,0x00000395,0x00000392,0x0003003e,0x00000359, + 0x00000395,0x000200f9,0x00000388,0x000200f8,0x00000388,0x000200f9,0x0000037f,0x000200f8, + 0x0000037f,0x000300f7,0x00000398,0x00000000,0x000400fa,0x00000396,0x00000397,0x00000398, + 0x000200f8,0x00000397,0x00050041,0x00000019,0x00000399,0x00000350,0x000000ab,0x0004003d, + 0x00000018,0x0000039a,0x00000399,0x000500c7,0x00000018,0x0000039c,0x0000039a,0x0000039b, + 0x000500ab,0x000000f7,0x0000039d,0x0000039c,0x000000ab,0x000200f9,0x00000398,0x000200f8, + 0x00000398,0x000700f5,0x000000f7,0x0000039e,0x00000396,0x0000037f,0x0000039d,0x00000397, + 0x000300f7,0x000003a0,0x00000000,0x000400fa,0x0000039e,0x0000039f,0x000003a0,0x000200f8, + 0x0000039f,0x0004003d,0x00000018,0x000003a7,0x00000082,0x00050084,0x00000018,0x000003a9, + 0x000003a7,0x000003a8,0x00050080,0x00000018,0x000003aa,0x000003a9,0x000000c1,0x00060041, + 0x000003ac,0x000003ad,0x000003a6,0x000000df,0x000003aa,0x0004003d,0x0000000c,0x000003ae, + 0x000003ad,0x0003003e,0x000003ab,0x000003ae,0x00050039,0x00000040,0x000003af,0x00000043, + 0x000003ab,0x0003003e,0x000003a2,0x000003af,0x0004003d,0x00000018,0x000003b1,0x00000082, + 0x00050084,0x00000018,0x000003b2,0x000003b1,0x000003a8,0x00050080,0x00000018,0x000003b3, + 0x000003b2,0x000000d8,0x00060041,0x000003ac,0x000003b4,0x000003a6,0x000000df,0x000003b3, + 0x0004003d,0x0000000c,0x000003b5,0x000003b4,0x0003003e,0x000003b0,0x000003b5,0x0004003d, + 0x00000040,0x000003b7,0x000003a2,0x0004003d,0x0000000c,0x000003ba,0x000003b9,0x0007004f, + 0x00000012,0x000003bb,0x000003ba,0x000003ba,0x00000000,0x00000001,0x00050091,0x00000012, + 0x000003bc,0x000003b7,0x000003bb,0x0004003d,0x0000000c,0x000003bd,0x000003b0,0x0007004f, + 0x00000012,0x000003be,0x000003bd,0x000003bd,0x00000000,0x00000001,0x00050081,0x00000012, + 0x000003bf,0x000003bc,0x000003be,0x0003003e,0x000003b6,0x000003bf,0x0004003d,0x00000012, + 0x000003c1,0x000003b6,0x0006000c,0x00000012,0x000003c2,0x00000001,0x00000004,0x000003c1, + 0x0004003d,0x0000000c,0x000003c3,0x000003b0,0x0007004f,0x00000012,0x000003c4,0x000003c3, + 0x000003c3,0x00000002,0x00000003,0x00050085,0x00000012,0x000003c5,0x000003c2,0x000003c4, + 0x0004003d,0x0000000c,0x000003c6,0x000003b0,0x0007004f,0x00000012,0x000003c7,0x000003c6, + 0x000003c6,0x00000002,0x00000003,0x00050083,0x00000012,0x000003c8,0x000003c5,0x000003c7, + 0x0003003e,0x000003c9,0x000003c8,0x00050039,0x00000012,0x000003ca,0x00000016,0x000003c9, + 0x0003003e,0x000003c0,0x000003ca,0x00050041,0x00000007,0x000003cc,0x000003c0,0x000000ab, + 0x0004003d,0x00000006,0x000003cd,0x000003cc,0x00050041,0x00000007,0x000003ce,0x000003c0, + 0x000000ae,0x0004003d,0x00000006,0x000003cf,0x000003ce,0x0007000c,0x00000006,0x000003d0, + 0x00000001,0x00000025,0x000003cd,0x000003cf,0x00050081,0x00000006,0x000003d1,0x000003d0, + 0x000001f5,0x0008000c,0x00000006,0x000003d2,0x00000001,0x0000002b,0x000003d1,0x000000ed, + 0x000000ec,0x0003003e,0x000003cb,0x000003d2,0x0004003d,0x00000006,0x000003d3,0x00000359, + 0x0004003d,0x00000006,0x000003d4,0x000003cb,0x0007000c,0x00000006,0x000003d5,0x00000001, + 0x00000025,0x000003d3,0x000003d4,0x0003003e,0x00000359,0x000003d5,0x000200f9,0x000003a0, + 0x000200f8,0x000003a0,0x00050041,0x00000019,0x000003d7,0x00000350,0x000000ab,0x0004003d, + 0x00000018,0x000003d8,0x000003d7,0x000500c7,0x00000018,0x000003da,0x000003d8,0x000003d9, + 0x0003003e,0x000003d6,0x000003da,0x0004003d,0x00000018,0x000003db,0x000003d6,0x000500b2, + 0x000000f7,0x000003dc,0x000003db,0x000000ae,0x000300f7,0x000003de,0x00000000,0x000400fa, + 0x000003dc,0x000003dd,0x000003f2,0x000200f8,0x000003dd,0x00050041,0x00000019,0x000003df, + 0x00000350,0x000000ae,0x0004003d,0x00000018,0x000003e0,0x000003df,0x0006000c,0x0000000c, + 0x000003e1,0x00000001,0x00000040,0x000003e0,0x0003003e,0x00000084,0x000003e1,0x0004003d, + 0x00000018,0x000003e2,0x000003d6,0x000500aa,0x000000f7,0x000003e3,0x000003e2,0x000000ab, + 0x000500a7,0x000000f7,0x000003e4,0x0000037d,0x000003e3,0x000300f7,0x000003e6,0x00000000, + 0x000400fa,0x000003e4,0x000003e5,0x000003e6,0x000200f8,0x000003e5,0x0004003d,0x0000000c, + 0x000003e7,0x00000084,0x0007004f,0x00000012,0x000003e8,0x000003e7,0x000003e7,0x00000002, + 0x00000003,0x00050041,0x00000007,0x000003e9,0x00000085,0x000000ab,0x00050051,0x00000006, + 0x000003ea,0x000003e8,0x00000000,0x0003003e,0x000003e9,0x000003ea,0x00050041,0x00000007, + 0x000003eb,0x00000085,0x000000ae,0x00050051,0x00000006,0x000003ec,0x000003e8,0x00000001, + 0x0003003e,0x000003eb,0x000003ec,0x0004003d,0x00000006,0x000003ed,0x00000359,0x00050041, + 0x00000007,0x000003ee,0x00000085,0x000000c1,0x0003003e,0x000003ee,0x000003ed,0x00050041, + 0x00000007,0x000003ef,0x00000085,0x000000d8,0x0003003e,0x000003ef,0x000000ec,0x0003003e, + 0x000003f0,0x000000ed,0x00050039,0x0000000c,0x000003f1,0x00000037,0x000003f0,0x0003003e, + 0x00000084,0x000003f1,0x000200f9,0x000003e6,0x000200f8,0x000003e6,0x000200f9,0x000003de, + 0x000200f8,0x000003f2,0x0004003d,0x00000018,0x000003f4,0x00000082,0x00050084,0x00000018, + 0x000003f5,0x000003f4,0x000003a8,0x00060041,0x000003ac,0x000003f7,0x000003a6,0x000000df, + 0x000003f5,0x0004003d,0x0000000c,0x000003f8,0x000003f7,0x0003003e,0x000003f6,0x000003f8, + 0x00050039,0x00000040,0x000003f9,0x00000043,0x000003f6,0x0003003e,0x000003f3,0x000003f9, + 0x0004003d,0x00000018,0x000003fb,0x00000082,0x00050084,0x00000018,0x000003fc,0x000003fb, + 0x000003a8,0x00050080,0x00000018,0x000003fd,0x000003fc,0x000000ae,0x00060041,0x000003ac, + 0x000003fe,0x000003a6,0x000000df,0x000003fd,0x0004003d,0x0000000c,0x000003ff,0x000003fe, + 0x0003003e,0x000003fa,0x000003ff,0x0004003d,0x00000040,0x00000401,0x000003f3,0x0004003d, + 0x0000000c,0x00000402,0x000003b9,0x0007004f,0x00000012,0x00000403,0x00000402,0x00000402, + 0x00000000,0x00000001,0x00050091,0x00000012,0x00000404,0x00000401,0x00000403,0x0004003d, + 0x0000000c,0x00000405,0x000003fa,0x0007004f,0x00000012,0x00000406,0x00000405,0x00000405, + 0x00000000,0x00000001,0x00050081,0x00000012,0x00000407,0x00000404,0x00000406,0x0003003e, + 0x00000400,0x00000407,0x0004003d,0x00000018,0x00000409,0x000003d6,0x000500aa,0x000000f7, + 0x0000040a,0x00000409,0x000000c1,0x000300f7,0x0000040d,0x00000000,0x000400fa,0x0000040a, + 0x0000040c,0x00000410,0x000200f8,0x0000040c,0x00050041,0x00000007,0x0000040e,0x00000400, + 0x000000ab,0x0004003d,0x00000006,0x0000040f,0x0000040e,0x0003003e,0x0000040b,0x0000040f, + 0x000200f9,0x0000040d,0x000200f8,0x00000410,0x0004003d,0x00000012,0x00000411,0x00000400, + 0x0006000c,0x00000006,0x00000412,0x00000001,0x00000042,0x00000411,0x0003003e,0x0000040b, + 0x00000412,0x000200f9,0x0000040d,0x000200f8,0x0000040d,0x0004003d,0x00000006,0x00000413, + 0x0000040b,0x0003003e,0x00000408,0x00000413,0x0004003d,0x00000006,0x00000414,0x00000408, + 0x0008000c,0x00000006,0x00000415,0x00000001,0x0000002b,0x00000414,0x000000ed,0x000000ec, + 0x0003003e,0x00000408,0x00000415,0x0004003d,0x00000006,0x00000417,0x00000408,0x00050041, + 0x00000007,0x00000418,0x000003fa,0x000000c1,0x0004003d,0x00000006,0x00000419,0x00000418, + 0x00050085,0x00000006,0x0000041a,0x00000417,0x00000419,0x00050041,0x00000007,0x0000041b, + 0x000003fa,0x000000d8,0x0004003d,0x00000006,0x0000041c,0x0000041b,0x00050081,0x00000006, + 0x0000041d,0x0000041a,0x0000041c,0x0003003e,0x00000416,0x0000041d,0x00050041,0x00000019, + 0x0000041f,0x00000350,0x000000ae,0x0004003d,0x00000018,0x00000420,0x0000041f,0x0004007c, + 0x00000006,0x00000421,0x00000420,0x0003003e,0x0000041e,0x00000421,0x0004003d,0x00000422, + 0x00000425,0x00000424,0x0004003d,0x00000426,0x00000429,0x00000428,0x00050056,0x0000042a, + 0x0000042b,0x00000425,0x00000429,0x0004003d,0x00000006,0x0000042c,0x00000416,0x0004003d, + 0x00000006,0x0000042d,0x0000041e,0x00050050,0x00000012,0x0000042e,0x0000042c,0x0000042d, + 0x00070058,0x0000000c,0x0000042f,0x0000042b,0x0000042e,0x00000002,0x000000ed,0x0003003e, + 0x00000084,0x0000042f,0x000200f9,0x000003de,0x000200f8,0x000003de,0x0004003d,0x00000006, + 0x00000430,0x00000359,0x00050041,0x00000007,0x00000431,0x00000084,0x000000d8,0x0004003d, + 0x00000006,0x00000432,0x00000431,0x00050085,0x00000006,0x00000433,0x00000432,0x00000430, + 0x00050041,0x00000007,0x00000434,0x00000084,0x000000d8,0x0003003e,0x00000434,0x00000433, + 0x000300f7,0x00000437,0x00000000,0x000400fa,0x00000435,0x00000436,0x00000437,0x000200f8, + 0x00000436,0x00050041,0x00000007,0x00000438,0x00000084,0x000000d8,0x0004003d,0x00000006, + 0x00000439,0x00000438,0x000500b7,0x000000f7,0x0000043a,0x00000439,0x000000ed,0x000200f9, + 0x00000437,0x000200f8,0x00000437,0x000700f5,0x000000f7,0x0000043b,0x00000435,0x000003de, + 0x0000043a,0x00000436,0x000300f7,0x0000043d,0x00000000,0x000400fa,0x0000043b,0x0000043c, + 0x0000043d,0x000200f8,0x0000043c,0x00050041,0x00000019,0x0000043f,0x00000350,0x000000ab, + 0x0004003d,0x00000018,0x00000440,0x0000043f,0x000500c2,0x00000018,0x00000442,0x00000440, + 0x00000441,0x000500c7,0x00000018,0x00000443,0x00000442,0x000003d9,0x0003003e,0x00000444, + 0x00000443,0x00050039,0x00000018,0x00000445,0x0000001c,0x00000444,0x0003003e,0x0000043e, + 0x00000445,0x000500ab,0x000000f7,0x00000446,0x00000445,0x000000ab,0x000200f9,0x0000043d, + 0x000200f8,0x0000043d,0x000700f5,0x000000f7,0x00000447,0x0000043b,0x00000437,0x00000446, + 0x0000043c,0x000300f7,0x00000449,0x00000000,0x000400fa,0x00000447,0x00000448,0x00000449, + 0x000200f8,0x00000448,0x0004003d,0x00000389,0x0000044c,0x0000044b,0x00050062,0x0000000c, + 0x0000044d,0x0000044c,0x0000038d,0x0003003e,0x0000044a,0x0000044d,0x0004003d,0x0000000c, + 0x0000044f,0x0000044a,0x0003003e,0x0000044e,0x0000044f,0x00050039,0x0000000c,0x00000450, + 0x00000046,0x0000044e,0x0004003d,0x0000000c,0x00000452,0x00000084,0x0008004f,0x0000002a, + 0x00000453,0x00000452,0x00000452,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000451, + 0x00000453,0x0003003e,0x00000454,0x00000450,0x0004003d,0x00000018,0x00000456,0x0000043e, + 0x0003003e,0x00000455,0x00000456,0x00070039,0x0000002a,0x00000457,0x00000072,0x00000451, + 0x00000454,0x00000455,0x00050041,0x00000007,0x00000458,0x00000084,0x000000ab,0x00050051, + 0x00000006,0x00000459,0x00000457,0x00000000,0x0003003e,0x00000458,0x00000459,0x00050041, + 0x00000007,0x0000045a,0x00000084,0x000000ae,0x00050051,0x00000006,0x0000045b,0x00000457, + 0x00000001,0x0003003e,0x0000045a,0x0000045b,0x00050041,0x00000007,0x0000045c,0x00000084, + 0x000000c1,0x00050051,0x00000006,0x0000045d,0x00000457,0x00000002,0x0003003e,0x0000045c, + 0x0000045d,0x000200f9,0x00000449,0x000200f8,0x00000449,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x0000008c,0x00000000,0x00000089,0x00030037,0x0000000d,0x0000008a,0x00030037, + 0x00000080,0x0000008b,0x000200f8,0x0000008d,0x0004003d,0x0000000c,0x00000460,0x0000008a, + 0x0003003e,0x0000045f,0x00000460,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000090, + 0x00000000,0x00000089,0x00030037,0x0000000d,0x0000008e,0x00030037,0x00000080,0x0000008f, + 0x000200f8,0x00000091,0x0004003d,0x0000000c,0x00000462,0x0000008e,0x0003003e,0x00000461, + 0x00000462,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.vert.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.vert.h new file mode 100644 index 00000000..1a0d47ae --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_mesh.vert.h @@ -0,0 +1,235 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_mesh_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000000ce,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000c000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x00000065,0x00000068,0x00000076, + 0x0000007e,0x0000007f,0x00000085,0x000000af,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00070005,0x0000000d,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x0000000c,0x00000078,0x000e0005,0x00000015,0x646e6966,0x696c635f, + 0x65725f70,0x635f7463,0x7265766f,0x5f656761,0x74736964,0x65636e61,0x666d2873,0x763b3232, + 0x763b3266,0x003b3266,0x00080005,0x00000012,0x70696c63,0x74636552,0x65766e49,0x4d657372, + 0x69727461,0x00000078,0x00090005,0x00000013,0x70696c63,0x74636552,0x65766e49,0x54657372, + 0x736e6172,0x6574616c,0x00000000,0x00060005,0x00000014,0x65786970,0x736f506c,0x6f697469, + 0x0000006e,0x00060005,0x00000026,0x70696c63,0x74636552,0x69574141,0x00687464,0x00030005, + 0x00000041,0x00000072,0x00060005,0x00000045,0x70696c63,0x74636552,0x726f6f43,0x00000064, + 0x00050005,0x00000063,0x7265765f,0x49786574,0x00000044,0x00060005,0x00000065,0x565f6c67, + 0x65747265,0x646e4978,0x00007865,0x00050005,0x00000067,0x736e695f,0x636e6174,0x00444965, + 0x00070005,0x00000068,0x495f6c67,0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00030005, + 0x0000006a,0x0000004d,0x00090005,0x0000006b,0x5058455f,0x4554524f,0x6d495f44,0x44656761, + 0x55776172,0x6f66696e,0x00736d72,0x00060006,0x0000006b,0x00000000,0x77656976,0x7274614d, + 0x00007869,0x00060006,0x0000006b,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006, + 0x0000006b,0x00000002,0x6361706f,0x00797469,0x00050006,0x0000006b,0x00000003,0x64646170, + 0x00676e69,0x00090006,0x0000006b,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372, + 0x69727461,0x00000078,0x000a0006,0x0000006b,0x00000005,0x70696c63,0x74636552,0x65766e49, + 0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x0000006b,0x00000006,0x70696c63, + 0x00004449,0x00060006,0x0000006b,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006, + 0x0000006b,0x00000008,0x646e497a,0x00007865,0x00070005,0x0000006d,0x67616d69,0x61724465, + 0x696e5577,0x6d726f66,0x00000073,0x00040005,0x0000006e,0x61726170,0x0000006d,0x00060005, + 0x00000073,0x74726576,0x6f507865,0x69746973,0x00006e6f,0x00080005,0x00000076,0x5058455f, + 0x4554524f,0x5f615f44,0x69736f70,0x6e6f6974,0x00000000,0x00050005,0x0000007e,0x65745f76, + 0x6f6f4378,0x00006472,0x00080005,0x0000007f,0x5058455f,0x4554524f,0x5f615f44,0x43786574, + 0x64726f6f,0x00000000,0x00060005,0x00000081,0x616e456b,0x43656c62,0x5270696c,0x00746365, + 0x00050005,0x00000085,0x6c635f76,0x65527069,0x00007463,0x00040005,0x00000087,0x61726170, + 0x0000006d,0x00040005,0x0000008c,0x61726170,0x0000006d,0x00040005,0x0000008d,0x61726170, + 0x0000006d,0x00040005,0x00000090,0x61726170,0x0000006d,0x00030005,0x00000093,0x00736f70, + 0x00080005,0x00000097,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72, + 0x00090006,0x00000097,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00090006,0x00000097,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x000b0006,0x00000097,0x00000002,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x00000097,0x00000003, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00080006,0x00000097,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068, + 0x00080006,0x00000097,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468, + 0x00070006,0x00000097,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006, + 0x00000097,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006, + 0x00000097,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75, + 0x00000000,0x00090006,0x00000097,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265, + 0x78696665,0x00000000,0x00080006,0x00000097,0x0000000a,0x68746170,0x72474449,0x6c756e61, + 0x74697261,0x00000079,0x00080006,0x00000097,0x0000000b,0x74726576,0x69447865,0x72616373, + 0x6c615664,0x00006575,0x00050005,0x00000099,0x66696e75,0x736d726f,0x00000000,0x00060005, + 0x000000ad,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x000000ad,0x00000000, + 0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x000000ad,0x00000001,0x505f6c67,0x746e696f, + 0x657a6953,0x00000000,0x00070006,0x000000ad,0x00000002,0x435f6c67,0x4470696c,0x61747369, + 0x0065636e,0x00070006,0x000000ad,0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e, + 0x00030005,0x000000af,0x00000000,0x00060005,0x000000b2,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00080005,0x000000b3,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c, + 0x00000000,0x00060005,0x000000b4,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005, + 0x000000b5,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005, + 0x000000b6,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005, + 0x000000b7,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000000b8,0x726f426b, + 0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00090005,0x000000bb, + 0x5058455f,0x4554524f,0x65745f44,0x65567373,0x78657472,0x74786554,0x00657275,0x00050005, + 0x000000be,0x68746150,0x66667542,0x00007265,0x00050006,0x000000be,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x000000c0,0x5058455f,0x4554524f,0x61705f44,0x75426874,0x72656666, + 0x00000000,0x00050005,0x000000c3,0x6e696150,0x66754274,0x00726566,0x00050006,0x000000c3, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000c5,0x5058455f,0x4554524f,0x61705f44, + 0x42746e69,0x65666675,0x00000072,0x00060005,0x000000c7,0x6e696150,0x78754174,0x66667542, + 0x00007265,0x00050006,0x000000c7,0x00000000,0x6c61765f,0x00736575,0x00090005,0x000000c9, + 0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00060005, + 0x000000cb,0x746e6f43,0x4272756f,0x65666675,0x00000072,0x00050006,0x000000cb,0x00000000, + 0x6c61765f,0x00736575,0x00080005,0x000000cd,0x5058455f,0x4554524f,0x6f635f44,0x756f746e, + 0x66754272,0x00726566,0x00040047,0x00000065,0x0000000b,0x0000002a,0x00040047,0x00000068, + 0x0000000b,0x0000002b,0x00050048,0x0000006b,0x00000000,0x00000023,0x00000000,0x00050048, + 0x0000006b,0x00000001,0x00000023,0x00000010,0x00050048,0x0000006b,0x00000002,0x00000023, + 0x00000018,0x00050048,0x0000006b,0x00000003,0x00000023,0x0000001c,0x00050048,0x0000006b, + 0x00000004,0x00000023,0x00000020,0x00050048,0x0000006b,0x00000005,0x00000023,0x00000030, + 0x00050048,0x0000006b,0x00000006,0x00000023,0x00000038,0x00050048,0x0000006b,0x00000007, + 0x00000023,0x0000003c,0x00050048,0x0000006b,0x00000008,0x00000023,0x00000040,0x00030047, + 0x0000006b,0x00000002,0x00040047,0x0000006d,0x00000022,0x00000000,0x00040047,0x0000006d, + 0x00000021,0x00000009,0x00040047,0x00000076,0x0000001e,0x00000000,0x00040047,0x0000007e, + 0x0000001e,0x00000000,0x00040047,0x0000007f,0x0000001e,0x00000001,0x00040047,0x00000081, + 0x00000001,0x00000001,0x00040047,0x00000085,0x0000001e,0x00000001,0x00050048,0x00000097, + 0x00000000,0x00000023,0x00000000,0x00050048,0x00000097,0x00000001,0x00000023,0x00000004, + 0x00050048,0x00000097,0x00000002,0x00000023,0x00000008,0x00050048,0x00000097,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x00000097,0x00000004,0x00000023,0x00000010,0x00050048, + 0x00000097,0x00000005,0x00000023,0x00000014,0x00050048,0x00000097,0x00000006,0x00000023, + 0x00000018,0x00050048,0x00000097,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000097, + 0x00000008,0x00000023,0x00000020,0x00050048,0x00000097,0x00000009,0x00000023,0x00000030, + 0x00050048,0x00000097,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000097,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x00000097,0x00000002,0x00040047,0x00000099,0x00000022, + 0x00000000,0x00040047,0x00000099,0x00000021,0x00000007,0x00050048,0x000000ad,0x00000000, + 0x0000000b,0x00000000,0x00050048,0x000000ad,0x00000001,0x0000000b,0x00000001,0x00050048, + 0x000000ad,0x00000002,0x0000000b,0x00000003,0x00050048,0x000000ad,0x00000003,0x0000000b, + 0x00000004,0x00030047,0x000000ad,0x00000002,0x00040047,0x000000b2,0x00000001,0x00000000, + 0x00040047,0x000000b3,0x00000001,0x00000002,0x00040047,0x000000b4,0x00000001,0x00000003, + 0x00040047,0x000000b5,0x00000001,0x00000004,0x00040047,0x000000b6,0x00000001,0x00000005, + 0x00040047,0x000000b7,0x00000001,0x00000006,0x00040047,0x000000b8,0x00000001,0x00000007, + 0x00040047,0x000000bb,0x00000022,0x00000000,0x00040047,0x000000bb,0x00000021,0x00000000, + 0x00040047,0x000000bd,0x00000006,0x00000010,0x00040048,0x000000be,0x00000000,0x00000018, + 0x00050048,0x000000be,0x00000000,0x00000023,0x00000000,0x00030047,0x000000be,0x00000003, + 0x00040047,0x000000c0,0x00000022,0x00000000,0x00040047,0x000000c0,0x00000021,0x00000003, + 0x00040047,0x000000c2,0x00000006,0x00000008,0x00040048,0x000000c3,0x00000000,0x00000018, + 0x00050048,0x000000c3,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c3,0x00000003, + 0x00040047,0x000000c5,0x00000022,0x00000000,0x00040047,0x000000c5,0x00000021,0x00000004, + 0x00040047,0x000000c6,0x00000006,0x00000010,0x00040048,0x000000c7,0x00000000,0x00000018, + 0x00050048,0x000000c7,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c7,0x00000003, + 0x00040047,0x000000c9,0x00000022,0x00000000,0x00040047,0x000000c9,0x00000021,0x00000005, + 0x00040047,0x000000ca,0x00000006,0x00000010,0x00040048,0x000000cb,0x00000000,0x00000018, + 0x00050048,0x000000cb,0x00000000,0x00000023,0x00000000,0x00030047,0x000000cb,0x00000003, + 0x00040047,0x000000cd,0x00000022,0x00000000,0x00040047,0x000000cd,0x00000021,0x00000006, + 0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020, + 0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000007,0x00000007, + 0x00040017,0x00000009,0x00000006,0x00000002,0x00040018,0x0000000a,0x00000009,0x00000002, + 0x00040021,0x0000000b,0x0000000a,0x00000008,0x00040020,0x0000000f,0x00000007,0x0000000a, + 0x00040020,0x00000010,0x00000007,0x00000009,0x00060021,0x00000011,0x00000007,0x0000000f, + 0x00000010,0x00000010,0x0004002b,0x00000006,0x0000001b,0x3f800000,0x0004002b,0x00000006, + 0x0000001c,0x00000000,0x00040015,0x00000027,0x00000020,0x00000001,0x0004002b,0x00000027, + 0x00000028,0x00000000,0x0004002b,0x00000027,0x0000002c,0x00000001,0x00020014,0x00000031, + 0x00040015,0x00000032,0x00000020,0x00000000,0x0004002b,0x00000032,0x00000033,0x00000000, + 0x00040020,0x00000034,0x00000007,0x00000006,0x0004002b,0x00000032,0x0000003a,0x00000001, + 0x0004002b,0x00000006,0x00000059,0x3f000000,0x00040020,0x00000062,0x00000007,0x00000027, + 0x00040020,0x00000064,0x00000001,0x00000027,0x0004003b,0x00000064,0x00000065,0x00000001, + 0x0004003b,0x00000064,0x00000068,0x00000001,0x000b001e,0x0000006b,0x00000007,0x00000009, + 0x00000006,0x00000006,0x00000007,0x00000009,0x00000032,0x00000032,0x00000032,0x00040020, + 0x0000006c,0x00000002,0x0000006b,0x0004003b,0x0000006c,0x0000006d,0x00000002,0x00040020, + 0x0000006f,0x00000002,0x00000007,0x00040020,0x00000075,0x00000001,0x00000009,0x0004003b, + 0x00000075,0x00000076,0x00000001,0x00040020,0x00000079,0x00000002,0x00000009,0x00040020, + 0x0000007d,0x00000003,0x00000009,0x0004003b,0x0000007d,0x0000007e,0x00000003,0x0004003b, + 0x00000075,0x0000007f,0x00000001,0x00030031,0x00000031,0x00000081,0x00040020,0x00000084, + 0x00000003,0x00000007,0x0004003b,0x00000084,0x00000085,0x00000003,0x0004002b,0x00000027, + 0x00000086,0x00000004,0x0004002b,0x00000027,0x0000008b,0x00000005,0x00040017,0x00000096, + 0x00000027,0x00000004,0x000e001e,0x00000097,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000096,0x00000032,0x00000032,0x00000006, + 0x00040020,0x00000098,0x00000002,0x00000097,0x0004003b,0x00000098,0x00000099,0x00000002, + 0x0004002b,0x00000027,0x0000009a,0x00000002,0x00040020,0x0000009b,0x00000002,0x00000006, + 0x0004002b,0x00000027,0x000000a2,0x00000003,0x0004001c,0x000000ac,0x00000006,0x0000003a, + 0x0006001e,0x000000ad,0x00000007,0x00000006,0x000000ac,0x000000ac,0x00040020,0x000000ae, + 0x00000003,0x000000ad,0x0004003b,0x000000ae,0x000000af,0x00000003,0x00030031,0x00000031, + 0x000000b2,0x00030031,0x00000031,0x000000b3,0x00030031,0x00000031,0x000000b4,0x00030031, + 0x00000031,0x000000b5,0x00030031,0x00000031,0x000000b6,0x00030031,0x00000031,0x000000b7, + 0x00030031,0x00000031,0x000000b8,0x00090019,0x000000b9,0x00000032,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000ba,0x00000000,0x000000b9, + 0x0004003b,0x000000ba,0x000000bb,0x00000000,0x00040017,0x000000bc,0x00000032,0x00000004, + 0x0003001d,0x000000bd,0x000000bc,0x0003001e,0x000000be,0x000000bd,0x00040020,0x000000bf, + 0x00000002,0x000000be,0x0004003b,0x000000bf,0x000000c0,0x00000002,0x00040017,0x000000c1, + 0x00000032,0x00000002,0x0003001d,0x000000c2,0x000000c1,0x0003001e,0x000000c3,0x000000c2, + 0x00040020,0x000000c4,0x00000002,0x000000c3,0x0004003b,0x000000c4,0x000000c5,0x00000002, + 0x0003001d,0x000000c6,0x00000007,0x0003001e,0x000000c7,0x000000c6,0x00040020,0x000000c8, + 0x00000002,0x000000c7,0x0004003b,0x000000c8,0x000000c9,0x00000002,0x0003001d,0x000000ca, + 0x000000bc,0x0003001e,0x000000cb,0x000000ca,0x00040020,0x000000cc,0x00000002,0x000000cb, + 0x0004003b,0x000000cc,0x000000cd,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000062,0x00000063,0x00000007,0x0004003b, + 0x00000062,0x00000067,0x00000007,0x0004003b,0x0000000f,0x0000006a,0x00000007,0x0004003b, + 0x00000008,0x0000006e,0x00000007,0x0004003b,0x00000010,0x00000073,0x00000007,0x0004003b, + 0x00000008,0x00000087,0x00000007,0x0004003b,0x0000000f,0x0000008c,0x00000007,0x0004003b, + 0x00000010,0x0000008d,0x00000007,0x0004003b,0x00000010,0x00000090,0x00000007,0x0004003b, + 0x00000008,0x00000093,0x00000007,0x0004003d,0x00000027,0x00000066,0x00000065,0x0003003e, + 0x00000063,0x00000066,0x0004003d,0x00000027,0x00000069,0x00000068,0x0003003e,0x00000067, + 0x00000069,0x00050041,0x0000006f,0x00000070,0x0000006d,0x00000028,0x0004003d,0x00000007, + 0x00000071,0x00000070,0x0003003e,0x0000006e,0x00000071,0x00050039,0x0000000a,0x00000072, + 0x0000000d,0x0000006e,0x0003003e,0x0000006a,0x00000072,0x0004003d,0x0000000a,0x00000074, + 0x0000006a,0x0004003d,0x00000009,0x00000077,0x00000076,0x00050091,0x00000009,0x00000078, + 0x00000074,0x00000077,0x00050041,0x00000079,0x0000007a,0x0000006d,0x0000002c,0x0004003d, + 0x00000009,0x0000007b,0x0000007a,0x00050081,0x00000009,0x0000007c,0x00000078,0x0000007b, + 0x0003003e,0x00000073,0x0000007c,0x0004003d,0x00000009,0x00000080,0x0000007f,0x0003003e, + 0x0000007e,0x00000080,0x000300f7,0x00000083,0x00000000,0x000400fa,0x00000081,0x00000082, + 0x00000083,0x000200f8,0x00000082,0x00050041,0x0000006f,0x00000088,0x0000006d,0x00000086, + 0x0004003d,0x00000007,0x00000089,0x00000088,0x0003003e,0x00000087,0x00000089,0x00050039, + 0x0000000a,0x0000008a,0x0000000d,0x00000087,0x0003003e,0x0000008c,0x0000008a,0x00050041, + 0x00000079,0x0000008e,0x0000006d,0x0000008b,0x0004003d,0x00000009,0x0000008f,0x0000008e, + 0x0003003e,0x0000008d,0x0000008f,0x0004003d,0x00000009,0x00000091,0x00000073,0x0003003e, + 0x00000090,0x00000091,0x00070039,0x00000007,0x00000092,0x00000015,0x0000008c,0x0000008d, + 0x00000090,0x0003003e,0x00000085,0x00000092,0x000200f9,0x00000083,0x000200f8,0x00000083, + 0x00050041,0x00000034,0x00000094,0x00000073,0x00000033,0x0004003d,0x00000006,0x00000095, + 0x00000094,0x00050041,0x0000009b,0x0000009c,0x00000099,0x0000009a,0x0004003d,0x00000006, + 0x0000009d,0x0000009c,0x00050085,0x00000006,0x0000009e,0x00000095,0x0000009d,0x00050083, + 0x00000006,0x0000009f,0x0000009e,0x0000001b,0x00050041,0x00000034,0x000000a0,0x00000073, + 0x0000003a,0x0004003d,0x00000006,0x000000a1,0x000000a0,0x00050041,0x0000009b,0x000000a3, + 0x00000099,0x000000a2,0x0004003d,0x00000006,0x000000a4,0x000000a3,0x0004007f,0x00000006, + 0x000000a5,0x000000a4,0x00050085,0x00000006,0x000000a6,0x000000a1,0x000000a5,0x00050041, + 0x0000009b,0x000000a7,0x00000099,0x000000a2,0x0004003d,0x00000006,0x000000a8,0x000000a7, + 0x0006000c,0x00000006,0x000000a9,0x00000001,0x00000006,0x000000a8,0x00050081,0x00000006, + 0x000000aa,0x000000a6,0x000000a9,0x00070050,0x00000007,0x000000ab,0x0000009f,0x000000aa, + 0x0000001c,0x0000001b,0x0003003e,0x00000093,0x000000ab,0x0004003d,0x00000007,0x000000b0, + 0x00000093,0x00050041,0x00000084,0x000000b1,0x000000af,0x00000028,0x0003003e,0x000000b1, + 0x000000b0,0x000100fd,0x00010038,0x00050036,0x0000000a,0x0000000d,0x00000000,0x0000000b, + 0x00030037,0x00000008,0x0000000c,0x000200f8,0x0000000e,0x0004003d,0x00000007,0x00000017, + 0x0000000c,0x0007004f,0x00000009,0x00000018,0x00000017,0x00000017,0x00000000,0x00000001, + 0x0004003d,0x00000007,0x00000019,0x0000000c,0x0007004f,0x00000009,0x0000001a,0x00000019, + 0x00000019,0x00000002,0x00000003,0x00050051,0x00000006,0x0000001d,0x00000018,0x00000000, + 0x00050051,0x00000006,0x0000001e,0x00000018,0x00000001,0x00050051,0x00000006,0x0000001f, + 0x0000001a,0x00000000,0x00050051,0x00000006,0x00000020,0x0000001a,0x00000001,0x00050050, + 0x00000009,0x00000021,0x0000001d,0x0000001e,0x00050050,0x00000009,0x00000022,0x0000001f, + 0x00000020,0x00050050,0x0000000a,0x00000023,0x00000021,0x00000022,0x000200fe,0x00000023, + 0x00010038,0x00050036,0x00000007,0x00000015,0x00000000,0x00000011,0x00030037,0x0000000f, + 0x00000012,0x00030037,0x00000010,0x00000013,0x00030037,0x00000010,0x00000014,0x000200f8, + 0x00000016,0x0004003b,0x00000010,0x00000026,0x00000007,0x0004003b,0x00000010,0x00000041, + 0x00000007,0x0004003b,0x00000010,0x00000045,0x00000007,0x00050041,0x00000010,0x00000029, + 0x00000012,0x00000028,0x0004003d,0x00000009,0x0000002a,0x00000029,0x0006000c,0x00000009, + 0x0000002b,0x00000001,0x00000004,0x0000002a,0x00050041,0x00000010,0x0000002d,0x00000012, + 0x0000002c,0x0004003d,0x00000009,0x0000002e,0x0000002d,0x0006000c,0x00000009,0x0000002f, + 0x00000001,0x00000004,0x0000002e,0x00050081,0x00000009,0x00000030,0x0000002b,0x0000002f, + 0x0003003e,0x00000026,0x00000030,0x00050041,0x00000034,0x00000035,0x00000026,0x00000033, + 0x0004003d,0x00000006,0x00000036,0x00000035,0x000500b7,0x00000031,0x00000037,0x00000036, + 0x0000001c,0x000300f7,0x00000039,0x00000000,0x000400fa,0x00000037,0x00000038,0x00000039, + 0x000200f8,0x00000038,0x00050041,0x00000034,0x0000003b,0x00000026,0x0000003a,0x0004003d, + 0x00000006,0x0000003c,0x0000003b,0x000500b7,0x00000031,0x0000003d,0x0000003c,0x0000001c, + 0x000200f9,0x00000039,0x000200f8,0x00000039,0x000700f5,0x00000031,0x0000003e,0x00000037, + 0x00000016,0x0000003d,0x00000038,0x000300f7,0x00000040,0x00000000,0x000400fa,0x0000003e, + 0x0000003f,0x0000005d,0x000200f8,0x0000003f,0x0004003d,0x00000009,0x00000042,0x00000026, + 0x00050050,0x00000009,0x00000043,0x0000001b,0x0000001b,0x00050088,0x00000009,0x00000044, + 0x00000043,0x00000042,0x0003003e,0x00000041,0x00000044,0x0004003d,0x0000000a,0x00000046, + 0x00000012,0x0004003d,0x00000009,0x00000047,0x00000014,0x00050091,0x00000009,0x00000048, + 0x00000046,0x00000047,0x0004003d,0x00000009,0x00000049,0x00000013,0x00050081,0x00000009, + 0x0000004a,0x00000048,0x00000049,0x0003003e,0x00000045,0x0000004a,0x0004003d,0x00000009, + 0x0000004b,0x00000045,0x0004003d,0x00000009,0x0000004c,0x00000045,0x0004007f,0x00000009, + 0x0000004d,0x0000004c,0x00050051,0x00000006,0x0000004e,0x0000004b,0x00000000,0x00050051, + 0x00000006,0x0000004f,0x0000004b,0x00000001,0x00050051,0x00000006,0x00000050,0x0000004d, + 0x00000000,0x00050051,0x00000006,0x00000051,0x0000004d,0x00000001,0x00070050,0x00000007, + 0x00000052,0x0000004e,0x0000004f,0x00000050,0x00000051,0x0004003d,0x00000009,0x00000053, + 0x00000041,0x0009004f,0x00000007,0x00000054,0x00000053,0x00000053,0x00000000,0x00000001, + 0x00000000,0x00000001,0x00050085,0x00000007,0x00000055,0x00000052,0x00000054,0x0004003d, + 0x00000009,0x00000056,0x00000041,0x0009004f,0x00000007,0x00000057,0x00000056,0x00000056, + 0x00000000,0x00000001,0x00000000,0x00000001,0x00050081,0x00000007,0x00000058,0x00000055, + 0x00000057,0x00070050,0x00000007,0x0000005a,0x00000059,0x00000059,0x00000059,0x00000059, + 0x00050081,0x00000007,0x0000005b,0x00000058,0x0000005a,0x000200fe,0x0000005b,0x000200f8, + 0x0000005d,0x0004003d,0x00000009,0x0000005e,0x00000013,0x0009004f,0x00000007,0x0000005f, + 0x0000005e,0x0000005e,0x00000000,0x00000001,0x00000000,0x00000001,0x000200fe,0x0000005f, + 0x000200f8,0x00000040,0x000100ff,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.fixedcolor_frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.fixedcolor_frag.h new file mode 100644 index 00000000..f1c40a49 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.fixedcolor_frag.h @@ -0,0 +1,580 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_rect_fixedcolor_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x0000024d,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000b000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000126, + 0x000001a3,0x000001b1,0x000001b6,0x000001bd,0x00000239,0x00030010,0x00000004,0x00000007, + 0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72, + 0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a, + 0x74736163,0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009, + 0x00000078,0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61, + 0x34667628,0x0000003b,0x00040005,0x0000000f,0x777a7978,0x00000000,0x00090005,0x00000016, + 0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005, + 0x00000015,0x00007978,0x00080005,0x0000001c,0x74736163,0x6e69755f,0x6f745f74,0x6873755f, + 0x2874726f,0x003b3175,0x00030005,0x0000001b,0x00000078,0x00060005,0x0000001f,0x656b616d, + 0x6c61685f,0x31662866,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00060005,0x00000023, + 0x656b616d,0x6c61685f,0x66283266,0x00003b31,0x00030005,0x00000022,0x00000078,0x00060005, + 0x00000027,0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000026,0x00000078, + 0x00070005,0x0000002c,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005, + 0x0000002b,0x00000078,0x00060005,0x00000030,0x5f6e696d,0x756c6176,0x66762865,0x00003b34, + 0x00040005,0x0000002f,0x346e696d,0x00000000,0x00060005,0x00000034,0x6d6f7266,0x7869665f, + 0x75286465,0x00003b31,0x00030005,0x00000033,0x00000078,0x00080005,0x0000003a,0x6c707061, + 0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005,0x00000037,0x70696c63, + 0x00004449,0x00050005,0x00000038,0x70696c63,0x61746144,0x00000000,0x00050005,0x00000039, + 0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000045,0x6f736572,0x5f65766c,0x6e696170, + 0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000,0x00040005,0x00000040, + 0x68746170,0x00004449,0x00060005,0x00000041,0x65766f63,0x65676172,0x6e756f43,0x00000074, + 0x00060005,0x00000042,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005,0x00000043, + 0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000044,0x736c705f,0x726f6f43,0x00000064, + 0x00080005,0x0000004a,0x74696d65,0x736c705f,0x696c635f,0x66762870,0x69763b34,0x00003b32, + 0x00050005,0x00000048,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000049,0x736c705f, + 0x726f6f43,0x00000064,0x00030005,0x00000063,0x00746572,0x00030005,0x0000006d,0x00746572, + 0x00040005,0x0000008a,0x326e696d,0x00000000,0x00040005,0x00000090,0x316e696d,0x00000000, + 0x00040005,0x0000009f,0x61726170,0x0000006d,0x00040005,0x000000ab,0x61726170,0x0000006d, + 0x00050005,0x000000ba,0x6e696170,0x74614474,0x00000061,0x00050005,0x000000bc,0x6e696150, + 0x66754274,0x00726566,0x00050006,0x000000bc,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x000000be,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005, + 0x000000c4,0x65766f63,0x65676172,0x00000000,0x00060005,0x000000cf,0x616e456b,0x45656c62, + 0x4f6e6576,0x00006464,0x00040005,0x000000e5,0x61726170,0x0000006d,0x00040005,0x000000e7, + 0x61726170,0x0000006d,0x00060005,0x000000ea,0x616e456b,0x43656c62,0x7070696c,0x00676e69, + 0x00040005,0x000000ed,0x70696c63,0x00004449,0x00060005,0x000000f8,0x5f6e695f,0x70696c63, + 0x66667542,0x00007265,0x00040005,0x000000fc,0x61726170,0x0000006d,0x00040005,0x000000fe, + 0x61726170,0x0000006d,0x00040005,0x000000ff,0x61726170,0x0000006d,0x00060005,0x00000103, + 0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x0000010f,0x0000004d,0x00060005, + 0x00000111,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000111,0x00000000, + 0x6c61765f,0x00736575,0x00090005,0x00000113,0x5058455f,0x4554524f,0x61705f44,0x41746e69, + 0x75427875,0x72656666,0x00000000,0x00040005,0x00000118,0x61726170,0x0000006d,0x00050005, + 0x0000011d,0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000123,0x70696c63,0x726f6f43, + 0x00000064,0x00060005,0x00000126,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005, + 0x0000012d,0x74736964,0x00005958,0x00040005,0x00000136,0x61726170,0x0000006d,0x00070005, + 0x00000138,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x00000143, + 0x6e696170,0x70795474,0x00000065,0x00040005,0x0000015d,0x61726170,0x0000006d,0x00030005, + 0x00000160,0x0000004d,0x00040005,0x00000163,0x61726170,0x0000006d,0x00050005,0x00000167, + 0x6e617274,0x74616c73,0x00000065,0x00050005,0x0000016d,0x6e696170,0x6f6f4374,0x00006472, + 0x00030005,0x00000175,0x00000074,0x00030005,0x00000183,0x00000078,0x00030005,0x0000018b, + 0x00000079,0x00080005,0x00000191,0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478, + 0x00000065,0x00050005,0x00000195,0x64617267,0x706d6153,0x0072656c,0x00050005,0x000001a3, + 0x70696c63,0x66667542,0x00007265,0x00050005,0x000001a5,0x736c705f,0x726f6f43,0x00000064, + 0x00050005,0x000001aa,0x67616d69,0x6c6f4365,0x0000726f,0x00080005,0x000001ab,0x5058455f, + 0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x000001ad,0x67616d69, + 0x6d615365,0x72656c70,0x00000000,0x00050005,0x000001b1,0x65745f76,0x6f6f4378,0x00006472, + 0x00060005,0x000001b4,0x67616d69,0x766f4365,0x67617265,0x00000065,0x00060005,0x000001b6, + 0x64655f76,0x6f436567,0x61726576,0x00006567,0x00070005,0x000001bc,0x70696c63,0x74636552, + 0x65766f43,0x65676172,0x00000000,0x00050005,0x000001bd,0x6c635f76,0x65527069,0x00007463, + 0x00040005,0x000001be,0x61726170,0x0000006d,0x00040005,0x000001c1,0x61726170,0x0000006d, + 0x00040005,0x000001c4,0x61726170,0x0000006d,0x00070005,0x000001c8,0x7473616c,0x65766f43, + 0x65676172,0x61746144,0x00000000,0x00080005,0x000001cb,0x65766f63,0x65676172,0x6d6f7441, + 0x75426369,0x72656666,0x00000000,0x00050005,0x000001d1,0x7473616c,0x68746150,0x00004449, + 0x00040005,0x000001d5,0x61726170,0x0000006d,0x00070005,0x000001d7,0x7473616c,0x65766f43, + 0x65676172,0x6e756f43,0x00000074,0x00040005,0x000001db,0x61726170,0x0000006d,0x00050005, + 0x000001dd,0x67617266,0x70696c43,0x0074754f,0x00040005,0x000001de,0x61726170,0x0000006d, + 0x00060005,0x000001e0,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00040005,0x000001e1, + 0x61726170,0x0000006d,0x00040005,0x000001e3,0x61726170,0x0000006d,0x00040005,0x000001e5, + 0x61726170,0x0000006d,0x00040005,0x000001e6,0x61726170,0x0000006d,0x00040005,0x000001e8, + 0x61726170,0x0000006d,0x00090005,0x000001fb,0x5058455f,0x4554524f,0x6d495f44,0x44656761, + 0x55776172,0x6f66696e,0x00736d72,0x00060006,0x000001fb,0x00000000,0x77656976,0x7274614d, + 0x00007869,0x00060006,0x000001fb,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006, + 0x000001fb,0x00000002,0x6361706f,0x00797469,0x00050006,0x000001fb,0x00000003,0x64646170, + 0x00676e69,0x00090006,0x000001fb,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372, + 0x69727461,0x00000078,0x000a0006,0x000001fb,0x00000005,0x70696c63,0x74636552,0x65766e49, + 0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x000001fb,0x00000006,0x70696c63, + 0x00004449,0x00060006,0x000001fb,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006, + 0x000001fb,0x00000008,0x646e497a,0x00007865,0x00070005,0x000001fd,0x67616d69,0x61724465, + 0x696e5577,0x6d726f66,0x00000073,0x00050005,0x00000206,0x70696c63,0x61746144,0x00000000, + 0x00040005,0x00000212,0x61726170,0x0000006d,0x00040005,0x00000215,0x61726170,0x0000006d, + 0x00040005,0x00000217,0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d, + 0x00050005,0x00000239,0x6172665f,0x6c6f4367,0x0000726f,0x00040005,0x0000023b,0x61726170, + 0x0000006d,0x00040005,0x0000023d,0x61726170,0x0000006d,0x00080005,0x00000244,0x616e456b, + 0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00080005,0x00000245,0x616e456b, + 0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000246,0x616e456b, + 0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000247,0x6f6c436b, + 0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000248,0x726f426b,0x65776f72,0x766f4364, + 0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x0000024a,0x5058455f,0x4554524f, + 0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x0000024a,0x00000000,0x64617267, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x0000024a,0x00000001, + 0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x0000024a, + 0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f, + 0x00000000,0x000b0006,0x0000024a,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x0000024a,0x00000004,0x646e6572, + 0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x0000024a,0x00000005,0x646e6572, + 0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x0000024a,0x00000006,0x6f6c6f63, + 0x656c4372,0x61567261,0x0065756c,0x00080006,0x0000024a,0x00000007,0x65766f63,0x65676172, + 0x61656c43,0x6c615672,0x00006575,0x000a0006,0x0000024a,0x00000008,0x646e6572,0x61547265, + 0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x0000024a,0x00000009, + 0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x0000024a, + 0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x0000024a, + 0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x0000024c, + 0x66696e75,0x736d726f,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010, + 0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047, + 0x0000001f,0x00000000,0x00030047,0x0000001e,0x00000000,0x00030047,0x00000023,0x00000000, + 0x00030047,0x00000022,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047,0x00000026, + 0x00000000,0x00030047,0x00000030,0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047, + 0x00000034,0x00000000,0x00030047,0x00000038,0x00000000,0x00030047,0x00000039,0x00000000, + 0x00030047,0x00000041,0x00000000,0x00030047,0x00000042,0x00000000,0x00030047,0x00000043, + 0x00000000,0x00030047,0x00000048,0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047, + 0x0000004e,0x00000000,0x00030047,0x00000052,0x00000000,0x00030047,0x00000053,0x00000000, + 0x00030047,0x00000057,0x00000000,0x00030047,0x00000058,0x00000000,0x00030047,0x0000005c, + 0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047,0x00000060,0x00000000,0x00030047, + 0x00000063,0x00000000,0x00030047,0x00000064,0x00000000,0x00030047,0x00000067,0x00000000, + 0x00030047,0x0000006a,0x00000000,0x00030047,0x0000006d,0x00000000,0x00030047,0x0000006e, + 0x00000000,0x00030047,0x00000070,0x00000000,0x00030047,0x00000072,0x00000000,0x00030047, + 0x00000075,0x00000000,0x00030047,0x00000078,0x00000000,0x00030047,0x0000008a,0x00000000, + 0x00030047,0x0000008b,0x00000000,0x00030047,0x0000008c,0x00000000,0x00030047,0x0000008d, + 0x00000000,0x00030047,0x0000008e,0x00000000,0x00030047,0x0000008f,0x00000000,0x00030047, + 0x00000090,0x00000000,0x00030047,0x00000092,0x00000000,0x00030047,0x00000094,0x00000000, + 0x00030047,0x00000095,0x00000000,0x00030047,0x00000096,0x00000000,0x00030047,0x000000a0, + 0x00000000,0x00030047,0x000000a3,0x00000000,0x00030047,0x000000a4,0x00000000,0x00030047, + 0x000000ab,0x00000000,0x00030047,0x000000ac,0x00000000,0x00030047,0x000000b3,0x00000000, + 0x00030047,0x000000b5,0x00000000,0x00030047,0x000000b6,0x00000000,0x00040047,0x000000bb, + 0x00000006,0x00000008,0x00040048,0x000000bc,0x00000000,0x00000018,0x00050048,0x000000bc, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000000bc,0x00000003,0x00040047,0x000000be, + 0x00000022,0x00000000,0x00040047,0x000000be,0x00000021,0x00000004,0x00030047,0x000000c4, + 0x00000000,0x00030047,0x000000c5,0x00000000,0x00030047,0x000000cd,0x00000000,0x00030047, + 0x000000ce,0x00000000,0x00040047,0x000000cf,0x00000001,0x00000003,0x00030047,0x000000da, + 0x00000000,0x00030047,0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000,0x00030047, + 0x000000df,0x00000000,0x00030047,0x000000e1,0x00000000,0x00030047,0x000000e2,0x00000000, + 0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e4,0x00000000,0x00030047,0x000000e5, + 0x00000000,0x00030047,0x000000e6,0x00000000,0x00030047,0x000000e7,0x00000000,0x00030047, + 0x000000e8,0x00000000,0x00030047,0x000000e9,0x00000000,0x00040047,0x000000ea,0x00000001, + 0x00000000,0x00030047,0x000000f8,0x00000000,0x00040047,0x000000f8,0x00000022,0x00000003, + 0x00040047,0x000000f8,0x00000021,0x00000001,0x00040047,0x000000f8,0x0000002b,0x00000001, + 0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fb,0x00000000,0x00030047,0x000000fe, + 0x00000000,0x00030047,0x000000ff,0x00000000,0x00030047,0x00000100,0x00000000,0x00040047, + 0x00000103,0x00000001,0x00000001,0x00040047,0x00000110,0x00000006,0x00000010,0x00040048, + 0x00000111,0x00000000,0x00000018,0x00050048,0x00000111,0x00000000,0x00000023,0x00000000, + 0x00030047,0x00000111,0x00000003,0x00040047,0x00000113,0x00000022,0x00000000,0x00040047, + 0x00000113,0x00000021,0x00000005,0x00040047,0x00000126,0x0000000b,0x0000000f,0x00030047, + 0x0000012d,0x00000000,0x00030047,0x00000137,0x00000000,0x00030047,0x00000138,0x00000000, + 0x00030047,0x0000013a,0x00000000,0x00030047,0x0000013c,0x00000000,0x00030047,0x0000013d, + 0x00000000,0x00030047,0x0000013e,0x00000000,0x00030047,0x0000013f,0x00000000,0x00030047, + 0x00000140,0x00000000,0x00030047,0x00000141,0x00000000,0x00030047,0x00000142,0x00000000, + 0x00030047,0x00000154,0x00000000,0x00030047,0x00000155,0x00000000,0x00030047,0x0000015a, + 0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e,0x00000000,0x00030047, + 0x00000191,0x00000000,0x00040047,0x00000191,0x00000022,0x00000000,0x00040047,0x00000191, + 0x00000021,0x00000001,0x00030047,0x00000192,0x00000000,0x00030047,0x00000195,0x00000000, + 0x00040047,0x00000195,0x00000022,0x00000002,0x00040047,0x00000195,0x00000021,0x00000001, + 0x00030047,0x00000196,0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047,0x0000019d, + 0x00000000,0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a0,0x00000000,0x00030047, + 0x000001a3,0x00000000,0x00040047,0x000001a3,0x0000001e,0x00000001,0x00030047,0x000001a4, + 0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047,0x000001ab,0x00000000,0x00040047, + 0x000001ab,0x00000022,0x00000001,0x00040047,0x000001ab,0x00000021,0x00000002,0x00030047, + 0x000001ac,0x00000000,0x00030047,0x000001ad,0x00000000,0x00040047,0x000001ad,0x00000022, + 0x00000002,0x00040047,0x000001ad,0x00000021,0x00000002,0x00030047,0x000001ae,0x00000000, + 0x00040047,0x000001b1,0x0000001e,0x00000000,0x00030047,0x000001b3,0x00000000,0x00030047, + 0x000001b4,0x00000000,0x00030047,0x000001b6,0x00000000,0x00040047,0x000001b6,0x0000001e, + 0x00000001,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001b8,0x00000000,0x00030047, + 0x000001b9,0x00000000,0x00030047,0x000001bc,0x00000000,0x00040047,0x000001bd,0x0000001e, + 0x00000002,0x00030047,0x000001c0,0x00000000,0x00030047,0x000001c1,0x00000000,0x00030047, + 0x000001c2,0x00000000,0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4,0x00000000, + 0x00030047,0x000001c5,0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047,0x000001c7, + 0x00000000,0x00040047,0x000001cb,0x00000022,0x00000003,0x00040047,0x000001cb,0x00000021, + 0x00000003,0x00030047,0x000001cb,0x00000017,0x00030047,0x000001d1,0x00000000,0x00030047, + 0x000001d6,0x00000000,0x00030047,0x000001d7,0x00000000,0x00030047,0x000001dc,0x00000000, + 0x00030047,0x000001dd,0x00000000,0x00030047,0x000001de,0x00000000,0x00030047,0x000001df, + 0x00000000,0x00030047,0x000001e0,0x00000000,0x00030047,0x000001e2,0x00000000,0x00030047, + 0x000001e3,0x00000000,0x00030047,0x000001e4,0x00000000,0x00030047,0x000001e5,0x00000000, + 0x00030047,0x000001e6,0x00000000,0x00030047,0x000001e7,0x00000000,0x00030047,0x000001ee, + 0x00000000,0x00030047,0x000001f0,0x00000000,0x00030047,0x000001f1,0x00000000,0x00030047, + 0x000001f2,0x00000000,0x00050048,0x000001fb,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000001fb,0x00000001,0x00000023,0x00000010,0x00050048,0x000001fb,0x00000002,0x00000023, + 0x00000018,0x00050048,0x000001fb,0x00000003,0x00000023,0x0000001c,0x00050048,0x000001fb, + 0x00000004,0x00000023,0x00000020,0x00050048,0x000001fb,0x00000005,0x00000023,0x00000030, + 0x00050048,0x000001fb,0x00000006,0x00000023,0x00000038,0x00050048,0x000001fb,0x00000007, + 0x00000023,0x0000003c,0x00050048,0x000001fb,0x00000008,0x00000023,0x00000040,0x00030047, + 0x000001fb,0x00000002,0x00040047,0x000001fd,0x00000022,0x00000000,0x00040047,0x000001fd, + 0x00000021,0x00000009,0x00030047,0x00000206,0x00000000,0x00030047,0x00000208,0x00000000, + 0x00030047,0x0000020a,0x00000000,0x00030047,0x0000020d,0x00000000,0x00030047,0x0000020f, + 0x00000000,0x00030047,0x00000210,0x00000000,0x00030047,0x00000211,0x00000000,0x00030047, + 0x00000215,0x00000000,0x00030047,0x00000216,0x00000000,0x00030047,0x00000217,0x00000000, + 0x00030047,0x00000218,0x00000000,0x00030047,0x0000021b,0x00000000,0x00030047,0x00000221, + 0x00000000,0x00030047,0x00000222,0x00000000,0x00030047,0x00000224,0x00000000,0x00030047, + 0x00000225,0x00000000,0x00030047,0x00000228,0x00000000,0x00030047,0x00000229,0x00000000, + 0x00030047,0x0000022a,0x00000000,0x00030047,0x0000022b,0x00000000,0x00030047,0x00000232, + 0x00000000,0x00030047,0x00000234,0x00000000,0x00030047,0x00000235,0x00000000,0x00030047, + 0x00000236,0x00000000,0x00030047,0x00000237,0x00000000,0x00030047,0x00000238,0x00000000, + 0x00030047,0x00000239,0x00000000,0x00040047,0x00000239,0x0000001e,0x00000000,0x00030047, + 0x0000023a,0x00000000,0x00030047,0x0000023b,0x00000000,0x00030047,0x0000023c,0x00000000, + 0x00040047,0x00000244,0x00000001,0x00000002,0x00040047,0x00000245,0x00000001,0x00000004, + 0x00040047,0x00000246,0x00000001,0x00000005,0x00040047,0x00000247,0x00000001,0x00000006, + 0x00040047,0x00000248,0x00000001,0x00000007,0x00050048,0x0000024a,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000024a,0x00000001,0x00000023,0x00000004,0x00050048,0x0000024a, + 0x00000002,0x00000023,0x00000008,0x00050048,0x0000024a,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x0000024a,0x00000004,0x00000023,0x00000010,0x00050048,0x0000024a,0x00000005, + 0x00000023,0x00000014,0x00050048,0x0000024a,0x00000006,0x00000023,0x00000018,0x00050048, + 0x0000024a,0x00000007,0x00000023,0x0000001c,0x00050048,0x0000024a,0x00000008,0x00000023, + 0x00000020,0x00050048,0x0000024a,0x00000009,0x00000023,0x00000030,0x00050048,0x0000024a, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x0000024a,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x0000024a,0x00000002,0x00040047,0x0000024c,0x00000022,0x00000000,0x00040047, + 0x0000024c,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021, + 0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000004,0x00040020, + 0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00040017, + 0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007,0x00000012,0x00040021, + 0x00000014,0x00000012,0x00000013,0x00040015,0x00000018,0x00000020,0x00000000,0x00040020, + 0x00000019,0x00000007,0x00000018,0x00040021,0x0000001a,0x00000018,0x00000019,0x00040021, + 0x00000021,0x00000012,0x00000007,0x00040021,0x00000025,0x0000000c,0x00000007,0x00040018, + 0x00000029,0x00000012,0x00000002,0x00040021,0x0000002a,0x00000029,0x0000000d,0x00040021, + 0x0000002e,0x00000006,0x0000000d,0x00040021,0x00000032,0x00000006,0x00000019,0x00060021, + 0x00000036,0x00000002,0x00000019,0x0000000d,0x00000007,0x00040015,0x0000003c,0x00000020, + 0x00000001,0x00040017,0x0000003d,0x0000003c,0x00000002,0x00040020,0x0000003e,0x00000007, + 0x0000003d,0x00080021,0x0000003f,0x00000002,0x00000019,0x00000007,0x0000000d,0x0000000d, + 0x0000003e,0x00050021,0x00000047,0x00000002,0x0000000d,0x0000003e,0x0004002b,0x00000018, + 0x00000065,0x00000000,0x0004002b,0x00000018,0x00000068,0x00000001,0x0004002b,0x00000018, + 0x00000073,0x00000002,0x0004002b,0x00000018,0x00000076,0x00000003,0x0004002b,0x00000006, + 0x0000007f,0x3f800000,0x0004002b,0x00000006,0x00000080,0x00000000,0x0004002b,0x00000006, + 0x0000009b,0x3b000000,0x0004002b,0x00000006,0x0000009d,0xc2800000,0x0004002b,0x00000006, + 0x000000aa,0x3a808081,0x00020014,0x000000ad,0x00040017,0x000000ae,0x000000ad,0x00000002, + 0x00040017,0x000000b8,0x00000018,0x00000002,0x00040020,0x000000b9,0x00000007,0x000000b8, + 0x0003001d,0x000000bb,0x000000b8,0x0003001e,0x000000bc,0x000000bb,0x00040020,0x000000bd, + 0x00000002,0x000000bc,0x0004003b,0x000000bd,0x000000be,0x00000002,0x0004002b,0x0000003c, + 0x000000bf,0x00000000,0x00040020,0x000000c1,0x00000002,0x000000b8,0x0004002b,0x00000018, + 0x000000c8,0x00000300,0x00030031,0x000000ad,0x000000cf,0x0004002b,0x00000018,0x000000d4, + 0x00000200,0x0004002b,0x00000006,0x000000db,0x3f000000,0x0004002b,0x00000006,0x000000de, + 0x40000000,0x0004002b,0x00000006,0x000000e0,0xbf800000,0x00030031,0x000000ad,0x000000ea, + 0x0004002b,0x00000018,0x000000f0,0x00000010,0x00090019,0x000000f6,0x00000006,0x00000006, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x000000f7,0x00000000, + 0x000000f6,0x0004003b,0x000000f7,0x000000f8,0x00000000,0x0005002c,0x0000003d,0x000000fa, + 0x000000bf,0x000000bf,0x00030031,0x000000ad,0x00000103,0x0004002b,0x00000018,0x00000108, + 0x00000400,0x00040020,0x0000010e,0x00000007,0x00000029,0x0003001d,0x00000110,0x0000000c, + 0x0003001e,0x00000111,0x00000110,0x00040020,0x00000112,0x00000002,0x00000111,0x0004003b, + 0x00000112,0x00000113,0x00000002,0x0004002b,0x00000018,0x00000115,0x00000004,0x00040020, + 0x00000119,0x00000002,0x0000000c,0x00040020,0x00000125,0x00000001,0x0000000c,0x0004003b, + 0x00000125,0x00000126,0x00000001,0x0004002b,0x00000018,0x00000146,0x0000000f,0x00090019, + 0x0000018f,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x00000190,0x00000000,0x0000018f,0x0004003b,0x00000190,0x00000191,0x00000000, + 0x0002001a,0x00000193,0x00040020,0x00000194,0x00000000,0x00000193,0x0004003b,0x00000194, + 0x00000195,0x00000000,0x0003001b,0x00000197,0x0000018f,0x00040020,0x000001a2,0x00000003, + 0x0000000c,0x0004003b,0x000001a2,0x000001a3,0x00000003,0x0004003b,0x00000190,0x000001ab, + 0x00000000,0x0004003b,0x00000194,0x000001ad,0x00000000,0x00040020,0x000001b0,0x00000001, + 0x00000012,0x0004003b,0x000001b0,0x000001b1,0x00000001,0x00040020,0x000001b5,0x00000001, + 0x00000006,0x0004003b,0x000001b5,0x000001b6,0x00000001,0x0004003b,0x00000125,0x000001bd, + 0x00000001,0x00090019,0x000001c9,0x00000018,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x000001ca,0x00000000,0x000001c9,0x0004003b,0x000001ca, + 0x000001cb,0x00000000,0x00040017,0x000001ce,0x00000018,0x00000004,0x0004002b,0x0000003c, + 0x000001d3,0x00000010,0x0004002b,0x00000018,0x000001d9,0x0000ffff,0x00040017,0x000001ef, + 0x00000006,0x00000003,0x000b001e,0x000001fb,0x0000000c,0x00000012,0x00000006,0x00000006, + 0x0000000c,0x00000012,0x00000018,0x00000018,0x00000018,0x00040020,0x000001fc,0x00000002, + 0x000001fb,0x0004003b,0x000001fc,0x000001fd,0x00000002,0x0004002b,0x0000003c,0x000001fe, + 0x00000006,0x00040020,0x000001ff,0x00000002,0x00000018,0x0004002b,0x0000003c,0x0000021c, + 0x00000002,0x00040020,0x0000021e,0x00000002,0x00000006,0x0004003b,0x000001a2,0x00000239, + 0x00000003,0x0004002b,0x00000018,0x00000242,0x00008000,0x0007002c,0x000001ce,0x00000243, + 0x00000242,0x00000242,0x00000242,0x00000242,0x00030031,0x000000ad,0x00000244,0x00030031, + 0x000000ad,0x00000245,0x00030031,0x000000ad,0x00000246,0x00030031,0x000000ad,0x00000247, + 0x00030031,0x000000ad,0x00000248,0x00040017,0x00000249,0x0000003c,0x00000004,0x000e001e, + 0x0000024a,0x00000006,0x00000006,0x00000006,0x00000006,0x00000018,0x00000018,0x00000018, + 0x00000018,0x00000249,0x00000018,0x00000018,0x00000006,0x00040020,0x0000024b,0x00000002, + 0x0000024a,0x0004003b,0x0000024b,0x0000024c,0x00000002,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000003e,0x000001a5,0x00000007, + 0x0004003b,0x0000000d,0x000001aa,0x00000007,0x0004003b,0x00000007,0x000001b4,0x00000007, + 0x0004003b,0x00000007,0x000001bc,0x00000007,0x0004003b,0x0000000d,0x000001be,0x00000007, + 0x0004003b,0x0000000d,0x000001c1,0x00000007,0x0004003b,0x00000007,0x000001c4,0x00000007, + 0x0004003b,0x00000019,0x000001c8,0x00000007,0x0004003b,0x00000019,0x000001d1,0x00000007, + 0x0004003b,0x00000019,0x000001d5,0x00000007,0x0004003b,0x00000007,0x000001d7,0x00000007, + 0x0004003b,0x00000019,0x000001db,0x00000007,0x0004003b,0x0000000d,0x000001dd,0x00000007, + 0x0004003b,0x00000007,0x000001de,0x00000007,0x0004003b,0x0000000d,0x000001e0,0x00000007, + 0x0004003b,0x00000019,0x000001e1,0x00000007,0x0004003b,0x00000007,0x000001e3,0x00000007, + 0x0004003b,0x0000000d,0x000001e5,0x00000007,0x0004003b,0x0000000d,0x000001e6,0x00000007, + 0x0004003b,0x0000003e,0x000001e8,0x00000007,0x0004003b,0x0000000d,0x00000206,0x00000007, + 0x0004003b,0x0000000d,0x0000020a,0x00000007,0x0004003b,0x00000019,0x00000212,0x00000007, + 0x0004003b,0x0000000d,0x00000215,0x00000007,0x0004003b,0x00000007,0x00000217,0x00000007, + 0x0004003b,0x00000007,0x0000021d,0x00000007,0x0004003b,0x0000000d,0x0000023b,0x00000007, + 0x0004003b,0x0000003e,0x0000023d,0x00000007,0x0004003d,0x0000000c,0x000001a6,0x00000126, + 0x0007004f,0x00000012,0x000001a7,0x000001a6,0x000001a6,0x00000000,0x00000001,0x0006000c, + 0x00000012,0x000001a8,0x00000001,0x00000008,0x000001a7,0x0004006e,0x0000003d,0x000001a9, + 0x000001a8,0x0003003e,0x000001a5,0x000001a9,0x0004003d,0x0000018f,0x000001ac,0x000001ab, + 0x0004003d,0x00000193,0x000001ae,0x000001ad,0x00050056,0x00000197,0x000001af,0x000001ac, + 0x000001ae,0x0004003d,0x00000012,0x000001b2,0x000001b1,0x00050057,0x0000000c,0x000001b3, + 0x000001af,0x000001b2,0x0003003e,0x000001aa,0x000001b3,0x0003003e,0x000001b4,0x0000007f, + 0x0004003d,0x00000006,0x000001b7,0x000001b6,0x0004003d,0x00000006,0x000001b8,0x000001b4, + 0x0007000c,0x00000006,0x000001b9,0x00000001,0x00000025,0x000001b7,0x000001b8,0x0003003e, + 0x000001b4,0x000001b9,0x000300f7,0x000001bb,0x00000000,0x000400fa,0x00000103,0x000001ba, + 0x000001bb,0x000200f8,0x000001ba,0x0004003d,0x0000000c,0x000001bf,0x000001bd,0x0003003e, + 0x000001be,0x000001bf,0x00050039,0x0000000c,0x000001c0,0x00000010,0x000001be,0x0003003e, + 0x000001c1,0x000001c0,0x00050039,0x00000006,0x000001c2,0x00000030,0x000001c1,0x0003003e, + 0x000001bc,0x000001c2,0x0004003d,0x00000006,0x000001c3,0x000001bc,0x0003003e,0x000001c4, + 0x00000080,0x00050039,0x00000006,0x000001c5,0x0000001f,0x000001c4,0x0004003d,0x00000006, + 0x000001c6,0x000001b4,0x0008000c,0x00000006,0x000001c7,0x00000001,0x0000002b,0x000001c3, + 0x000001c5,0x000001c6,0x0003003e,0x000001b4,0x000001c7,0x000200f9,0x000001bb,0x000200f8, + 0x000001bb,0x0004003d,0x000001c9,0x000001cc,0x000001cb,0x0004003d,0x0000003d,0x000001cd, + 0x000001a5,0x00050062,0x000001ce,0x000001cf,0x000001cc,0x000001cd,0x00050051,0x00000018, + 0x000001d0,0x000001cf,0x00000000,0x0003003e,0x000001c8,0x000001d0,0x0004003d,0x00000018, + 0x000001d2,0x000001c8,0x000500c2,0x00000018,0x000001d4,0x000001d2,0x000001d3,0x0003003e, + 0x000001d5,0x000001d4,0x00050039,0x00000018,0x000001d6,0x0000001c,0x000001d5,0x0003003e, + 0x000001d1,0x000001d6,0x0004003d,0x00000018,0x000001d8,0x000001c8,0x000500c7,0x00000018, + 0x000001da,0x000001d8,0x000001d9,0x0003003e,0x000001db,0x000001da,0x00050039,0x00000006, + 0x000001dc,0x00000034,0x000001db,0x0003003e,0x000001d7,0x000001dc,0x0003003e,0x000001de, + 0x00000080,0x00050039,0x0000000c,0x000001df,0x00000027,0x000001de,0x0003003e,0x000001dd, + 0x000001df,0x0004003d,0x00000018,0x000001e2,0x000001d1,0x0003003e,0x000001e1,0x000001e2, + 0x0004003d,0x00000006,0x000001e4,0x000001d7,0x0003003e,0x000001e3,0x000001e4,0x0004003d, + 0x0000000c,0x000001e7,0x000001dd,0x0003003e,0x000001e6,0x000001e7,0x0004003d,0x0000003d, + 0x000001e9,0x000001a5,0x0003003e,0x000001e8,0x000001e9,0x00090039,0x00000002,0x000001ea, + 0x00000045,0x000001e1,0x000001e3,0x000001e5,0x000001e6,0x000001e8,0x0004003d,0x0000000c, + 0x000001eb,0x000001e5,0x0003003e,0x000001e0,0x000001eb,0x0004003d,0x0000000c,0x000001ec, + 0x000001e6,0x0003003e,0x000001dd,0x000001ec,0x00050041,0x00000007,0x000001ed,0x000001e0, + 0x00000076,0x0004003d,0x00000006,0x000001ee,0x000001ed,0x0004003d,0x0000000c,0x000001f0, + 0x000001e0,0x0008004f,0x000001ef,0x000001f1,0x000001f0,0x000001f0,0x00000000,0x00000001, + 0x00000002,0x0005008e,0x000001ef,0x000001f2,0x000001f1,0x000001ee,0x00050041,0x00000007, + 0x000001f3,0x000001e0,0x00000065,0x00050051,0x00000006,0x000001f4,0x000001f2,0x00000000, + 0x0003003e,0x000001f3,0x000001f4,0x00050041,0x00000007,0x000001f5,0x000001e0,0x00000068, + 0x00050051,0x00000006,0x000001f6,0x000001f2,0x00000001,0x0003003e,0x000001f5,0x000001f6, + 0x00050041,0x00000007,0x000001f7,0x000001e0,0x00000073,0x00050051,0x00000006,0x000001f8, + 0x000001f2,0x00000002,0x0003003e,0x000001f7,0x000001f8,0x000300f7,0x000001fa,0x00000000, + 0x000400fa,0x000000ea,0x000001f9,0x000001fa,0x000200f8,0x000001f9,0x00050041,0x000001ff, + 0x00000200,0x000001fd,0x000001fe,0x0004003d,0x00000018,0x00000201,0x00000200,0x000500ab, + 0x000000ad,0x00000202,0x00000201,0x00000065,0x000200f9,0x000001fa,0x000200f8,0x000001fa, + 0x000700f5,0x000000ad,0x00000203,0x000000ea,0x000001bb,0x00000202,0x000001f9,0x000300f7, + 0x00000205,0x00000000,0x000400fa,0x00000203,0x00000204,0x00000205,0x000200f8,0x00000204, + 0x00050041,0x00000007,0x00000207,0x000001dd,0x00000076,0x0004003d,0x00000006,0x00000208, + 0x00000207,0x000500b7,0x000000ad,0x00000209,0x00000208,0x00000080,0x000300f7,0x0000020c, + 0x00000000,0x000400fa,0x00000209,0x0000020b,0x0000020e,0x000200f8,0x0000020b,0x0004003d, + 0x0000000c,0x0000020d,0x000001dd,0x0003003e,0x0000020a,0x0000020d,0x000200f9,0x0000020c, + 0x000200f8,0x0000020e,0x0004003d,0x000000f6,0x0000020f,0x000000f8,0x00050062,0x0000000c, + 0x00000210,0x0000020f,0x000000fa,0x0003003e,0x0000020a,0x00000210,0x000200f9,0x0000020c, + 0x000200f8,0x0000020c,0x0004003d,0x0000000c,0x00000211,0x0000020a,0x0003003e,0x00000206, + 0x00000211,0x00050041,0x000001ff,0x00000213,0x000001fd,0x000001fe,0x0004003d,0x00000018, + 0x00000214,0x00000213,0x0003003e,0x00000212,0x00000214,0x0004003d,0x0000000c,0x00000216, + 0x00000206,0x0003003e,0x00000215,0x00000216,0x0004003d,0x00000006,0x00000218,0x000001b4, + 0x0003003e,0x00000217,0x00000218,0x00070039,0x00000002,0x00000219,0x0000003a,0x00000212, + 0x00000215,0x00000217,0x0004003d,0x00000006,0x0000021a,0x00000217,0x0003003e,0x000001b4, + 0x0000021a,0x000200f9,0x00000205,0x000200f8,0x00000205,0x0004003d,0x00000006,0x0000021b, + 0x000001b4,0x00050041,0x0000021e,0x0000021f,0x000001fd,0x0000021c,0x0004003d,0x00000006, + 0x00000220,0x0000021f,0x0003003e,0x0000021d,0x00000220,0x00050039,0x00000006,0x00000221, + 0x0000000a,0x0000021d,0x00050085,0x00000006,0x00000222,0x0000021b,0x00000221,0x00050041, + 0x00000007,0x00000223,0x000001aa,0x00000076,0x0004003d,0x00000006,0x00000224,0x00000223, + 0x00050085,0x00000006,0x00000225,0x00000224,0x00000222,0x00050041,0x00000007,0x00000226, + 0x000001aa,0x00000076,0x0003003e,0x00000226,0x00000225,0x00050041,0x00000007,0x00000227, + 0x000001aa,0x00000076,0x0004003d,0x00000006,0x00000228,0x00000227,0x0004003d,0x0000000c, + 0x00000229,0x000001aa,0x0008004f,0x000001ef,0x0000022a,0x00000229,0x00000229,0x00000000, + 0x00000001,0x00000002,0x0005008e,0x000001ef,0x0000022b,0x0000022a,0x00000228,0x00050041, + 0x00000007,0x0000022c,0x000001aa,0x00000065,0x00050051,0x00000006,0x0000022d,0x0000022b, + 0x00000000,0x0003003e,0x0000022c,0x0000022d,0x00050041,0x00000007,0x0000022e,0x000001aa, + 0x00000068,0x00050051,0x00000006,0x0000022f,0x0000022b,0x00000001,0x0003003e,0x0000022e, + 0x0000022f,0x00050041,0x00000007,0x00000230,0x000001aa,0x00000073,0x00050051,0x00000006, + 0x00000231,0x0000022b,0x00000002,0x0003003e,0x00000230,0x00000231,0x0004003d,0x0000000c, + 0x00000232,0x000001e0,0x00050041,0x00000007,0x00000233,0x000001aa,0x00000076,0x0004003d, + 0x00000006,0x00000234,0x00000233,0x00050083,0x00000006,0x00000235,0x0000007f,0x00000234, + 0x0005008e,0x0000000c,0x00000236,0x00000232,0x00000235,0x0004003d,0x0000000c,0x00000237, + 0x000001aa,0x00050081,0x0000000c,0x00000238,0x00000236,0x00000237,0x0003003e,0x000001e0, + 0x00000238,0x0004003d,0x0000000c,0x0000023a,0x000001e0,0x0003003e,0x00000239,0x0000023a, + 0x0004003d,0x0000000c,0x0000023c,0x000001dd,0x0003003e,0x0000023b,0x0000023c,0x0004003d, + 0x0000003d,0x0000023e,0x000001a5,0x0003003e,0x0000023d,0x0000023e,0x00060039,0x00000002, + 0x0000023f,0x0000004a,0x0000023b,0x0000023d,0x0004003d,0x000001c9,0x00000240,0x000001cb, + 0x0004003d,0x0000003d,0x00000241,0x000001a5,0x00040063,0x00000240,0x00000241,0x00000243, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x0000004d,0x00000007, + 0x0004003d,0x00000006,0x0000004c,0x00000009,0x0003003e,0x0000004d,0x0000004c,0x0004003d, + 0x00000006,0x0000004e,0x0000004d,0x000200fe,0x0000004e,0x00010038,0x00050036,0x0000000c, + 0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011, + 0x0004003b,0x0000000d,0x00000052,0x00000007,0x0004003d,0x0000000c,0x00000051,0x0000000f, + 0x0003003e,0x00000052,0x00000051,0x0004003d,0x0000000c,0x00000053,0x00000052,0x000200fe, + 0x00000053,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x00000057,0x00000007, + 0x0004003d,0x00000012,0x00000056,0x00000015,0x0003003e,0x00000057,0x00000056,0x0004003d, + 0x00000012,0x00000058,0x00000057,0x000200fe,0x00000058,0x00010038,0x00050036,0x00000018, + 0x0000001c,0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b,0x000200f8,0x0000001d, + 0x0004003b,0x00000019,0x0000005c,0x00000007,0x0004003d,0x00000018,0x0000005b,0x0000001b, + 0x0003003e,0x0000005c,0x0000005b,0x0004003d,0x00000018,0x0000005d,0x0000005c,0x000200fe, + 0x0000005d,0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000,0x00000008,0x00030037, + 0x00000007,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000006,0x00000060,0x0000001e, + 0x000200fe,0x00000060,0x00010038,0x00050036,0x00000012,0x00000023,0x00000000,0x00000021, + 0x00030037,0x00000007,0x00000022,0x000200f8,0x00000024,0x0004003b,0x00000013,0x00000063, + 0x00000007,0x0004003d,0x00000006,0x00000064,0x00000022,0x00050041,0x00000007,0x00000066, + 0x00000063,0x00000065,0x0003003e,0x00000066,0x00000064,0x0004003d,0x00000006,0x00000067, + 0x00000022,0x00050041,0x00000007,0x00000069,0x00000063,0x00000068,0x0003003e,0x00000069, + 0x00000067,0x0004003d,0x00000012,0x0000006a,0x00000063,0x000200fe,0x0000006a,0x00010038, + 0x00050036,0x0000000c,0x00000027,0x00000000,0x00000025,0x00030037,0x00000007,0x00000026, + 0x000200f8,0x00000028,0x0004003b,0x0000000d,0x0000006d,0x00000007,0x0004003d,0x00000006, + 0x0000006e,0x00000026,0x00050041,0x00000007,0x0000006f,0x0000006d,0x00000065,0x0003003e, + 0x0000006f,0x0000006e,0x0004003d,0x00000006,0x00000070,0x00000026,0x00050041,0x00000007, + 0x00000071,0x0000006d,0x00000068,0x0003003e,0x00000071,0x00000070,0x0004003d,0x00000006, + 0x00000072,0x00000026,0x00050041,0x00000007,0x00000074,0x0000006d,0x00000073,0x0003003e, + 0x00000074,0x00000072,0x0004003d,0x00000006,0x00000075,0x00000026,0x00050041,0x00000007, + 0x00000077,0x0000006d,0x00000076,0x0003003e,0x00000077,0x00000075,0x0004003d,0x0000000c, + 0x00000078,0x0000006d,0x000200fe,0x00000078,0x00010038,0x00050036,0x00000029,0x0000002c, + 0x00000000,0x0000002a,0x00030037,0x0000000d,0x0000002b,0x000200f8,0x0000002d,0x0004003d, + 0x0000000c,0x0000007b,0x0000002b,0x0007004f,0x00000012,0x0000007c,0x0000007b,0x0000007b, + 0x00000000,0x00000001,0x0004003d,0x0000000c,0x0000007d,0x0000002b,0x0007004f,0x00000012, + 0x0000007e,0x0000007d,0x0000007d,0x00000002,0x00000003,0x00050051,0x00000006,0x00000081, + 0x0000007c,0x00000000,0x00050051,0x00000006,0x00000082,0x0000007c,0x00000001,0x00050051, + 0x00000006,0x00000083,0x0000007e,0x00000000,0x00050051,0x00000006,0x00000084,0x0000007e, + 0x00000001,0x00050050,0x00000012,0x00000085,0x00000081,0x00000082,0x00050050,0x00000012, + 0x00000086,0x00000083,0x00000084,0x00050050,0x00000029,0x00000087,0x00000085,0x00000086, + 0x000200fe,0x00000087,0x00010038,0x00050036,0x00000006,0x00000030,0x00000000,0x0000002e, + 0x00030037,0x0000000d,0x0000002f,0x000200f8,0x00000031,0x0004003b,0x00000013,0x0000008a, + 0x00000007,0x0004003b,0x00000007,0x00000090,0x00000007,0x0004003d,0x0000000c,0x0000008b, + 0x0000002f,0x0007004f,0x00000012,0x0000008c,0x0000008b,0x0000008b,0x00000000,0x00000001, + 0x0004003d,0x0000000c,0x0000008d,0x0000002f,0x0007004f,0x00000012,0x0000008e,0x0000008d, + 0x0000008d,0x00000002,0x00000003,0x0007000c,0x00000012,0x0000008f,0x00000001,0x00000025, + 0x0000008c,0x0000008e,0x0003003e,0x0000008a,0x0000008f,0x00050041,0x00000007,0x00000091, + 0x0000008a,0x00000065,0x0004003d,0x00000006,0x00000092,0x00000091,0x00050041,0x00000007, + 0x00000093,0x0000008a,0x00000068,0x0004003d,0x00000006,0x00000094,0x00000093,0x0007000c, + 0x00000006,0x00000095,0x00000001,0x00000025,0x00000092,0x00000094,0x0003003e,0x00000090, + 0x00000095,0x0004003d,0x00000006,0x00000096,0x00000090,0x000200fe,0x00000096,0x00010038, + 0x00050036,0x00000006,0x00000034,0x00000000,0x00000032,0x00030037,0x00000019,0x00000033, + 0x000200f8,0x00000035,0x0004003b,0x00000007,0x0000009f,0x00000007,0x0004003d,0x00000018, + 0x00000099,0x00000033,0x00040070,0x00000006,0x0000009a,0x00000099,0x00050085,0x00000006, + 0x0000009c,0x0000009a,0x0000009b,0x00050081,0x00000006,0x0000009e,0x0000009c,0x0000009d, + 0x0003003e,0x0000009f,0x0000009e,0x00050039,0x00000006,0x000000a0,0x0000000a,0x0000009f, + 0x000200fe,0x000000a0,0x00010038,0x00050036,0x00000002,0x0000003a,0x00000000,0x00000036, + 0x00030037,0x00000019,0x00000037,0x00030037,0x0000000d,0x00000038,0x00030037,0x00000007, + 0x00000039,0x000200f8,0x0000003b,0x0004003b,0x00000007,0x000000ab,0x00000007,0x0004003d, + 0x0000000c,0x000000a3,0x00000038,0x0007004f,0x00000012,0x000000a4,0x000000a3,0x000000a3, + 0x00000000,0x00000001,0x0004003d,0x00000018,0x000000a5,0x00000037,0x0006000c,0x0000000c, + 0x000000a6,0x00000001,0x00000040,0x000000a5,0x0007004f,0x00000012,0x000000a7,0x000000a6, + 0x000000a6,0x00000000,0x00000001,0x00050083,0x00000012,0x000000a8,0x000000a4,0x000000a7, + 0x0006000c,0x00000012,0x000000a9,0x00000001,0x00000004,0x000000a8,0x0003003e,0x000000ab, + 0x000000aa,0x00050039,0x00000012,0x000000ac,0x00000023,0x000000ab,0x000500b8,0x000000ae, + 0x000000af,0x000000a9,0x000000ac,0x0004009b,0x000000ad,0x000000b0,0x000000af,0x000300f7, + 0x000000b2,0x00000000,0x000400fa,0x000000b0,0x000000b1,0x000000b7,0x000200f8,0x000000b1, + 0x0004003d,0x00000006,0x000000b3,0x00000039,0x00050041,0x00000007,0x000000b4,0x00000038, + 0x00000073,0x0004003d,0x00000006,0x000000b5,0x000000b4,0x0007000c,0x00000006,0x000000b6, + 0x00000001,0x00000025,0x000000b3,0x000000b5,0x0003003e,0x00000039,0x000000b6,0x000200f9, + 0x000000b2,0x000200f8,0x000000b7,0x0003003e,0x00000039,0x00000080,0x000200f9,0x000000b2, + 0x000200f8,0x000000b2,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000, + 0x0000003f,0x00030037,0x00000019,0x00000040,0x00030037,0x00000007,0x00000041,0x00030037, + 0x0000000d,0x00000042,0x00030037,0x0000000d,0x00000043,0x00030037,0x0000003e,0x00000044, + 0x000200f8,0x00000046,0x0004003b,0x000000b9,0x000000ba,0x00000007,0x0004003b,0x00000007, + 0x000000c4,0x00000007,0x0004003b,0x00000007,0x000000e5,0x00000007,0x0004003b,0x00000007, + 0x000000e7,0x00000007,0x0004003b,0x00000019,0x000000ed,0x00000007,0x0004003b,0x00000019, + 0x000000fc,0x00000007,0x0004003b,0x0000000d,0x000000fe,0x00000007,0x0004003b,0x00000007, + 0x000000ff,0x00000007,0x0004003b,0x0000010e,0x0000010f,0x00000007,0x0004003b,0x0000000d, + 0x00000118,0x00000007,0x0004003b,0x0000000d,0x0000011d,0x00000007,0x0004003b,0x00000013, + 0x00000123,0x00000007,0x0004003b,0x00000013,0x0000012d,0x00000007,0x0004003b,0x00000013, + 0x00000136,0x00000007,0x0004003b,0x00000007,0x00000138,0x00000007,0x0004003b,0x00000019, + 0x00000143,0x00000007,0x0004003b,0x00000007,0x0000015d,0x00000007,0x0004003b,0x0000010e, + 0x00000160,0x00000007,0x0004003b,0x0000000d,0x00000163,0x00000007,0x0004003b,0x0000000d, + 0x00000167,0x00000007,0x0004003b,0x00000013,0x0000016d,0x00000007,0x0004003b,0x00000007, + 0x00000175,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007,0x0004003b,0x00000007, + 0x00000183,0x00000007,0x0004003b,0x00000007,0x0000018b,0x00000007,0x0004003d,0x00000018, + 0x000000c0,0x00000040,0x00060041,0x000000c1,0x000000c2,0x000000be,0x000000bf,0x000000c0, + 0x0004003d,0x000000b8,0x000000c3,0x000000c2,0x0003003e,0x000000ba,0x000000c3,0x0004003d, + 0x00000006,0x000000c5,0x00000041,0x0003003e,0x000000c4,0x000000c5,0x00050041,0x00000019, + 0x000000c6,0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000c7,0x000000c6,0x000500c7, + 0x00000018,0x000000c9,0x000000c7,0x000000c8,0x000500ab,0x000000ad,0x000000ca,0x000000c9, + 0x00000065,0x000300f7,0x000000cc,0x00000000,0x000400fa,0x000000ca,0x000000cb,0x000000cc, + 0x000200f8,0x000000cb,0x0004003d,0x00000006,0x000000cd,0x000000c4,0x0006000c,0x00000006, + 0x000000ce,0x00000001,0x00000004,0x000000cd,0x0003003e,0x000000c4,0x000000ce,0x000300f7, + 0x000000d1,0x00000000,0x000400fa,0x000000cf,0x000000d0,0x000000d1,0x000200f8,0x000000d0, + 0x00050041,0x00000019,0x000000d2,0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000d3, + 0x000000d2,0x000500c7,0x00000018,0x000000d5,0x000000d3,0x000000d4,0x000500ab,0x000000ad, + 0x000000d6,0x000000d5,0x00000065,0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x000700f5, + 0x000000ad,0x000000d7,0x000000cf,0x000000cb,0x000000d6,0x000000d0,0x000300f7,0x000000d9, + 0x00000000,0x000400fa,0x000000d7,0x000000d8,0x000000d9,0x000200f8,0x000000d8,0x0004003d, + 0x00000006,0x000000da,0x000000c4,0x00050085,0x00000006,0x000000dc,0x000000da,0x000000db, + 0x0006000c,0x00000006,0x000000dd,0x00000001,0x0000000a,0x000000dc,0x00050085,0x00000006, + 0x000000df,0x000000dd,0x000000de,0x00050081,0x00000006,0x000000e1,0x000000df,0x000000e0, + 0x0006000c,0x00000006,0x000000e2,0x00000001,0x00000004,0x000000e1,0x00050083,0x00000006, + 0x000000e3,0x0000007f,0x000000e2,0x0003003e,0x000000c4,0x000000e3,0x000200f9,0x000000d9, + 0x000200f8,0x000000d9,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d,0x00000006, + 0x000000e4,0x000000c4,0x0003003e,0x000000e5,0x00000080,0x00050039,0x00000006,0x000000e6, + 0x0000001f,0x000000e5,0x0003003e,0x000000e7,0x0000007f,0x00050039,0x00000006,0x000000e8, + 0x0000001f,0x000000e7,0x0008000c,0x00000006,0x000000e9,0x00000001,0x0000002b,0x000000e4, + 0x000000e6,0x000000e8,0x0003003e,0x000000c4,0x000000e9,0x000300f7,0x000000ec,0x00000000, + 0x000400fa,0x000000ea,0x000000eb,0x000000ec,0x000200f8,0x000000eb,0x00050041,0x00000019, + 0x000000ee,0x000000ba,0x00000065,0x0004003d,0x00000018,0x000000ef,0x000000ee,0x000500c2, + 0x00000018,0x000000f1,0x000000ef,0x000000f0,0x0003003e,0x000000ed,0x000000f1,0x0004003d, + 0x00000018,0x000000f2,0x000000ed,0x000500ab,0x000000ad,0x000000f3,0x000000f2,0x00000065, + 0x000300f7,0x000000f5,0x00000000,0x000400fa,0x000000f3,0x000000f4,0x000000f5,0x000200f8, + 0x000000f4,0x0004003d,0x000000f6,0x000000f9,0x000000f8,0x00050062,0x0000000c,0x000000fb, + 0x000000f9,0x000000fa,0x0004003d,0x00000018,0x000000fd,0x000000ed,0x0003003e,0x000000fc, + 0x000000fd,0x0003003e,0x000000fe,0x000000fb,0x0004003d,0x00000006,0x00000100,0x000000c4, + 0x0003003e,0x000000ff,0x00000100,0x00070039,0x00000002,0x00000101,0x0000003a,0x000000fc, + 0x000000fe,0x000000ff,0x0004003d,0x00000006,0x00000102,0x000000ff,0x0003003e,0x000000c4, + 0x00000102,0x000200f9,0x000000f5,0x000200f8,0x000000f5,0x000200f9,0x000000ec,0x000200f8, + 0x000000ec,0x000300f7,0x00000105,0x00000000,0x000400fa,0x00000103,0x00000104,0x00000105, + 0x000200f8,0x00000104,0x00050041,0x00000019,0x00000106,0x000000ba,0x00000065,0x0004003d, + 0x00000018,0x00000107,0x00000106,0x000500c7,0x00000018,0x00000109,0x00000107,0x00000108, + 0x000500ab,0x000000ad,0x0000010a,0x00000109,0x00000065,0x000200f9,0x00000105,0x000200f8, + 0x00000105,0x000700f5,0x000000ad,0x0000010b,0x00000103,0x000000ec,0x0000010a,0x00000104, + 0x000300f7,0x0000010d,0x00000000,0x000400fa,0x0000010b,0x0000010c,0x0000010d,0x000200f8, + 0x0000010c,0x0004003d,0x00000018,0x00000114,0x00000040,0x00050084,0x00000018,0x00000116, + 0x00000114,0x00000115,0x00050080,0x00000018,0x00000117,0x00000116,0x00000073,0x00060041, + 0x00000119,0x0000011a,0x00000113,0x000000bf,0x00000117,0x0004003d,0x0000000c,0x0000011b, + 0x0000011a,0x0003003e,0x00000118,0x0000011b,0x00050039,0x00000029,0x0000011c,0x0000002c, + 0x00000118,0x0003003e,0x0000010f,0x0000011c,0x0004003d,0x00000018,0x0000011e,0x00000040, + 0x00050084,0x00000018,0x0000011f,0x0000011e,0x00000115,0x00050080,0x00000018,0x00000120, + 0x0000011f,0x00000076,0x00060041,0x00000119,0x00000121,0x00000113,0x000000bf,0x00000120, + 0x0004003d,0x0000000c,0x00000122,0x00000121,0x0003003e,0x0000011d,0x00000122,0x0004003d, + 0x00000029,0x00000124,0x0000010f,0x0004003d,0x0000000c,0x00000127,0x00000126,0x0007004f, + 0x00000012,0x00000128,0x00000127,0x00000127,0x00000000,0x00000001,0x00050091,0x00000012, + 0x00000129,0x00000124,0x00000128,0x0004003d,0x0000000c,0x0000012a,0x0000011d,0x0007004f, + 0x00000012,0x0000012b,0x0000012a,0x0000012a,0x00000000,0x00000001,0x00050081,0x00000012, + 0x0000012c,0x00000129,0x0000012b,0x0003003e,0x00000123,0x0000012c,0x0004003d,0x00000012, + 0x0000012e,0x00000123,0x0006000c,0x00000012,0x0000012f,0x00000001,0x00000004,0x0000012e, + 0x0004003d,0x0000000c,0x00000130,0x0000011d,0x0007004f,0x00000012,0x00000131,0x00000130, + 0x00000130,0x00000002,0x00000003,0x00050085,0x00000012,0x00000132,0x0000012f,0x00000131, + 0x0004003d,0x0000000c,0x00000133,0x0000011d,0x0007004f,0x00000012,0x00000134,0x00000133, + 0x00000133,0x00000002,0x00000003,0x00050083,0x00000012,0x00000135,0x00000132,0x00000134, + 0x0003003e,0x00000136,0x00000135,0x00050039,0x00000012,0x00000137,0x00000016,0x00000136, + 0x0003003e,0x0000012d,0x00000137,0x00050041,0x00000007,0x00000139,0x0000012d,0x00000065, + 0x0004003d,0x00000006,0x0000013a,0x00000139,0x00050041,0x00000007,0x0000013b,0x0000012d, + 0x00000068,0x0004003d,0x00000006,0x0000013c,0x0000013b,0x0007000c,0x00000006,0x0000013d, + 0x00000001,0x00000025,0x0000013a,0x0000013c,0x00050081,0x00000006,0x0000013e,0x0000013d, + 0x000000db,0x0008000c,0x00000006,0x0000013f,0x00000001,0x0000002b,0x0000013e,0x00000080, + 0x0000007f,0x0003003e,0x00000138,0x0000013f,0x0004003d,0x00000006,0x00000140,0x000000c4, + 0x0004003d,0x00000006,0x00000141,0x00000138,0x0007000c,0x00000006,0x00000142,0x00000001, + 0x00000025,0x00000140,0x00000141,0x0003003e,0x000000c4,0x00000142,0x000200f9,0x0000010d, + 0x000200f8,0x0000010d,0x00050041,0x00000019,0x00000144,0x000000ba,0x00000065,0x0004003d, + 0x00000018,0x00000145,0x00000144,0x000500c7,0x00000018,0x00000147,0x00000145,0x00000146, + 0x0003003e,0x00000143,0x00000147,0x0004003d,0x00000018,0x00000148,0x00000143,0x000500b2, + 0x000000ad,0x00000149,0x00000148,0x00000068,0x000300f7,0x0000014b,0x00000000,0x000400fa, + 0x00000149,0x0000014a,0x0000015f,0x000200f8,0x0000014a,0x00050041,0x00000019,0x0000014c, + 0x000000ba,0x00000068,0x0004003d,0x00000018,0x0000014d,0x0000014c,0x0006000c,0x0000000c, + 0x0000014e,0x00000001,0x00000040,0x0000014d,0x0003003e,0x00000042,0x0000014e,0x0004003d, + 0x00000018,0x0000014f,0x00000143,0x000500aa,0x000000ad,0x00000150,0x0000014f,0x00000065, + 0x000500a7,0x000000ad,0x00000151,0x000000ea,0x00000150,0x000300f7,0x00000153,0x00000000, + 0x000400fa,0x00000151,0x00000152,0x00000153,0x000200f8,0x00000152,0x0004003d,0x0000000c, + 0x00000154,0x00000042,0x0007004f,0x00000012,0x00000155,0x00000154,0x00000154,0x00000002, + 0x00000003,0x00050041,0x00000007,0x00000156,0x00000043,0x00000065,0x00050051,0x00000006, + 0x00000157,0x00000155,0x00000000,0x0003003e,0x00000156,0x00000157,0x00050041,0x00000007, + 0x00000158,0x00000043,0x00000068,0x00050051,0x00000006,0x00000159,0x00000155,0x00000001, + 0x0003003e,0x00000158,0x00000159,0x0004003d,0x00000006,0x0000015a,0x000000c4,0x00050041, + 0x00000007,0x0000015b,0x00000043,0x00000073,0x0003003e,0x0000015b,0x0000015a,0x00050041, + 0x00000007,0x0000015c,0x00000043,0x00000076,0x0003003e,0x0000015c,0x0000007f,0x0003003e, + 0x0000015d,0x00000080,0x00050039,0x0000000c,0x0000015e,0x00000027,0x0000015d,0x0003003e, + 0x00000042,0x0000015e,0x000200f9,0x00000153,0x000200f8,0x00000153,0x000200f9,0x0000014b, + 0x000200f8,0x0000015f,0x0004003d,0x00000018,0x00000161,0x00000040,0x00050084,0x00000018, + 0x00000162,0x00000161,0x00000115,0x00060041,0x00000119,0x00000164,0x00000113,0x000000bf, + 0x00000162,0x0004003d,0x0000000c,0x00000165,0x00000164,0x0003003e,0x00000163,0x00000165, + 0x00050039,0x00000029,0x00000166,0x0000002c,0x00000163,0x0003003e,0x00000160,0x00000166, + 0x0004003d,0x00000018,0x00000168,0x00000040,0x00050084,0x00000018,0x00000169,0x00000168, + 0x00000115,0x00050080,0x00000018,0x0000016a,0x00000169,0x00000068,0x00060041,0x00000119, + 0x0000016b,0x00000113,0x000000bf,0x0000016a,0x0004003d,0x0000000c,0x0000016c,0x0000016b, + 0x0003003e,0x00000167,0x0000016c,0x0004003d,0x00000029,0x0000016e,0x00000160,0x0004003d, + 0x0000000c,0x0000016f,0x00000126,0x0007004f,0x00000012,0x00000170,0x0000016f,0x0000016f, + 0x00000000,0x00000001,0x00050091,0x00000012,0x00000171,0x0000016e,0x00000170,0x0004003d, + 0x0000000c,0x00000172,0x00000167,0x0007004f,0x00000012,0x00000173,0x00000172,0x00000172, + 0x00000000,0x00000001,0x00050081,0x00000012,0x00000174,0x00000171,0x00000173,0x0003003e, + 0x0000016d,0x00000174,0x0004003d,0x00000018,0x00000176,0x00000143,0x000500aa,0x000000ad, + 0x00000177,0x00000176,0x00000073,0x000300f7,0x0000017a,0x00000000,0x000400fa,0x00000177, + 0x00000179,0x0000017d,0x000200f8,0x00000179,0x00050041,0x00000007,0x0000017b,0x0000016d, + 0x00000065,0x0004003d,0x00000006,0x0000017c,0x0000017b,0x0003003e,0x00000178,0x0000017c, + 0x000200f9,0x0000017a,0x000200f8,0x0000017d,0x0004003d,0x00000012,0x0000017e,0x0000016d, + 0x0006000c,0x00000006,0x0000017f,0x00000001,0x00000042,0x0000017e,0x0003003e,0x00000178, + 0x0000017f,0x000200f9,0x0000017a,0x000200f8,0x0000017a,0x0004003d,0x00000006,0x00000180, + 0x00000178,0x0003003e,0x00000175,0x00000180,0x0004003d,0x00000006,0x00000181,0x00000175, + 0x0008000c,0x00000006,0x00000182,0x00000001,0x0000002b,0x00000181,0x00000080,0x0000007f, + 0x0003003e,0x00000175,0x00000182,0x0004003d,0x00000006,0x00000184,0x00000175,0x00050041, + 0x00000007,0x00000185,0x00000167,0x00000073,0x0004003d,0x00000006,0x00000186,0x00000185, + 0x00050085,0x00000006,0x00000187,0x00000184,0x00000186,0x00050041,0x00000007,0x00000188, + 0x00000167,0x00000076,0x0004003d,0x00000006,0x00000189,0x00000188,0x00050081,0x00000006, + 0x0000018a,0x00000187,0x00000189,0x0003003e,0x00000183,0x0000018a,0x00050041,0x00000019, + 0x0000018c,0x000000ba,0x00000068,0x0004003d,0x00000018,0x0000018d,0x0000018c,0x0004007c, + 0x00000006,0x0000018e,0x0000018d,0x0003003e,0x0000018b,0x0000018e,0x0004003d,0x0000018f, + 0x00000192,0x00000191,0x0004003d,0x00000193,0x00000196,0x00000195,0x00050056,0x00000197, + 0x00000198,0x00000192,0x00000196,0x0004003d,0x00000006,0x00000199,0x00000183,0x0004003d, + 0x00000006,0x0000019a,0x0000018b,0x00050050,0x00000012,0x0000019b,0x00000199,0x0000019a, + 0x00070058,0x0000000c,0x0000019c,0x00000198,0x0000019b,0x00000002,0x00000080,0x0003003e, + 0x00000042,0x0000019c,0x000200f9,0x0000014b,0x000200f8,0x0000014b,0x0004003d,0x00000006, + 0x0000019d,0x000000c4,0x00050041,0x00000007,0x0000019e,0x00000042,0x00000076,0x0004003d, + 0x00000006,0x0000019f,0x0000019e,0x00050085,0x00000006,0x000001a0,0x0000019f,0x0000019d, + 0x00050041,0x00000007,0x000001a1,0x00000042,0x00000076,0x0003003e,0x000001a1,0x000001a0, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000004a,0x00000000,0x00000047,0x00030037, + 0x0000000d,0x00000048,0x00030037,0x0000003e,0x00000049,0x000200f8,0x0000004b,0x0004003d, + 0x0000000c,0x000001a4,0x00000048,0x0003003e,0x000001a3,0x000001a4,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.frag.h new file mode 100644 index 00000000..f3614e65 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.frag.h @@ -0,0 +1,1270 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_rect_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000530,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000b000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000003b9, + 0x0000045f,0x00000461,0x0000046f,0x00000474,0x0000047b,0x00030010,0x00000004,0x00000007, + 0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72, + 0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a, + 0x74736163,0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009, + 0x00000078,0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61, + 0x34667628,0x0000003b,0x00040005,0x0000000f,0x777a7978,0x00000000,0x00090005,0x00000016, + 0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005, + 0x00000015,0x00007978,0x00080005,0x0000001c,0x74736163,0x6e69755f,0x6f745f74,0x6873755f, + 0x2874726f,0x003b3175,0x00030005,0x0000001b,0x00000078,0x00060005,0x0000001f,0x656b616d, + 0x6c61685f,0x31662866,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00070005,0x00000024, + 0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x00000022,0x00000078, + 0x00030005,0x00000023,0x00000079,0x00060005,0x00000028,0x656b616d,0x6c61685f,0x66283266, + 0x00003b31,0x00030005,0x00000027,0x00000078,0x00080005,0x0000002f,0x656b616d,0x6c61685f, + 0x66283366,0x31663b31,0x3b31663b,0x00000000,0x00030005,0x0000002c,0x00000078,0x00030005, + 0x0000002d,0x00000079,0x00030005,0x0000002e,0x0000007a,0x00060005,0x00000033,0x656b616d, + 0x6c61685f,0x66283366,0x00003b31,0x00030005,0x00000032,0x00000078,0x00060005,0x00000037, + 0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000036,0x00000078,0x00080005, + 0x0000003e,0x656b616d,0x6c61685f,0x33783266,0x33667628,0x3366763b,0x0000003b,0x00030005, + 0x0000003c,0x00000061,0x00030005,0x0000003d,0x00000062,0x00070005,0x00000043,0x656b616d, + 0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000042,0x00000078,0x00060005, + 0x00000046,0x756d6e75,0x7069746c,0x7628796c,0x003b3466,0x00040005,0x00000045,0x6f6c6f63, + 0x00000072,0x00060005,0x0000004a,0x5f6e696d,0x756c6176,0x66762865,0x00003b34,0x00040005, + 0x00000049,0x346e696d,0x00000000,0x00050005,0x0000004e,0x766e696d,0x66762833,0x00003b33, + 0x00030005,0x0000004d,0x00000063,0x00050005,0x00000051,0x7678616d,0x66762833,0x00003b33, + 0x00030005,0x00000050,0x00000063,0x00050005,0x00000054,0x766d756c,0x66762833,0x00003b33, + 0x00030005,0x00000053,0x00000063,0x00050005,0x00000057,0x76746173,0x66762833,0x00003b33, + 0x00030005,0x00000056,0x00000063,0x00060005,0x0000005b,0x70696c63,0x6c6f635f,0x7628726f, + 0x003b3366,0x00040005,0x0000005a,0x6f6c6f63,0x00000072,0x00070005,0x00000060,0x5f746573, + 0x286d756c,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005e,0x73616263,0x00000065, + 0x00040005,0x0000005f,0x6d756c63,0x00000000,0x00090005,0x00000066,0x5f746573,0x5f6d756c, + 0x28746173,0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005,0x00000063,0x73616263, + 0x00000065,0x00040005,0x00000064,0x74617363,0x00000000,0x00040005,0x00000065,0x6d756c63, + 0x00000000,0x000b0005,0x0000006c,0x61766461,0x6465636e,0x656c625f,0x635f646e,0x6666656f, + 0x66762873,0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000069,0x00637273,0x00030005, + 0x0000006a,0x00747364,0x00040005,0x0000006b,0x65646f6d,0x00000000,0x000e0005,0x00000072, + 0x61766461,0x6465636e,0x6c6f635f,0x625f726f,0x646e656c,0x6572705f,0x6372735f,0x65766f5f, + 0x66762872,0x66763b33,0x31753b34,0x0000003b,0x00030005,0x0000006f,0x00637273,0x00030005, + 0x00000070,0x00747364,0x00040005,0x00000071,0x65646f6d,0x00000000,0x00060005,0x00000076, + 0x6d6f7266,0x7869665f,0x75286465,0x00003b31,0x00030005,0x00000075,0x00000078,0x00080005, + 0x0000007c,0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005, + 0x00000079,0x70696c63,0x00004449,0x00050005,0x0000007a,0x70696c63,0x61746144,0x00000000, + 0x00050005,0x0000007b,0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000087,0x6f736572, + 0x5f65766c,0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000, + 0x00040005,0x00000082,0x68746170,0x00004449,0x00060005,0x00000083,0x65766f63,0x65676172, + 0x6e756f43,0x00000074,0x00060005,0x00000084,0x67617266,0x6f6c6f43,0x74754f72,0x00000000, + 0x00050005,0x00000085,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000086,0x736c705f, + 0x726f6f43,0x00000064,0x00080005,0x0000008c,0x74696d65,0x736c705f,0x6c6f635f,0x7628726f, + 0x763b3466,0x003b3269,0x00060005,0x0000008a,0x67617266,0x6f6c6f43,0x74754f72,0x00000000, + 0x00050005,0x0000008b,0x736c705f,0x726f6f43,0x00000064,0x00080005,0x00000090,0x74696d65, + 0x736c705f,0x696c635f,0x66762870,0x69763b34,0x00003b32,0x00050005,0x0000008e,0x67617266, + 0x70696c43,0x0074754f,0x00050005,0x0000008f,0x736c705f,0x726f6f43,0x00000064,0x00030005, + 0x000000a9,0x00746572,0x00030005,0x000000b3,0x00746572,0x00030005,0x000000bb,0x00746572, + 0x00030005,0x000000c6,0x00746572,0x00030005,0x000000d0,0x00746572,0x00030005,0x000000de, + 0x00746572,0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005,0x00000116,0x61726170, + 0x0000006d,0x00040005,0x00000124,0x326e696d,0x00000000,0x00040005,0x0000012a,0x316e696d, + 0x00000000,0x00040005,0x0000014b,0x61726170,0x0000006d,0x00040005,0x0000014c,0x61726170, + 0x0000006d,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000152,0x61726170, + 0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d,0x00030005,0x0000015b,0x006d756c, + 0x00040005,0x0000015c,0x61726170,0x0000006d,0x00040005,0x0000015f,0x636e696d,0x00006c6f, + 0x00040005,0x00000160,0x61726170,0x0000006d,0x00040005,0x00000163,0x6378616d,0x00006c6f, + 0x00040005,0x00000164,0x61726170,0x0000006d,0x00040005,0x0000018f,0x7361626c,0x00000065, + 0x00040005,0x00000190,0x61726170,0x0000006d,0x00040005,0x00000193,0x6d756c6c,0x00000000, + 0x00040005,0x00000194,0x61726170,0x0000006d,0x00040005,0x00000197,0x6669646c,0x00000066, + 0x00040005,0x0000019b,0x6f6c6f63,0x00000072,0x00040005,0x0000019d,0x61726170,0x0000006d, + 0x00040005,0x000001a1,0x61726170,0x0000006d,0x00040005,0x000001a6,0x626e696d,0x00657361, + 0x00040005,0x000001a7,0x61726170,0x0000006d,0x00040005,0x000001aa,0x73616273,0x00000065, + 0x00040005,0x000001ab,0x61726170,0x0000006d,0x00040005,0x000001ae,0x74617373,0x00000000, + 0x00040005,0x000001af,0x61726170,0x0000006d,0x00040005,0x000001b6,0x6f6c6f63,0x00000072, + 0x00040005,0x000001c1,0x61726170,0x0000006d,0x00040005,0x000001c3,0x61726170,0x0000006d, + 0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001db,0x66656f63,0x00007366, + 0x00030005,0x000001e9,0x00000069,0x00040005,0x00000222,0x61726170,0x0000006d,0x00040005, + 0x00000225,0x61726170,0x0000006d,0x00040005,0x00000228,0x61726170,0x0000006d,0x00040005, + 0x00000236,0x61726170,0x0000006d,0x00040005,0x00000239,0x61726170,0x0000006d,0x00030005, + 0x0000023e,0x00000069,0x00030005,0x00000267,0x00000069,0x00080005,0x000002d4,0x616e456b, + 0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005,0x000002d8,0x61726170, + 0x0000006d,0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002dd,0x61726170, + 0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d,0x00040005,0x000002e1,0x61726170, + 0x0000006d,0x00040005,0x000002e8,0x61726170,0x0000006d,0x00040005,0x000002ea,0x61726170, + 0x0000006d,0x00040005,0x000002ed,0x61726170,0x0000006d,0x00040005,0x000002ef,0x61726170, + 0x0000006d,0x00040005,0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f8,0x61726170, + 0x0000006d,0x00040005,0x000002fa,0x61726170,0x0000006d,0x00040005,0x000002fd,0x61726170, + 0x0000006d,0x00040005,0x000002ff,0x61726170,0x0000006d,0x00040005,0x00000306,0x61726170, + 0x0000006d,0x00040005,0x00000308,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170, + 0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005,0x00000315,0x66656f63, + 0x00007366,0x00040005,0x00000316,0x61726170,0x0000006d,0x00040005,0x00000318,0x61726170, + 0x0000006d,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00030005,0x0000031e,0x00000070, + 0x00040005,0x00000322,0x61726170,0x0000006d,0x00040005,0x00000325,0x61726170,0x0000006d, + 0x00040005,0x00000327,0x61726170,0x0000006d,0x00040005,0x00000329,0x61726170,0x0000006d, + 0x00040005,0x00000336,0x61726170,0x0000006d,0x00040005,0x00000342,0x61726170,0x0000006d, + 0x00050005,0x00000350,0x6e696170,0x74614474,0x00000061,0x00050005,0x00000352,0x6e696150, + 0x66754274,0x00726566,0x00050006,0x00000352,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x00000354,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005, + 0x00000359,0x65766f63,0x65676172,0x00000000,0x00060005,0x00000364,0x616e456b,0x45656c62, + 0x4f6e6576,0x00006464,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037a, + 0x61726170,0x0000006d,0x00060005,0x0000037d,0x616e456b,0x43656c62,0x7070696c,0x00676e69, + 0x00040005,0x00000380,0x70696c63,0x00004449,0x00060005,0x0000038b,0x5f6e695f,0x70696c63, + 0x66667542,0x00007265,0x00040005,0x0000038f,0x61726170,0x0000006d,0x00040005,0x00000391, + 0x61726170,0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00060005,0x00000396, + 0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x000003a2,0x0000004d,0x00060005, + 0x000003a4,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x000003a4,0x00000000, + 0x6c61765f,0x00736575,0x00090005,0x000003a6,0x5058455f,0x4554524f,0x61705f44,0x41746e69, + 0x75427875,0x72656666,0x00000000,0x00040005,0x000003ab,0x61726170,0x0000006d,0x00050005, + 0x000003b0,0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003b6,0x70696c63,0x726f6f43, + 0x00000064,0x00060005,0x000003b9,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005, + 0x000003c0,0x74736964,0x00005958,0x00040005,0x000003c9,0x61726170,0x0000006d,0x00070005, + 0x000003cb,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x000003d6, + 0x6e696170,0x70795474,0x00000065,0x00040005,0x000003f0,0x61726170,0x0000006d,0x00030005, + 0x000003f3,0x0000004d,0x00040005,0x000003f6,0x61726170,0x0000006d,0x00050005,0x000003fa, + 0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000400,0x6e696170,0x6f6f4374,0x00006472, + 0x00030005,0x00000408,0x00000074,0x00030005,0x00000416,0x00000078,0x00030005,0x0000041e, + 0x00000079,0x00080005,0x00000424,0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478, + 0x00000065,0x00050005,0x00000428,0x64617267,0x706d6153,0x0072656c,0x00080005,0x00000435, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005,0x0000043e, + 0x6e656c62,0x646f4d64,0x00000065,0x00040005,0x00000444,0x61726170,0x0000006d,0x00050005, + 0x0000044a,0x43747364,0x726f6c6f,0x00000000,0x00060005,0x0000044b,0x5f6e695f,0x6f6c6f63, + 0x66754272,0x00726566,0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000451, + 0x61726170,0x0000006d,0x00040005,0x00000454,0x61726170,0x0000006d,0x00040005,0x00000455, + 0x61726170,0x0000006d,0x00050005,0x0000045f,0x6f6c6f63,0x66754272,0x00726566,0x00050005, + 0x00000461,0x70696c63,0x66667542,0x00007265,0x00050005,0x00000463,0x736c705f,0x726f6f43, + 0x00000064,0x00050005,0x00000468,0x67616d69,0x6c6f4365,0x0000726f,0x00080005,0x00000469, + 0x5058455f,0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x0000046b, + 0x67616d69,0x6d615365,0x72656c70,0x00000000,0x00050005,0x0000046f,0x65745f76,0x6f6f4378, + 0x00006472,0x00060005,0x00000472,0x67616d69,0x766f4365,0x67617265,0x00000065,0x00060005, + 0x00000474,0x64655f76,0x6f436567,0x61726576,0x00006567,0x00070005,0x0000047a,0x70696c63, + 0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x0000047b,0x6c635f76,0x65527069, + 0x00007463,0x00040005,0x0000047c,0x61726170,0x0000006d,0x00040005,0x0000047f,0x61726170, + 0x0000006d,0x00040005,0x00000482,0x61726170,0x0000006d,0x00070005,0x00000486,0x7473616c, + 0x65766f43,0x65676172,0x61746144,0x00000000,0x00080005,0x00000489,0x65766f63,0x65676172, + 0x6d6f7441,0x75426369,0x72656666,0x00000000,0x00050005,0x0000048f,0x7473616c,0x68746150, + 0x00004449,0x00040005,0x00000493,0x61726170,0x0000006d,0x00070005,0x00000495,0x7473616c, + 0x65766f43,0x65676172,0x6e756f43,0x00000074,0x00040005,0x00000499,0x61726170,0x0000006d, + 0x00050005,0x0000049b,0x67617266,0x70696c43,0x0074754f,0x00040005,0x0000049c,0x61726170, + 0x0000006d,0x00060005,0x0000049e,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00040005, + 0x0000049f,0x61726170,0x0000006d,0x00040005,0x000004a1,0x61726170,0x0000006d,0x00040005, + 0x000004a3,0x61726170,0x0000006d,0x00040005,0x000004a4,0x61726170,0x0000006d,0x00040005, + 0x000004a6,0x61726170,0x0000006d,0x00090005,0x000004b8,0x5058455f,0x4554524f,0x6d495f44, + 0x44656761,0x55776172,0x6f66696e,0x00736d72,0x00060006,0x000004b8,0x00000000,0x77656976, + 0x7274614d,0x00007869,0x00060006,0x000004b8,0x00000001,0x6e617274,0x74616c73,0x00000065, + 0x00050006,0x000004b8,0x00000002,0x6361706f,0x00797469,0x00050006,0x000004b8,0x00000003, + 0x64646170,0x00676e69,0x00090006,0x000004b8,0x00000004,0x70696c63,0x74636552,0x65766e49, + 0x4d657372,0x69727461,0x00000078,0x000a0006,0x000004b8,0x00000005,0x70696c63,0x74636552, + 0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x000004b8,0x00000006, + 0x70696c63,0x00004449,0x00060006,0x000004b8,0x00000007,0x6e656c62,0x646f4d64,0x00000065, + 0x00050006,0x000004b8,0x00000008,0x646e497a,0x00007865,0x00070005,0x000004ba,0x67616d69, + 0x61724465,0x696e5577,0x6d726f66,0x00000073,0x00050005,0x000004c3,0x70696c63,0x61746144, + 0x00000000,0x00040005,0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d2,0x61726170, + 0x0000006d,0x00040005,0x000004d4,0x61726170,0x0000006d,0x00040005,0x000004da,0x61726170, + 0x0000006d,0x00050005,0x000004ed,0x43747364,0x726f6c6f,0x00000000,0x00040005,0x000004f6, + 0x61726170,0x0000006d,0x00040005,0x000004f9,0x61726170,0x0000006d,0x00040005,0x000004fd, + 0x61726170,0x0000006d,0x00040005,0x00000500,0x61726170,0x0000006d,0x00040005,0x00000501, + 0x61726170,0x0000006d,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005,0x0000051d, + 0x61726170,0x0000006d,0x00040005,0x00000520,0x61726170,0x0000006d,0x00040005,0x00000522, + 0x61726170,0x0000006d,0x00080005,0x00000529,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00060005,0x0000052a,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00090005,0x0000052b,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170, + 0x00000000,0x00080005,0x0000052d,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e, + 0x00736d72,0x00090006,0x0000052d,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00090006,0x0000052d,0x00000001,0x73736574,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x000b0006,0x0000052d,0x00000002,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x0000052d, + 0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00080006,0x0000052d,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957, + 0x00000068,0x00080006,0x0000052d,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548, + 0x00007468,0x00070006,0x0000052d,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c, + 0x00080006,0x0000052d,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575, + 0x000a0006,0x0000052d,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574, + 0x73646e75,0x00000000,0x00090006,0x0000052d,0x00000009,0x65766f63,0x65676172,0x66667542, + 0x72507265,0x78696665,0x00000000,0x00080006,0x0000052d,0x0000000a,0x68746170,0x72474449, + 0x6c756e61,0x74697261,0x00000079,0x00080006,0x0000052d,0x0000000b,0x74726576,0x69447865, + 0x72616373,0x6c615664,0x00006575,0x00050005,0x0000052f,0x66696e75,0x736d726f,0x00000000, + 0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000,0x00030047,0x00000016, + 0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x0000001f,0x00000000,0x00030047, + 0x0000001e,0x00000000,0x00030047,0x00000024,0x00000000,0x00030047,0x00000022,0x00000000, + 0x00030047,0x00000023,0x00000000,0x00030047,0x00000028,0x00000000,0x00030047,0x00000027, + 0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047,0x0000002c,0x00000000,0x00030047, + 0x0000002d,0x00000000,0x00030047,0x0000002e,0x00000000,0x00030047,0x00000033,0x00000000, + 0x00030047,0x00000032,0x00000000,0x00030047,0x00000037,0x00000000,0x00030047,0x00000036, + 0x00000000,0x00030047,0x0000003e,0x00000000,0x00030047,0x0000003c,0x00000000,0x00030047, + 0x0000003d,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047,0x00000045,0x00000000, + 0x00030047,0x0000004a,0x00000000,0x00030047,0x00000049,0x00000000,0x00030047,0x0000004e, + 0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047,0x00000051,0x00000000,0x00030047, + 0x00000050,0x00000000,0x00030047,0x00000054,0x00000000,0x00030047,0x00000053,0x00000000, + 0x00030047,0x00000057,0x00000000,0x00030047,0x00000056,0x00000000,0x00030047,0x0000005b, + 0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x00000060,0x00000000,0x00030047, + 0x0000005e,0x00000000,0x00030047,0x0000005f,0x00000000,0x00030047,0x00000066,0x00000000, + 0x00030047,0x00000063,0x00000000,0x00030047,0x00000064,0x00000000,0x00030047,0x00000065, + 0x00000000,0x00030047,0x0000006c,0x00000000,0x00030047,0x00000069,0x00000000,0x00030047, + 0x0000006a,0x00000000,0x00030047,0x0000006b,0x00000000,0x00030047,0x00000072,0x00000000, + 0x00030047,0x0000006f,0x00000000,0x00030047,0x00000070,0x00000000,0x00030047,0x00000071, + 0x00000000,0x00030047,0x00000076,0x00000000,0x00030047,0x0000007a,0x00000000,0x00030047, + 0x0000007b,0x00000000,0x00030047,0x00000083,0x00000000,0x00030047,0x00000084,0x00000000, + 0x00030047,0x00000085,0x00000000,0x00030047,0x0000008a,0x00000000,0x00030047,0x0000008e, + 0x00000000,0x00030047,0x00000093,0x00000000,0x00030047,0x00000094,0x00000000,0x00030047, + 0x00000098,0x00000000,0x00030047,0x00000099,0x00000000,0x00030047,0x0000009d,0x00000000, + 0x00030047,0x0000009e,0x00000000,0x00030047,0x000000a2,0x00000000,0x00030047,0x000000a3, + 0x00000000,0x00030047,0x000000a6,0x00000000,0x00030047,0x000000a9,0x00000000,0x00030047, + 0x000000aa,0x00000000,0x00030047,0x000000ad,0x00000000,0x00030047,0x000000b0,0x00000000, + 0x00030047,0x000000b3,0x00000000,0x00030047,0x000000b4,0x00000000,0x00030047,0x000000b6, + 0x00000000,0x00030047,0x000000b8,0x00000000,0x00030047,0x000000bb,0x00000000,0x00030047, + 0x000000bc,0x00000000,0x00030047,0x000000be,0x00000000,0x00030047,0x000000c0,0x00000000, + 0x00030047,0x000000c3,0x00000000,0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c7, + 0x00000000,0x00030047,0x000000c9,0x00000000,0x00030047,0x000000cb,0x00000000,0x00030047, + 0x000000cd,0x00000000,0x00030047,0x000000d0,0x00000000,0x00030047,0x000000d1,0x00000000, + 0x00030047,0x000000d3,0x00000000,0x00030047,0x000000d5,0x00000000,0x00030047,0x000000d7, + 0x00000000,0x00030047,0x000000da,0x00000000,0x00030047,0x000000de,0x00000000,0x00030047, + 0x000000e0,0x00000000,0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e5,0x00000000, + 0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fe,0x00000000,0x00030047,0x00000104, + 0x00000000,0x00030047,0x00000105,0x00000000,0x00030047,0x00000106,0x00000000,0x00030047, + 0x00000107,0x00000000,0x00030047,0x00000108,0x00000000,0x00030047,0x0000010f,0x00000000, + 0x00030047,0x00000110,0x00000000,0x00030047,0x00000111,0x00000000,0x00030047,0x00000112, + 0x00000000,0x00030047,0x00000113,0x00000000,0x00030047,0x00000114,0x00000000,0x00030047, + 0x00000116,0x00000000,0x00030047,0x00000117,0x00000000,0x00030047,0x00000119,0x00000000, + 0x00030047,0x0000011a,0x00000000,0x00030047,0x00000121,0x00000000,0x00030047,0x00000124, + 0x00000000,0x00030047,0x00000125,0x00000000,0x00030047,0x00000126,0x00000000,0x00030047, + 0x00000127,0x00000000,0x00030047,0x00000128,0x00000000,0x00030047,0x00000129,0x00000000, + 0x00030047,0x0000012a,0x00000000,0x00030047,0x0000012c,0x00000000,0x00030047,0x0000012e, + 0x00000000,0x00030047,0x0000012f,0x00000000,0x00030047,0x00000130,0x00000000,0x00030047, + 0x00000134,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047,0x00000137,0x00000000, + 0x00030047,0x00000139,0x00000000,0x00030047,0x0000013a,0x00000000,0x00030047,0x0000013e, + 0x00000000,0x00030047,0x00000140,0x00000000,0x00030047,0x00000141,0x00000000,0x00030047, + 0x00000143,0x00000000,0x00030047,0x00000144,0x00000000,0x00030047,0x00000147,0x00000000, + 0x00030047,0x0000014b,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047,0x0000014d, + 0x00000000,0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000,0x00030047, + 0x00000152,0x00000000,0x00030047,0x00000153,0x00000000,0x00030047,0x00000154,0x00000000, + 0x00030047,0x00000155,0x00000000,0x00030047,0x00000156,0x00000000,0x00030047,0x00000157, + 0x00000000,0x00030047,0x00000158,0x00000000,0x00030047,0x0000015b,0x00000000,0x00030047, + 0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e,0x00000000, + 0x00030047,0x0000015f,0x00000000,0x00030047,0x00000160,0x00000000,0x00030047,0x00000161, + 0x00000000,0x00030047,0x00000162,0x00000000,0x00030047,0x00000163,0x00000000,0x00030047, + 0x00000164,0x00000000,0x00030047,0x00000165,0x00000000,0x00030047,0x00000166,0x00000000, + 0x00030047,0x00000167,0x00000000,0x00030047,0x0000016b,0x00000000,0x00030047,0x0000016c, + 0x00000000,0x00030047,0x0000016d,0x00000000,0x00030047,0x0000016e,0x00000000,0x00030047, + 0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047,0x00000171,0x00000000, + 0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000,0x00030047,0x00000174, + 0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176,0x00000000,0x00030047, + 0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047,0x00000179,0x00000000, + 0x00030047,0x0000017d,0x00000000,0x00030047,0x0000017e,0x00000000,0x00030047,0x0000017f, + 0x00000000,0x00030047,0x00000180,0x00000000,0x00030047,0x00000181,0x00000000,0x00030047, + 0x00000182,0x00000000,0x00030047,0x00000183,0x00000000,0x00030047,0x00000184,0x00000000, + 0x00030047,0x00000185,0x00000000,0x00030047,0x00000186,0x00000000,0x00030047,0x00000187, + 0x00000000,0x00030047,0x00000188,0x00000000,0x00030047,0x00000189,0x00000000,0x00030047, + 0x0000018a,0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047,0x0000018c,0x00000000, + 0x00030047,0x0000018f,0x00000000,0x00030047,0x00000190,0x00000000,0x00030047,0x00000191, + 0x00000000,0x00030047,0x00000192,0x00000000,0x00030047,0x00000193,0x00000000,0x00030047, + 0x00000194,0x00000000,0x00030047,0x00000195,0x00000000,0x00030047,0x00000196,0x00000000, + 0x00030047,0x00000197,0x00000000,0x00030047,0x00000198,0x00000000,0x00030047,0x00000199, + 0x00000000,0x00030047,0x0000019a,0x00000000,0x00030047,0x0000019b,0x00000000,0x00030047, + 0x0000019c,0x00000000,0x00030047,0x0000019d,0x00000000,0x00030047,0x0000019e,0x00000000, + 0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a0,0x00000000,0x00030047,0x000001a1, + 0x00000000,0x00030047,0x000001a2,0x00000000,0x00030047,0x000001a3,0x00000000,0x00030047, + 0x000001a6,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047,0x000001a8,0x00000000, + 0x00030047,0x000001a9,0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047,0x000001ab, + 0x00000000,0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ad,0x00000000,0x00030047, + 0x000001ae,0x00000000,0x00030047,0x000001af,0x00000000,0x00030047,0x000001b0,0x00000000, + 0x00030047,0x000001b1,0x00000000,0x00030047,0x000001b2,0x00000000,0x00030047,0x000001b6, + 0x00000000,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001b8,0x00000000,0x00030047, + 0x000001b9,0x00000000,0x00030047,0x000001ba,0x00000000,0x00030047,0x000001bb,0x00000000, + 0x00030047,0x000001bc,0x00000000,0x00030047,0x000001bd,0x00000000,0x00030047,0x000001be, + 0x00000000,0x00030047,0x000001bf,0x00000000,0x00030047,0x000001c1,0x00000000,0x00030047, + 0x000001c2,0x00000000,0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4,0x00000000, + 0x00030047,0x000001c5,0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047,0x000001c7, + 0x00000000,0x00030047,0x000001ca,0x00000000,0x00030047,0x000001db,0x00000000,0x00030047, + 0x000001dc,0x00000000,0x00030047,0x000001dd,0x00000000,0x00030047,0x000001de,0x00000000, + 0x00030047,0x000001e0,0x00000000,0x00030047,0x000001e1,0x00000000,0x00030047,0x000001e2, + 0x00000000,0x00030047,0x000001e3,0x00000000,0x00030047,0x000001e4,0x00000000,0x00030047, + 0x000001e5,0x00000000,0x00030047,0x000001e6,0x00000000,0x00030047,0x000001f4,0x00000000, + 0x00030047,0x000001fd,0x00000000,0x00030047,0x000001fe,0x00000000,0x00030047,0x00000201, + 0x00000000,0x00030047,0x00000202,0x00000000,0x00030047,0x00000208,0x00000000,0x00030047, + 0x00000209,0x00000000,0x00030047,0x0000020a,0x00000000,0x00030047,0x0000020d,0x00000000, + 0x00030047,0x0000020e,0x00000000,0x00030047,0x0000020f,0x00000000,0x00030047,0x00000210, + 0x00000000,0x00030047,0x00000215,0x00000000,0x00030047,0x00000216,0x00000000,0x00030047, + 0x00000217,0x00000000,0x00030047,0x00000219,0x00000000,0x00030047,0x0000021a,0x00000000, + 0x00030047,0x0000021b,0x00000000,0x00030047,0x0000021d,0x00000000,0x00030047,0x0000021e, + 0x00000000,0x00030047,0x0000021f,0x00000000,0x00030047,0x00000220,0x00000000,0x00030047, + 0x00000221,0x00000000,0x00030047,0x00000222,0x00000000,0x00030047,0x00000223,0x00000000, + 0x00030047,0x00000224,0x00000000,0x00030047,0x00000225,0x00000000,0x00030047,0x00000226, + 0x00000000,0x00030047,0x00000227,0x00000000,0x00030047,0x00000228,0x00000000,0x00030047, + 0x00000229,0x00000000,0x00030047,0x0000022a,0x00000000,0x00030047,0x0000022b,0x00000000, + 0x00030047,0x0000022d,0x00000000,0x00030047,0x0000022e,0x00000000,0x00030047,0x0000022f, + 0x00000000,0x00030047,0x00000230,0x00000000,0x00030047,0x00000231,0x00000000,0x00030047, + 0x00000232,0x00000000,0x00030047,0x00000233,0x00000000,0x00030047,0x00000234,0x00000000, + 0x00030047,0x00000235,0x00000000,0x00030047,0x00000236,0x00000000,0x00030047,0x00000237, + 0x00000000,0x00030047,0x00000238,0x00000000,0x00030047,0x00000239,0x00000000,0x00030047, + 0x0000023a,0x00000000,0x00030047,0x0000023b,0x00000000,0x00030047,0x0000023c,0x00000000, + 0x00030047,0x00000248,0x00000000,0x00030047,0x0000024f,0x00000000,0x00030047,0x00000250, + 0x00000000,0x00030047,0x00000253,0x00000000,0x00030047,0x00000254,0x00000000,0x00030047, + 0x0000025a,0x00000000,0x00030047,0x0000025b,0x00000000,0x00030047,0x0000025c,0x00000000, + 0x00030047,0x0000025f,0x00000000,0x00030047,0x00000260,0x00000000,0x00030047,0x00000261, + 0x00000000,0x00030047,0x00000262,0x00000000,0x00030047,0x00000271,0x00000000,0x00030047, + 0x00000278,0x00000000,0x00030047,0x0000027b,0x00000000,0x00030047,0x0000027c,0x00000000, + 0x00030047,0x0000027d,0x00000000,0x00030047,0x00000280,0x00000000,0x00030047,0x00000281, + 0x00000000,0x00030047,0x00000284,0x00000000,0x00030047,0x00000285,0x00000000,0x00030047, + 0x00000286,0x00000000,0x00030047,0x00000287,0x00000000,0x00030047,0x0000028c,0x00000000, + 0x00030047,0x00000294,0x00000000,0x00030047,0x00000297,0x00000000,0x00030047,0x00000298, + 0x00000000,0x00030047,0x00000299,0x00000000,0x00030047,0x0000029c,0x00000000,0x00030047, + 0x0000029d,0x00000000,0x00030047,0x000002a1,0x00000000,0x00030047,0x000002a2,0x00000000, + 0x00030047,0x000002a4,0x00000000,0x00030047,0x000002a7,0x00000000,0x00030047,0x000002a8, + 0x00000000,0x00030047,0x000002aa,0x00000000,0x00030047,0x000002ab,0x00000000,0x00030047, + 0x000002ac,0x00000000,0x00030047,0x000002b2,0x00000000,0x00030047,0x000002b5,0x00000000, + 0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b7,0x00000000,0x00030047,0x000002ba, + 0x00000000,0x00030047,0x000002bb,0x00000000,0x00030047,0x000002be,0x00000000,0x00030047, + 0x000002bf,0x00000000,0x00030047,0x000002c0,0x00000000,0x00030047,0x000002c1,0x00000000, + 0x00030047,0x000002c6,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047,0x000002c8, + 0x00000000,0x00030047,0x000002c9,0x00000000,0x00030047,0x000002cb,0x00000000,0x00030047, + 0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000,0x00030047,0x000002ce,0x00000000, + 0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0,0x00000000,0x00030047,0x000002d1, + 0x00000000,0x00030047,0x000002d2,0x00000000,0x00040047,0x000002d4,0x00000001,0x00000005, + 0x00030047,0x000002d7,0x00000000,0x00030047,0x000002d8,0x00000000,0x00030047,0x000002d9, + 0x00000000,0x00030047,0x000002da,0x00000000,0x00030047,0x000002db,0x00000000,0x00030047, + 0x000002dc,0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047,0x000002de,0x00000000, + 0x00030047,0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000,0x00030047,0x000002e1, + 0x00000000,0x00030047,0x000002e2,0x00000000,0x00030047,0x000002e3,0x00000000,0x00030047, + 0x000002e7,0x00000000,0x00030047,0x000002e8,0x00000000,0x00030047,0x000002e9,0x00000000, + 0x00030047,0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000,0x00030047,0x000002ec, + 0x00000000,0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee,0x00000000,0x00030047, + 0x000002ef,0x00000000,0x00030047,0x000002f0,0x00000000,0x00030047,0x000002f1,0x00000000, + 0x00030047,0x000002f2,0x00000000,0x00030047,0x000002f3,0x00000000,0x00030047,0x000002f7, + 0x00000000,0x00030047,0x000002f8,0x00000000,0x00030047,0x000002f9,0x00000000,0x00030047, + 0x000002fa,0x00000000,0x00030047,0x000002fb,0x00000000,0x00030047,0x000002fc,0x00000000, + 0x00030047,0x000002fd,0x00000000,0x00030047,0x000002fe,0x00000000,0x00030047,0x000002ff, + 0x00000000,0x00030047,0x00000300,0x00000000,0x00030047,0x00000301,0x00000000,0x00030047, + 0x00000305,0x00000000,0x00030047,0x00000306,0x00000000,0x00030047,0x00000307,0x00000000, + 0x00030047,0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047,0x0000030a, + 0x00000000,0x00030047,0x0000030b,0x00000000,0x00030047,0x0000030c,0x00000000,0x00030047, + 0x0000030d,0x00000000,0x00030047,0x0000030e,0x00000000,0x00030047,0x0000030f,0x00000000, + 0x00030047,0x00000312,0x00000000,0x00030047,0x00000315,0x00000000,0x00030047,0x00000316, + 0x00000000,0x00030047,0x00000317,0x00000000,0x00030047,0x00000318,0x00000000,0x00030047, + 0x00000319,0x00000000,0x00030047,0x0000031a,0x00000000,0x00030047,0x0000031b,0x00000000, + 0x00030047,0x0000031c,0x00000000,0x00030047,0x0000031d,0x00000000,0x00030047,0x0000031e, + 0x00000000,0x00030047,0x00000320,0x00000000,0x00030047,0x00000321,0x00000000,0x00030047, + 0x00000322,0x00000000,0x00030047,0x00000324,0x00000000,0x00030047,0x00000325,0x00000000, + 0x00030047,0x00000326,0x00000000,0x00030047,0x00000327,0x00000000,0x00030047,0x00000328, + 0x00000000,0x00030047,0x00000329,0x00000000,0x00030047,0x0000032a,0x00000000,0x00030047, + 0x0000032b,0x00000000,0x00030047,0x0000032c,0x00000000,0x00030047,0x0000032d,0x00000000, + 0x00030047,0x00000337,0x00000000,0x00030047,0x0000033a,0x00000000,0x00030047,0x0000033b, + 0x00000000,0x00030047,0x00000342,0x00000000,0x00030047,0x00000343,0x00000000,0x00030047, + 0x00000349,0x00000000,0x00030047,0x0000034b,0x00000000,0x00030047,0x0000034c,0x00000000, + 0x00040047,0x00000351,0x00000006,0x00000008,0x00040048,0x00000352,0x00000000,0x00000018, + 0x00050048,0x00000352,0x00000000,0x00000023,0x00000000,0x00030047,0x00000352,0x00000003, + 0x00040047,0x00000354,0x00000022,0x00000000,0x00040047,0x00000354,0x00000021,0x00000004, + 0x00030047,0x00000359,0x00000000,0x00030047,0x0000035a,0x00000000,0x00030047,0x00000362, + 0x00000000,0x00030047,0x00000363,0x00000000,0x00040047,0x00000364,0x00000001,0x00000003, + 0x00030047,0x0000036f,0x00000000,0x00030047,0x00000370,0x00000000,0x00030047,0x00000371, + 0x00000000,0x00030047,0x00000372,0x00000000,0x00030047,0x00000374,0x00000000,0x00030047, + 0x00000375,0x00000000,0x00030047,0x00000376,0x00000000,0x00030047,0x00000377,0x00000000, + 0x00030047,0x00000378,0x00000000,0x00030047,0x00000379,0x00000000,0x00030047,0x0000037a, + 0x00000000,0x00030047,0x0000037b,0x00000000,0x00030047,0x0000037c,0x00000000,0x00040047, + 0x0000037d,0x00000001,0x00000000,0x00030047,0x0000038b,0x00000000,0x00040047,0x0000038b, + 0x00000022,0x00000003,0x00040047,0x0000038b,0x00000021,0x00000001,0x00040047,0x0000038b, + 0x0000002b,0x00000001,0x00030047,0x0000038c,0x00000000,0x00030047,0x0000038e,0x00000000, + 0x00030047,0x00000391,0x00000000,0x00030047,0x00000392,0x00000000,0x00030047,0x00000393, + 0x00000000,0x00040047,0x00000396,0x00000001,0x00000001,0x00040047,0x000003a3,0x00000006, + 0x00000010,0x00040048,0x000003a4,0x00000000,0x00000018,0x00050048,0x000003a4,0x00000000, + 0x00000023,0x00000000,0x00030047,0x000003a4,0x00000003,0x00040047,0x000003a6,0x00000022, + 0x00000000,0x00040047,0x000003a6,0x00000021,0x00000005,0x00040047,0x000003b9,0x0000000b, + 0x0000000f,0x00030047,0x000003c0,0x00000000,0x00030047,0x000003ca,0x00000000,0x00030047, + 0x000003cb,0x00000000,0x00030047,0x000003cd,0x00000000,0x00030047,0x000003cf,0x00000000, + 0x00030047,0x000003d0,0x00000000,0x00030047,0x000003d1,0x00000000,0x00030047,0x000003d2, + 0x00000000,0x00030047,0x000003d3,0x00000000,0x00030047,0x000003d4,0x00000000,0x00030047, + 0x000003d5,0x00000000,0x00030047,0x000003e7,0x00000000,0x00030047,0x000003e8,0x00000000, + 0x00030047,0x000003ed,0x00000000,0x00030047,0x000003f0,0x00000000,0x00030047,0x000003f1, + 0x00000000,0x00030047,0x00000424,0x00000000,0x00040047,0x00000424,0x00000022,0x00000000, + 0x00040047,0x00000424,0x00000021,0x00000001,0x00030047,0x00000425,0x00000000,0x00030047, + 0x00000428,0x00000000,0x00040047,0x00000428,0x00000022,0x00000002,0x00040047,0x00000428, + 0x00000021,0x00000001,0x00030047,0x00000429,0x00000000,0x00030047,0x0000042f,0x00000000, + 0x00030047,0x00000430,0x00000000,0x00030047,0x00000432,0x00000000,0x00030047,0x00000433, + 0x00000000,0x00040047,0x00000435,0x00000001,0x00000002,0x00030047,0x00000439,0x00000000, + 0x00030047,0x0000043e,0x00000000,0x00030047,0x00000445,0x00000000,0x00030047,0x0000044a, + 0x00000000,0x00030047,0x0000044b,0x00000000,0x00040047,0x0000044b,0x00000022,0x00000003, + 0x00040047,0x0000044b,0x00000021,0x00000000,0x00040047,0x0000044b,0x0000002b,0x00000000, + 0x00030047,0x0000044c,0x00000000,0x00030047,0x0000044d,0x00000000,0x00030047,0x0000044e, + 0x00000000,0x00030047,0x0000044f,0x00000000,0x00030047,0x00000450,0x00000000,0x00030047, + 0x00000451,0x00000000,0x00030047,0x00000452,0x00000000,0x00030047,0x00000453,0x00000000, + 0x00030047,0x00000454,0x00000000,0x00030047,0x00000455,0x00000000,0x00030047,0x00000456, + 0x00000000,0x00030047,0x00000457,0x00000000,0x00030047,0x0000045f,0x00000000,0x00040047, + 0x0000045f,0x0000001e,0x00000000,0x00030047,0x00000460,0x00000000,0x00030047,0x00000461, + 0x00000000,0x00040047,0x00000461,0x0000001e,0x00000001,0x00030047,0x00000462,0x00000000, + 0x00030047,0x00000468,0x00000000,0x00030047,0x00000469,0x00000000,0x00040047,0x00000469, + 0x00000022,0x00000001,0x00040047,0x00000469,0x00000021,0x00000002,0x00030047,0x0000046a, + 0x00000000,0x00030047,0x0000046b,0x00000000,0x00040047,0x0000046b,0x00000022,0x00000002, + 0x00040047,0x0000046b,0x00000021,0x00000002,0x00030047,0x0000046c,0x00000000,0x00040047, + 0x0000046f,0x0000001e,0x00000000,0x00030047,0x00000471,0x00000000,0x00030047,0x00000472, + 0x00000000,0x00030047,0x00000474,0x00000000,0x00040047,0x00000474,0x0000001e,0x00000001, + 0x00030047,0x00000475,0x00000000,0x00030047,0x00000476,0x00000000,0x00030047,0x00000477, + 0x00000000,0x00030047,0x0000047a,0x00000000,0x00040047,0x0000047b,0x0000001e,0x00000002, + 0x00030047,0x0000047e,0x00000000,0x00030047,0x0000047f,0x00000000,0x00030047,0x00000480, + 0x00000000,0x00030047,0x00000481,0x00000000,0x00030047,0x00000482,0x00000000,0x00030047, + 0x00000483,0x00000000,0x00030047,0x00000484,0x00000000,0x00030047,0x00000485,0x00000000, + 0x00040047,0x00000489,0x00000022,0x00000003,0x00040047,0x00000489,0x00000021,0x00000003, + 0x00030047,0x00000489,0x00000017,0x00030047,0x0000048f,0x00000000,0x00030047,0x00000494, + 0x00000000,0x00030047,0x00000495,0x00000000,0x00030047,0x0000049a,0x00000000,0x00030047, + 0x0000049b,0x00000000,0x00030047,0x0000049c,0x00000000,0x00030047,0x0000049d,0x00000000, + 0x00030047,0x0000049e,0x00000000,0x00030047,0x000004a0,0x00000000,0x00030047,0x000004a1, + 0x00000000,0x00030047,0x000004a2,0x00000000,0x00030047,0x000004a3,0x00000000,0x00030047, + 0x000004a4,0x00000000,0x00030047,0x000004a5,0x00000000,0x00030047,0x000004ac,0x00000000, + 0x00030047,0x000004ad,0x00000000,0x00030047,0x000004ae,0x00000000,0x00030047,0x000004af, + 0x00000000,0x00050048,0x000004b8,0x00000000,0x00000023,0x00000000,0x00050048,0x000004b8, + 0x00000001,0x00000023,0x00000010,0x00050048,0x000004b8,0x00000002,0x00000023,0x00000018, + 0x00050048,0x000004b8,0x00000003,0x00000023,0x0000001c,0x00050048,0x000004b8,0x00000004, + 0x00000023,0x00000020,0x00050048,0x000004b8,0x00000005,0x00000023,0x00000030,0x00050048, + 0x000004b8,0x00000006,0x00000023,0x00000038,0x00050048,0x000004b8,0x00000007,0x00000023, + 0x0000003c,0x00050048,0x000004b8,0x00000008,0x00000023,0x00000040,0x00030047,0x000004b8, + 0x00000002,0x00040047,0x000004ba,0x00000022,0x00000000,0x00040047,0x000004ba,0x00000021, + 0x00000009,0x00030047,0x000004c3,0x00000000,0x00030047,0x000004c5,0x00000000,0x00030047, + 0x000004c7,0x00000000,0x00030047,0x000004ca,0x00000000,0x00030047,0x000004cc,0x00000000, + 0x00030047,0x000004cd,0x00000000,0x00030047,0x000004ce,0x00000000,0x00030047,0x000004d2, + 0x00000000,0x00030047,0x000004d3,0x00000000,0x00030047,0x000004d4,0x00000000,0x00030047, + 0x000004d5,0x00000000,0x00030047,0x000004d8,0x00000000,0x00030047,0x000004de,0x00000000, + 0x00030047,0x000004df,0x00000000,0x00030047,0x000004e1,0x00000000,0x00030047,0x000004e2, + 0x00000000,0x00030047,0x000004ed,0x00000000,0x00030047,0x000004ee,0x00000000,0x00030047, + 0x000004ef,0x00000000,0x00030047,0x000004f1,0x00000000,0x00030047,0x000004f2,0x00000000, + 0x00030047,0x000004f3,0x00000000,0x00030047,0x000004f4,0x00000000,0x00030047,0x000004f5, + 0x00000000,0x00030047,0x000004f6,0x00000000,0x00030047,0x000004f7,0x00000000,0x00030047, + 0x000004f8,0x00000000,0x00030047,0x000004fc,0x00000000,0x00030047,0x000004fd,0x00000000, + 0x00030047,0x000004fe,0x00000000,0x00030047,0x000004ff,0x00000000,0x00030047,0x00000500, + 0x00000000,0x00030047,0x00000501,0x00000000,0x00030047,0x00000502,0x00000000,0x00030047, + 0x0000050a,0x00000000,0x00030047,0x0000050b,0x00000000,0x00030047,0x0000050c,0x00000000, + 0x00030047,0x0000050d,0x00000000,0x00030047,0x00000514,0x00000000,0x00030047,0x00000516, + 0x00000000,0x00030047,0x00000517,0x00000000,0x00030047,0x00000518,0x00000000,0x00030047, + 0x00000519,0x00000000,0x00030047,0x0000051a,0x00000000,0x00030047,0x0000051b,0x00000000, + 0x00030047,0x0000051c,0x00000000,0x00030047,0x00000520,0x00000000,0x00030047,0x00000521, + 0x00000000,0x00040047,0x00000529,0x00000001,0x00000004,0x00040047,0x0000052a,0x00000001, + 0x00000006,0x00040047,0x0000052b,0x00000001,0x00000007,0x00050048,0x0000052d,0x00000000, + 0x00000023,0x00000000,0x00050048,0x0000052d,0x00000001,0x00000023,0x00000004,0x00050048, + 0x0000052d,0x00000002,0x00000023,0x00000008,0x00050048,0x0000052d,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x0000052d,0x00000004,0x00000023,0x00000010,0x00050048,0x0000052d, + 0x00000005,0x00000023,0x00000014,0x00050048,0x0000052d,0x00000006,0x00000023,0x00000018, + 0x00050048,0x0000052d,0x00000007,0x00000023,0x0000001c,0x00050048,0x0000052d,0x00000008, + 0x00000023,0x00000020,0x00050048,0x0000052d,0x00000009,0x00000023,0x00000030,0x00050048, + 0x0000052d,0x0000000a,0x00000023,0x00000034,0x00050048,0x0000052d,0x0000000b,0x00000023, + 0x00000038,0x00030047,0x0000052d,0x00000002,0x00040047,0x0000052f,0x00000022,0x00000000, + 0x00040047,0x0000052f,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000004, + 0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d, + 0x00040017,0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007,0x00000012, + 0x00040021,0x00000014,0x00000012,0x00000013,0x00040015,0x00000018,0x00000020,0x00000000, + 0x00040020,0x00000019,0x00000007,0x00000018,0x00040021,0x0000001a,0x00000018,0x00000019, + 0x00050021,0x00000021,0x00000012,0x00000007,0x00000007,0x00040021,0x00000026,0x00000012, + 0x00000007,0x00040017,0x0000002a,0x00000006,0x00000003,0x00060021,0x0000002b,0x0000002a, + 0x00000007,0x00000007,0x00000007,0x00040021,0x00000031,0x0000002a,0x00000007,0x00040021, + 0x00000035,0x0000000c,0x00000007,0x00040020,0x00000039,0x00000007,0x0000002a,0x00040018, + 0x0000003a,0x0000002a,0x00000002,0x00050021,0x0000003b,0x0000003a,0x00000039,0x00000039, + 0x00040018,0x00000040,0x00000012,0x00000002,0x00040021,0x00000041,0x00000040,0x0000000d, + 0x00040021,0x00000048,0x00000006,0x0000000d,0x00040021,0x0000004c,0x00000006,0x00000039, + 0x00040021,0x00000059,0x0000002a,0x00000039,0x00050021,0x0000005d,0x0000002a,0x00000039, + 0x00000039,0x00060021,0x00000062,0x0000002a,0x00000039,0x00000039,0x00000039,0x00060021, + 0x00000068,0x0000002a,0x00000039,0x00000039,0x00000019,0x00060021,0x0000006e,0x0000002a, + 0x00000039,0x0000000d,0x00000019,0x00040021,0x00000074,0x00000006,0x00000019,0x00060021, + 0x00000078,0x00000002,0x00000019,0x0000000d,0x00000007,0x00040015,0x0000007e,0x00000020, + 0x00000001,0x00040017,0x0000007f,0x0000007e,0x00000002,0x00040020,0x00000080,0x00000007, + 0x0000007f,0x00080021,0x00000081,0x00000002,0x00000019,0x00000007,0x0000000d,0x0000000d, + 0x00000080,0x00050021,0x00000089,0x00000002,0x0000000d,0x00000080,0x0004002b,0x00000018, + 0x000000ab,0x00000000,0x0004002b,0x00000018,0x000000ae,0x00000001,0x0004002b,0x00000018, + 0x000000c1,0x00000002,0x0004002b,0x00000018,0x000000d8,0x00000003,0x00040020,0x000000dd, + 0x00000007,0x0000003a,0x0004002b,0x0000007e,0x000000df,0x00000000,0x0004002b,0x0000007e, + 0x000000e2,0x00000001,0x0004002b,0x00000006,0x000000ec,0x3f800000,0x0004002b,0x00000006, + 0x000000ed,0x00000000,0x00020014,0x000000f7,0x0004002b,0x00000006,0x00000115,0x3f7f7f7f, + 0x00040017,0x00000118,0x000000f7,0x00000003,0x0004002b,0x00000006,0x00000148,0x3e99999a, + 0x0004002b,0x00000006,0x00000149,0x3f170a3d,0x0004002b,0x00000006,0x0000014a,0x3de147ae, + 0x00040020,0x000001e8,0x00000007,0x0000007e,0x0004002b,0x0000007e,0x000001f0,0x00000003, + 0x0004002b,0x00000006,0x000001f5,0x3f000000,0x0004002b,0x00000006,0x000001fa,0x40000000, + 0x0004002b,0x00000006,0x0000028d,0x3e800000,0x0004002b,0x00000006,0x0000029e,0x41800000, + 0x0004002b,0x00000006,0x000002a3,0x41400000,0x0004002b,0x00000006,0x000002a9,0x40400000, + 0x00030031,0x000000f7,0x000002d4,0x0004002b,0x00000006,0x00000332,0x3b000000,0x0004002b, + 0x00000006,0x00000334,0xc2800000,0x0004002b,0x00000006,0x00000341,0x3a808081,0x00040017, + 0x00000344,0x000000f7,0x00000002,0x00040017,0x0000034e,0x00000018,0x00000002,0x00040020, + 0x0000034f,0x00000007,0x0000034e,0x0003001d,0x00000351,0x0000034e,0x0003001e,0x00000352, + 0x00000351,0x00040020,0x00000353,0x00000002,0x00000352,0x0004003b,0x00000353,0x00000354, + 0x00000002,0x00040020,0x00000356,0x00000002,0x0000034e,0x0004002b,0x00000018,0x0000035d, + 0x00000300,0x00030031,0x000000f7,0x00000364,0x0004002b,0x00000018,0x00000369,0x00000200, + 0x0004002b,0x00000006,0x00000373,0xbf800000,0x00030031,0x000000f7,0x0000037d,0x0004002b, + 0x00000018,0x00000383,0x00000010,0x00090019,0x00000389,0x00000006,0x00000006,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x0000038a,0x00000000,0x00000389, + 0x0004003b,0x0000038a,0x0000038b,0x00000000,0x0005002c,0x0000007f,0x0000038d,0x000000df, + 0x000000df,0x00030031,0x000000f7,0x00000396,0x0004002b,0x00000018,0x0000039b,0x00000400, + 0x00040020,0x000003a1,0x00000007,0x00000040,0x0003001d,0x000003a3,0x0000000c,0x0003001e, + 0x000003a4,0x000003a3,0x00040020,0x000003a5,0x00000002,0x000003a4,0x0004003b,0x000003a5, + 0x000003a6,0x00000002,0x0004002b,0x00000018,0x000003a8,0x00000004,0x00040020,0x000003ac, + 0x00000002,0x0000000c,0x00040020,0x000003b8,0x00000001,0x0000000c,0x0004003b,0x000003b8, + 0x000003b9,0x00000001,0x0004002b,0x00000018,0x000003d9,0x0000000f,0x00090019,0x00000422, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000423,0x00000000,0x00000422,0x0004003b,0x00000423,0x00000424,0x00000000,0x0002001a, + 0x00000426,0x00040020,0x00000427,0x00000000,0x00000426,0x0004003b,0x00000427,0x00000428, + 0x00000000,0x0003001b,0x0000042a,0x00000422,0x00030031,0x000000f7,0x00000435,0x0004002b, + 0x0000007e,0x00000441,0x00000004,0x0004003b,0x0000038a,0x0000044b,0x00000000,0x00040020, + 0x0000045e,0x00000003,0x0000000c,0x0004003b,0x0000045e,0x0000045f,0x00000003,0x0004003b, + 0x0000045e,0x00000461,0x00000003,0x0004003b,0x00000423,0x00000469,0x00000000,0x0004003b, + 0x00000427,0x0000046b,0x00000000,0x00040020,0x0000046e,0x00000001,0x00000012,0x0004003b, + 0x0000046e,0x0000046f,0x00000001,0x00040020,0x00000473,0x00000001,0x00000006,0x0004003b, + 0x00000473,0x00000474,0x00000001,0x0004003b,0x000003b8,0x0000047b,0x00000001,0x00090019, + 0x00000487,0x00000018,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000021, + 0x00040020,0x00000488,0x00000000,0x00000487,0x0004003b,0x00000488,0x00000489,0x00000000, + 0x00040017,0x0000048c,0x00000018,0x00000004,0x0004002b,0x0000007e,0x00000491,0x00000010, + 0x0004002b,0x00000018,0x00000497,0x0000ffff,0x000b001e,0x000004b8,0x0000000c,0x00000012, + 0x00000006,0x00000006,0x0000000c,0x00000012,0x00000018,0x00000018,0x00000018,0x00040020, + 0x000004b9,0x00000002,0x000004b8,0x0004003b,0x000004b9,0x000004ba,0x00000002,0x0004002b, + 0x0000007e,0x000004bb,0x00000006,0x00040020,0x000004bc,0x00000002,0x00000018,0x0004002b, + 0x0000007e,0x000004d9,0x00000002,0x00040020,0x000004db,0x00000002,0x00000006,0x0004002b, + 0x0000007e,0x000004e6,0x00000007,0x0004002b,0x00000018,0x00000527,0x00008000,0x0007002c, + 0x0000048c,0x00000528,0x00000527,0x00000527,0x00000527,0x00000527,0x00030031,0x000000f7, + 0x00000529,0x00030031,0x000000f7,0x0000052a,0x00030031,0x000000f7,0x0000052b,0x00040017, + 0x0000052c,0x0000007e,0x00000004,0x000e001e,0x0000052d,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000018,0x00000018,0x00000018,0x00000018,0x0000052c,0x00000018,0x00000018, + 0x00000006,0x00040020,0x0000052e,0x00000002,0x0000052d,0x0004003b,0x0000052e,0x0000052f, + 0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005, + 0x0004003b,0x00000080,0x00000463,0x00000007,0x0004003b,0x0000000d,0x00000468,0x00000007, + 0x0004003b,0x00000007,0x00000472,0x00000007,0x0004003b,0x00000007,0x0000047a,0x00000007, + 0x0004003b,0x0000000d,0x0000047c,0x00000007,0x0004003b,0x0000000d,0x0000047f,0x00000007, + 0x0004003b,0x00000007,0x00000482,0x00000007,0x0004003b,0x00000019,0x00000486,0x00000007, + 0x0004003b,0x00000019,0x0000048f,0x00000007,0x0004003b,0x00000019,0x00000493,0x00000007, + 0x0004003b,0x00000007,0x00000495,0x00000007,0x0004003b,0x00000019,0x00000499,0x00000007, + 0x0004003b,0x0000000d,0x0000049b,0x00000007,0x0004003b,0x00000007,0x0000049c,0x00000007, + 0x0004003b,0x0000000d,0x0000049e,0x00000007,0x0004003b,0x00000019,0x0000049f,0x00000007, + 0x0004003b,0x00000007,0x000004a1,0x00000007,0x0004003b,0x0000000d,0x000004a3,0x00000007, + 0x0004003b,0x0000000d,0x000004a4,0x00000007,0x0004003b,0x00000080,0x000004a6,0x00000007, + 0x0004003b,0x0000000d,0x000004c3,0x00000007,0x0004003b,0x0000000d,0x000004c7,0x00000007, + 0x0004003b,0x00000019,0x000004cf,0x00000007,0x0004003b,0x0000000d,0x000004d2,0x00000007, + 0x0004003b,0x00000007,0x000004d4,0x00000007,0x0004003b,0x00000007,0x000004da,0x00000007, + 0x0004003b,0x0000000d,0x000004ed,0x00000007,0x0004003b,0x0000000d,0x000004f6,0x00000007, + 0x0004003b,0x00000019,0x000004f9,0x00000007,0x0004003b,0x00000039,0x000004fd,0x00000007, + 0x0004003b,0x0000000d,0x00000500,0x00000007,0x0004003b,0x00000019,0x00000501,0x00000007, + 0x0004003b,0x0000000d,0x0000051b,0x00000007,0x0004003b,0x00000080,0x0000051d,0x00000007, + 0x0004003b,0x0000000d,0x00000520,0x00000007,0x0004003b,0x00000080,0x00000522,0x00000007, + 0x0004003d,0x0000000c,0x00000464,0x000003b9,0x0007004f,0x00000012,0x00000465,0x00000464, + 0x00000464,0x00000000,0x00000001,0x0006000c,0x00000012,0x00000466,0x00000001,0x00000008, + 0x00000465,0x0004006e,0x0000007f,0x00000467,0x00000466,0x0003003e,0x00000463,0x00000467, + 0x0004003d,0x00000422,0x0000046a,0x00000469,0x0004003d,0x00000426,0x0000046c,0x0000046b, + 0x00050056,0x0000042a,0x0000046d,0x0000046a,0x0000046c,0x0004003d,0x00000012,0x00000470, + 0x0000046f,0x00050057,0x0000000c,0x00000471,0x0000046d,0x00000470,0x0003003e,0x00000468, + 0x00000471,0x0003003e,0x00000472,0x000000ec,0x0004003d,0x00000006,0x00000475,0x00000474, + 0x0004003d,0x00000006,0x00000476,0x00000472,0x0007000c,0x00000006,0x00000477,0x00000001, + 0x00000025,0x00000475,0x00000476,0x0003003e,0x00000472,0x00000477,0x000300f7,0x00000479, + 0x00000000,0x000400fa,0x00000396,0x00000478,0x00000479,0x000200f8,0x00000478,0x0004003d, + 0x0000000c,0x0000047d,0x0000047b,0x0003003e,0x0000047c,0x0000047d,0x00050039,0x0000000c, + 0x0000047e,0x00000010,0x0000047c,0x0003003e,0x0000047f,0x0000047e,0x00050039,0x00000006, + 0x00000480,0x0000004a,0x0000047f,0x0003003e,0x0000047a,0x00000480,0x0004003d,0x00000006, + 0x00000481,0x0000047a,0x0003003e,0x00000482,0x000000ed,0x00050039,0x00000006,0x00000483, + 0x0000001f,0x00000482,0x0004003d,0x00000006,0x00000484,0x00000472,0x0008000c,0x00000006, + 0x00000485,0x00000001,0x0000002b,0x00000481,0x00000483,0x00000484,0x0003003e,0x00000472, + 0x00000485,0x000200f9,0x00000479,0x000200f8,0x00000479,0x0004003d,0x00000487,0x0000048a, + 0x00000489,0x0004003d,0x0000007f,0x0000048b,0x00000463,0x00050062,0x0000048c,0x0000048d, + 0x0000048a,0x0000048b,0x00050051,0x00000018,0x0000048e,0x0000048d,0x00000000,0x0003003e, + 0x00000486,0x0000048e,0x0004003d,0x00000018,0x00000490,0x00000486,0x000500c2,0x00000018, + 0x00000492,0x00000490,0x00000491,0x0003003e,0x00000493,0x00000492,0x00050039,0x00000018, + 0x00000494,0x0000001c,0x00000493,0x0003003e,0x0000048f,0x00000494,0x0004003d,0x00000018, + 0x00000496,0x00000486,0x000500c7,0x00000018,0x00000498,0x00000496,0x00000497,0x0003003e, + 0x00000499,0x00000498,0x00050039,0x00000006,0x0000049a,0x00000076,0x00000499,0x0003003e, + 0x00000495,0x0000049a,0x0003003e,0x0000049c,0x000000ed,0x00050039,0x0000000c,0x0000049d, + 0x00000037,0x0000049c,0x0003003e,0x0000049b,0x0000049d,0x0004003d,0x00000018,0x000004a0, + 0x0000048f,0x0003003e,0x0000049f,0x000004a0,0x0004003d,0x00000006,0x000004a2,0x00000495, + 0x0003003e,0x000004a1,0x000004a2,0x0004003d,0x0000000c,0x000004a5,0x0000049b,0x0003003e, + 0x000004a4,0x000004a5,0x0004003d,0x0000007f,0x000004a7,0x00000463,0x0003003e,0x000004a6, + 0x000004a7,0x00090039,0x00000002,0x000004a8,0x00000087,0x0000049f,0x000004a1,0x000004a3, + 0x000004a4,0x000004a6,0x0004003d,0x0000000c,0x000004a9,0x000004a3,0x0003003e,0x0000049e, + 0x000004a9,0x0004003d,0x0000000c,0x000004aa,0x000004a4,0x0003003e,0x0000049b,0x000004aa, + 0x00050041,0x00000007,0x000004ab,0x0000049e,0x000000d8,0x0004003d,0x00000006,0x000004ac, + 0x000004ab,0x0004003d,0x0000000c,0x000004ad,0x0000049e,0x0008004f,0x0000002a,0x000004ae, + 0x000004ad,0x000004ad,0x00000000,0x00000001,0x00000002,0x0005008e,0x0000002a,0x000004af, + 0x000004ae,0x000004ac,0x00050041,0x00000007,0x000004b0,0x0000049e,0x000000ab,0x00050051, + 0x00000006,0x000004b1,0x000004af,0x00000000,0x0003003e,0x000004b0,0x000004b1,0x00050041, + 0x00000007,0x000004b2,0x0000049e,0x000000ae,0x00050051,0x00000006,0x000004b3,0x000004af, + 0x00000001,0x0003003e,0x000004b2,0x000004b3,0x00050041,0x00000007,0x000004b4,0x0000049e, + 0x000000c1,0x00050051,0x00000006,0x000004b5,0x000004af,0x00000002,0x0003003e,0x000004b4, + 0x000004b5,0x000300f7,0x000004b7,0x00000000,0x000400fa,0x0000037d,0x000004b6,0x000004b7, + 0x000200f8,0x000004b6,0x00050041,0x000004bc,0x000004bd,0x000004ba,0x000004bb,0x0004003d, + 0x00000018,0x000004be,0x000004bd,0x000500ab,0x000000f7,0x000004bf,0x000004be,0x000000ab, + 0x000200f9,0x000004b7,0x000200f8,0x000004b7,0x000700f5,0x000000f7,0x000004c0,0x0000037d, + 0x00000479,0x000004bf,0x000004b6,0x000300f7,0x000004c2,0x00000000,0x000400fa,0x000004c0, + 0x000004c1,0x000004c2,0x000200f8,0x000004c1,0x00050041,0x00000007,0x000004c4,0x0000049b, + 0x000000d8,0x0004003d,0x00000006,0x000004c5,0x000004c4,0x000500b7,0x000000f7,0x000004c6, + 0x000004c5,0x000000ed,0x000300f7,0x000004c9,0x00000000,0x000400fa,0x000004c6,0x000004c8, + 0x000004cb,0x000200f8,0x000004c8,0x0004003d,0x0000000c,0x000004ca,0x0000049b,0x0003003e, + 0x000004c7,0x000004ca,0x000200f9,0x000004c9,0x000200f8,0x000004cb,0x0004003d,0x00000389, + 0x000004cc,0x0000038b,0x00050062,0x0000000c,0x000004cd,0x000004cc,0x0000038d,0x0003003e, + 0x000004c7,0x000004cd,0x000200f9,0x000004c9,0x000200f8,0x000004c9,0x0004003d,0x0000000c, + 0x000004ce,0x000004c7,0x0003003e,0x000004c3,0x000004ce,0x00050041,0x000004bc,0x000004d0, + 0x000004ba,0x000004bb,0x0004003d,0x00000018,0x000004d1,0x000004d0,0x0003003e,0x000004cf, + 0x000004d1,0x0004003d,0x0000000c,0x000004d3,0x000004c3,0x0003003e,0x000004d2,0x000004d3, + 0x0004003d,0x00000006,0x000004d5,0x00000472,0x0003003e,0x000004d4,0x000004d5,0x00070039, + 0x00000002,0x000004d6,0x0000007c,0x000004cf,0x000004d2,0x000004d4,0x0004003d,0x00000006, + 0x000004d7,0x000004d4,0x0003003e,0x00000472,0x000004d7,0x000200f9,0x000004c2,0x000200f8, + 0x000004c2,0x0004003d,0x00000006,0x000004d8,0x00000472,0x00050041,0x000004db,0x000004dc, + 0x000004ba,0x000004d9,0x0004003d,0x00000006,0x000004dd,0x000004dc,0x0003003e,0x000004da, + 0x000004dd,0x00050039,0x00000006,0x000004de,0x0000000a,0x000004da,0x00050085,0x00000006, + 0x000004df,0x000004d8,0x000004de,0x00050041,0x00000007,0x000004e0,0x00000468,0x000000d8, + 0x0004003d,0x00000006,0x000004e1,0x000004e0,0x00050085,0x00000006,0x000004e2,0x000004e1, + 0x000004df,0x00050041,0x00000007,0x000004e3,0x00000468,0x000000d8,0x0003003e,0x000004e3, + 0x000004e2,0x000300f7,0x000004e5,0x00000000,0x000400fa,0x00000435,0x000004e4,0x000004e5, + 0x000200f8,0x000004e4,0x00050041,0x000004bc,0x000004e7,0x000004ba,0x000004e6,0x0004003d, + 0x00000018,0x000004e8,0x000004e7,0x000500ab,0x000000f7,0x000004e9,0x000004e8,0x000000ab, + 0x000200f9,0x000004e5,0x000200f8,0x000004e5,0x000700f5,0x000000f7,0x000004ea,0x00000435, + 0x000004c2,0x000004e9,0x000004e4,0x000300f7,0x000004ec,0x00000000,0x000400fa,0x000004ea, + 0x000004eb,0x000004ec,0x000200f8,0x000004eb,0x0004003d,0x00000389,0x000004ee,0x0000044b, + 0x00050062,0x0000000c,0x000004ef,0x000004ee,0x0000038d,0x00050041,0x00000007,0x000004f0, + 0x0000049e,0x000000d8,0x0004003d,0x00000006,0x000004f1,0x000004f0,0x00050083,0x00000006, + 0x000004f2,0x000000ec,0x000004f1,0x0005008e,0x0000000c,0x000004f3,0x000004ef,0x000004f2, + 0x0004003d,0x0000000c,0x000004f4,0x0000049e,0x00050081,0x0000000c,0x000004f5,0x000004f3, + 0x000004f4,0x0003003e,0x000004ed,0x000004f5,0x0004003d,0x0000000c,0x000004f7,0x000004ed, + 0x0003003e,0x000004f6,0x000004f7,0x00050039,0x0000000c,0x000004f8,0x00000046,0x000004f6, + 0x00050041,0x000004bc,0x000004fa,0x000004ba,0x000004e6,0x0004003d,0x00000018,0x000004fb, + 0x000004fa,0x0003003e,0x000004f9,0x000004fb,0x00050039,0x00000018,0x000004fc,0x0000001c, + 0x000004f9,0x0004003d,0x0000000c,0x000004fe,0x00000468,0x0008004f,0x0000002a,0x000004ff, + 0x000004fe,0x000004fe,0x00000000,0x00000001,0x00000002,0x0003003e,0x000004fd,0x000004ff, + 0x0003003e,0x00000500,0x000004f8,0x0003003e,0x00000501,0x000004fc,0x00070039,0x0000002a, + 0x00000502,0x00000072,0x000004fd,0x00000500,0x00000501,0x00050041,0x00000007,0x00000503, + 0x00000468,0x000000ab,0x00050051,0x00000006,0x00000504,0x00000502,0x00000000,0x0003003e, + 0x00000503,0x00000504,0x00050041,0x00000007,0x00000505,0x00000468,0x000000ae,0x00050051, + 0x00000006,0x00000506,0x00000502,0x00000001,0x0003003e,0x00000505,0x00000506,0x00050041, + 0x00000007,0x00000507,0x00000468,0x000000c1,0x00050051,0x00000006,0x00000508,0x00000502, + 0x00000002,0x0003003e,0x00000507,0x00000508,0x000200f9,0x000004ec,0x000200f8,0x000004ec, + 0x00050041,0x00000007,0x00000509,0x00000468,0x000000d8,0x0004003d,0x00000006,0x0000050a, + 0x00000509,0x0004003d,0x0000000c,0x0000050b,0x00000468,0x0008004f,0x0000002a,0x0000050c, + 0x0000050b,0x0000050b,0x00000000,0x00000001,0x00000002,0x0005008e,0x0000002a,0x0000050d, + 0x0000050c,0x0000050a,0x00050041,0x00000007,0x0000050e,0x00000468,0x000000ab,0x00050051, + 0x00000006,0x0000050f,0x0000050d,0x00000000,0x0003003e,0x0000050e,0x0000050f,0x00050041, + 0x00000007,0x00000510,0x00000468,0x000000ae,0x00050051,0x00000006,0x00000511,0x0000050d, + 0x00000001,0x0003003e,0x00000510,0x00000511,0x00050041,0x00000007,0x00000512,0x00000468, + 0x000000c1,0x00050051,0x00000006,0x00000513,0x0000050d,0x00000002,0x0003003e,0x00000512, + 0x00000513,0x0004003d,0x0000000c,0x00000514,0x0000049e,0x00050041,0x00000007,0x00000515, + 0x00000468,0x000000d8,0x0004003d,0x00000006,0x00000516,0x00000515,0x00050083,0x00000006, + 0x00000517,0x000000ec,0x00000516,0x0005008e,0x0000000c,0x00000518,0x00000514,0x00000517, + 0x0004003d,0x0000000c,0x00000519,0x00000468,0x00050081,0x0000000c,0x0000051a,0x00000518, + 0x00000519,0x0003003e,0x0000049e,0x0000051a,0x0004003d,0x0000000c,0x0000051c,0x0000049e, + 0x0003003e,0x0000051b,0x0000051c,0x0004003d,0x0000007f,0x0000051e,0x00000463,0x0003003e, + 0x0000051d,0x0000051e,0x00060039,0x00000002,0x0000051f,0x0000008c,0x0000051b,0x0000051d, + 0x0004003d,0x0000000c,0x00000521,0x0000049b,0x0003003e,0x00000520,0x00000521,0x0004003d, + 0x0000007f,0x00000523,0x00000463,0x0003003e,0x00000522,0x00000523,0x00060039,0x00000002, + 0x00000524,0x00000090,0x00000520,0x00000522,0x0004003d,0x00000487,0x00000525,0x00000489, + 0x0004003d,0x0000007f,0x00000526,0x00000463,0x00040063,0x00000525,0x00000526,0x00000528, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000093,0x00000007, + 0x0004003d,0x00000006,0x00000092,0x00000009,0x0003003e,0x00000093,0x00000092,0x0004003d, + 0x00000006,0x00000094,0x00000093,0x000200fe,0x00000094,0x00010038,0x00050036,0x0000000c, + 0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011, + 0x0004003b,0x0000000d,0x00000098,0x00000007,0x0004003d,0x0000000c,0x00000097,0x0000000f, + 0x0003003e,0x00000098,0x00000097,0x0004003d,0x0000000c,0x00000099,0x00000098,0x000200fe, + 0x00000099,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x0000009d,0x00000007, + 0x0004003d,0x00000012,0x0000009c,0x00000015,0x0003003e,0x0000009d,0x0000009c,0x0004003d, + 0x00000012,0x0000009e,0x0000009d,0x000200fe,0x0000009e,0x00010038,0x00050036,0x00000018, + 0x0000001c,0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b,0x000200f8,0x0000001d, + 0x0004003b,0x00000019,0x000000a2,0x00000007,0x0004003d,0x00000018,0x000000a1,0x0000001b, + 0x0003003e,0x000000a2,0x000000a1,0x0004003d,0x00000018,0x000000a3,0x000000a2,0x000200fe, + 0x000000a3,0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000,0x00000008,0x00030037, + 0x00000007,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000006,0x000000a6,0x0000001e, + 0x000200fe,0x000000a6,0x00010038,0x00050036,0x00000012,0x00000024,0x00000000,0x00000021, + 0x00030037,0x00000007,0x00000022,0x00030037,0x00000007,0x00000023,0x000200f8,0x00000025, + 0x0004003b,0x00000013,0x000000a9,0x00000007,0x0004003d,0x00000006,0x000000aa,0x00000022, + 0x00050041,0x00000007,0x000000ac,0x000000a9,0x000000ab,0x0003003e,0x000000ac,0x000000aa, + 0x0004003d,0x00000006,0x000000ad,0x00000023,0x00050041,0x00000007,0x000000af,0x000000a9, + 0x000000ae,0x0003003e,0x000000af,0x000000ad,0x0004003d,0x00000012,0x000000b0,0x000000a9, + 0x000200fe,0x000000b0,0x00010038,0x00050036,0x00000012,0x00000028,0x00000000,0x00000026, + 0x00030037,0x00000007,0x00000027,0x000200f8,0x00000029,0x0004003b,0x00000013,0x000000b3, + 0x00000007,0x0004003d,0x00000006,0x000000b4,0x00000027,0x00050041,0x00000007,0x000000b5, + 0x000000b3,0x000000ab,0x0003003e,0x000000b5,0x000000b4,0x0004003d,0x00000006,0x000000b6, + 0x00000027,0x00050041,0x00000007,0x000000b7,0x000000b3,0x000000ae,0x0003003e,0x000000b7, + 0x000000b6,0x0004003d,0x00000012,0x000000b8,0x000000b3,0x000200fe,0x000000b8,0x00010038, + 0x00050036,0x0000002a,0x0000002f,0x00000000,0x0000002b,0x00030037,0x00000007,0x0000002c, + 0x00030037,0x00000007,0x0000002d,0x00030037,0x00000007,0x0000002e,0x000200f8,0x00000030, + 0x0004003b,0x00000039,0x000000bb,0x00000007,0x0004003d,0x00000006,0x000000bc,0x0000002c, + 0x00050041,0x00000007,0x000000bd,0x000000bb,0x000000ab,0x0003003e,0x000000bd,0x000000bc, + 0x0004003d,0x00000006,0x000000be,0x0000002d,0x00050041,0x00000007,0x000000bf,0x000000bb, + 0x000000ae,0x0003003e,0x000000bf,0x000000be,0x0004003d,0x00000006,0x000000c0,0x0000002e, + 0x00050041,0x00000007,0x000000c2,0x000000bb,0x000000c1,0x0003003e,0x000000c2,0x000000c0, + 0x0004003d,0x0000002a,0x000000c3,0x000000bb,0x000200fe,0x000000c3,0x00010038,0x00050036, + 0x0000002a,0x00000033,0x00000000,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8, + 0x00000034,0x0004003b,0x00000039,0x000000c6,0x00000007,0x0004003d,0x00000006,0x000000c7, + 0x00000032,0x00050041,0x00000007,0x000000c8,0x000000c6,0x000000ab,0x0003003e,0x000000c8, + 0x000000c7,0x0004003d,0x00000006,0x000000c9,0x00000032,0x00050041,0x00000007,0x000000ca, + 0x000000c6,0x000000ae,0x0003003e,0x000000ca,0x000000c9,0x0004003d,0x00000006,0x000000cb, + 0x00000032,0x00050041,0x00000007,0x000000cc,0x000000c6,0x000000c1,0x0003003e,0x000000cc, + 0x000000cb,0x0004003d,0x0000002a,0x000000cd,0x000000c6,0x000200fe,0x000000cd,0x00010038, + 0x00050036,0x0000000c,0x00000037,0x00000000,0x00000035,0x00030037,0x00000007,0x00000036, + 0x000200f8,0x00000038,0x0004003b,0x0000000d,0x000000d0,0x00000007,0x0004003d,0x00000006, + 0x000000d1,0x00000036,0x00050041,0x00000007,0x000000d2,0x000000d0,0x000000ab,0x0003003e, + 0x000000d2,0x000000d1,0x0004003d,0x00000006,0x000000d3,0x00000036,0x00050041,0x00000007, + 0x000000d4,0x000000d0,0x000000ae,0x0003003e,0x000000d4,0x000000d3,0x0004003d,0x00000006, + 0x000000d5,0x00000036,0x00050041,0x00000007,0x000000d6,0x000000d0,0x000000c1,0x0003003e, + 0x000000d6,0x000000d5,0x0004003d,0x00000006,0x000000d7,0x00000036,0x00050041,0x00000007, + 0x000000d9,0x000000d0,0x000000d8,0x0003003e,0x000000d9,0x000000d7,0x0004003d,0x0000000c, + 0x000000da,0x000000d0,0x000200fe,0x000000da,0x00010038,0x00050036,0x0000003a,0x0000003e, + 0x00000000,0x0000003b,0x00030037,0x00000039,0x0000003c,0x00030037,0x00000039,0x0000003d, + 0x000200f8,0x0000003f,0x0004003b,0x000000dd,0x000000de,0x00000007,0x0004003d,0x0000002a, + 0x000000e0,0x0000003c,0x00050041,0x00000039,0x000000e1,0x000000de,0x000000df,0x0003003e, + 0x000000e1,0x000000e0,0x0004003d,0x0000002a,0x000000e3,0x0000003d,0x00050041,0x00000039, + 0x000000e4,0x000000de,0x000000e2,0x0003003e,0x000000e4,0x000000e3,0x0004003d,0x0000003a, + 0x000000e5,0x000000de,0x000200fe,0x000000e5,0x00010038,0x00050036,0x00000040,0x00000043, + 0x00000000,0x00000041,0x00030037,0x0000000d,0x00000042,0x000200f8,0x00000044,0x0004003d, + 0x0000000c,0x000000e8,0x00000042,0x0007004f,0x00000012,0x000000e9,0x000000e8,0x000000e8, + 0x00000000,0x00000001,0x0004003d,0x0000000c,0x000000ea,0x00000042,0x0007004f,0x00000012, + 0x000000eb,0x000000ea,0x000000ea,0x00000002,0x00000003,0x00050051,0x00000006,0x000000ee, + 0x000000e9,0x00000000,0x00050051,0x00000006,0x000000ef,0x000000e9,0x00000001,0x00050051, + 0x00000006,0x000000f0,0x000000eb,0x00000000,0x00050051,0x00000006,0x000000f1,0x000000eb, + 0x00000001,0x00050050,0x00000012,0x000000f2,0x000000ee,0x000000ef,0x00050050,0x00000012, + 0x000000f3,0x000000f0,0x000000f1,0x00050050,0x00000040,0x000000f4,0x000000f2,0x000000f3, + 0x000200fe,0x000000f4,0x00010038,0x00050036,0x0000000c,0x00000046,0x00000000,0x0000000e, + 0x00030037,0x0000000d,0x00000045,0x000200f8,0x00000047,0x0004003b,0x00000007,0x00000111, + 0x00000007,0x0004003b,0x00000007,0x00000116,0x00000007,0x00050041,0x00000007,0x000000f8, + 0x00000045,0x000000d8,0x0004003d,0x00000006,0x000000f9,0x000000f8,0x000500b8,0x000000f7, + 0x000000fa,0x000000ed,0x000000f9,0x000300f7,0x000000fc,0x00000000,0x000400fa,0x000000fa, + 0x000000fb,0x000000fc,0x000200f8,0x000000fb,0x00050041,0x00000007,0x000000fd,0x00000045, + 0x000000d8,0x0004003d,0x00000006,0x000000fe,0x000000fd,0x000500b8,0x000000f7,0x000000ff, + 0x000000fe,0x000000ec,0x000200f9,0x000000fc,0x000200f8,0x000000fc,0x000700f5,0x000000f7, + 0x00000100,0x000000fa,0x00000047,0x000000ff,0x000000fb,0x000300f7,0x00000102,0x00000000, + 0x000400fa,0x00000100,0x00000101,0x00000102,0x000200f8,0x00000101,0x00050041,0x00000007, + 0x00000103,0x00000045,0x000000d8,0x0004003d,0x00000006,0x00000104,0x00000103,0x00050088, + 0x00000006,0x00000105,0x000000ec,0x00000104,0x0004003d,0x0000000c,0x00000106,0x00000045, + 0x0008004f,0x0000002a,0x00000107,0x00000106,0x00000106,0x00000000,0x00000001,0x00000002, + 0x0005008e,0x0000002a,0x00000108,0x00000107,0x00000105,0x00050041,0x00000007,0x00000109, + 0x00000045,0x000000ab,0x00050051,0x00000006,0x0000010a,0x00000108,0x00000000,0x0003003e, + 0x00000109,0x0000010a,0x00050041,0x00000007,0x0000010b,0x00000045,0x000000ae,0x00050051, + 0x00000006,0x0000010c,0x00000108,0x00000001,0x0003003e,0x0000010b,0x0000010c,0x00050041, + 0x00000007,0x0000010d,0x00000045,0x000000c1,0x00050051,0x00000006,0x0000010e,0x00000108, + 0x00000002,0x0003003e,0x0000010d,0x0000010e,0x0004003d,0x0000000c,0x0000010f,0x00000045, + 0x0008004f,0x0000002a,0x00000110,0x0000010f,0x0000010f,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x00000111,0x000000ec,0x00050039,0x0000002a,0x00000112,0x00000033,0x00000111, + 0x0004003d,0x0000000c,0x00000113,0x00000045,0x0008004f,0x0000002a,0x00000114,0x00000113, + 0x00000113,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000116,0x00000115,0x00050039, + 0x0000002a,0x00000117,0x00000033,0x00000116,0x000500ba,0x00000118,0x00000119,0x00000114, + 0x00000117,0x000600a9,0x0000002a,0x0000011a,0x00000119,0x00000112,0x00000110,0x00050041, + 0x00000007,0x0000011b,0x00000045,0x000000ab,0x00050051,0x00000006,0x0000011c,0x0000011a, + 0x00000000,0x0003003e,0x0000011b,0x0000011c,0x00050041,0x00000007,0x0000011d,0x00000045, + 0x000000ae,0x00050051,0x00000006,0x0000011e,0x0000011a,0x00000001,0x0003003e,0x0000011d, + 0x0000011e,0x00050041,0x00000007,0x0000011f,0x00000045,0x000000c1,0x00050051,0x00000006, + 0x00000120,0x0000011a,0x00000002,0x0003003e,0x0000011f,0x00000120,0x000200f9,0x00000102, + 0x000200f8,0x00000102,0x0004003d,0x0000000c,0x00000121,0x00000045,0x000200fe,0x00000121, + 0x00010038,0x00050036,0x00000006,0x0000004a,0x00000000,0x00000048,0x00030037,0x0000000d, + 0x00000049,0x000200f8,0x0000004b,0x0004003b,0x00000013,0x00000124,0x00000007,0x0004003b, + 0x00000007,0x0000012a,0x00000007,0x0004003d,0x0000000c,0x00000125,0x00000049,0x0007004f, + 0x00000012,0x00000126,0x00000125,0x00000125,0x00000000,0x00000001,0x0004003d,0x0000000c, + 0x00000127,0x00000049,0x0007004f,0x00000012,0x00000128,0x00000127,0x00000127,0x00000002, + 0x00000003,0x0007000c,0x00000012,0x00000129,0x00000001,0x00000025,0x00000126,0x00000128, + 0x0003003e,0x00000124,0x00000129,0x00050041,0x00000007,0x0000012b,0x00000124,0x000000ab, + 0x0004003d,0x00000006,0x0000012c,0x0000012b,0x00050041,0x00000007,0x0000012d,0x00000124, + 0x000000ae,0x0004003d,0x00000006,0x0000012e,0x0000012d,0x0007000c,0x00000006,0x0000012f, + 0x00000001,0x00000025,0x0000012c,0x0000012e,0x0003003e,0x0000012a,0x0000012f,0x0004003d, + 0x00000006,0x00000130,0x0000012a,0x000200fe,0x00000130,0x00010038,0x00050036,0x00000006, + 0x0000004e,0x00000000,0x0000004c,0x00030037,0x00000039,0x0000004d,0x000200f8,0x0000004f, + 0x00050041,0x00000007,0x00000133,0x0000004d,0x000000ab,0x0004003d,0x00000006,0x00000134, + 0x00000133,0x00050041,0x00000007,0x00000135,0x0000004d,0x000000ae,0x0004003d,0x00000006, + 0x00000136,0x00000135,0x0007000c,0x00000006,0x00000137,0x00000001,0x00000025,0x00000134, + 0x00000136,0x00050041,0x00000007,0x00000138,0x0000004d,0x000000c1,0x0004003d,0x00000006, + 0x00000139,0x00000138,0x0007000c,0x00000006,0x0000013a,0x00000001,0x00000025,0x00000137, + 0x00000139,0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000006,0x00000051,0x00000000, + 0x0000004c,0x00030037,0x00000039,0x00000050,0x000200f8,0x00000052,0x00050041,0x00000007, + 0x0000013d,0x00000050,0x000000ab,0x0004003d,0x00000006,0x0000013e,0x0000013d,0x00050041, + 0x00000007,0x0000013f,0x00000050,0x000000ae,0x0004003d,0x00000006,0x00000140,0x0000013f, + 0x0007000c,0x00000006,0x00000141,0x00000001,0x00000028,0x0000013e,0x00000140,0x00050041, + 0x00000007,0x00000142,0x00000050,0x000000c1,0x0004003d,0x00000006,0x00000143,0x00000142, + 0x0007000c,0x00000006,0x00000144,0x00000001,0x00000028,0x00000141,0x00000143,0x000200fe, + 0x00000144,0x00010038,0x00050036,0x00000006,0x00000054,0x00000000,0x0000004c,0x00030037, + 0x00000039,0x00000053,0x000200f8,0x00000055,0x0004003b,0x00000007,0x0000014b,0x00000007, + 0x0004003b,0x00000007,0x0000014c,0x00000007,0x0004003b,0x00000007,0x0000014d,0x00000007, + 0x0004003d,0x0000002a,0x00000147,0x00000053,0x0003003e,0x0000014b,0x00000148,0x0003003e, + 0x0000014c,0x00000149,0x0003003e,0x0000014d,0x0000014a,0x00070039,0x0000002a,0x0000014e, + 0x0000002f,0x0000014b,0x0000014c,0x0000014d,0x00050094,0x00000006,0x0000014f,0x00000147, + 0x0000014e,0x000200fe,0x0000014f,0x00010038,0x00050036,0x00000006,0x00000057,0x00000000, + 0x0000004c,0x00030037,0x00000039,0x00000056,0x000200f8,0x00000058,0x0004003b,0x00000039, + 0x00000152,0x00000007,0x0004003b,0x00000039,0x00000155,0x00000007,0x0004003d,0x0000002a, + 0x00000153,0x00000056,0x0003003e,0x00000152,0x00000153,0x00050039,0x00000006,0x00000154, + 0x00000051,0x00000152,0x0004003d,0x0000002a,0x00000156,0x00000056,0x0003003e,0x00000155, + 0x00000156,0x00050039,0x00000006,0x00000157,0x0000004e,0x00000155,0x00050083,0x00000006, + 0x00000158,0x00000154,0x00000157,0x000200fe,0x00000158,0x00010038,0x00050036,0x0000002a, + 0x0000005b,0x00000000,0x00000059,0x00030037,0x00000039,0x0000005a,0x000200f8,0x0000005c, + 0x0004003b,0x00000007,0x0000015b,0x00000007,0x0004003b,0x00000039,0x0000015c,0x00000007, + 0x0004003b,0x00000007,0x0000015f,0x00000007,0x0004003b,0x00000039,0x00000160,0x00000007, + 0x0004003b,0x00000007,0x00000163,0x00000007,0x0004003b,0x00000039,0x00000164,0x00000007, + 0x0004003d,0x0000002a,0x0000015d,0x0000005a,0x0003003e,0x0000015c,0x0000015d,0x00050039, + 0x00000006,0x0000015e,0x00000054,0x0000015c,0x0003003e,0x0000015b,0x0000015e,0x0004003d, + 0x0000002a,0x00000161,0x0000005a,0x0003003e,0x00000160,0x00000161,0x00050039,0x00000006, + 0x00000162,0x0000004e,0x00000160,0x0003003e,0x0000015f,0x00000162,0x0004003d,0x0000002a, + 0x00000165,0x0000005a,0x0003003e,0x00000164,0x00000165,0x00050039,0x00000006,0x00000166, + 0x00000051,0x00000164,0x0003003e,0x00000163,0x00000166,0x0004003d,0x00000006,0x00000167, + 0x0000015f,0x000500b8,0x000000f7,0x00000168,0x00000167,0x000000ed,0x000300f7,0x0000016a, + 0x00000000,0x000400fa,0x00000168,0x00000169,0x0000016a,0x000200f8,0x00000169,0x0004003d, + 0x00000006,0x0000016b,0x0000015b,0x0004003d,0x0000002a,0x0000016c,0x0000005a,0x0004003d, + 0x00000006,0x0000016d,0x0000015b,0x00060050,0x0000002a,0x0000016e,0x0000016d,0x0000016d, + 0x0000016d,0x00050083,0x0000002a,0x0000016f,0x0000016c,0x0000016e,0x0004003d,0x00000006, + 0x00000170,0x0000015b,0x0005008e,0x0000002a,0x00000171,0x0000016f,0x00000170,0x0004003d, + 0x00000006,0x00000172,0x0000015b,0x0004003d,0x00000006,0x00000173,0x0000015f,0x00050083, + 0x00000006,0x00000174,0x00000172,0x00000173,0x00060050,0x0000002a,0x00000175,0x00000174, + 0x00000174,0x00000174,0x00050088,0x0000002a,0x00000176,0x00000171,0x00000175,0x00060050, + 0x0000002a,0x00000177,0x0000016b,0x0000016b,0x0000016b,0x00050081,0x0000002a,0x00000178, + 0x00000177,0x00000176,0x0003003e,0x0000005a,0x00000178,0x000200f9,0x0000016a,0x000200f8, + 0x0000016a,0x0004003d,0x00000006,0x00000179,0x00000163,0x000500ba,0x000000f7,0x0000017a, + 0x00000179,0x000000ec,0x000300f7,0x0000017c,0x00000000,0x000400fa,0x0000017a,0x0000017b, + 0x0000017c,0x000200f8,0x0000017b,0x0004003d,0x00000006,0x0000017d,0x0000015b,0x0004003d, + 0x0000002a,0x0000017e,0x0000005a,0x0004003d,0x00000006,0x0000017f,0x0000015b,0x00060050, + 0x0000002a,0x00000180,0x0000017f,0x0000017f,0x0000017f,0x00050083,0x0000002a,0x00000181, + 0x0000017e,0x00000180,0x0004003d,0x00000006,0x00000182,0x0000015b,0x00050083,0x00000006, + 0x00000183,0x000000ec,0x00000182,0x0005008e,0x0000002a,0x00000184,0x00000181,0x00000183, + 0x0004003d,0x00000006,0x00000185,0x00000163,0x0004003d,0x00000006,0x00000186,0x0000015b, + 0x00050083,0x00000006,0x00000187,0x00000185,0x00000186,0x00060050,0x0000002a,0x00000188, + 0x00000187,0x00000187,0x00000187,0x00050088,0x0000002a,0x00000189,0x00000184,0x00000188, + 0x00060050,0x0000002a,0x0000018a,0x0000017d,0x0000017d,0x0000017d,0x00050081,0x0000002a, + 0x0000018b,0x0000018a,0x00000189,0x0003003e,0x0000005a,0x0000018b,0x000200f9,0x0000017c, + 0x000200f8,0x0000017c,0x0004003d,0x0000002a,0x0000018c,0x0000005a,0x000200fe,0x0000018c, + 0x00010038,0x00050036,0x0000002a,0x00000060,0x00000000,0x0000005d,0x00030037,0x00000039, + 0x0000005e,0x00030037,0x00000039,0x0000005f,0x000200f8,0x00000061,0x0004003b,0x00000007, + 0x0000018f,0x00000007,0x0004003b,0x00000039,0x00000190,0x00000007,0x0004003b,0x00000007, + 0x00000193,0x00000007,0x0004003b,0x00000039,0x00000194,0x00000007,0x0004003b,0x00000007, + 0x00000197,0x00000007,0x0004003b,0x00000039,0x0000019b,0x00000007,0x0004003b,0x00000007, + 0x0000019d,0x00000007,0x0004003b,0x00000039,0x000001a1,0x00000007,0x0004003d,0x0000002a, + 0x00000191,0x0000005e,0x0003003e,0x00000190,0x00000191,0x00050039,0x00000006,0x00000192, + 0x00000054,0x00000190,0x0003003e,0x0000018f,0x00000192,0x0004003d,0x0000002a,0x00000195, + 0x0000005f,0x0003003e,0x00000194,0x00000195,0x00050039,0x00000006,0x00000196,0x00000054, + 0x00000194,0x0003003e,0x00000193,0x00000196,0x0004003d,0x00000006,0x00000198,0x00000193, + 0x0004003d,0x00000006,0x00000199,0x0000018f,0x00050083,0x00000006,0x0000019a,0x00000198, + 0x00000199,0x0003003e,0x00000197,0x0000019a,0x0004003d,0x0000002a,0x0000019c,0x0000005e, + 0x0004003d,0x00000006,0x0000019e,0x00000197,0x0003003e,0x0000019d,0x0000019e,0x00050039, + 0x0000002a,0x0000019f,0x00000033,0x0000019d,0x00050081,0x0000002a,0x000001a0,0x0000019c, + 0x0000019f,0x0003003e,0x0000019b,0x000001a0,0x0004003d,0x0000002a,0x000001a2,0x0000019b, + 0x0003003e,0x000001a1,0x000001a2,0x00050039,0x0000002a,0x000001a3,0x0000005b,0x000001a1, + 0x000200fe,0x000001a3,0x00010038,0x00050036,0x0000002a,0x00000066,0x00000000,0x00000062, + 0x00030037,0x00000039,0x00000063,0x00030037,0x00000039,0x00000064,0x00030037,0x00000039, + 0x00000065,0x000200f8,0x00000067,0x0004003b,0x00000007,0x000001a6,0x00000007,0x0004003b, + 0x00000039,0x000001a7,0x00000007,0x0004003b,0x00000007,0x000001aa,0x00000007,0x0004003b, + 0x00000039,0x000001ab,0x00000007,0x0004003b,0x00000007,0x000001ae,0x00000007,0x0004003b, + 0x00000039,0x000001af,0x00000007,0x0004003b,0x00000039,0x000001b6,0x00000007,0x0004003b, + 0x00000007,0x000001c1,0x00000007,0x0004003b,0x00000039,0x000001c3,0x00000007,0x0004003b, + 0x00000039,0x000001c5,0x00000007,0x0004003d,0x0000002a,0x000001a8,0x00000063,0x0003003e, + 0x000001a7,0x000001a8,0x00050039,0x00000006,0x000001a9,0x0000004e,0x000001a7,0x0003003e, + 0x000001a6,0x000001a9,0x0004003d,0x0000002a,0x000001ac,0x00000063,0x0003003e,0x000001ab, + 0x000001ac,0x00050039,0x00000006,0x000001ad,0x00000057,0x000001ab,0x0003003e,0x000001aa, + 0x000001ad,0x0004003d,0x0000002a,0x000001b0,0x00000064,0x0003003e,0x000001af,0x000001b0, + 0x00050039,0x00000006,0x000001b1,0x00000057,0x000001af,0x0003003e,0x000001ae,0x000001b1, + 0x0004003d,0x00000006,0x000001b2,0x000001aa,0x000500ba,0x000000f7,0x000001b3,0x000001b2, + 0x000000ed,0x000300f7,0x000001b5,0x00000000,0x000400fa,0x000001b3,0x000001b4,0x000001c0, + 0x000200f8,0x000001b4,0x0004003d,0x0000002a,0x000001b7,0x00000063,0x0004003d,0x00000006, + 0x000001b8,0x000001a6,0x00060050,0x0000002a,0x000001b9,0x000001b8,0x000001b8,0x000001b8, + 0x00050083,0x0000002a,0x000001ba,0x000001b7,0x000001b9,0x0004003d,0x00000006,0x000001bb, + 0x000001ae,0x0005008e,0x0000002a,0x000001bc,0x000001ba,0x000001bb,0x0004003d,0x00000006, + 0x000001bd,0x000001aa,0x00060050,0x0000002a,0x000001be,0x000001bd,0x000001bd,0x000001bd, + 0x00050088,0x0000002a,0x000001bf,0x000001bc,0x000001be,0x0003003e,0x000001b6,0x000001bf, + 0x000200f9,0x000001b5,0x000200f8,0x000001c0,0x0003003e,0x000001c1,0x000000ed,0x00050039, + 0x0000002a,0x000001c2,0x00000033,0x000001c1,0x0003003e,0x000001b6,0x000001c2,0x000200f9, + 0x000001b5,0x000200f8,0x000001b5,0x0004003d,0x0000002a,0x000001c4,0x000001b6,0x0003003e, + 0x000001c3,0x000001c4,0x0004003d,0x0000002a,0x000001c6,0x00000065,0x0003003e,0x000001c5, + 0x000001c6,0x00060039,0x0000002a,0x000001c7,0x00000060,0x000001c3,0x000001c5,0x000200fe, + 0x000001c7,0x00010038,0x00050036,0x0000002a,0x0000006c,0x00000000,0x00000068,0x00030037, + 0x00000039,0x00000069,0x00030037,0x00000039,0x0000006a,0x00030037,0x00000019,0x0000006b, + 0x000200f8,0x0000006d,0x0004003b,0x00000039,0x000001db,0x00000007,0x0004003b,0x000001e8, + 0x000001e9,0x00000007,0x0004003b,0x00000007,0x00000222,0x00000007,0x0004003b,0x00000007, + 0x00000225,0x00000007,0x0004003b,0x00000007,0x00000228,0x00000007,0x0004003b,0x00000007, + 0x00000236,0x00000007,0x0004003b,0x00000007,0x00000239,0x00000007,0x0004003b,0x000001e8, + 0x0000023e,0x00000007,0x0004003b,0x000001e8,0x00000267,0x00000007,0x0004003b,0x00000007, + 0x000002d8,0x00000007,0x0004003b,0x00000007,0x000002da,0x00000007,0x0004003b,0x00000039, + 0x000002dd,0x00000007,0x0004003b,0x00000039,0x000002df,0x00000007,0x0004003b,0x00000039, + 0x000002e1,0x00000007,0x0004003b,0x00000007,0x000002e8,0x00000007,0x0004003b,0x00000007, + 0x000002ea,0x00000007,0x0004003b,0x00000039,0x000002ed,0x00000007,0x0004003b,0x00000039, + 0x000002ef,0x00000007,0x0004003b,0x00000039,0x000002f1,0x00000007,0x0004003b,0x00000007, + 0x000002f8,0x00000007,0x0004003b,0x00000007,0x000002fa,0x00000007,0x0004003b,0x00000039, + 0x000002fd,0x00000007,0x0004003b,0x00000039,0x000002ff,0x00000007,0x0004003b,0x00000007, + 0x00000306,0x00000007,0x0004003b,0x00000007,0x00000308,0x00000007,0x0004003b,0x00000039, + 0x0000030b,0x00000007,0x0004003b,0x00000039,0x0000030d,0x00000007,0x0004003d,0x00000018, + 0x000001ca,0x0000006b,0x000300f7,0x000001da,0x00000000,0x002100fb,0x000001ca,0x000001da, + 0x0000000b,0x000001cb,0x00000001,0x000001cc,0x00000002,0x000001cd,0x00000003,0x000001ce, + 0x00000004,0x000001cf,0x00000005,0x000001d0,0x00000006,0x000001d1,0x00000007,0x000001d2, + 0x00000008,0x000001d3,0x00000009,0x000001d4,0x0000000a,0x000001d5,0x0000000c,0x000001d6, + 0x0000000d,0x000001d7,0x0000000e,0x000001d8,0x0000000f,0x000001d9,0x000200f8,0x000001cb, + 0x0004003d,0x0000002a,0x000001dc,0x00000069,0x0004003d,0x0000002a,0x000001dd,0x0000006a, + 0x00050085,0x0000002a,0x000001de,0x000001dc,0x000001dd,0x0003003e,0x000001db,0x000001de, + 0x000200f9,0x000001da,0x000200f8,0x000001cc,0x0004003d,0x0000002a,0x000001e0,0x00000069, + 0x0004003d,0x0000002a,0x000001e1,0x0000006a,0x00050081,0x0000002a,0x000001e2,0x000001e0, + 0x000001e1,0x0004003d,0x0000002a,0x000001e3,0x00000069,0x0004003d,0x0000002a,0x000001e4, + 0x0000006a,0x00050085,0x0000002a,0x000001e5,0x000001e3,0x000001e4,0x00050083,0x0000002a, + 0x000001e6,0x000001e2,0x000001e5,0x0003003e,0x000001db,0x000001e6,0x000200f9,0x000001da, + 0x000200f8,0x000001cd,0x0003003e,0x000001e9,0x000000df,0x000200f9,0x000001ea,0x000200f8, + 0x000001ea,0x000400f6,0x000001ec,0x000001ed,0x00000000,0x000200f9,0x000001ee,0x000200f8, + 0x000001ee,0x0004003d,0x0000007e,0x000001ef,0x000001e9,0x000500b1,0x000000f7,0x000001f1, + 0x000001ef,0x000001f0,0x000400fa,0x000001f1,0x000001eb,0x000001ec,0x000200f8,0x000001eb, + 0x0004003d,0x0000007e,0x000001f2,0x000001e9,0x00050041,0x00000007,0x000001f3,0x0000006a, + 0x000001f2,0x0004003d,0x00000006,0x000001f4,0x000001f3,0x000500bc,0x000000f7,0x000001f6, + 0x000001f4,0x000001f5,0x000300f7,0x000001f8,0x00000000,0x000400fa,0x000001f6,0x000001f7, + 0x00000204,0x000200f8,0x000001f7,0x0004003d,0x0000007e,0x000001f9,0x000001e9,0x0004003d, + 0x0000007e,0x000001fb,0x000001e9,0x00050041,0x00000007,0x000001fc,0x00000069,0x000001fb, + 0x0004003d,0x00000006,0x000001fd,0x000001fc,0x00050085,0x00000006,0x000001fe,0x000001fa, + 0x000001fd,0x0004003d,0x0000007e,0x000001ff,0x000001e9,0x00050041,0x00000007,0x00000200, + 0x0000006a,0x000001ff,0x0004003d,0x00000006,0x00000201,0x00000200,0x00050085,0x00000006, + 0x00000202,0x000001fe,0x00000201,0x00050041,0x00000007,0x00000203,0x000001db,0x000001f9, + 0x0003003e,0x00000203,0x00000202,0x000200f9,0x000001f8,0x000200f8,0x00000204,0x0004003d, + 0x0000007e,0x00000205,0x000001e9,0x0004003d,0x0000007e,0x00000206,0x000001e9,0x00050041, + 0x00000007,0x00000207,0x00000069,0x00000206,0x0004003d,0x00000006,0x00000208,0x00000207, + 0x00050083,0x00000006,0x00000209,0x000000ec,0x00000208,0x00050085,0x00000006,0x0000020a, + 0x000001fa,0x00000209,0x0004003d,0x0000007e,0x0000020b,0x000001e9,0x00050041,0x00000007, + 0x0000020c,0x0000006a,0x0000020b,0x0004003d,0x00000006,0x0000020d,0x0000020c,0x00050083, + 0x00000006,0x0000020e,0x000000ec,0x0000020d,0x00050085,0x00000006,0x0000020f,0x0000020a, + 0x0000020e,0x00050083,0x00000006,0x00000210,0x000000ec,0x0000020f,0x00050041,0x00000007, + 0x00000211,0x000001db,0x00000205,0x0003003e,0x00000211,0x00000210,0x000200f9,0x000001f8, + 0x000200f8,0x000001f8,0x000200f9,0x000001ed,0x000200f8,0x000001ed,0x0004003d,0x0000007e, + 0x00000212,0x000001e9,0x00050080,0x0000007e,0x00000213,0x00000212,0x000000e2,0x0003003e, + 0x000001e9,0x00000213,0x000200f9,0x000001ea,0x000200f8,0x000001ec,0x000200f9,0x000001da, + 0x000200f8,0x000001ce,0x0004003d,0x0000002a,0x00000215,0x00000069,0x0004003d,0x0000002a, + 0x00000216,0x0000006a,0x0007000c,0x0000002a,0x00000217,0x00000001,0x00000025,0x00000215, + 0x00000216,0x0003003e,0x000001db,0x00000217,0x000200f9,0x000001da,0x000200f8,0x000001cf, + 0x0004003d,0x0000002a,0x00000219,0x00000069,0x0004003d,0x0000002a,0x0000021a,0x0000006a, + 0x0007000c,0x0000002a,0x0000021b,0x00000001,0x00000028,0x00000219,0x0000021a,0x0003003e, + 0x000001db,0x0000021b,0x000200f9,0x000001da,0x000200f8,0x000001d0,0x0004003d,0x0000002a, + 0x0000021d,0x0000006a,0x0004003d,0x0000002a,0x0000021e,0x00000069,0x00060050,0x0000002a, + 0x0000021f,0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a,0x00000220,0x0000021f, + 0x0000021e,0x00050088,0x0000002a,0x00000221,0x0000021d,0x00000220,0x0003003e,0x00000222, + 0x000000ec,0x00050039,0x0000002a,0x00000223,0x00000033,0x00000222,0x0007000c,0x0000002a, + 0x00000224,0x00000001,0x00000025,0x00000221,0x00000223,0x0003003e,0x00000225,0x000000ed, + 0x00050039,0x0000002a,0x00000226,0x00000033,0x00000225,0x0004003d,0x0000002a,0x00000227, + 0x0000006a,0x0003003e,0x00000228,0x000000ed,0x00050039,0x0000002a,0x00000229,0x00000033, + 0x00000228,0x000500bc,0x00000118,0x0000022a,0x00000227,0x00000229,0x000600a9,0x0000002a, + 0x0000022b,0x0000022a,0x00000226,0x00000224,0x0003003e,0x000001db,0x0000022b,0x000200f9, + 0x000001da,0x000200f8,0x000001d1,0x0004003d,0x0000002a,0x0000022d,0x0000006a,0x00060050, + 0x0000002a,0x0000022e,0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a,0x0000022f, + 0x0000022e,0x0000022d,0x0004003d,0x0000002a,0x00000230,0x00000069,0x00050088,0x0000002a, + 0x00000231,0x0000022f,0x00000230,0x00060050,0x0000002a,0x00000232,0x000000ec,0x000000ec, + 0x000000ec,0x0007000c,0x0000002a,0x00000233,0x00000001,0x00000025,0x00000231,0x00000232, + 0x00060050,0x0000002a,0x00000234,0x000000ec,0x000000ec,0x000000ec,0x00050083,0x0000002a, + 0x00000235,0x00000234,0x00000233,0x0003003e,0x00000236,0x000000ec,0x00050039,0x0000002a, + 0x00000237,0x00000033,0x00000236,0x0004003d,0x0000002a,0x00000238,0x0000006a,0x0003003e, + 0x00000239,0x000000ec,0x00050039,0x0000002a,0x0000023a,0x00000033,0x00000239,0x000500be, + 0x00000118,0x0000023b,0x00000238,0x0000023a,0x000600a9,0x0000002a,0x0000023c,0x0000023b, + 0x00000237,0x00000235,0x0003003e,0x000001db,0x0000023c,0x000200f9,0x000001da,0x000200f8, + 0x000001d2,0x0003003e,0x0000023e,0x000000df,0x000200f9,0x0000023f,0x000200f8,0x0000023f, + 0x000400f6,0x00000241,0x00000242,0x00000000,0x000200f9,0x00000243,0x000200f8,0x00000243, + 0x0004003d,0x0000007e,0x00000244,0x0000023e,0x000500b1,0x000000f7,0x00000245,0x00000244, + 0x000001f0,0x000400fa,0x00000245,0x00000240,0x00000241,0x000200f8,0x00000240,0x0004003d, + 0x0000007e,0x00000246,0x0000023e,0x00050041,0x00000007,0x00000247,0x00000069,0x00000246, + 0x0004003d,0x00000006,0x00000248,0x00000247,0x000500bc,0x000000f7,0x00000249,0x00000248, + 0x000001f5,0x000300f7,0x0000024b,0x00000000,0x000400fa,0x00000249,0x0000024a,0x00000256, + 0x000200f8,0x0000024a,0x0004003d,0x0000007e,0x0000024c,0x0000023e,0x0004003d,0x0000007e, + 0x0000024d,0x0000023e,0x00050041,0x00000007,0x0000024e,0x00000069,0x0000024d,0x0004003d, + 0x00000006,0x0000024f,0x0000024e,0x00050085,0x00000006,0x00000250,0x000001fa,0x0000024f, + 0x0004003d,0x0000007e,0x00000251,0x0000023e,0x00050041,0x00000007,0x00000252,0x0000006a, + 0x00000251,0x0004003d,0x00000006,0x00000253,0x00000252,0x00050085,0x00000006,0x00000254, + 0x00000250,0x00000253,0x00050041,0x00000007,0x00000255,0x000001db,0x0000024c,0x0003003e, + 0x00000255,0x00000254,0x000200f9,0x0000024b,0x000200f8,0x00000256,0x0004003d,0x0000007e, + 0x00000257,0x0000023e,0x0004003d,0x0000007e,0x00000258,0x0000023e,0x00050041,0x00000007, + 0x00000259,0x00000069,0x00000258,0x0004003d,0x00000006,0x0000025a,0x00000259,0x00050083, + 0x00000006,0x0000025b,0x000000ec,0x0000025a,0x00050085,0x00000006,0x0000025c,0x000001fa, + 0x0000025b,0x0004003d,0x0000007e,0x0000025d,0x0000023e,0x00050041,0x00000007,0x0000025e, + 0x0000006a,0x0000025d,0x0004003d,0x00000006,0x0000025f,0x0000025e,0x00050083,0x00000006, + 0x00000260,0x000000ec,0x0000025f,0x00050085,0x00000006,0x00000261,0x0000025c,0x00000260, + 0x00050083,0x00000006,0x00000262,0x000000ec,0x00000261,0x00050041,0x00000007,0x00000263, + 0x000001db,0x00000257,0x0003003e,0x00000263,0x00000262,0x000200f9,0x0000024b,0x000200f8, + 0x0000024b,0x000200f9,0x00000242,0x000200f8,0x00000242,0x0004003d,0x0000007e,0x00000264, + 0x0000023e,0x00050080,0x0000007e,0x00000265,0x00000264,0x000000e2,0x0003003e,0x0000023e, + 0x00000265,0x000200f9,0x0000023f,0x000200f8,0x00000241,0x000200f9,0x000001da,0x000200f8, + 0x000001d3,0x0003003e,0x00000267,0x000000df,0x000200f9,0x00000268,0x000200f8,0x00000268, + 0x000400f6,0x0000026a,0x0000026b,0x00000000,0x000200f9,0x0000026c,0x000200f8,0x0000026c, + 0x0004003d,0x0000007e,0x0000026d,0x00000267,0x000500b1,0x000000f7,0x0000026e,0x0000026d, + 0x000001f0,0x000400fa,0x0000026e,0x00000269,0x0000026a,0x000200f8,0x00000269,0x0004003d, + 0x0000007e,0x0000026f,0x00000267,0x00050041,0x00000007,0x00000270,0x00000069,0x0000026f, + 0x0004003d,0x00000006,0x00000271,0x00000270,0x000500bc,0x000000f7,0x00000272,0x00000271, + 0x000001f5,0x000300f7,0x00000274,0x00000000,0x000400fa,0x00000272,0x00000273,0x00000289, + 0x000200f8,0x00000273,0x0004003d,0x0000007e,0x00000275,0x00000267,0x0004003d,0x0000007e, + 0x00000276,0x00000267,0x00050041,0x00000007,0x00000277,0x0000006a,0x00000276,0x0004003d, + 0x00000006,0x00000278,0x00000277,0x0004003d,0x0000007e,0x00000279,0x00000267,0x00050041, + 0x00000007,0x0000027a,0x00000069,0x00000279,0x0004003d,0x00000006,0x0000027b,0x0000027a, + 0x00050085,0x00000006,0x0000027c,0x000001fa,0x0000027b,0x00050083,0x00000006,0x0000027d, + 0x000000ec,0x0000027c,0x0004003d,0x0000007e,0x0000027e,0x00000267,0x00050041,0x00000007, + 0x0000027f,0x0000006a,0x0000027e,0x0004003d,0x00000006,0x00000280,0x0000027f,0x00050085, + 0x00000006,0x00000281,0x0000027d,0x00000280,0x0004003d,0x0000007e,0x00000282,0x00000267, + 0x00050041,0x00000007,0x00000283,0x0000006a,0x00000282,0x0004003d,0x00000006,0x00000284, + 0x00000283,0x00050083,0x00000006,0x00000285,0x000000ec,0x00000284,0x00050085,0x00000006, + 0x00000286,0x00000281,0x00000285,0x00050083,0x00000006,0x00000287,0x00000278,0x00000286, + 0x00050041,0x00000007,0x00000288,0x000001db,0x00000275,0x0003003e,0x00000288,0x00000287, + 0x000200f9,0x00000274,0x000200f8,0x00000289,0x0004003d,0x0000007e,0x0000028a,0x00000267, + 0x00050041,0x00000007,0x0000028b,0x0000006a,0x0000028a,0x0004003d,0x00000006,0x0000028c, + 0x0000028b,0x000500bc,0x000000f7,0x0000028e,0x0000028c,0x0000028d,0x000300f7,0x00000290, + 0x00000000,0x000400fa,0x0000028e,0x0000028f,0x000002ae,0x000200f8,0x0000028f,0x0004003d, + 0x0000007e,0x00000291,0x00000267,0x0004003d,0x0000007e,0x00000292,0x00000267,0x00050041, + 0x00000007,0x00000293,0x0000006a,0x00000292,0x0004003d,0x00000006,0x00000294,0x00000293, + 0x0004003d,0x0000007e,0x00000295,0x00000267,0x00050041,0x00000007,0x00000296,0x00000069, + 0x00000295,0x0004003d,0x00000006,0x00000297,0x00000296,0x00050085,0x00000006,0x00000298, + 0x000001fa,0x00000297,0x00050083,0x00000006,0x00000299,0x00000298,0x000000ec,0x0004003d, + 0x0000007e,0x0000029a,0x00000267,0x00050041,0x00000007,0x0000029b,0x0000006a,0x0000029a, + 0x0004003d,0x00000006,0x0000029c,0x0000029b,0x00050085,0x00000006,0x0000029d,0x00000299, + 0x0000029c,0x0004003d,0x0000007e,0x0000029f,0x00000267,0x00050041,0x00000007,0x000002a0, + 0x0000006a,0x0000029f,0x0004003d,0x00000006,0x000002a1,0x000002a0,0x00050085,0x00000006, + 0x000002a2,0x0000029e,0x000002a1,0x00050083,0x00000006,0x000002a4,0x000002a2,0x000002a3, + 0x0004003d,0x0000007e,0x000002a5,0x00000267,0x00050041,0x00000007,0x000002a6,0x0000006a, + 0x000002a5,0x0004003d,0x00000006,0x000002a7,0x000002a6,0x00050085,0x00000006,0x000002a8, + 0x000002a4,0x000002a7,0x00050081,0x00000006,0x000002aa,0x000002a8,0x000002a9,0x00050085, + 0x00000006,0x000002ab,0x0000029d,0x000002aa,0x00050081,0x00000006,0x000002ac,0x00000294, + 0x000002ab,0x00050041,0x00000007,0x000002ad,0x000001db,0x00000291,0x0003003e,0x000002ad, + 0x000002ac,0x000200f9,0x00000290,0x000200f8,0x000002ae,0x0004003d,0x0000007e,0x000002af, + 0x00000267,0x0004003d,0x0000007e,0x000002b0,0x00000267,0x00050041,0x00000007,0x000002b1, + 0x0000006a,0x000002b0,0x0004003d,0x00000006,0x000002b2,0x000002b1,0x0004003d,0x0000007e, + 0x000002b3,0x00000267,0x00050041,0x00000007,0x000002b4,0x00000069,0x000002b3,0x0004003d, + 0x00000006,0x000002b5,0x000002b4,0x00050085,0x00000006,0x000002b6,0x000001fa,0x000002b5, + 0x00050083,0x00000006,0x000002b7,0x000002b6,0x000000ec,0x0004003d,0x0000007e,0x000002b8, + 0x00000267,0x00050041,0x00000007,0x000002b9,0x0000006a,0x000002b8,0x0004003d,0x00000006, + 0x000002ba,0x000002b9,0x0006000c,0x00000006,0x000002bb,0x00000001,0x0000001f,0x000002ba, + 0x0004003d,0x0000007e,0x000002bc,0x00000267,0x00050041,0x00000007,0x000002bd,0x0000006a, + 0x000002bc,0x0004003d,0x00000006,0x000002be,0x000002bd,0x00050083,0x00000006,0x000002bf, + 0x000002bb,0x000002be,0x00050085,0x00000006,0x000002c0,0x000002b7,0x000002bf,0x00050081, + 0x00000006,0x000002c1,0x000002b2,0x000002c0,0x00050041,0x00000007,0x000002c2,0x000001db, + 0x000002af,0x0003003e,0x000002c2,0x000002c1,0x000200f9,0x00000290,0x000200f8,0x00000290, + 0x000200f9,0x00000274,0x000200f8,0x00000274,0x000200f9,0x0000026b,0x000200f8,0x0000026b, + 0x0004003d,0x0000007e,0x000002c3,0x00000267,0x00050080,0x0000007e,0x000002c4,0x000002c3, + 0x000000e2,0x0003003e,0x00000267,0x000002c4,0x000200f9,0x00000268,0x000200f8,0x0000026a, + 0x000200f9,0x000001da,0x000200f8,0x000001d4,0x0004003d,0x0000002a,0x000002c6,0x0000006a, + 0x0004003d,0x0000002a,0x000002c7,0x00000069,0x00050083,0x0000002a,0x000002c8,0x000002c6, + 0x000002c7,0x0006000c,0x0000002a,0x000002c9,0x00000001,0x00000004,0x000002c8,0x0003003e, + 0x000001db,0x000002c9,0x000200f9,0x000001da,0x000200f8,0x000001d5,0x0004003d,0x0000002a, + 0x000002cb,0x00000069,0x0004003d,0x0000002a,0x000002cc,0x0000006a,0x00050081,0x0000002a, + 0x000002cd,0x000002cb,0x000002cc,0x0004003d,0x0000002a,0x000002ce,0x00000069,0x0005008e, + 0x0000002a,0x000002cf,0x000002ce,0x000001fa,0x0004003d,0x0000002a,0x000002d0,0x0000006a, + 0x00050085,0x0000002a,0x000002d1,0x000002cf,0x000002d0,0x00050083,0x0000002a,0x000002d2, + 0x000002cd,0x000002d1,0x0003003e,0x000001db,0x000002d2,0x000200f9,0x000001da,0x000200f8, + 0x000001d6,0x000300f7,0x000002d6,0x00000000,0x000400fa,0x000002d4,0x000002d5,0x000002d6, + 0x000200f8,0x000002d5,0x0004003d,0x0000002a,0x000002d7,0x00000069,0x0003003e,0x000002d8, + 0x000000ed,0x00050039,0x0000002a,0x000002d9,0x00000033,0x000002d8,0x0003003e,0x000002da, + 0x000000ec,0x00050039,0x0000002a,0x000002db,0x00000033,0x000002da,0x0008000c,0x0000002a, + 0x000002dc,0x00000001,0x0000002b,0x000002d7,0x000002d9,0x000002db,0x0003003e,0x00000069, + 0x000002dc,0x0004003d,0x0000002a,0x000002de,0x00000069,0x0003003e,0x000002dd,0x000002de, + 0x0004003d,0x0000002a,0x000002e0,0x0000006a,0x0003003e,0x000002df,0x000002e0,0x0004003d, + 0x0000002a,0x000002e2,0x0000006a,0x0003003e,0x000002e1,0x000002e2,0x00070039,0x0000002a, + 0x000002e3,0x00000066,0x000002dd,0x000002df,0x000002e1,0x0003003e,0x000001db,0x000002e3, + 0x000200f9,0x000001da,0x000200f8,0x000002d6,0x000200f9,0x000001d7,0x000200f8,0x000001d7, + 0x000300f7,0x000002e6,0x00000000,0x000400fa,0x000002d4,0x000002e5,0x000002e6,0x000200f8, + 0x000002e5,0x0004003d,0x0000002a,0x000002e7,0x00000069,0x0003003e,0x000002e8,0x000000ed, + 0x00050039,0x0000002a,0x000002e9,0x00000033,0x000002e8,0x0003003e,0x000002ea,0x000000ec, + 0x00050039,0x0000002a,0x000002eb,0x00000033,0x000002ea,0x0008000c,0x0000002a,0x000002ec, + 0x00000001,0x0000002b,0x000002e7,0x000002e9,0x000002eb,0x0003003e,0x00000069,0x000002ec, + 0x0004003d,0x0000002a,0x000002ee,0x0000006a,0x0003003e,0x000002ed,0x000002ee,0x0004003d, + 0x0000002a,0x000002f0,0x00000069,0x0003003e,0x000002ef,0x000002f0,0x0004003d,0x0000002a, + 0x000002f2,0x0000006a,0x0003003e,0x000002f1,0x000002f2,0x00070039,0x0000002a,0x000002f3, + 0x00000066,0x000002ed,0x000002ef,0x000002f1,0x0003003e,0x000001db,0x000002f3,0x000200f9, + 0x000001da,0x000200f8,0x000002e6,0x000200f9,0x000001d8,0x000200f8,0x000001d8,0x000300f7, + 0x000002f6,0x00000000,0x000400fa,0x000002d4,0x000002f5,0x000002f6,0x000200f8,0x000002f5, + 0x0004003d,0x0000002a,0x000002f7,0x00000069,0x0003003e,0x000002f8,0x000000ed,0x00050039, + 0x0000002a,0x000002f9,0x00000033,0x000002f8,0x0003003e,0x000002fa,0x000000ec,0x00050039, + 0x0000002a,0x000002fb,0x00000033,0x000002fa,0x0008000c,0x0000002a,0x000002fc,0x00000001, + 0x0000002b,0x000002f7,0x000002f9,0x000002fb,0x0003003e,0x00000069,0x000002fc,0x0004003d, + 0x0000002a,0x000002fe,0x00000069,0x0003003e,0x000002fd,0x000002fe,0x0004003d,0x0000002a, + 0x00000300,0x0000006a,0x0003003e,0x000002ff,0x00000300,0x00060039,0x0000002a,0x00000301, + 0x00000060,0x000002fd,0x000002ff,0x0003003e,0x000001db,0x00000301,0x000200f9,0x000001da, + 0x000200f8,0x000002f6,0x000200f9,0x000001d9,0x000200f8,0x000001d9,0x000300f7,0x00000304, + 0x00000000,0x000400fa,0x000002d4,0x00000303,0x00000304,0x000200f8,0x00000303,0x0004003d, + 0x0000002a,0x00000305,0x00000069,0x0003003e,0x00000306,0x000000ed,0x00050039,0x0000002a, + 0x00000307,0x00000033,0x00000306,0x0003003e,0x00000308,0x000000ec,0x00050039,0x0000002a, + 0x00000309,0x00000033,0x00000308,0x0008000c,0x0000002a,0x0000030a,0x00000001,0x0000002b, + 0x00000305,0x00000307,0x00000309,0x0003003e,0x00000069,0x0000030a,0x0004003d,0x0000002a, + 0x0000030c,0x0000006a,0x0003003e,0x0000030b,0x0000030c,0x0004003d,0x0000002a,0x0000030e, + 0x00000069,0x0003003e,0x0000030d,0x0000030e,0x00060039,0x0000002a,0x0000030f,0x00000060, + 0x0000030b,0x0000030d,0x0003003e,0x000001db,0x0000030f,0x000200f9,0x000001da,0x000200f8, + 0x00000304,0x000200f9,0x000001da,0x000200f8,0x000001da,0x0004003d,0x0000002a,0x00000312, + 0x000001db,0x000200fe,0x00000312,0x00010038,0x00050036,0x0000002a,0x00000072,0x00000000, + 0x0000006e,0x00030037,0x00000039,0x0000006f,0x00030037,0x0000000d,0x00000070,0x00030037, + 0x00000019,0x00000071,0x000200f8,0x00000073,0x0004003b,0x00000039,0x00000315,0x00000007, + 0x0004003b,0x00000039,0x00000316,0x00000007,0x0004003b,0x00000039,0x00000318,0x00000007, + 0x0004003b,0x00000019,0x0000031b,0x00000007,0x0004003b,0x00000013,0x0000031e,0x00000007, + 0x0004003b,0x00000007,0x00000322,0x00000007,0x0004003b,0x00000007,0x00000325,0x00000007, + 0x0004003b,0x00000039,0x00000327,0x00000007,0x0004003b,0x00000039,0x00000329,0x00000007, + 0x0004003d,0x0000002a,0x00000317,0x0000006f,0x0003003e,0x00000316,0x00000317,0x0004003d, + 0x0000000c,0x00000319,0x00000070,0x0008004f,0x0000002a,0x0000031a,0x00000319,0x00000319, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000318,0x0000031a,0x0004003d,0x00000018, + 0x0000031c,0x00000071,0x0003003e,0x0000031b,0x0000031c,0x00070039,0x0000002a,0x0000031d, + 0x0000006c,0x00000316,0x00000318,0x0000031b,0x0003003e,0x00000315,0x0000031d,0x00050041, + 0x00000007,0x0000031f,0x00000070,0x000000d8,0x0004003d,0x00000006,0x00000320,0x0000031f, + 0x00050083,0x00000006,0x00000321,0x000000ec,0x00000320,0x00050041,0x00000007,0x00000323, + 0x00000070,0x000000d8,0x0004003d,0x00000006,0x00000324,0x00000323,0x0003003e,0x00000322, + 0x00000324,0x0003003e,0x00000325,0x00000321,0x00060039,0x00000012,0x00000326,0x00000024, + 0x00000322,0x00000325,0x0003003e,0x0000031e,0x00000326,0x0004003d,0x0000002a,0x00000328, + 0x00000315,0x0003003e,0x00000327,0x00000328,0x0004003d,0x0000002a,0x0000032a,0x0000006f, + 0x0003003e,0x00000329,0x0000032a,0x00060039,0x0000003a,0x0000032b,0x0000003e,0x00000327, + 0x00000329,0x0004003d,0x00000012,0x0000032c,0x0000031e,0x00050091,0x0000002a,0x0000032d, + 0x0000032b,0x0000032c,0x000200fe,0x0000032d,0x00010038,0x00050036,0x00000006,0x00000076, + 0x00000000,0x00000074,0x00030037,0x00000019,0x00000075,0x000200f8,0x00000077,0x0004003b, + 0x00000007,0x00000336,0x00000007,0x0004003d,0x00000018,0x00000330,0x00000075,0x00040070, + 0x00000006,0x00000331,0x00000330,0x00050085,0x00000006,0x00000333,0x00000331,0x00000332, + 0x00050081,0x00000006,0x00000335,0x00000333,0x00000334,0x0003003e,0x00000336,0x00000335, + 0x00050039,0x00000006,0x00000337,0x0000000a,0x00000336,0x000200fe,0x00000337,0x00010038, + 0x00050036,0x00000002,0x0000007c,0x00000000,0x00000078,0x00030037,0x00000019,0x00000079, + 0x00030037,0x0000000d,0x0000007a,0x00030037,0x00000007,0x0000007b,0x000200f8,0x0000007d, + 0x0004003b,0x00000007,0x00000342,0x00000007,0x0004003d,0x0000000c,0x0000033a,0x0000007a, + 0x0007004f,0x00000012,0x0000033b,0x0000033a,0x0000033a,0x00000000,0x00000001,0x0004003d, + 0x00000018,0x0000033c,0x00000079,0x0006000c,0x0000000c,0x0000033d,0x00000001,0x00000040, + 0x0000033c,0x0007004f,0x00000012,0x0000033e,0x0000033d,0x0000033d,0x00000000,0x00000001, + 0x00050083,0x00000012,0x0000033f,0x0000033b,0x0000033e,0x0006000c,0x00000012,0x00000340, + 0x00000001,0x00000004,0x0000033f,0x0003003e,0x00000342,0x00000341,0x00050039,0x00000012, + 0x00000343,0x00000028,0x00000342,0x000500b8,0x00000344,0x00000345,0x00000340,0x00000343, + 0x0004009b,0x000000f7,0x00000346,0x00000345,0x000300f7,0x00000348,0x00000000,0x000400fa, + 0x00000346,0x00000347,0x0000034d,0x000200f8,0x00000347,0x0004003d,0x00000006,0x00000349, + 0x0000007b,0x00050041,0x00000007,0x0000034a,0x0000007a,0x000000c1,0x0004003d,0x00000006, + 0x0000034b,0x0000034a,0x0007000c,0x00000006,0x0000034c,0x00000001,0x00000025,0x00000349, + 0x0000034b,0x0003003e,0x0000007b,0x0000034c,0x000200f9,0x00000348,0x000200f8,0x0000034d, + 0x0003003e,0x0000007b,0x000000ed,0x000200f9,0x00000348,0x000200f8,0x00000348,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000087,0x00000000,0x00000081,0x00030037,0x00000019, + 0x00000082,0x00030037,0x00000007,0x00000083,0x00030037,0x0000000d,0x00000084,0x00030037, + 0x0000000d,0x00000085,0x00030037,0x00000080,0x00000086,0x000200f8,0x00000088,0x0004003b, + 0x0000034f,0x00000350,0x00000007,0x0004003b,0x00000007,0x00000359,0x00000007,0x0004003b, + 0x00000007,0x00000378,0x00000007,0x0004003b,0x00000007,0x0000037a,0x00000007,0x0004003b, + 0x00000019,0x00000380,0x00000007,0x0004003b,0x00000019,0x0000038f,0x00000007,0x0004003b, + 0x0000000d,0x00000391,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b, + 0x000003a1,0x000003a2,0x00000007,0x0004003b,0x0000000d,0x000003ab,0x00000007,0x0004003b, + 0x0000000d,0x000003b0,0x00000007,0x0004003b,0x00000013,0x000003b6,0x00000007,0x0004003b, + 0x00000013,0x000003c0,0x00000007,0x0004003b,0x00000013,0x000003c9,0x00000007,0x0004003b, + 0x00000007,0x000003cb,0x00000007,0x0004003b,0x00000019,0x000003d6,0x00000007,0x0004003b, + 0x00000007,0x000003f0,0x00000007,0x0004003b,0x000003a1,0x000003f3,0x00000007,0x0004003b, + 0x0000000d,0x000003f6,0x00000007,0x0004003b,0x0000000d,0x000003fa,0x00000007,0x0004003b, + 0x00000013,0x00000400,0x00000007,0x0004003b,0x00000007,0x00000408,0x00000007,0x0004003b, + 0x00000007,0x0000040b,0x00000007,0x0004003b,0x00000007,0x00000416,0x00000007,0x0004003b, + 0x00000007,0x0000041e,0x00000007,0x0004003b,0x00000019,0x0000043e,0x00000007,0x0004003b, + 0x00000019,0x00000444,0x00000007,0x0004003b,0x0000000d,0x0000044a,0x00000007,0x0004003b, + 0x0000000d,0x0000044e,0x00000007,0x0004003b,0x00000039,0x00000451,0x00000007,0x0004003b, + 0x0000000d,0x00000454,0x00000007,0x0004003b,0x00000019,0x00000455,0x00000007,0x0004003d, + 0x00000018,0x00000355,0x00000082,0x00060041,0x00000356,0x00000357,0x00000354,0x000000df, + 0x00000355,0x0004003d,0x0000034e,0x00000358,0x00000357,0x0003003e,0x00000350,0x00000358, + 0x0004003d,0x00000006,0x0000035a,0x00000083,0x0003003e,0x00000359,0x0000035a,0x00050041, + 0x00000019,0x0000035b,0x00000350,0x000000ab,0x0004003d,0x00000018,0x0000035c,0x0000035b, + 0x000500c7,0x00000018,0x0000035e,0x0000035c,0x0000035d,0x000500ab,0x000000f7,0x0000035f, + 0x0000035e,0x000000ab,0x000300f7,0x00000361,0x00000000,0x000400fa,0x0000035f,0x00000360, + 0x00000361,0x000200f8,0x00000360,0x0004003d,0x00000006,0x00000362,0x00000359,0x0006000c, + 0x00000006,0x00000363,0x00000001,0x00000004,0x00000362,0x0003003e,0x00000359,0x00000363, + 0x000300f7,0x00000366,0x00000000,0x000400fa,0x00000364,0x00000365,0x00000366,0x000200f8, + 0x00000365,0x00050041,0x00000019,0x00000367,0x00000350,0x000000ab,0x0004003d,0x00000018, + 0x00000368,0x00000367,0x000500c7,0x00000018,0x0000036a,0x00000368,0x00000369,0x000500ab, + 0x000000f7,0x0000036b,0x0000036a,0x000000ab,0x000200f9,0x00000366,0x000200f8,0x00000366, + 0x000700f5,0x000000f7,0x0000036c,0x00000364,0x00000360,0x0000036b,0x00000365,0x000300f7, + 0x0000036e,0x00000000,0x000400fa,0x0000036c,0x0000036d,0x0000036e,0x000200f8,0x0000036d, + 0x0004003d,0x00000006,0x0000036f,0x00000359,0x00050085,0x00000006,0x00000370,0x0000036f, + 0x000001f5,0x0006000c,0x00000006,0x00000371,0x00000001,0x0000000a,0x00000370,0x00050085, + 0x00000006,0x00000372,0x00000371,0x000001fa,0x00050081,0x00000006,0x00000374,0x00000372, + 0x00000373,0x0006000c,0x00000006,0x00000375,0x00000001,0x00000004,0x00000374,0x00050083, + 0x00000006,0x00000376,0x000000ec,0x00000375,0x0003003e,0x00000359,0x00000376,0x000200f9, + 0x0000036e,0x000200f8,0x0000036e,0x000200f9,0x00000361,0x000200f8,0x00000361,0x0004003d, + 0x00000006,0x00000377,0x00000359,0x0003003e,0x00000378,0x000000ed,0x00050039,0x00000006, + 0x00000379,0x0000001f,0x00000378,0x0003003e,0x0000037a,0x000000ec,0x00050039,0x00000006, + 0x0000037b,0x0000001f,0x0000037a,0x0008000c,0x00000006,0x0000037c,0x00000001,0x0000002b, + 0x00000377,0x00000379,0x0000037b,0x0003003e,0x00000359,0x0000037c,0x000300f7,0x0000037f, + 0x00000000,0x000400fa,0x0000037d,0x0000037e,0x0000037f,0x000200f8,0x0000037e,0x00050041, + 0x00000019,0x00000381,0x00000350,0x000000ab,0x0004003d,0x00000018,0x00000382,0x00000381, + 0x000500c2,0x00000018,0x00000384,0x00000382,0x00000383,0x0003003e,0x00000380,0x00000384, + 0x0004003d,0x00000018,0x00000385,0x00000380,0x000500ab,0x000000f7,0x00000386,0x00000385, + 0x000000ab,0x000300f7,0x00000388,0x00000000,0x000400fa,0x00000386,0x00000387,0x00000388, + 0x000200f8,0x00000387,0x0004003d,0x00000389,0x0000038c,0x0000038b,0x00050062,0x0000000c, + 0x0000038e,0x0000038c,0x0000038d,0x0004003d,0x00000018,0x00000390,0x00000380,0x0003003e, + 0x0000038f,0x00000390,0x0003003e,0x00000391,0x0000038e,0x0004003d,0x00000006,0x00000393, + 0x00000359,0x0003003e,0x00000392,0x00000393,0x00070039,0x00000002,0x00000394,0x0000007c, + 0x0000038f,0x00000391,0x00000392,0x0004003d,0x00000006,0x00000395,0x00000392,0x0003003e, + 0x00000359,0x00000395,0x000200f9,0x00000388,0x000200f8,0x00000388,0x000200f9,0x0000037f, + 0x000200f8,0x0000037f,0x000300f7,0x00000398,0x00000000,0x000400fa,0x00000396,0x00000397, + 0x00000398,0x000200f8,0x00000397,0x00050041,0x00000019,0x00000399,0x00000350,0x000000ab, + 0x0004003d,0x00000018,0x0000039a,0x00000399,0x000500c7,0x00000018,0x0000039c,0x0000039a, + 0x0000039b,0x000500ab,0x000000f7,0x0000039d,0x0000039c,0x000000ab,0x000200f9,0x00000398, + 0x000200f8,0x00000398,0x000700f5,0x000000f7,0x0000039e,0x00000396,0x0000037f,0x0000039d, + 0x00000397,0x000300f7,0x000003a0,0x00000000,0x000400fa,0x0000039e,0x0000039f,0x000003a0, + 0x000200f8,0x0000039f,0x0004003d,0x00000018,0x000003a7,0x00000082,0x00050084,0x00000018, + 0x000003a9,0x000003a7,0x000003a8,0x00050080,0x00000018,0x000003aa,0x000003a9,0x000000c1, + 0x00060041,0x000003ac,0x000003ad,0x000003a6,0x000000df,0x000003aa,0x0004003d,0x0000000c, + 0x000003ae,0x000003ad,0x0003003e,0x000003ab,0x000003ae,0x00050039,0x00000040,0x000003af, + 0x00000043,0x000003ab,0x0003003e,0x000003a2,0x000003af,0x0004003d,0x00000018,0x000003b1, + 0x00000082,0x00050084,0x00000018,0x000003b2,0x000003b1,0x000003a8,0x00050080,0x00000018, + 0x000003b3,0x000003b2,0x000000d8,0x00060041,0x000003ac,0x000003b4,0x000003a6,0x000000df, + 0x000003b3,0x0004003d,0x0000000c,0x000003b5,0x000003b4,0x0003003e,0x000003b0,0x000003b5, + 0x0004003d,0x00000040,0x000003b7,0x000003a2,0x0004003d,0x0000000c,0x000003ba,0x000003b9, + 0x0007004f,0x00000012,0x000003bb,0x000003ba,0x000003ba,0x00000000,0x00000001,0x00050091, + 0x00000012,0x000003bc,0x000003b7,0x000003bb,0x0004003d,0x0000000c,0x000003bd,0x000003b0, + 0x0007004f,0x00000012,0x000003be,0x000003bd,0x000003bd,0x00000000,0x00000001,0x00050081, + 0x00000012,0x000003bf,0x000003bc,0x000003be,0x0003003e,0x000003b6,0x000003bf,0x0004003d, + 0x00000012,0x000003c1,0x000003b6,0x0006000c,0x00000012,0x000003c2,0x00000001,0x00000004, + 0x000003c1,0x0004003d,0x0000000c,0x000003c3,0x000003b0,0x0007004f,0x00000012,0x000003c4, + 0x000003c3,0x000003c3,0x00000002,0x00000003,0x00050085,0x00000012,0x000003c5,0x000003c2, + 0x000003c4,0x0004003d,0x0000000c,0x000003c6,0x000003b0,0x0007004f,0x00000012,0x000003c7, + 0x000003c6,0x000003c6,0x00000002,0x00000003,0x00050083,0x00000012,0x000003c8,0x000003c5, + 0x000003c7,0x0003003e,0x000003c9,0x000003c8,0x00050039,0x00000012,0x000003ca,0x00000016, + 0x000003c9,0x0003003e,0x000003c0,0x000003ca,0x00050041,0x00000007,0x000003cc,0x000003c0, + 0x000000ab,0x0004003d,0x00000006,0x000003cd,0x000003cc,0x00050041,0x00000007,0x000003ce, + 0x000003c0,0x000000ae,0x0004003d,0x00000006,0x000003cf,0x000003ce,0x0007000c,0x00000006, + 0x000003d0,0x00000001,0x00000025,0x000003cd,0x000003cf,0x00050081,0x00000006,0x000003d1, + 0x000003d0,0x000001f5,0x0008000c,0x00000006,0x000003d2,0x00000001,0x0000002b,0x000003d1, + 0x000000ed,0x000000ec,0x0003003e,0x000003cb,0x000003d2,0x0004003d,0x00000006,0x000003d3, + 0x00000359,0x0004003d,0x00000006,0x000003d4,0x000003cb,0x0007000c,0x00000006,0x000003d5, + 0x00000001,0x00000025,0x000003d3,0x000003d4,0x0003003e,0x00000359,0x000003d5,0x000200f9, + 0x000003a0,0x000200f8,0x000003a0,0x00050041,0x00000019,0x000003d7,0x00000350,0x000000ab, + 0x0004003d,0x00000018,0x000003d8,0x000003d7,0x000500c7,0x00000018,0x000003da,0x000003d8, + 0x000003d9,0x0003003e,0x000003d6,0x000003da,0x0004003d,0x00000018,0x000003db,0x000003d6, + 0x000500b2,0x000000f7,0x000003dc,0x000003db,0x000000ae,0x000300f7,0x000003de,0x00000000, + 0x000400fa,0x000003dc,0x000003dd,0x000003f2,0x000200f8,0x000003dd,0x00050041,0x00000019, + 0x000003df,0x00000350,0x000000ae,0x0004003d,0x00000018,0x000003e0,0x000003df,0x0006000c, + 0x0000000c,0x000003e1,0x00000001,0x00000040,0x000003e0,0x0003003e,0x00000084,0x000003e1, + 0x0004003d,0x00000018,0x000003e2,0x000003d6,0x000500aa,0x000000f7,0x000003e3,0x000003e2, + 0x000000ab,0x000500a7,0x000000f7,0x000003e4,0x0000037d,0x000003e3,0x000300f7,0x000003e6, + 0x00000000,0x000400fa,0x000003e4,0x000003e5,0x000003e6,0x000200f8,0x000003e5,0x0004003d, + 0x0000000c,0x000003e7,0x00000084,0x0007004f,0x00000012,0x000003e8,0x000003e7,0x000003e7, + 0x00000002,0x00000003,0x00050041,0x00000007,0x000003e9,0x00000085,0x000000ab,0x00050051, + 0x00000006,0x000003ea,0x000003e8,0x00000000,0x0003003e,0x000003e9,0x000003ea,0x00050041, + 0x00000007,0x000003eb,0x00000085,0x000000ae,0x00050051,0x00000006,0x000003ec,0x000003e8, + 0x00000001,0x0003003e,0x000003eb,0x000003ec,0x0004003d,0x00000006,0x000003ed,0x00000359, + 0x00050041,0x00000007,0x000003ee,0x00000085,0x000000c1,0x0003003e,0x000003ee,0x000003ed, + 0x00050041,0x00000007,0x000003ef,0x00000085,0x000000d8,0x0003003e,0x000003ef,0x000000ec, + 0x0003003e,0x000003f0,0x000000ed,0x00050039,0x0000000c,0x000003f1,0x00000037,0x000003f0, + 0x0003003e,0x00000084,0x000003f1,0x000200f9,0x000003e6,0x000200f8,0x000003e6,0x000200f9, + 0x000003de,0x000200f8,0x000003f2,0x0004003d,0x00000018,0x000003f4,0x00000082,0x00050084, + 0x00000018,0x000003f5,0x000003f4,0x000003a8,0x00060041,0x000003ac,0x000003f7,0x000003a6, + 0x000000df,0x000003f5,0x0004003d,0x0000000c,0x000003f8,0x000003f7,0x0003003e,0x000003f6, + 0x000003f8,0x00050039,0x00000040,0x000003f9,0x00000043,0x000003f6,0x0003003e,0x000003f3, + 0x000003f9,0x0004003d,0x00000018,0x000003fb,0x00000082,0x00050084,0x00000018,0x000003fc, + 0x000003fb,0x000003a8,0x00050080,0x00000018,0x000003fd,0x000003fc,0x000000ae,0x00060041, + 0x000003ac,0x000003fe,0x000003a6,0x000000df,0x000003fd,0x0004003d,0x0000000c,0x000003ff, + 0x000003fe,0x0003003e,0x000003fa,0x000003ff,0x0004003d,0x00000040,0x00000401,0x000003f3, + 0x0004003d,0x0000000c,0x00000402,0x000003b9,0x0007004f,0x00000012,0x00000403,0x00000402, + 0x00000402,0x00000000,0x00000001,0x00050091,0x00000012,0x00000404,0x00000401,0x00000403, + 0x0004003d,0x0000000c,0x00000405,0x000003fa,0x0007004f,0x00000012,0x00000406,0x00000405, + 0x00000405,0x00000000,0x00000001,0x00050081,0x00000012,0x00000407,0x00000404,0x00000406, + 0x0003003e,0x00000400,0x00000407,0x0004003d,0x00000018,0x00000409,0x000003d6,0x000500aa, + 0x000000f7,0x0000040a,0x00000409,0x000000c1,0x000300f7,0x0000040d,0x00000000,0x000400fa, + 0x0000040a,0x0000040c,0x00000410,0x000200f8,0x0000040c,0x00050041,0x00000007,0x0000040e, + 0x00000400,0x000000ab,0x0004003d,0x00000006,0x0000040f,0x0000040e,0x0003003e,0x0000040b, + 0x0000040f,0x000200f9,0x0000040d,0x000200f8,0x00000410,0x0004003d,0x00000012,0x00000411, + 0x00000400,0x0006000c,0x00000006,0x00000412,0x00000001,0x00000042,0x00000411,0x0003003e, + 0x0000040b,0x00000412,0x000200f9,0x0000040d,0x000200f8,0x0000040d,0x0004003d,0x00000006, + 0x00000413,0x0000040b,0x0003003e,0x00000408,0x00000413,0x0004003d,0x00000006,0x00000414, + 0x00000408,0x0008000c,0x00000006,0x00000415,0x00000001,0x0000002b,0x00000414,0x000000ed, + 0x000000ec,0x0003003e,0x00000408,0x00000415,0x0004003d,0x00000006,0x00000417,0x00000408, + 0x00050041,0x00000007,0x00000418,0x000003fa,0x000000c1,0x0004003d,0x00000006,0x00000419, + 0x00000418,0x00050085,0x00000006,0x0000041a,0x00000417,0x00000419,0x00050041,0x00000007, + 0x0000041b,0x000003fa,0x000000d8,0x0004003d,0x00000006,0x0000041c,0x0000041b,0x00050081, + 0x00000006,0x0000041d,0x0000041a,0x0000041c,0x0003003e,0x00000416,0x0000041d,0x00050041, + 0x00000019,0x0000041f,0x00000350,0x000000ae,0x0004003d,0x00000018,0x00000420,0x0000041f, + 0x0004007c,0x00000006,0x00000421,0x00000420,0x0003003e,0x0000041e,0x00000421,0x0004003d, + 0x00000422,0x00000425,0x00000424,0x0004003d,0x00000426,0x00000429,0x00000428,0x00050056, + 0x0000042a,0x0000042b,0x00000425,0x00000429,0x0004003d,0x00000006,0x0000042c,0x00000416, + 0x0004003d,0x00000006,0x0000042d,0x0000041e,0x00050050,0x00000012,0x0000042e,0x0000042c, + 0x0000042d,0x00070058,0x0000000c,0x0000042f,0x0000042b,0x0000042e,0x00000002,0x000000ed, + 0x0003003e,0x00000084,0x0000042f,0x000200f9,0x000003de,0x000200f8,0x000003de,0x0004003d, + 0x00000006,0x00000430,0x00000359,0x00050041,0x00000007,0x00000431,0x00000084,0x000000d8, + 0x0004003d,0x00000006,0x00000432,0x00000431,0x00050085,0x00000006,0x00000433,0x00000432, + 0x00000430,0x00050041,0x00000007,0x00000434,0x00000084,0x000000d8,0x0003003e,0x00000434, + 0x00000433,0x000300f7,0x00000437,0x00000000,0x000400fa,0x00000435,0x00000436,0x00000437, + 0x000200f8,0x00000436,0x00050041,0x00000007,0x00000438,0x00000084,0x000000d8,0x0004003d, + 0x00000006,0x00000439,0x00000438,0x000500b7,0x000000f7,0x0000043a,0x00000439,0x000000ed, + 0x000200f9,0x00000437,0x000200f8,0x00000437,0x000700f5,0x000000f7,0x0000043b,0x00000435, + 0x000003de,0x0000043a,0x00000436,0x000300f7,0x0000043d,0x00000000,0x000400fa,0x0000043b, + 0x0000043c,0x0000043d,0x000200f8,0x0000043c,0x00050041,0x00000019,0x0000043f,0x00000350, + 0x000000ab,0x0004003d,0x00000018,0x00000440,0x0000043f,0x000500c2,0x00000018,0x00000442, + 0x00000440,0x00000441,0x000500c7,0x00000018,0x00000443,0x00000442,0x000003d9,0x0003003e, + 0x00000444,0x00000443,0x00050039,0x00000018,0x00000445,0x0000001c,0x00000444,0x0003003e, + 0x0000043e,0x00000445,0x000500ab,0x000000f7,0x00000446,0x00000445,0x000000ab,0x000200f9, + 0x0000043d,0x000200f8,0x0000043d,0x000700f5,0x000000f7,0x00000447,0x0000043b,0x00000437, + 0x00000446,0x0000043c,0x000300f7,0x00000449,0x00000000,0x000400fa,0x00000447,0x00000448, + 0x00000449,0x000200f8,0x00000448,0x0004003d,0x00000389,0x0000044c,0x0000044b,0x00050062, + 0x0000000c,0x0000044d,0x0000044c,0x0000038d,0x0003003e,0x0000044a,0x0000044d,0x0004003d, + 0x0000000c,0x0000044f,0x0000044a,0x0003003e,0x0000044e,0x0000044f,0x00050039,0x0000000c, + 0x00000450,0x00000046,0x0000044e,0x0004003d,0x0000000c,0x00000452,0x00000084,0x0008004f, + 0x0000002a,0x00000453,0x00000452,0x00000452,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x00000451,0x00000453,0x0003003e,0x00000454,0x00000450,0x0004003d,0x00000018,0x00000456, + 0x0000043e,0x0003003e,0x00000455,0x00000456,0x00070039,0x0000002a,0x00000457,0x00000072, + 0x00000451,0x00000454,0x00000455,0x00050041,0x00000007,0x00000458,0x00000084,0x000000ab, + 0x00050051,0x00000006,0x00000459,0x00000457,0x00000000,0x0003003e,0x00000458,0x00000459, + 0x00050041,0x00000007,0x0000045a,0x00000084,0x000000ae,0x00050051,0x00000006,0x0000045b, + 0x00000457,0x00000001,0x0003003e,0x0000045a,0x0000045b,0x00050041,0x00000007,0x0000045c, + 0x00000084,0x000000c1,0x00050051,0x00000006,0x0000045d,0x00000457,0x00000002,0x0003003e, + 0x0000045c,0x0000045d,0x000200f9,0x00000449,0x000200f8,0x00000449,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000008c,0x00000000,0x00000089,0x00030037,0x0000000d,0x0000008a, + 0x00030037,0x00000080,0x0000008b,0x000200f8,0x0000008d,0x0004003d,0x0000000c,0x00000460, + 0x0000008a,0x0003003e,0x0000045f,0x00000460,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000090,0x00000000,0x00000089,0x00030037,0x0000000d,0x0000008e,0x00030037,0x00000080, + 0x0000008f,0x000200f8,0x00000091,0x0004003d,0x0000000c,0x00000462,0x0000008e,0x0003003e, + 0x00000461,0x00000462,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.vert.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.vert.h new file mode 100644 index 00000000..27311a6e --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_image_rect.vert.h @@ -0,0 +1,331 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_image_rect_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x00000155,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000c000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000007b,0x0000007e,0x00000083, + 0x00000092,0x000000ea,0x0000010c,0x00000136,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163,0x6f6c665f,0x745f7461,0x61685f6f, + 0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078,0x00070005,0x00000012,0x656b616d, + 0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000011,0x00000078,0x00080005, + 0x00000017,0x686e616d,0x61747461,0x69775f6e,0x28687464,0x3b326676,0x00000000,0x00030005, + 0x00000016,0x00000078,0x000e0005,0x0000001e,0x646e6966,0x696c635f,0x65725f70,0x635f7463, + 0x7265766f,0x5f656761,0x74736964,0x65636e61,0x666d2873,0x763b3232,0x763b3266,0x003b3266, + 0x00080005,0x0000001b,0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078, + 0x00090005,0x0000001c,0x70696c63,0x74636552,0x65766e49,0x54657372,0x736e6172,0x6574616c, + 0x00000000,0x00060005,0x0000001d,0x65786970,0x736f506c,0x6f697469,0x0000006e,0x00060005, + 0x00000040,0x70696c63,0x74636552,0x69574141,0x00687464,0x00030005,0x00000057,0x00000072, + 0x00060005,0x0000005b,0x70696c63,0x74636552,0x726f6f43,0x00000064,0x00050005,0x00000079, + 0x7265765f,0x49786574,0x00000044,0x00060005,0x0000007b,0x565f6c67,0x65747265,0x646e4978, + 0x00007865,0x00050005,0x0000007d,0x736e695f,0x636e6174,0x00444965,0x00070005,0x0000007e, + 0x495f6c67,0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00060005,0x00000081,0x754f7369, + 0x56726574,0x65747265,0x00000078,0x00090005,0x00000083,0x5058455f,0x4554524f,0x5f615f44, + 0x67616d69,0x63655265,0x72655674,0x00786574,0x00060005,0x00000092,0x64655f76,0x6f436567, + 0x61726576,0x00006567,0x00060005,0x00000095,0x74726576,0x6f507865,0x69746973,0x00006e6f, + 0x00030005,0x00000098,0x0000004d,0x00090005,0x00000099,0x5058455f,0x4554524f,0x6d495f44, + 0x44656761,0x55776172,0x6f66696e,0x00736d72,0x00060006,0x00000099,0x00000000,0x77656976, + 0x7274614d,0x00007869,0x00060006,0x00000099,0x00000001,0x6e617274,0x74616c73,0x00000065, + 0x00050006,0x00000099,0x00000002,0x6361706f,0x00797469,0x00050006,0x00000099,0x00000003, + 0x64646170,0x00676e69,0x00090006,0x00000099,0x00000004,0x70696c63,0x74636552,0x65766e49, + 0x4d657372,0x69727461,0x00000078,0x000a0006,0x00000099,0x00000005,0x70696c63,0x74636552, + 0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050006,0x00000099,0x00000006, + 0x70696c63,0x00004449,0x00060006,0x00000099,0x00000007,0x6e656c62,0x646f4d64,0x00000065, + 0x00050006,0x00000099,0x00000008,0x646e497a,0x00007865,0x00070005,0x0000009b,0x67616d69, + 0x61724465,0x696e5577,0x6d726f66,0x00000073,0x00040005,0x0000009c,0x61726170,0x0000006d, + 0x00030005,0x000000a1,0x0054494d,0x00050005,0x000000a9,0x61526161,0x73756964,0x00000058, + 0x00040005,0x000000aa,0x61726170,0x0000006d,0x00040005,0x000000bc,0x61726170,0x0000006d, + 0x00050005,0x000000c9,0x61526161,0x73756964,0x00000059,0x00040005,0x000000ca,0x61726170, + 0x0000006d,0x00040005,0x000000dc,0x61726170,0x0000006d,0x00050005,0x000000ea,0x65745f76, + 0x6f6f4378,0x00006472,0x00030005,0x000000f6,0x0000006e,0x00040005,0x000000fb,0x61726170, + 0x0000006d,0x00060005,0x00000108,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00050005, + 0x0000010c,0x6c635f76,0x65527069,0x00007463,0x00040005,0x0000010e,0x61726170,0x0000006d, + 0x00040005,0x00000113,0x61726170,0x0000006d,0x00040005,0x00000114,0x61726170,0x0000006d, + 0x00040005,0x00000117,0x61726170,0x0000006d,0x00030005,0x0000011a,0x00736f70,0x00080005, + 0x0000011e,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006, + 0x0000011e,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00090006,0x0000011e,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x000b0006,0x0000011e,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x0000011e,0x00000003,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006, + 0x0000011e,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006, + 0x0000011e,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006, + 0x0000011e,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x0000011e, + 0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x0000011e, + 0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000, + 0x00090006,0x0000011e,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665, + 0x00000000,0x00080006,0x0000011e,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261, + 0x00000079,0x00080006,0x0000011e,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664, + 0x00006575,0x00050005,0x00000120,0x66696e75,0x736d726f,0x00000000,0x00060005,0x00000134, + 0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x00000134,0x00000000,0x505f6c67, + 0x7469736f,0x006e6f69,0x00070006,0x00000134,0x00000001,0x505f6c67,0x746e696f,0x657a6953, + 0x00000000,0x00070006,0x00000134,0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e, + 0x00070006,0x00000134,0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005, + 0x00000136,0x00000000,0x00060005,0x00000139,0x616e456b,0x43656c62,0x7070696c,0x00676e69, + 0x00080005,0x0000013a,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00060005,0x0000013b,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x0000013c, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x0000013d, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x0000013e, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x0000013f,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00090005,0x00000142,0x5058455f, + 0x4554524f,0x65745f44,0x65567373,0x78657472,0x74786554,0x00657275,0x00050005,0x00000145, + 0x68746150,0x66667542,0x00007265,0x00050006,0x00000145,0x00000000,0x6c61765f,0x00736575, + 0x00080005,0x00000147,0x5058455f,0x4554524f,0x61705f44,0x75426874,0x72656666,0x00000000, + 0x00050005,0x0000014a,0x6e696150,0x66754274,0x00726566,0x00050006,0x0000014a,0x00000000, + 0x6c61765f,0x00736575,0x00080005,0x0000014c,0x5058455f,0x4554524f,0x61705f44,0x42746e69, + 0x65666675,0x00000072,0x00060005,0x0000014e,0x6e696150,0x78754174,0x66667542,0x00007265, + 0x00050006,0x0000014e,0x00000000,0x6c61765f,0x00736575,0x00090005,0x00000150,0x5058455f, + 0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00060005,0x00000152, + 0x746e6f43,0x4272756f,0x65666675,0x00000072,0x00050006,0x00000152,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x00000154,0x5058455f,0x4554524f,0x6f635f44,0x756f746e,0x66754272, + 0x00726566,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047, + 0x00000022,0x00000000,0x00040047,0x0000007b,0x0000000b,0x0000002a,0x00040047,0x0000007e, + 0x0000000b,0x0000002b,0x00040047,0x00000083,0x0000001e,0x00000000,0x00030047,0x00000092, + 0x00000000,0x00040047,0x00000092,0x0000001e,0x00000001,0x00050048,0x00000099,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000099,0x00000001,0x00000023,0x00000010,0x00050048, + 0x00000099,0x00000002,0x00000023,0x00000018,0x00050048,0x00000099,0x00000003,0x00000023, + 0x0000001c,0x00050048,0x00000099,0x00000004,0x00000023,0x00000020,0x00050048,0x00000099, + 0x00000005,0x00000023,0x00000030,0x00050048,0x00000099,0x00000006,0x00000023,0x00000038, + 0x00050048,0x00000099,0x00000007,0x00000023,0x0000003c,0x00050048,0x00000099,0x00000008, + 0x00000023,0x00000040,0x00030047,0x00000099,0x00000002,0x00040047,0x0000009b,0x00000022, + 0x00000000,0x00040047,0x0000009b,0x00000021,0x00000009,0x00030047,0x000000bd,0x00000000, + 0x00030047,0x000000be,0x00000000,0x00030047,0x000000bf,0x00000000,0x00030047,0x000000dd, + 0x00000000,0x00030047,0x000000de,0x00000000,0x00030047,0x000000df,0x00000000,0x00040047, + 0x000000ea,0x0000001e,0x00000000,0x00040047,0x00000108,0x00000001,0x00000001,0x00040047, + 0x0000010c,0x0000001e,0x00000002,0x00050048,0x0000011e,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000011e,0x00000001,0x00000023,0x00000004,0x00050048,0x0000011e,0x00000002, + 0x00000023,0x00000008,0x00050048,0x0000011e,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x0000011e,0x00000004,0x00000023,0x00000010,0x00050048,0x0000011e,0x00000005,0x00000023, + 0x00000014,0x00050048,0x0000011e,0x00000006,0x00000023,0x00000018,0x00050048,0x0000011e, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x0000011e,0x00000008,0x00000023,0x00000020, + 0x00050048,0x0000011e,0x00000009,0x00000023,0x00000030,0x00050048,0x0000011e,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x0000011e,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x0000011e,0x00000002,0x00040047,0x00000120,0x00000022,0x00000000,0x00040047,0x00000120, + 0x00000021,0x00000007,0x00050048,0x00000134,0x00000000,0x0000000b,0x00000000,0x00050048, + 0x00000134,0x00000001,0x0000000b,0x00000001,0x00050048,0x00000134,0x00000002,0x0000000b, + 0x00000003,0x00050048,0x00000134,0x00000003,0x0000000b,0x00000004,0x00030047,0x00000134, + 0x00000002,0x00040047,0x00000139,0x00000001,0x00000000,0x00040047,0x0000013a,0x00000001, + 0x00000002,0x00040047,0x0000013b,0x00000001,0x00000003,0x00040047,0x0000013c,0x00000001, + 0x00000004,0x00040047,0x0000013d,0x00000001,0x00000005,0x00040047,0x0000013e,0x00000001, + 0x00000006,0x00040047,0x0000013f,0x00000001,0x00000007,0x00040047,0x00000142,0x00000022, + 0x00000000,0x00040047,0x00000142,0x00000021,0x00000000,0x00040047,0x00000144,0x00000006, + 0x00000010,0x00040048,0x00000145,0x00000000,0x00000018,0x00050048,0x00000145,0x00000000, + 0x00000023,0x00000000,0x00030047,0x00000145,0x00000003,0x00040047,0x00000147,0x00000022, + 0x00000000,0x00040047,0x00000147,0x00000021,0x00000003,0x00040047,0x00000149,0x00000006, + 0x00000008,0x00040048,0x0000014a,0x00000000,0x00000018,0x00050048,0x0000014a,0x00000000, + 0x00000023,0x00000000,0x00030047,0x0000014a,0x00000003,0x00040047,0x0000014c,0x00000022, + 0x00000000,0x00040047,0x0000014c,0x00000021,0x00000004,0x00040047,0x0000014d,0x00000006, + 0x00000010,0x00040048,0x0000014e,0x00000000,0x00000018,0x00050048,0x0000014e,0x00000000, + 0x00000023,0x00000000,0x00030047,0x0000014e,0x00000003,0x00040047,0x00000150,0x00000022, + 0x00000000,0x00040047,0x00000150,0x00000021,0x00000005,0x00040047,0x00000151,0x00000006, + 0x00000010,0x00040048,0x00000152,0x00000000,0x00000018,0x00050048,0x00000152,0x00000000, + 0x00000023,0x00000000,0x00030047,0x00000152,0x00000003,0x00040047,0x00000154,0x00000022, + 0x00000000,0x00040047,0x00000154,0x00000021,0x00000006,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006, + 0x00000004,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040017,0x0000000e,0x00000006, + 0x00000002,0x00040018,0x0000000f,0x0000000e,0x00000002,0x00040021,0x00000010,0x0000000f, + 0x0000000d,0x00040020,0x00000014,0x00000007,0x0000000e,0x00040021,0x00000015,0x00000006, + 0x00000014,0x00040020,0x00000019,0x00000007,0x0000000f,0x00060021,0x0000001a,0x0000000c, + 0x00000019,0x00000014,0x00000014,0x0004002b,0x00000006,0x00000029,0x3f800000,0x0004002b, + 0x00000006,0x0000002a,0x00000000,0x00040015,0x00000034,0x00000020,0x00000000,0x0004002b, + 0x00000034,0x00000035,0x00000000,0x0004002b,0x00000034,0x00000039,0x00000001,0x00040015, + 0x00000041,0x00000020,0x00000001,0x0004002b,0x00000041,0x00000042,0x00000000,0x0004002b, + 0x00000041,0x00000046,0x00000001,0x00020014,0x0000004b,0x0004002b,0x00000006,0x0000006f, + 0x3f000000,0x00040020,0x00000078,0x00000007,0x00000041,0x00040020,0x0000007a,0x00000001, + 0x00000041,0x0004003b,0x0000007a,0x0000007b,0x00000001,0x0004003b,0x0000007a,0x0000007e, + 0x00000001,0x00040020,0x00000080,0x00000007,0x0000004b,0x00040020,0x00000082,0x00000001, + 0x0000000c,0x0004003b,0x00000082,0x00000083,0x00000001,0x0004002b,0x00000034,0x00000084, + 0x00000002,0x00040020,0x00000085,0x00000001,0x00000006,0x0004002b,0x00000034,0x0000008c, + 0x00000003,0x00040020,0x00000091,0x00000003,0x00000006,0x0004003b,0x00000091,0x00000092, + 0x00000003,0x000b001e,0x00000099,0x0000000c,0x0000000e,0x00000006,0x00000006,0x0000000c, + 0x0000000e,0x00000034,0x00000034,0x00000034,0x00040020,0x0000009a,0x00000002,0x00000099, + 0x0004003b,0x0000009a,0x0000009b,0x00000002,0x00040020,0x0000009d,0x00000002,0x0000000c, + 0x00040020,0x000000e9,0x00000003,0x0000000e,0x0004003b,0x000000e9,0x000000ea,0x00000003, + 0x00040020,0x000000ef,0x00000002,0x0000000e,0x00030031,0x0000004b,0x00000108,0x00040020, + 0x0000010b,0x00000003,0x0000000c,0x0004003b,0x0000010b,0x0000010c,0x00000003,0x0004002b, + 0x00000041,0x0000010d,0x00000004,0x0004002b,0x00000041,0x00000112,0x00000005,0x00040017, + 0x0000011d,0x00000041,0x00000004,0x000e001e,0x0000011e,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000034,0x00000034,0x00000034,0x00000034,0x0000011d,0x00000034,0x00000034, + 0x00000006,0x00040020,0x0000011f,0x00000002,0x0000011e,0x0004003b,0x0000011f,0x00000120, + 0x00000002,0x0004002b,0x00000041,0x00000121,0x00000002,0x00040020,0x00000122,0x00000002, + 0x00000006,0x0004002b,0x00000041,0x00000129,0x00000003,0x0004001c,0x00000133,0x00000006, + 0x00000039,0x0006001e,0x00000134,0x0000000c,0x00000006,0x00000133,0x00000133,0x00040020, + 0x00000135,0x00000003,0x00000134,0x0004003b,0x00000135,0x00000136,0x00000003,0x00030031, + 0x0000004b,0x00000139,0x00030031,0x0000004b,0x0000013a,0x00030031,0x0000004b,0x0000013b, + 0x00030031,0x0000004b,0x0000013c,0x00030031,0x0000004b,0x0000013d,0x00030031,0x0000004b, + 0x0000013e,0x00030031,0x0000004b,0x0000013f,0x00090019,0x00000140,0x00000034,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000141,0x00000000, + 0x00000140,0x0004003b,0x00000141,0x00000142,0x00000000,0x00040017,0x00000143,0x00000034, + 0x00000004,0x0003001d,0x00000144,0x00000143,0x0003001e,0x00000145,0x00000144,0x00040020, + 0x00000146,0x00000002,0x00000145,0x0004003b,0x00000146,0x00000147,0x00000002,0x00040017, + 0x00000148,0x00000034,0x00000002,0x0003001d,0x00000149,0x00000148,0x0003001e,0x0000014a, + 0x00000149,0x00040020,0x0000014b,0x00000002,0x0000014a,0x0004003b,0x0000014b,0x0000014c, + 0x00000002,0x0003001d,0x0000014d,0x0000000c,0x0003001e,0x0000014e,0x0000014d,0x00040020, + 0x0000014f,0x00000002,0x0000014e,0x0004003b,0x0000014f,0x00000150,0x00000002,0x0003001d, + 0x00000151,0x00000143,0x0003001e,0x00000152,0x00000151,0x00040020,0x00000153,0x00000002, + 0x00000152,0x0004003b,0x00000153,0x00000154,0x00000002,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000078,0x00000079,0x00000007, + 0x0004003b,0x00000078,0x0000007d,0x00000007,0x0004003b,0x00000080,0x00000081,0x00000007, + 0x0004003b,0x00000014,0x00000095,0x00000007,0x0004003b,0x00000019,0x00000098,0x00000007, + 0x0004003b,0x0000000d,0x0000009c,0x00000007,0x0004003b,0x00000019,0x000000a1,0x00000007, + 0x0004003b,0x00000007,0x000000a9,0x00000007,0x0004003b,0x00000014,0x000000aa,0x00000007, + 0x0004003b,0x00000007,0x000000bc,0x00000007,0x0004003b,0x00000007,0x000000c9,0x00000007, + 0x0004003b,0x00000014,0x000000ca,0x00000007,0x0004003b,0x00000007,0x000000dc,0x00000007, + 0x0004003b,0x00000014,0x000000f6,0x00000007,0x0004003b,0x00000014,0x000000fb,0x00000007, + 0x0004003b,0x0000000d,0x0000010e,0x00000007,0x0004003b,0x00000019,0x00000113,0x00000007, + 0x0004003b,0x00000014,0x00000114,0x00000007,0x0004003b,0x00000014,0x00000117,0x00000007, + 0x0004003b,0x0000000d,0x0000011a,0x00000007,0x0004003d,0x00000041,0x0000007c,0x0000007b, + 0x0003003e,0x00000079,0x0000007c,0x0004003d,0x00000041,0x0000007f,0x0000007e,0x0003003e, + 0x0000007d,0x0000007f,0x00050041,0x00000085,0x00000086,0x00000083,0x00000084,0x0004003d, + 0x00000006,0x00000087,0x00000086,0x000500b4,0x0000004b,0x00000088,0x00000087,0x0000002a, + 0x000400a8,0x0000004b,0x00000089,0x00000088,0x000300f7,0x0000008b,0x00000000,0x000400fa, + 0x00000089,0x0000008a,0x0000008b,0x000200f8,0x0000008a,0x00050041,0x00000085,0x0000008d, + 0x00000083,0x0000008c,0x0004003d,0x00000006,0x0000008e,0x0000008d,0x000500b4,0x0000004b, + 0x0000008f,0x0000008e,0x0000002a,0x000200f9,0x0000008b,0x000200f8,0x0000008b,0x000700f5, + 0x0000004b,0x00000090,0x00000088,0x00000005,0x0000008f,0x0000008a,0x0003003e,0x00000081, + 0x00000090,0x0004003d,0x0000004b,0x00000093,0x00000081,0x000600a9,0x00000006,0x00000094, + 0x00000093,0x0000002a,0x00000029,0x0003003e,0x00000092,0x00000094,0x0004003d,0x0000000c, + 0x00000096,0x00000083,0x0007004f,0x0000000e,0x00000097,0x00000096,0x00000096,0x00000000, + 0x00000001,0x0003003e,0x00000095,0x00000097,0x00050041,0x0000009d,0x0000009e,0x0000009b, + 0x00000042,0x0004003d,0x0000000c,0x0000009f,0x0000009e,0x0003003e,0x0000009c,0x0000009f, + 0x00050039,0x0000000f,0x000000a0,0x00000012,0x0000009c,0x0003003e,0x00000098,0x000000a0, + 0x0004003d,0x0000000f,0x000000a2,0x00000098,0x0006000c,0x0000000f,0x000000a3,0x00000001, + 0x00000022,0x000000a2,0x00040054,0x0000000f,0x000000a4,0x000000a3,0x0003003e,0x000000a1, + 0x000000a4,0x0004003d,0x0000004b,0x000000a5,0x00000081,0x000400a8,0x0000004b,0x000000a6, + 0x000000a5,0x000300f7,0x000000a8,0x00000000,0x000400fa,0x000000a6,0x000000a7,0x000000a8, + 0x000200f8,0x000000a7,0x00050041,0x00000014,0x000000ab,0x000000a1,0x00000046,0x0004003d, + 0x0000000e,0x000000ac,0x000000ab,0x0003003e,0x000000aa,0x000000ac,0x00050039,0x00000006, + 0x000000ad,0x00000017,0x000000aa,0x00050085,0x00000006,0x000000ae,0x0000006f,0x000000ad, + 0x00050041,0x00000014,0x000000af,0x00000098,0x00000046,0x0004003d,0x0000000e,0x000000b0, + 0x000000af,0x00050041,0x00000014,0x000000b1,0x000000a1,0x00000046,0x0004003d,0x0000000e, + 0x000000b2,0x000000b1,0x00050094,0x00000006,0x000000b3,0x000000b0,0x000000b2,0x00050088, + 0x00000006,0x000000b4,0x000000ae,0x000000b3,0x0003003e,0x000000a9,0x000000b4,0x0004003d, + 0x00000006,0x000000b5,0x000000a9,0x000500be,0x0000004b,0x000000b6,0x000000b5,0x0000006f, + 0x000300f7,0x000000b8,0x00000000,0x000400fa,0x000000b6,0x000000b7,0x000000c0,0x000200f8, + 0x000000b7,0x00050041,0x00000007,0x000000b9,0x00000095,0x00000035,0x0003003e,0x000000b9, + 0x0000006f,0x0004003d,0x00000006,0x000000ba,0x000000a9,0x00050088,0x00000006,0x000000bb, + 0x0000006f,0x000000ba,0x0003003e,0x000000bc,0x000000bb,0x00050039,0x00000006,0x000000bd, + 0x0000000a,0x000000bc,0x0004003d,0x00000006,0x000000be,0x00000092,0x00050085,0x00000006, + 0x000000bf,0x000000be,0x000000bd,0x0003003e,0x00000092,0x000000bf,0x000200f9,0x000000b8, + 0x000200f8,0x000000c0,0x0004003d,0x00000006,0x000000c1,0x000000a9,0x00050041,0x00000085, + 0x000000c2,0x00000083,0x00000084,0x0004003d,0x00000006,0x000000c3,0x000000c2,0x00050085, + 0x00000006,0x000000c4,0x000000c1,0x000000c3,0x00050041,0x00000007,0x000000c5,0x00000095, + 0x00000035,0x0004003d,0x00000006,0x000000c6,0x000000c5,0x00050081,0x00000006,0x000000c7, + 0x000000c6,0x000000c4,0x00050041,0x00000007,0x000000c8,0x00000095,0x00000035,0x0003003e, + 0x000000c8,0x000000c7,0x000200f9,0x000000b8,0x000200f8,0x000000b8,0x00050041,0x00000014, + 0x000000cb,0x000000a1,0x00000042,0x0004003d,0x0000000e,0x000000cc,0x000000cb,0x0003003e, + 0x000000ca,0x000000cc,0x00050039,0x00000006,0x000000cd,0x00000017,0x000000ca,0x00050085, + 0x00000006,0x000000ce,0x0000006f,0x000000cd,0x00050041,0x00000014,0x000000cf,0x00000098, + 0x00000042,0x0004003d,0x0000000e,0x000000d0,0x000000cf,0x00050041,0x00000014,0x000000d1, + 0x000000a1,0x00000042,0x0004003d,0x0000000e,0x000000d2,0x000000d1,0x00050094,0x00000006, + 0x000000d3,0x000000d0,0x000000d2,0x00050088,0x00000006,0x000000d4,0x000000ce,0x000000d3, + 0x0003003e,0x000000c9,0x000000d4,0x0004003d,0x00000006,0x000000d5,0x000000c9,0x000500be, + 0x0000004b,0x000000d6,0x000000d5,0x0000006f,0x000300f7,0x000000d8,0x00000000,0x000400fa, + 0x000000d6,0x000000d7,0x000000e0,0x000200f8,0x000000d7,0x00050041,0x00000007,0x000000d9, + 0x00000095,0x00000039,0x0003003e,0x000000d9,0x0000006f,0x0004003d,0x00000006,0x000000da, + 0x000000c9,0x00050088,0x00000006,0x000000db,0x0000006f,0x000000da,0x0003003e,0x000000dc, + 0x000000db,0x00050039,0x00000006,0x000000dd,0x0000000a,0x000000dc,0x0004003d,0x00000006, + 0x000000de,0x00000092,0x00050085,0x00000006,0x000000df,0x000000de,0x000000dd,0x0003003e, + 0x00000092,0x000000df,0x000200f9,0x000000d8,0x000200f8,0x000000e0,0x0004003d,0x00000006, + 0x000000e1,0x000000c9,0x00050041,0x00000085,0x000000e2,0x00000083,0x0000008c,0x0004003d, + 0x00000006,0x000000e3,0x000000e2,0x00050085,0x00000006,0x000000e4,0x000000e1,0x000000e3, + 0x00050041,0x00000007,0x000000e5,0x00000095,0x00000039,0x0004003d,0x00000006,0x000000e6, + 0x000000e5,0x00050081,0x00000006,0x000000e7,0x000000e6,0x000000e4,0x00050041,0x00000007, + 0x000000e8,0x00000095,0x00000039,0x0003003e,0x000000e8,0x000000e7,0x000200f9,0x000000d8, + 0x000200f8,0x000000d8,0x000200f9,0x000000a8,0x000200f8,0x000000a8,0x0004003d,0x0000000e, + 0x000000eb,0x00000095,0x0003003e,0x000000ea,0x000000eb,0x0004003d,0x0000000f,0x000000ec, + 0x00000098,0x0004003d,0x0000000e,0x000000ed,0x00000095,0x00050091,0x0000000e,0x000000ee, + 0x000000ec,0x000000ed,0x00050041,0x000000ef,0x000000f0,0x0000009b,0x00000046,0x0004003d, + 0x0000000e,0x000000f1,0x000000f0,0x00050081,0x0000000e,0x000000f2,0x000000ee,0x000000f1, + 0x0003003e,0x00000095,0x000000f2,0x0004003d,0x0000004b,0x000000f3,0x00000081,0x000300f7, + 0x000000f5,0x00000000,0x000400fa,0x000000f3,0x000000f4,0x000000f5,0x000200f8,0x000000f4, + 0x0004003d,0x0000000f,0x000000f7,0x000000a1,0x0004003d,0x0000000c,0x000000f8,0x00000083, + 0x0007004f,0x0000000e,0x000000f9,0x000000f8,0x000000f8,0x00000002,0x00000003,0x00050091, + 0x0000000e,0x000000fa,0x000000f7,0x000000f9,0x0003003e,0x000000f6,0x000000fa,0x0004003d, + 0x0000000e,0x000000fc,0x000000f6,0x0003003e,0x000000fb,0x000000fc,0x00050039,0x00000006, + 0x000000fd,0x00000017,0x000000fb,0x0004003d,0x0000000e,0x000000fe,0x000000f6,0x0004003d, + 0x0000000e,0x000000ff,0x000000f6,0x00050094,0x00000006,0x00000100,0x000000fe,0x000000ff, + 0x00050088,0x00000006,0x00000101,0x000000fd,0x00000100,0x0004003d,0x0000000e,0x00000102, + 0x000000f6,0x0005008e,0x0000000e,0x00000103,0x00000102,0x00000101,0x0003003e,0x000000f6, + 0x00000103,0x0004003d,0x0000000e,0x00000104,0x000000f6,0x0005008e,0x0000000e,0x00000105, + 0x00000104,0x0000006f,0x0004003d,0x0000000e,0x00000106,0x00000095,0x00050081,0x0000000e, + 0x00000107,0x00000106,0x00000105,0x0003003e,0x00000095,0x00000107,0x000200f9,0x000000f5, + 0x000200f8,0x000000f5,0x000300f7,0x0000010a,0x00000000,0x000400fa,0x00000108,0x00000109, + 0x0000010a,0x000200f8,0x00000109,0x00050041,0x0000009d,0x0000010f,0x0000009b,0x0000010d, + 0x0004003d,0x0000000c,0x00000110,0x0000010f,0x0003003e,0x0000010e,0x00000110,0x00050039, + 0x0000000f,0x00000111,0x00000012,0x0000010e,0x0003003e,0x00000113,0x00000111,0x00050041, + 0x000000ef,0x00000115,0x0000009b,0x00000112,0x0004003d,0x0000000e,0x00000116,0x00000115, + 0x0003003e,0x00000114,0x00000116,0x0004003d,0x0000000e,0x00000118,0x00000095,0x0003003e, + 0x00000117,0x00000118,0x00070039,0x0000000c,0x00000119,0x0000001e,0x00000113,0x00000114, + 0x00000117,0x0003003e,0x0000010c,0x00000119,0x000200f9,0x0000010a,0x000200f8,0x0000010a, + 0x00050041,0x00000007,0x0000011b,0x00000095,0x00000035,0x0004003d,0x00000006,0x0000011c, + 0x0000011b,0x00050041,0x00000122,0x00000123,0x00000120,0x00000121,0x0004003d,0x00000006, + 0x00000124,0x00000123,0x00050085,0x00000006,0x00000125,0x0000011c,0x00000124,0x00050083, + 0x00000006,0x00000126,0x00000125,0x00000029,0x00050041,0x00000007,0x00000127,0x00000095, + 0x00000039,0x0004003d,0x00000006,0x00000128,0x00000127,0x00050041,0x00000122,0x0000012a, + 0x00000120,0x00000129,0x0004003d,0x00000006,0x0000012b,0x0000012a,0x0004007f,0x00000006, + 0x0000012c,0x0000012b,0x00050085,0x00000006,0x0000012d,0x00000128,0x0000012c,0x00050041, + 0x00000122,0x0000012e,0x00000120,0x00000129,0x0004003d,0x00000006,0x0000012f,0x0000012e, + 0x0006000c,0x00000006,0x00000130,0x00000001,0x00000006,0x0000012f,0x00050081,0x00000006, + 0x00000131,0x0000012d,0x00000130,0x00070050,0x0000000c,0x00000132,0x00000126,0x00000131, + 0x0000002a,0x00000029,0x0003003e,0x0000011a,0x00000132,0x0004003d,0x0000000c,0x00000137, + 0x0000011a,0x00050041,0x0000010b,0x00000138,0x00000136,0x00000042,0x0003003e,0x00000138, + 0x00000137,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000021, + 0x00000007,0x0004003d,0x00000006,0x00000020,0x00000009,0x0003003e,0x00000021,0x00000020, + 0x0004003d,0x00000006,0x00000022,0x00000021,0x000200fe,0x00000022,0x00010038,0x00050036, + 0x0000000f,0x00000012,0x00000000,0x00000010,0x00030037,0x0000000d,0x00000011,0x000200f8, + 0x00000013,0x0004003d,0x0000000c,0x00000025,0x00000011,0x0007004f,0x0000000e,0x00000026, + 0x00000025,0x00000025,0x00000000,0x00000001,0x0004003d,0x0000000c,0x00000027,0x00000011, + 0x0007004f,0x0000000e,0x00000028,0x00000027,0x00000027,0x00000002,0x00000003,0x00050051, + 0x00000006,0x0000002b,0x00000026,0x00000000,0x00050051,0x00000006,0x0000002c,0x00000026, + 0x00000001,0x00050051,0x00000006,0x0000002d,0x00000028,0x00000000,0x00050051,0x00000006, + 0x0000002e,0x00000028,0x00000001,0x00050050,0x0000000e,0x0000002f,0x0000002b,0x0000002c, + 0x00050050,0x0000000e,0x00000030,0x0000002d,0x0000002e,0x00050050,0x0000000f,0x00000031, + 0x0000002f,0x00000030,0x000200fe,0x00000031,0x00010038,0x00050036,0x00000006,0x00000017, + 0x00000000,0x00000015,0x00030037,0x00000014,0x00000016,0x000200f8,0x00000018,0x00050041, + 0x00000007,0x00000036,0x00000016,0x00000035,0x0004003d,0x00000006,0x00000037,0x00000036, + 0x0006000c,0x00000006,0x00000038,0x00000001,0x00000004,0x00000037,0x00050041,0x00000007, + 0x0000003a,0x00000016,0x00000039,0x0004003d,0x00000006,0x0000003b,0x0000003a,0x0006000c, + 0x00000006,0x0000003c,0x00000001,0x00000004,0x0000003b,0x00050081,0x00000006,0x0000003d, + 0x00000038,0x0000003c,0x000200fe,0x0000003d,0x00010038,0x00050036,0x0000000c,0x0000001e, + 0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b,0x00030037,0x00000014,0x0000001c, + 0x00030037,0x00000014,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000014,0x00000040, + 0x00000007,0x0004003b,0x00000014,0x00000057,0x00000007,0x0004003b,0x00000014,0x0000005b, + 0x00000007,0x00050041,0x00000014,0x00000043,0x0000001b,0x00000042,0x0004003d,0x0000000e, + 0x00000044,0x00000043,0x0006000c,0x0000000e,0x00000045,0x00000001,0x00000004,0x00000044, + 0x00050041,0x00000014,0x00000047,0x0000001b,0x00000046,0x0004003d,0x0000000e,0x00000048, + 0x00000047,0x0006000c,0x0000000e,0x00000049,0x00000001,0x00000004,0x00000048,0x00050081, + 0x0000000e,0x0000004a,0x00000045,0x00000049,0x0003003e,0x00000040,0x0000004a,0x00050041, + 0x00000007,0x0000004c,0x00000040,0x00000035,0x0004003d,0x00000006,0x0000004d,0x0000004c, + 0x000500b7,0x0000004b,0x0000004e,0x0000004d,0x0000002a,0x000300f7,0x00000050,0x00000000, + 0x000400fa,0x0000004e,0x0000004f,0x00000050,0x000200f8,0x0000004f,0x00050041,0x00000007, + 0x00000051,0x00000040,0x00000039,0x0004003d,0x00000006,0x00000052,0x00000051,0x000500b7, + 0x0000004b,0x00000053,0x00000052,0x0000002a,0x000200f9,0x00000050,0x000200f8,0x00000050, + 0x000700f5,0x0000004b,0x00000054,0x0000004e,0x0000001f,0x00000053,0x0000004f,0x000300f7, + 0x00000056,0x00000000,0x000400fa,0x00000054,0x00000055,0x00000073,0x000200f8,0x00000055, + 0x0004003d,0x0000000e,0x00000058,0x00000040,0x00050050,0x0000000e,0x00000059,0x00000029, + 0x00000029,0x00050088,0x0000000e,0x0000005a,0x00000059,0x00000058,0x0003003e,0x00000057, + 0x0000005a,0x0004003d,0x0000000f,0x0000005c,0x0000001b,0x0004003d,0x0000000e,0x0000005d, + 0x0000001d,0x00050091,0x0000000e,0x0000005e,0x0000005c,0x0000005d,0x0004003d,0x0000000e, + 0x0000005f,0x0000001c,0x00050081,0x0000000e,0x00000060,0x0000005e,0x0000005f,0x0003003e, + 0x0000005b,0x00000060,0x0004003d,0x0000000e,0x00000061,0x0000005b,0x0004003d,0x0000000e, + 0x00000062,0x0000005b,0x0004007f,0x0000000e,0x00000063,0x00000062,0x00050051,0x00000006, + 0x00000064,0x00000061,0x00000000,0x00050051,0x00000006,0x00000065,0x00000061,0x00000001, + 0x00050051,0x00000006,0x00000066,0x00000063,0x00000000,0x00050051,0x00000006,0x00000067, + 0x00000063,0x00000001,0x00070050,0x0000000c,0x00000068,0x00000064,0x00000065,0x00000066, + 0x00000067,0x0004003d,0x0000000e,0x00000069,0x00000057,0x0009004f,0x0000000c,0x0000006a, + 0x00000069,0x00000069,0x00000000,0x00000001,0x00000000,0x00000001,0x00050085,0x0000000c, + 0x0000006b,0x00000068,0x0000006a,0x0004003d,0x0000000e,0x0000006c,0x00000057,0x0009004f, + 0x0000000c,0x0000006d,0x0000006c,0x0000006c,0x00000000,0x00000001,0x00000000,0x00000001, + 0x00050081,0x0000000c,0x0000006e,0x0000006b,0x0000006d,0x00070050,0x0000000c,0x00000070, + 0x0000006f,0x0000006f,0x0000006f,0x0000006f,0x00050081,0x0000000c,0x00000071,0x0000006e, + 0x00000070,0x000200fe,0x00000071,0x000200f8,0x00000073,0x0004003d,0x0000000e,0x00000074, + 0x0000001c,0x0009004f,0x0000000c,0x00000075,0x00000074,0x00000074,0x00000000,0x00000001, + 0x00000000,0x00000001,0x000200fe,0x00000075,0x000200f8,0x00000056,0x000100ff,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.fixedcolor_frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.fixedcolor_frag.h new file mode 100644 index 00000000..94044b4d --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.fixedcolor_frag.h @@ -0,0 +1,470 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_interior_triangles_fixedcolor_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000001f2,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000112, + 0x0000018f,0x000001a8,0x000001b0,0x000001e2,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628, + 0x0000003b,0x00030005,0x0000000f,0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005, + 0x00000019,0x656b616d,0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078, + 0x00060005,0x0000001d,0x656b616d,0x6c61685f,0x66283266,0x00003b31,0x00030005,0x0000001c, + 0x00000078,0x00060005,0x00000022,0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005, + 0x00000021,0x00000078,0x00070005,0x00000028,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x00000027,0x00000078,0x00060005,0x0000002b,0x656b616d,0x6e69755f, + 0x31752874,0x0000003b,0x00030005,0x0000002a,0x00000078,0x00060005,0x0000002f,0x6d6f7266, + 0x7869665f,0x75286465,0x00003b31,0x00030005,0x0000002e,0x00000078,0x00080005,0x00000035, + 0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005,0x00000032, + 0x70696c63,0x00004449,0x00050005,0x00000033,0x70696c63,0x61746144,0x00000000,0x00050005, + 0x00000034,0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000040,0x6f736572,0x5f65766c, + 0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000,0x00040005, + 0x0000003b,0x68746170,0x00004449,0x00060005,0x0000003c,0x65766f63,0x65676172,0x6e756f43, + 0x00000074,0x00060005,0x0000003d,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005, + 0x0000003e,0x67617266,0x70696c43,0x0074754f,0x00050005,0x0000003f,0x736c705f,0x726f6f43, + 0x00000064,0x00080005,0x00000045,0x74696d65,0x736c705f,0x696c635f,0x66762870,0x69763b34, + 0x00003b32,0x00050005,0x00000043,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000044, + 0x736c705f,0x726f6f43,0x00000064,0x00030005,0x00000059,0x00746572,0x00030005,0x00000063, + 0x00746572,0x00040005,0x0000008b,0x61726170,0x0000006d,0x00040005,0x00000097,0x61726170, + 0x0000006d,0x00050005,0x000000a6,0x6e696170,0x74614474,0x00000061,0x00050005,0x000000a8, + 0x6e696150,0x66754274,0x00726566,0x00050006,0x000000a8,0x00000000,0x6c61765f,0x00736575, + 0x00080005,0x000000aa,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072, + 0x00050005,0x000000b0,0x65766f63,0x65676172,0x00000000,0x00060005,0x000000bb,0x616e456b, + 0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x000000d1,0x61726170,0x0000006d,0x00040005, + 0x000000d3,0x61726170,0x0000006d,0x00060005,0x000000d6,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00040005,0x000000d9,0x70696c63,0x00004449,0x00060005,0x000000e4,0x5f6e695f, + 0x70696c63,0x66667542,0x00007265,0x00040005,0x000000e8,0x61726170,0x0000006d,0x00040005, + 0x000000ea,0x61726170,0x0000006d,0x00040005,0x000000eb,0x61726170,0x0000006d,0x00060005, + 0x000000ef,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x000000fb,0x0000004d, + 0x00060005,0x000000fd,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x000000fd, + 0x00000000,0x6c61765f,0x00736575,0x00090005,0x000000ff,0x5058455f,0x4554524f,0x61705f44, + 0x41746e69,0x75427875,0x72656666,0x00000000,0x00040005,0x00000104,0x61726170,0x0000006d, + 0x00050005,0x00000109,0x6e617274,0x74616c73,0x00000065,0x00050005,0x0000010f,0x70696c63, + 0x726f6f43,0x00000064,0x00060005,0x00000112,0x465f6c67,0x43676172,0x64726f6f,0x00000000, + 0x00040005,0x00000119,0x74736964,0x00005958,0x00040005,0x00000122,0x61726170,0x0000006d, + 0x00070005,0x00000124,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005, + 0x0000012f,0x6e696170,0x70795474,0x00000065,0x00040005,0x00000149,0x61726170,0x0000006d, + 0x00030005,0x0000014c,0x0000004d,0x00040005,0x0000014f,0x61726170,0x0000006d,0x00050005, + 0x00000153,0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000159,0x6e696170,0x6f6f4374, + 0x00006472,0x00030005,0x00000161,0x00000074,0x00030005,0x0000016f,0x00000078,0x00030005, + 0x00000177,0x00000079,0x00080005,0x0000017d,0x5058455f,0x4554524f,0x72675f44,0x65546461, + 0x72757478,0x00000065,0x00050005,0x00000181,0x64617267,0x706d6153,0x0072656c,0x00050005, + 0x0000018f,0x70696c63,0x66667542,0x00007265,0x00050005,0x00000191,0x736c705f,0x726f6f43, + 0x00000064,0x00070005,0x00000196,0x7473616c,0x65766f43,0x65676172,0x61746144,0x00000000, + 0x00080005,0x00000199,0x65766f63,0x65676172,0x6d6f7441,0x75426369,0x72656666,0x00000000, + 0x00050005,0x0000019f,0x7473616c,0x68746150,0x00004449,0x00040005,0x000001a3,0x61726170, + 0x0000006d,0x00070005,0x000001a6,0x65766f63,0x65676172,0x746c6544,0x78694661,0x00006465, + 0x00060005,0x000001a8,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00080005,0x000001ad, + 0x72727563,0x68746150,0x65766f43,0x65676172,0x61746144,0x00000000,0x00050005,0x000001b0, + 0x61705f76,0x44496874,0x00000000,0x00040005,0x000001b8,0x61726170,0x0000006d,0x00070005, + 0x000001cc,0x7473616c,0x65766f43,0x65676172,0x6e756f43,0x00000074,0x00040005,0x000001d0, + 0x61726170,0x0000006d,0x00050005,0x000001d2,0x67617266,0x70696c43,0x0074754f,0x00040005, + 0x000001d3,0x61726170,0x0000006d,0x00060005,0x000001d5,0x67617266,0x6f6c6f43,0x74754f72, + 0x00000000,0x00040005,0x000001d6,0x61726170,0x0000006d,0x00040005,0x000001d8,0x61726170, + 0x0000006d,0x00040005,0x000001da,0x61726170,0x0000006d,0x00040005,0x000001db,0x61726170, + 0x0000006d,0x00040005,0x000001dd,0x61726170,0x0000006d,0x00050005,0x000001e2,0x6172665f, + 0x6c6f4367,0x0000726f,0x00040005,0x000001e4,0x61726170,0x0000006d,0x00040005,0x000001e6, + 0x61726170,0x0000006d,0x00080005,0x000001e9,0x616e456b,0x41656c62,0x6e617664,0x42646563, + 0x646e656c,0x00000000,0x00080005,0x000001ea,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00080005,0x000001eb,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65, + 0x7365646f,0x00000000,0x00060005,0x000001ec,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00090005,0x000001ed,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170, + 0x00000000,0x00080005,0x000001ef,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e, + 0x00736d72,0x00090006,0x000001ef,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00090006,0x000001ef,0x00000001,0x73736574,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x000b0006,0x000001ef,0x00000002,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x000001ef, + 0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00080006,0x000001ef,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957, + 0x00000068,0x00080006,0x000001ef,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548, + 0x00007468,0x00070006,0x000001ef,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c, + 0x00080006,0x000001ef,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575, + 0x000a0006,0x000001ef,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574, + 0x73646e75,0x00000000,0x00090006,0x000001ef,0x00000009,0x65766f63,0x65676172,0x66667542, + 0x72507265,0x78696665,0x00000000,0x00080006,0x000001ef,0x0000000a,0x68746170,0x72474449, + 0x6c756e61,0x74697261,0x00000079,0x00080006,0x000001ef,0x0000000b,0x74726576,0x69447865, + 0x72616373,0x6c615664,0x00006575,0x00050005,0x000001f1,0x66696e75,0x736d726f,0x00000000, + 0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000,0x00030047,0x00000016, + 0x00000000,0x00030047,0x00000019,0x00000000,0x00030047,0x00000018,0x00000000,0x00030047, + 0x0000001d,0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x00000022,0x00000000, + 0x00030047,0x00000021,0x00000000,0x00030047,0x0000002a,0x00000000,0x00030047,0x0000002f, + 0x00000000,0x00030047,0x00000033,0x00000000,0x00030047,0x00000034,0x00000000,0x00030047, + 0x0000003c,0x00000000,0x00030047,0x0000003d,0x00000000,0x00030047,0x0000003e,0x00000000, + 0x00030047,0x00000043,0x00000000,0x00030047,0x00000048,0x00000000,0x00030047,0x00000049, + 0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047,0x0000004e,0x00000000,0x00030047, + 0x00000052,0x00000000,0x00030047,0x00000053,0x00000000,0x00030047,0x00000056,0x00000000, + 0x00030047,0x00000059,0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x0000005d, + 0x00000000,0x00030047,0x00000060,0x00000000,0x00030047,0x00000063,0x00000000,0x00030047, + 0x00000064,0x00000000,0x00030047,0x00000066,0x00000000,0x00030047,0x00000068,0x00000000, + 0x00030047,0x0000006b,0x00000000,0x00030047,0x0000006e,0x00000000,0x00030047,0x00000080, + 0x00000000,0x00030047,0x0000008c,0x00000000,0x00030047,0x0000008f,0x00000000,0x00030047, + 0x00000090,0x00000000,0x00030047,0x00000097,0x00000000,0x00030047,0x00000098,0x00000000, + 0x00030047,0x0000009f,0x00000000,0x00030047,0x000000a1,0x00000000,0x00030047,0x000000a2, + 0x00000000,0x00040047,0x000000a7,0x00000006,0x00000008,0x00040048,0x000000a8,0x00000000, + 0x00000018,0x00050048,0x000000a8,0x00000000,0x00000023,0x00000000,0x00030047,0x000000a8, + 0x00000003,0x00040047,0x000000aa,0x00000022,0x00000000,0x00040047,0x000000aa,0x00000021, + 0x00000004,0x00030047,0x000000b0,0x00000000,0x00030047,0x000000b1,0x00000000,0x00030047, + 0x000000b9,0x00000000,0x00030047,0x000000ba,0x00000000,0x00040047,0x000000bb,0x00000001, + 0x00000003,0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c8,0x00000000,0x00030047, + 0x000000c9,0x00000000,0x00030047,0x000000cb,0x00000000,0x00030047,0x000000cd,0x00000000, + 0x00030047,0x000000ce,0x00000000,0x00030047,0x000000cf,0x00000000,0x00030047,0x000000d0, + 0x00000000,0x00030047,0x000000d1,0x00000000,0x00030047,0x000000d2,0x00000000,0x00030047, + 0x000000d3,0x00000000,0x00030047,0x000000d4,0x00000000,0x00030047,0x000000d5,0x00000000, + 0x00040047,0x000000d6,0x00000001,0x00000000,0x00030047,0x000000e4,0x00000000,0x00040047, + 0x000000e4,0x00000022,0x00000003,0x00040047,0x000000e4,0x00000021,0x00000001,0x00040047, + 0x000000e4,0x0000002b,0x00000001,0x00030047,0x000000e5,0x00000000,0x00030047,0x000000e7, + 0x00000000,0x00030047,0x000000ea,0x00000000,0x00030047,0x000000eb,0x00000000,0x00030047, + 0x000000ec,0x00000000,0x00040047,0x000000ef,0x00000001,0x00000001,0x00040047,0x000000fc, + 0x00000006,0x00000010,0x00040048,0x000000fd,0x00000000,0x00000018,0x00050048,0x000000fd, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000000fd,0x00000003,0x00040047,0x000000ff, + 0x00000022,0x00000000,0x00040047,0x000000ff,0x00000021,0x00000005,0x00040047,0x00000112, + 0x0000000b,0x0000000f,0x00030047,0x00000119,0x00000000,0x00030047,0x00000123,0x00000000, + 0x00030047,0x00000124,0x00000000,0x00030047,0x00000126,0x00000000,0x00030047,0x00000128, + 0x00000000,0x00030047,0x00000129,0x00000000,0x00030047,0x0000012a,0x00000000,0x00030047, + 0x0000012b,0x00000000,0x00030047,0x0000012c,0x00000000,0x00030047,0x0000012d,0x00000000, + 0x00030047,0x0000012e,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047,0x00000141, + 0x00000000,0x00030047,0x00000146,0x00000000,0x00030047,0x00000149,0x00000000,0x00030047, + 0x0000014a,0x00000000,0x00030047,0x0000017d,0x00000000,0x00040047,0x0000017d,0x00000022, + 0x00000000,0x00040047,0x0000017d,0x00000021,0x00000001,0x00030047,0x0000017e,0x00000000, + 0x00030047,0x00000181,0x00000000,0x00040047,0x00000181,0x00000022,0x00000002,0x00040047, + 0x00000181,0x00000021,0x00000001,0x00030047,0x00000182,0x00000000,0x00030047,0x00000188, + 0x00000000,0x00030047,0x00000189,0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047, + 0x0000018c,0x00000000,0x00030047,0x0000018f,0x00000000,0x00040047,0x0000018f,0x0000001e, + 0x00000001,0x00030047,0x00000190,0x00000000,0x00040047,0x00000199,0x00000022,0x00000003, + 0x00040047,0x00000199,0x00000021,0x00000003,0x00030047,0x00000199,0x00000017,0x00030047, + 0x0000019f,0x00000000,0x00030047,0x000001a4,0x00000000,0x00030047,0x000001a8,0x00000000, + 0x00030047,0x000001a8,0x0000000e,0x00040047,0x000001a8,0x0000001e,0x00000000,0x00030047, + 0x000001a9,0x00000000,0x00030047,0x000001ab,0x00000000,0x00030047,0x000001ac,0x00000000, + 0x00030047,0x000001ae,0x00000000,0x00030047,0x000001b0,0x00000000,0x00030047,0x000001b0, + 0x0000000e,0x00040047,0x000001b0,0x0000001e,0x00000001,0x00030047,0x000001b1,0x00000000, + 0x00030047,0x000001b8,0x00000000,0x00030047,0x000001b9,0x00000000,0x00030047,0x000001c6, + 0x00000000,0x00030047,0x000001c7,0x00000000,0x00030047,0x000001cc,0x00000000,0x00030047, + 0x000001d1,0x00000000,0x00030047,0x000001d2,0x00000000,0x00030047,0x000001d3,0x00000000, + 0x00030047,0x000001d4,0x00000000,0x00030047,0x000001d5,0x00000000,0x00030047,0x000001d7, + 0x00000000,0x00030047,0x000001d8,0x00000000,0x00030047,0x000001d9,0x00000000,0x00030047, + 0x000001da,0x00000000,0x00030047,0x000001db,0x00000000,0x00030047,0x000001dc,0x00000000, + 0x00030047,0x000001e2,0x00000000,0x00040047,0x000001e2,0x0000001e,0x00000000,0x00030047, + 0x000001e3,0x00000000,0x00030047,0x000001e4,0x00000000,0x00030047,0x000001e5,0x00000000, + 0x00040047,0x000001e9,0x00000001,0x00000002,0x00040047,0x000001ea,0x00000001,0x00000004, + 0x00040047,0x000001eb,0x00000001,0x00000005,0x00040047,0x000001ec,0x00000001,0x00000006, + 0x00040047,0x000001ed,0x00000001,0x00000007,0x00050048,0x000001ef,0x00000000,0x00000023, + 0x00000000,0x00050048,0x000001ef,0x00000001,0x00000023,0x00000004,0x00050048,0x000001ef, + 0x00000002,0x00000023,0x00000008,0x00050048,0x000001ef,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x000001ef,0x00000004,0x00000023,0x00000010,0x00050048,0x000001ef,0x00000005, + 0x00000023,0x00000014,0x00050048,0x000001ef,0x00000006,0x00000023,0x00000018,0x00050048, + 0x000001ef,0x00000007,0x00000023,0x0000001c,0x00050048,0x000001ef,0x00000008,0x00000023, + 0x00000020,0x00050048,0x000001ef,0x00000009,0x00000023,0x00000030,0x00050048,0x000001ef, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x000001ef,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x000001ef,0x00000002,0x00040047,0x000001f1,0x00000022,0x00000000,0x00040047, + 0x000001f1,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021, + 0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002,0x00040020, + 0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00040015, + 0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007,0x00000012,0x00040021, + 0x00000014,0x00000012,0x00000013,0x00040021,0x0000001b,0x0000000c,0x00000007,0x00040017, + 0x0000001f,0x00000006,0x00000004,0x00040021,0x00000020,0x0000001f,0x00000007,0x00040020, + 0x00000024,0x00000007,0x0000001f,0x00040018,0x00000025,0x0000000c,0x00000002,0x00040021, + 0x00000026,0x00000025,0x00000024,0x00040021,0x0000002d,0x00000006,0x00000013,0x00060021, + 0x00000031,0x00000002,0x00000013,0x00000024,0x00000007,0x00040015,0x00000037,0x00000020, + 0x00000001,0x00040017,0x00000038,0x00000037,0x00000002,0x00040020,0x00000039,0x00000007, + 0x00000038,0x00080021,0x0000003a,0x00000002,0x00000013,0x00000007,0x00000024,0x00000024, + 0x00000039,0x00050021,0x00000042,0x00000002,0x00000024,0x00000039,0x0004002b,0x00000012, + 0x0000005b,0x00000000,0x0004002b,0x00000012,0x0000005e,0x00000001,0x0004002b,0x00000012, + 0x00000069,0x00000002,0x0004002b,0x00000012,0x0000006c,0x00000003,0x0004002b,0x00000006, + 0x00000075,0x3f800000,0x0004002b,0x00000006,0x00000076,0x00000000,0x0004002b,0x00000006, + 0x00000087,0x3b000000,0x0004002b,0x00000006,0x00000089,0xc2800000,0x0004002b,0x00000006, + 0x00000096,0x3a808081,0x00020014,0x00000099,0x00040017,0x0000009a,0x00000099,0x00000002, + 0x00040017,0x000000a4,0x00000012,0x00000002,0x00040020,0x000000a5,0x00000007,0x000000a4, + 0x0003001d,0x000000a7,0x000000a4,0x0003001e,0x000000a8,0x000000a7,0x00040020,0x000000a9, + 0x00000002,0x000000a8,0x0004003b,0x000000a9,0x000000aa,0x00000002,0x0004002b,0x00000037, + 0x000000ab,0x00000000,0x00040020,0x000000ad,0x00000002,0x000000a4,0x0004002b,0x00000012, + 0x000000b4,0x00000300,0x00030031,0x00000099,0x000000bb,0x0004002b,0x00000012,0x000000c0, + 0x00000200,0x0004002b,0x00000006,0x000000c7,0x3f000000,0x0004002b,0x00000006,0x000000ca, + 0x40000000,0x0004002b,0x00000006,0x000000cc,0xbf800000,0x00030031,0x00000099,0x000000d6, + 0x0004002b,0x00000012,0x000000dc,0x00000010,0x00090019,0x000000e2,0x00000006,0x00000006, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x000000e3,0x00000000, + 0x000000e2,0x0004003b,0x000000e3,0x000000e4,0x00000000,0x0005002c,0x00000038,0x000000e6, + 0x000000ab,0x000000ab,0x00030031,0x00000099,0x000000ef,0x0004002b,0x00000012,0x000000f4, + 0x00000400,0x00040020,0x000000fa,0x00000007,0x00000025,0x0003001d,0x000000fc,0x0000001f, + 0x0003001e,0x000000fd,0x000000fc,0x00040020,0x000000fe,0x00000002,0x000000fd,0x0004003b, + 0x000000fe,0x000000ff,0x00000002,0x0004002b,0x00000012,0x00000101,0x00000004,0x00040020, + 0x00000105,0x00000002,0x0000001f,0x00040020,0x00000111,0x00000001,0x0000001f,0x0004003b, + 0x00000111,0x00000112,0x00000001,0x0004002b,0x00000012,0x00000132,0x0000000f,0x00090019, + 0x0000017b,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x0000017c,0x00000000,0x0000017b,0x0004003b,0x0000017c,0x0000017d,0x00000000, + 0x0002001a,0x0000017f,0x00040020,0x00000180,0x00000000,0x0000017f,0x0004003b,0x00000180, + 0x00000181,0x00000000,0x0003001b,0x00000183,0x0000017b,0x00040020,0x0000018e,0x00000003, + 0x0000001f,0x0004003b,0x0000018e,0x0000018f,0x00000003,0x00090019,0x00000197,0x00000012, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000198, + 0x00000000,0x00000197,0x0004003b,0x00000198,0x00000199,0x00000000,0x00040017,0x0000019c, + 0x00000012,0x00000004,0x0004002b,0x00000037,0x000001a1,0x00000010,0x00040020,0x000001a5, + 0x00000007,0x00000037,0x00040020,0x000001a7,0x00000001,0x00000006,0x0004003b,0x000001a7, + 0x000001a8,0x00000001,0x0004002b,0x00000006,0x000001aa,0x44000000,0x00040020,0x000001af, + 0x00000001,0x00000012,0x0004003b,0x000001af,0x000001b0,0x00000001,0x0004002b,0x00000012, + 0x000001bc,0x00008000,0x0004002b,0x00000012,0x000001ce,0x0000ffff,0x0004003b,0x0000018e, + 0x000001e2,0x00000003,0x00030031,0x00000099,0x000001e9,0x00030031,0x00000099,0x000001ea, + 0x00030031,0x00000099,0x000001eb,0x00030031,0x00000099,0x000001ec,0x00030031,0x00000099, + 0x000001ed,0x00040017,0x000001ee,0x00000037,0x00000004,0x000e001e,0x000001ef,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012,0x00000012,0x000001ee, + 0x00000012,0x00000012,0x00000006,0x00040020,0x000001f0,0x00000002,0x000001ef,0x0004003b, + 0x000001f0,0x000001f1,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x00000039,0x00000191,0x00000007,0x0004003b,0x00000013, + 0x00000196,0x00000007,0x0004003b,0x00000013,0x0000019f,0x00000007,0x0004003b,0x00000013, + 0x000001a3,0x00000007,0x0004003b,0x000001a5,0x000001a6,0x00000007,0x0004003b,0x00000013, + 0x000001ad,0x00000007,0x0004003b,0x00000013,0x000001b3,0x00000007,0x0004003b,0x00000013, + 0x000001b8,0x00000007,0x0004003b,0x00000007,0x000001cc,0x00000007,0x0004003b,0x00000013, + 0x000001d0,0x00000007,0x0004003b,0x00000024,0x000001d2,0x00000007,0x0004003b,0x00000007, + 0x000001d3,0x00000007,0x0004003b,0x00000024,0x000001d5,0x00000007,0x0004003b,0x00000013, + 0x000001d6,0x00000007,0x0004003b,0x00000007,0x000001d8,0x00000007,0x0004003b,0x00000024, + 0x000001da,0x00000007,0x0004003b,0x00000024,0x000001db,0x00000007,0x0004003b,0x00000039, + 0x000001dd,0x00000007,0x0004003b,0x00000024,0x000001e4,0x00000007,0x0004003b,0x00000039, + 0x000001e6,0x00000007,0x0004003d,0x0000001f,0x00000192,0x00000112,0x0007004f,0x0000000c, + 0x00000193,0x00000192,0x00000192,0x00000000,0x00000001,0x0006000c,0x0000000c,0x00000194, + 0x00000001,0x00000008,0x00000193,0x0004006e,0x00000038,0x00000195,0x00000194,0x0003003e, + 0x00000191,0x00000195,0x0004003d,0x00000197,0x0000019a,0x00000199,0x0004003d,0x00000038, + 0x0000019b,0x00000191,0x00050062,0x0000019c,0x0000019d,0x0000019a,0x0000019b,0x00050051, + 0x00000012,0x0000019e,0x0000019d,0x00000000,0x0003003e,0x00000196,0x0000019e,0x0004003d, + 0x00000012,0x000001a0,0x00000196,0x000500c2,0x00000012,0x000001a2,0x000001a0,0x000001a1, + 0x0003003e,0x000001a3,0x000001a2,0x00050039,0x00000012,0x000001a4,0x00000016,0x000001a3, + 0x0003003e,0x0000019f,0x000001a4,0x0004003d,0x00000006,0x000001a9,0x000001a8,0x00050085, + 0x00000006,0x000001ab,0x000001a9,0x000001aa,0x0004006e,0x00000037,0x000001ac,0x000001ab, + 0x0003003e,0x000001a6,0x000001ac,0x0004003d,0x00000012,0x000001ae,0x0000019f,0x0004003d, + 0x00000012,0x000001b1,0x000001b0,0x000500aa,0x00000099,0x000001b2,0x000001ae,0x000001b1, + 0x000300f7,0x000001b5,0x00000000,0x000400fa,0x000001b2,0x000001b4,0x000001b7,0x000200f8, + 0x000001b4,0x0004003d,0x00000012,0x000001b6,0x00000196,0x0003003e,0x000001b3,0x000001b6, + 0x000200f9,0x000001b5,0x000200f8,0x000001b7,0x0004003d,0x00000012,0x000001b9,0x000001b0, + 0x0003003e,0x000001b8,0x000001b9,0x00050039,0x00000012,0x000001ba,0x0000002b,0x000001b8, + 0x000500c4,0x00000012,0x000001bb,0x000001ba,0x000001a1,0x00050080,0x00000012,0x000001bd, + 0x000001bb,0x000001bc,0x0003003e,0x000001b3,0x000001bd,0x000200f9,0x000001b5,0x000200f8, + 0x000001b5,0x0004003d,0x00000012,0x000001be,0x000001b3,0x0003003e,0x000001ad,0x000001be, + 0x0004003d,0x00000197,0x000001bf,0x00000199,0x0004003d,0x00000038,0x000001c0,0x00000191, + 0x0004003d,0x00000012,0x000001c1,0x000001ad,0x0004003d,0x00000037,0x000001c2,0x000001a6, + 0x0004007c,0x00000012,0x000001c3,0x000001c2,0x00050080,0x00000012,0x000001c4,0x000001c1, + 0x000001c3,0x00070050,0x0000019c,0x000001c5,0x000001c4,0x000001c4,0x000001c4,0x000001c4, + 0x00040063,0x000001bf,0x000001c0,0x000001c5,0x0004003d,0x00000012,0x000001c6,0x0000019f, + 0x0004003d,0x00000012,0x000001c7,0x000001b0,0x000500aa,0x00000099,0x000001c8,0x000001c6, + 0x000001c7,0x000300f7,0x000001ca,0x00000000,0x000400fa,0x000001c8,0x000001c9,0x000001ca, + 0x000200f8,0x000001c9,0x000100fc,0x000200f8,0x000001ca,0x0004003d,0x00000012,0x000001cd, + 0x00000196,0x000500c7,0x00000012,0x000001cf,0x000001cd,0x000001ce,0x0003003e,0x000001d0, + 0x000001cf,0x00050039,0x00000006,0x000001d1,0x0000002f,0x000001d0,0x0003003e,0x000001cc, + 0x000001d1,0x0003003e,0x000001d3,0x00000076,0x00050039,0x0000001f,0x000001d4,0x00000022, + 0x000001d3,0x0003003e,0x000001d2,0x000001d4,0x0004003d,0x00000012,0x000001d7,0x0000019f, + 0x0003003e,0x000001d6,0x000001d7,0x0004003d,0x00000006,0x000001d9,0x000001cc,0x0003003e, + 0x000001d8,0x000001d9,0x0004003d,0x0000001f,0x000001dc,0x000001d2,0x0003003e,0x000001db, + 0x000001dc,0x0004003d,0x00000038,0x000001de,0x00000191,0x0003003e,0x000001dd,0x000001de, + 0x00090039,0x00000002,0x000001df,0x00000040,0x000001d6,0x000001d8,0x000001da,0x000001db, + 0x000001dd,0x0004003d,0x0000001f,0x000001e0,0x000001da,0x0003003e,0x000001d5,0x000001e0, + 0x0004003d,0x0000001f,0x000001e1,0x000001db,0x0003003e,0x000001d2,0x000001e1,0x0004003d, + 0x0000001f,0x000001e3,0x000001d5,0x0003003e,0x000001e2,0x000001e3,0x0004003d,0x0000001f, + 0x000001e5,0x000001d2,0x0003003e,0x000001e4,0x000001e5,0x0004003d,0x00000038,0x000001e7, + 0x00000191,0x0003003e,0x000001e6,0x000001e7,0x00060039,0x00000002,0x000001e8,0x00000045, + 0x000001e4,0x000001e6,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000, + 0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007, + 0x00000048,0x00000007,0x0004003d,0x00000006,0x00000047,0x00000009,0x0003003e,0x00000048, + 0x00000047,0x0004003d,0x00000006,0x00000049,0x00000048,0x000200fe,0x00000049,0x00010038, + 0x00050036,0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f, + 0x000200f8,0x00000011,0x0004003b,0x0000000d,0x0000004d,0x00000007,0x0004003d,0x0000000c, + 0x0000004c,0x0000000f,0x0003003e,0x0000004d,0x0000004c,0x0004003d,0x0000000c,0x0000004e, + 0x0000004d,0x000200fe,0x0000004e,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000, + 0x00000014,0x00030037,0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013, + 0x00000052,0x00000007,0x0004003d,0x00000012,0x00000051,0x00000015,0x0003003e,0x00000052, + 0x00000051,0x0004003d,0x00000012,0x00000053,0x00000052,0x000200fe,0x00000053,0x00010038, + 0x00050036,0x00000006,0x00000019,0x00000000,0x00000008,0x00030037,0x00000007,0x00000018, + 0x000200f8,0x0000001a,0x0004003d,0x00000006,0x00000056,0x00000018,0x000200fe,0x00000056, + 0x00010038,0x00050036,0x0000000c,0x0000001d,0x00000000,0x0000001b,0x00030037,0x00000007, + 0x0000001c,0x000200f8,0x0000001e,0x0004003b,0x0000000d,0x00000059,0x00000007,0x0004003d, + 0x00000006,0x0000005a,0x0000001c,0x00050041,0x00000007,0x0000005c,0x00000059,0x0000005b, + 0x0003003e,0x0000005c,0x0000005a,0x0004003d,0x00000006,0x0000005d,0x0000001c,0x00050041, + 0x00000007,0x0000005f,0x00000059,0x0000005e,0x0003003e,0x0000005f,0x0000005d,0x0004003d, + 0x0000000c,0x00000060,0x00000059,0x000200fe,0x00000060,0x00010038,0x00050036,0x0000001f, + 0x00000022,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023, + 0x0004003b,0x00000024,0x00000063,0x00000007,0x0004003d,0x00000006,0x00000064,0x00000021, + 0x00050041,0x00000007,0x00000065,0x00000063,0x0000005b,0x0003003e,0x00000065,0x00000064, + 0x0004003d,0x00000006,0x00000066,0x00000021,0x00050041,0x00000007,0x00000067,0x00000063, + 0x0000005e,0x0003003e,0x00000067,0x00000066,0x0004003d,0x00000006,0x00000068,0x00000021, + 0x00050041,0x00000007,0x0000006a,0x00000063,0x00000069,0x0003003e,0x0000006a,0x00000068, + 0x0004003d,0x00000006,0x0000006b,0x00000021,0x00050041,0x00000007,0x0000006d,0x00000063, + 0x0000006c,0x0003003e,0x0000006d,0x0000006b,0x0004003d,0x0000001f,0x0000006e,0x00000063, + 0x000200fe,0x0000006e,0x00010038,0x00050036,0x00000025,0x00000028,0x00000000,0x00000026, + 0x00030037,0x00000024,0x00000027,0x000200f8,0x00000029,0x0004003d,0x0000001f,0x00000071, + 0x00000027,0x0007004f,0x0000000c,0x00000072,0x00000071,0x00000071,0x00000000,0x00000001, + 0x0004003d,0x0000001f,0x00000073,0x00000027,0x0007004f,0x0000000c,0x00000074,0x00000073, + 0x00000073,0x00000002,0x00000003,0x00050051,0x00000006,0x00000077,0x00000072,0x00000000, + 0x00050051,0x00000006,0x00000078,0x00000072,0x00000001,0x00050051,0x00000006,0x00000079, + 0x00000074,0x00000000,0x00050051,0x00000006,0x0000007a,0x00000074,0x00000001,0x00050050, + 0x0000000c,0x0000007b,0x00000077,0x00000078,0x00050050,0x0000000c,0x0000007c,0x00000079, + 0x0000007a,0x00050050,0x00000025,0x0000007d,0x0000007b,0x0000007c,0x000200fe,0x0000007d, + 0x00010038,0x00050036,0x00000012,0x0000002b,0x00000000,0x00000014,0x00030037,0x00000013, + 0x0000002a,0x000200f8,0x0000002c,0x0004003b,0x00000013,0x00000081,0x00000007,0x0004003d, + 0x00000012,0x00000080,0x0000002a,0x0003003e,0x00000081,0x00000080,0x0004003d,0x00000012, + 0x00000082,0x00000081,0x000200fe,0x00000082,0x00010038,0x00050036,0x00000006,0x0000002f, + 0x00000000,0x0000002d,0x00030037,0x00000013,0x0000002e,0x000200f8,0x00000030,0x0004003b, + 0x00000007,0x0000008b,0x00000007,0x0004003d,0x00000012,0x00000085,0x0000002e,0x00040070, + 0x00000006,0x00000086,0x00000085,0x00050085,0x00000006,0x00000088,0x00000086,0x00000087, + 0x00050081,0x00000006,0x0000008a,0x00000088,0x00000089,0x0003003e,0x0000008b,0x0000008a, + 0x00050039,0x00000006,0x0000008c,0x0000000a,0x0000008b,0x000200fe,0x0000008c,0x00010038, + 0x00050036,0x00000002,0x00000035,0x00000000,0x00000031,0x00030037,0x00000013,0x00000032, + 0x00030037,0x00000024,0x00000033,0x00030037,0x00000007,0x00000034,0x000200f8,0x00000036, + 0x0004003b,0x00000007,0x00000097,0x00000007,0x0004003d,0x0000001f,0x0000008f,0x00000033, + 0x0007004f,0x0000000c,0x00000090,0x0000008f,0x0000008f,0x00000000,0x00000001,0x0004003d, + 0x00000012,0x00000091,0x00000032,0x0006000c,0x0000001f,0x00000092,0x00000001,0x00000040, + 0x00000091,0x0007004f,0x0000000c,0x00000093,0x00000092,0x00000092,0x00000000,0x00000001, + 0x00050083,0x0000000c,0x00000094,0x00000090,0x00000093,0x0006000c,0x0000000c,0x00000095, + 0x00000001,0x00000004,0x00000094,0x0003003e,0x00000097,0x00000096,0x00050039,0x0000000c, + 0x00000098,0x0000001d,0x00000097,0x000500b8,0x0000009a,0x0000009b,0x00000095,0x00000098, + 0x0004009b,0x00000099,0x0000009c,0x0000009b,0x000300f7,0x0000009e,0x00000000,0x000400fa, + 0x0000009c,0x0000009d,0x000000a3,0x000200f8,0x0000009d,0x0004003d,0x00000006,0x0000009f, + 0x00000034,0x00050041,0x00000007,0x000000a0,0x00000033,0x00000069,0x0004003d,0x00000006, + 0x000000a1,0x000000a0,0x0007000c,0x00000006,0x000000a2,0x00000001,0x00000025,0x0000009f, + 0x000000a1,0x0003003e,0x00000034,0x000000a2,0x000200f9,0x0000009e,0x000200f8,0x000000a3, + 0x0003003e,0x00000034,0x00000076,0x000200f9,0x0000009e,0x000200f8,0x0000009e,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000040,0x00000000,0x0000003a,0x00030037,0x00000013, + 0x0000003b,0x00030037,0x00000007,0x0000003c,0x00030037,0x00000024,0x0000003d,0x00030037, + 0x00000024,0x0000003e,0x00030037,0x00000039,0x0000003f,0x000200f8,0x00000041,0x0004003b, + 0x000000a5,0x000000a6,0x00000007,0x0004003b,0x00000007,0x000000b0,0x00000007,0x0004003b, + 0x00000007,0x000000d1,0x00000007,0x0004003b,0x00000007,0x000000d3,0x00000007,0x0004003b, + 0x00000013,0x000000d9,0x00000007,0x0004003b,0x00000013,0x000000e8,0x00000007,0x0004003b, + 0x00000024,0x000000ea,0x00000007,0x0004003b,0x00000007,0x000000eb,0x00000007,0x0004003b, + 0x000000fa,0x000000fb,0x00000007,0x0004003b,0x00000024,0x00000104,0x00000007,0x0004003b, + 0x00000024,0x00000109,0x00000007,0x0004003b,0x0000000d,0x0000010f,0x00000007,0x0004003b, + 0x0000000d,0x00000119,0x00000007,0x0004003b,0x0000000d,0x00000122,0x00000007,0x0004003b, + 0x00000007,0x00000124,0x00000007,0x0004003b,0x00000013,0x0000012f,0x00000007,0x0004003b, + 0x00000007,0x00000149,0x00000007,0x0004003b,0x000000fa,0x0000014c,0x00000007,0x0004003b, + 0x00000024,0x0000014f,0x00000007,0x0004003b,0x00000024,0x00000153,0x00000007,0x0004003b, + 0x0000000d,0x00000159,0x00000007,0x0004003b,0x00000007,0x00000161,0x00000007,0x0004003b, + 0x00000007,0x00000164,0x00000007,0x0004003b,0x00000007,0x0000016f,0x00000007,0x0004003b, + 0x00000007,0x00000177,0x00000007,0x0004003d,0x00000012,0x000000ac,0x0000003b,0x00060041, + 0x000000ad,0x000000ae,0x000000aa,0x000000ab,0x000000ac,0x0004003d,0x000000a4,0x000000af, + 0x000000ae,0x0003003e,0x000000a6,0x000000af,0x0004003d,0x00000006,0x000000b1,0x0000003c, + 0x0003003e,0x000000b0,0x000000b1,0x00050041,0x00000013,0x000000b2,0x000000a6,0x0000005b, + 0x0004003d,0x00000012,0x000000b3,0x000000b2,0x000500c7,0x00000012,0x000000b5,0x000000b3, + 0x000000b4,0x000500ab,0x00000099,0x000000b6,0x000000b5,0x0000005b,0x000300f7,0x000000b8, + 0x00000000,0x000400fa,0x000000b6,0x000000b7,0x000000b8,0x000200f8,0x000000b7,0x0004003d, + 0x00000006,0x000000b9,0x000000b0,0x0006000c,0x00000006,0x000000ba,0x00000001,0x00000004, + 0x000000b9,0x0003003e,0x000000b0,0x000000ba,0x000300f7,0x000000bd,0x00000000,0x000400fa, + 0x000000bb,0x000000bc,0x000000bd,0x000200f8,0x000000bc,0x00050041,0x00000013,0x000000be, + 0x000000a6,0x0000005b,0x0004003d,0x00000012,0x000000bf,0x000000be,0x000500c7,0x00000012, + 0x000000c1,0x000000bf,0x000000c0,0x000500ab,0x00000099,0x000000c2,0x000000c1,0x0000005b, + 0x000200f9,0x000000bd,0x000200f8,0x000000bd,0x000700f5,0x00000099,0x000000c3,0x000000bb, + 0x000000b7,0x000000c2,0x000000bc,0x000300f7,0x000000c5,0x00000000,0x000400fa,0x000000c3, + 0x000000c4,0x000000c5,0x000200f8,0x000000c4,0x0004003d,0x00000006,0x000000c6,0x000000b0, + 0x00050085,0x00000006,0x000000c8,0x000000c6,0x000000c7,0x0006000c,0x00000006,0x000000c9, + 0x00000001,0x0000000a,0x000000c8,0x00050085,0x00000006,0x000000cb,0x000000c9,0x000000ca, + 0x00050081,0x00000006,0x000000cd,0x000000cb,0x000000cc,0x0006000c,0x00000006,0x000000ce, + 0x00000001,0x00000004,0x000000cd,0x00050083,0x00000006,0x000000cf,0x00000075,0x000000ce, + 0x0003003e,0x000000b0,0x000000cf,0x000200f9,0x000000c5,0x000200f8,0x000000c5,0x000200f9, + 0x000000b8,0x000200f8,0x000000b8,0x0004003d,0x00000006,0x000000d0,0x000000b0,0x0003003e, + 0x000000d1,0x00000076,0x00050039,0x00000006,0x000000d2,0x00000019,0x000000d1,0x0003003e, + 0x000000d3,0x00000075,0x00050039,0x00000006,0x000000d4,0x00000019,0x000000d3,0x0008000c, + 0x00000006,0x000000d5,0x00000001,0x0000002b,0x000000d0,0x000000d2,0x000000d4,0x0003003e, + 0x000000b0,0x000000d5,0x000300f7,0x000000d8,0x00000000,0x000400fa,0x000000d6,0x000000d7, + 0x000000d8,0x000200f8,0x000000d7,0x00050041,0x00000013,0x000000da,0x000000a6,0x0000005b, + 0x0004003d,0x00000012,0x000000db,0x000000da,0x000500c2,0x00000012,0x000000dd,0x000000db, + 0x000000dc,0x0003003e,0x000000d9,0x000000dd,0x0004003d,0x00000012,0x000000de,0x000000d9, + 0x000500ab,0x00000099,0x000000df,0x000000de,0x0000005b,0x000300f7,0x000000e1,0x00000000, + 0x000400fa,0x000000df,0x000000e0,0x000000e1,0x000200f8,0x000000e0,0x0004003d,0x000000e2, + 0x000000e5,0x000000e4,0x00050062,0x0000001f,0x000000e7,0x000000e5,0x000000e6,0x0004003d, + 0x00000012,0x000000e9,0x000000d9,0x0003003e,0x000000e8,0x000000e9,0x0003003e,0x000000ea, + 0x000000e7,0x0004003d,0x00000006,0x000000ec,0x000000b0,0x0003003e,0x000000eb,0x000000ec, + 0x00070039,0x00000002,0x000000ed,0x00000035,0x000000e8,0x000000ea,0x000000eb,0x0004003d, + 0x00000006,0x000000ee,0x000000eb,0x0003003e,0x000000b0,0x000000ee,0x000200f9,0x000000e1, + 0x000200f8,0x000000e1,0x000200f9,0x000000d8,0x000200f8,0x000000d8,0x000300f7,0x000000f1, + 0x00000000,0x000400fa,0x000000ef,0x000000f0,0x000000f1,0x000200f8,0x000000f0,0x00050041, + 0x00000013,0x000000f2,0x000000a6,0x0000005b,0x0004003d,0x00000012,0x000000f3,0x000000f2, + 0x000500c7,0x00000012,0x000000f5,0x000000f3,0x000000f4,0x000500ab,0x00000099,0x000000f6, + 0x000000f5,0x0000005b,0x000200f9,0x000000f1,0x000200f8,0x000000f1,0x000700f5,0x00000099, + 0x000000f7,0x000000ef,0x000000d8,0x000000f6,0x000000f0,0x000300f7,0x000000f9,0x00000000, + 0x000400fa,0x000000f7,0x000000f8,0x000000f9,0x000200f8,0x000000f8,0x0004003d,0x00000012, + 0x00000100,0x0000003b,0x00050084,0x00000012,0x00000102,0x00000100,0x00000101,0x00050080, + 0x00000012,0x00000103,0x00000102,0x00000069,0x00060041,0x00000105,0x00000106,0x000000ff, + 0x000000ab,0x00000103,0x0004003d,0x0000001f,0x00000107,0x00000106,0x0003003e,0x00000104, + 0x00000107,0x00050039,0x00000025,0x00000108,0x00000028,0x00000104,0x0003003e,0x000000fb, + 0x00000108,0x0004003d,0x00000012,0x0000010a,0x0000003b,0x00050084,0x00000012,0x0000010b, + 0x0000010a,0x00000101,0x00050080,0x00000012,0x0000010c,0x0000010b,0x0000006c,0x00060041, + 0x00000105,0x0000010d,0x000000ff,0x000000ab,0x0000010c,0x0004003d,0x0000001f,0x0000010e, + 0x0000010d,0x0003003e,0x00000109,0x0000010e,0x0004003d,0x00000025,0x00000110,0x000000fb, + 0x0004003d,0x0000001f,0x00000113,0x00000112,0x0007004f,0x0000000c,0x00000114,0x00000113, + 0x00000113,0x00000000,0x00000001,0x00050091,0x0000000c,0x00000115,0x00000110,0x00000114, + 0x0004003d,0x0000001f,0x00000116,0x00000109,0x0007004f,0x0000000c,0x00000117,0x00000116, + 0x00000116,0x00000000,0x00000001,0x00050081,0x0000000c,0x00000118,0x00000115,0x00000117, + 0x0003003e,0x0000010f,0x00000118,0x0004003d,0x0000000c,0x0000011a,0x0000010f,0x0006000c, + 0x0000000c,0x0000011b,0x00000001,0x00000004,0x0000011a,0x0004003d,0x0000001f,0x0000011c, + 0x00000109,0x0007004f,0x0000000c,0x0000011d,0x0000011c,0x0000011c,0x00000002,0x00000003, + 0x00050085,0x0000000c,0x0000011e,0x0000011b,0x0000011d,0x0004003d,0x0000001f,0x0000011f, + 0x00000109,0x0007004f,0x0000000c,0x00000120,0x0000011f,0x0000011f,0x00000002,0x00000003, + 0x00050083,0x0000000c,0x00000121,0x0000011e,0x00000120,0x0003003e,0x00000122,0x00000121, + 0x00050039,0x0000000c,0x00000123,0x00000010,0x00000122,0x0003003e,0x00000119,0x00000123, + 0x00050041,0x00000007,0x00000125,0x00000119,0x0000005b,0x0004003d,0x00000006,0x00000126, + 0x00000125,0x00050041,0x00000007,0x00000127,0x00000119,0x0000005e,0x0004003d,0x00000006, + 0x00000128,0x00000127,0x0007000c,0x00000006,0x00000129,0x00000001,0x00000025,0x00000126, + 0x00000128,0x00050081,0x00000006,0x0000012a,0x00000129,0x000000c7,0x0008000c,0x00000006, + 0x0000012b,0x00000001,0x0000002b,0x0000012a,0x00000076,0x00000075,0x0003003e,0x00000124, + 0x0000012b,0x0004003d,0x00000006,0x0000012c,0x000000b0,0x0004003d,0x00000006,0x0000012d, + 0x00000124,0x0007000c,0x00000006,0x0000012e,0x00000001,0x00000025,0x0000012c,0x0000012d, + 0x0003003e,0x000000b0,0x0000012e,0x000200f9,0x000000f9,0x000200f8,0x000000f9,0x00050041, + 0x00000013,0x00000130,0x000000a6,0x0000005b,0x0004003d,0x00000012,0x00000131,0x00000130, + 0x000500c7,0x00000012,0x00000133,0x00000131,0x00000132,0x0003003e,0x0000012f,0x00000133, + 0x0004003d,0x00000012,0x00000134,0x0000012f,0x000500b2,0x00000099,0x00000135,0x00000134, + 0x0000005e,0x000300f7,0x00000137,0x00000000,0x000400fa,0x00000135,0x00000136,0x0000014b, + 0x000200f8,0x00000136,0x00050041,0x00000013,0x00000138,0x000000a6,0x0000005e,0x0004003d, + 0x00000012,0x00000139,0x00000138,0x0006000c,0x0000001f,0x0000013a,0x00000001,0x00000040, + 0x00000139,0x0003003e,0x0000003d,0x0000013a,0x0004003d,0x00000012,0x0000013b,0x0000012f, + 0x000500aa,0x00000099,0x0000013c,0x0000013b,0x0000005b,0x000500a7,0x00000099,0x0000013d, + 0x000000d6,0x0000013c,0x000300f7,0x0000013f,0x00000000,0x000400fa,0x0000013d,0x0000013e, + 0x0000013f,0x000200f8,0x0000013e,0x0004003d,0x0000001f,0x00000140,0x0000003d,0x0007004f, + 0x0000000c,0x00000141,0x00000140,0x00000140,0x00000002,0x00000003,0x00050041,0x00000007, + 0x00000142,0x0000003e,0x0000005b,0x00050051,0x00000006,0x00000143,0x00000141,0x00000000, + 0x0003003e,0x00000142,0x00000143,0x00050041,0x00000007,0x00000144,0x0000003e,0x0000005e, + 0x00050051,0x00000006,0x00000145,0x00000141,0x00000001,0x0003003e,0x00000144,0x00000145, + 0x0004003d,0x00000006,0x00000146,0x000000b0,0x00050041,0x00000007,0x00000147,0x0000003e, + 0x00000069,0x0003003e,0x00000147,0x00000146,0x00050041,0x00000007,0x00000148,0x0000003e, + 0x0000006c,0x0003003e,0x00000148,0x00000075,0x0003003e,0x00000149,0x00000076,0x00050039, + 0x0000001f,0x0000014a,0x00000022,0x00000149,0x0003003e,0x0000003d,0x0000014a,0x000200f9, + 0x0000013f,0x000200f8,0x0000013f,0x000200f9,0x00000137,0x000200f8,0x0000014b,0x0004003d, + 0x00000012,0x0000014d,0x0000003b,0x00050084,0x00000012,0x0000014e,0x0000014d,0x00000101, + 0x00060041,0x00000105,0x00000150,0x000000ff,0x000000ab,0x0000014e,0x0004003d,0x0000001f, + 0x00000151,0x00000150,0x0003003e,0x0000014f,0x00000151,0x00050039,0x00000025,0x00000152, + 0x00000028,0x0000014f,0x0003003e,0x0000014c,0x00000152,0x0004003d,0x00000012,0x00000154, + 0x0000003b,0x00050084,0x00000012,0x00000155,0x00000154,0x00000101,0x00050080,0x00000012, + 0x00000156,0x00000155,0x0000005e,0x00060041,0x00000105,0x00000157,0x000000ff,0x000000ab, + 0x00000156,0x0004003d,0x0000001f,0x00000158,0x00000157,0x0003003e,0x00000153,0x00000158, + 0x0004003d,0x00000025,0x0000015a,0x0000014c,0x0004003d,0x0000001f,0x0000015b,0x00000112, + 0x0007004f,0x0000000c,0x0000015c,0x0000015b,0x0000015b,0x00000000,0x00000001,0x00050091, + 0x0000000c,0x0000015d,0x0000015a,0x0000015c,0x0004003d,0x0000001f,0x0000015e,0x00000153, + 0x0007004f,0x0000000c,0x0000015f,0x0000015e,0x0000015e,0x00000000,0x00000001,0x00050081, + 0x0000000c,0x00000160,0x0000015d,0x0000015f,0x0003003e,0x00000159,0x00000160,0x0004003d, + 0x00000012,0x00000162,0x0000012f,0x000500aa,0x00000099,0x00000163,0x00000162,0x00000069, + 0x000300f7,0x00000166,0x00000000,0x000400fa,0x00000163,0x00000165,0x00000169,0x000200f8, + 0x00000165,0x00050041,0x00000007,0x00000167,0x00000159,0x0000005b,0x0004003d,0x00000006, + 0x00000168,0x00000167,0x0003003e,0x00000164,0x00000168,0x000200f9,0x00000166,0x000200f8, + 0x00000169,0x0004003d,0x0000000c,0x0000016a,0x00000159,0x0006000c,0x00000006,0x0000016b, + 0x00000001,0x00000042,0x0000016a,0x0003003e,0x00000164,0x0000016b,0x000200f9,0x00000166, + 0x000200f8,0x00000166,0x0004003d,0x00000006,0x0000016c,0x00000164,0x0003003e,0x00000161, + 0x0000016c,0x0004003d,0x00000006,0x0000016d,0x00000161,0x0008000c,0x00000006,0x0000016e, + 0x00000001,0x0000002b,0x0000016d,0x00000076,0x00000075,0x0003003e,0x00000161,0x0000016e, + 0x0004003d,0x00000006,0x00000170,0x00000161,0x00050041,0x00000007,0x00000171,0x00000153, + 0x00000069,0x0004003d,0x00000006,0x00000172,0x00000171,0x00050085,0x00000006,0x00000173, + 0x00000170,0x00000172,0x00050041,0x00000007,0x00000174,0x00000153,0x0000006c,0x0004003d, + 0x00000006,0x00000175,0x00000174,0x00050081,0x00000006,0x00000176,0x00000173,0x00000175, + 0x0003003e,0x0000016f,0x00000176,0x00050041,0x00000013,0x00000178,0x000000a6,0x0000005e, + 0x0004003d,0x00000012,0x00000179,0x00000178,0x0004007c,0x00000006,0x0000017a,0x00000179, + 0x0003003e,0x00000177,0x0000017a,0x0004003d,0x0000017b,0x0000017e,0x0000017d,0x0004003d, + 0x0000017f,0x00000182,0x00000181,0x00050056,0x00000183,0x00000184,0x0000017e,0x00000182, + 0x0004003d,0x00000006,0x00000185,0x0000016f,0x0004003d,0x00000006,0x00000186,0x00000177, + 0x00050050,0x0000000c,0x00000187,0x00000185,0x00000186,0x00070058,0x0000001f,0x00000188, + 0x00000184,0x00000187,0x00000002,0x00000076,0x0003003e,0x0000003d,0x00000188,0x000200f9, + 0x00000137,0x000200f8,0x00000137,0x0004003d,0x00000006,0x00000189,0x000000b0,0x00050041, + 0x00000007,0x0000018a,0x0000003d,0x0000006c,0x0004003d,0x00000006,0x0000018b,0x0000018a, + 0x00050085,0x00000006,0x0000018c,0x0000018b,0x00000189,0x00050041,0x00000007,0x0000018d, + 0x0000003d,0x0000006c,0x0003003e,0x0000018d,0x0000018c,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000045,0x00000000,0x00000042,0x00030037,0x00000024,0x00000043,0x00030037, + 0x00000039,0x00000044,0x000200f8,0x00000046,0x0004003d,0x0000001f,0x00000190,0x00000043, + 0x0003003e,0x0000018f,0x00000190,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.frag.h new file mode 100644 index 00000000..af3a0dd1 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.frag.h @@ -0,0 +1,1124 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_interior_triangles_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000004b1,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000003a6, + 0x0000044c,0x0000044e,0x00000466,0x0000046e,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628, + 0x0000003b,0x00030005,0x0000000f,0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005, + 0x00000019,0x656b616d,0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078, + 0x00070005,0x0000001e,0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005, + 0x0000001c,0x00000078,0x00030005,0x0000001d,0x00000079,0x00060005,0x00000022,0x656b616d, + 0x6c61685f,0x66283266,0x00003b31,0x00030005,0x00000021,0x00000078,0x00080005,0x00000029, + 0x656b616d,0x6c61685f,0x66283366,0x31663b31,0x3b31663b,0x00000000,0x00030005,0x00000026, + 0x00000078,0x00030005,0x00000027,0x00000079,0x00030005,0x00000028,0x0000007a,0x00060005, + 0x0000002d,0x656b616d,0x6c61685f,0x66283366,0x00003b31,0x00030005,0x0000002c,0x00000078, + 0x00060005,0x00000032,0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000031, + 0x00000078,0x00080005,0x00000039,0x656b616d,0x6c61685f,0x33783266,0x33667628,0x3366763b, + 0x0000003b,0x00030005,0x00000037,0x00000061,0x00030005,0x00000038,0x00000062,0x00070005, + 0x0000003f,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x0000003e, + 0x00000078,0x00060005,0x00000042,0x656b616d,0x6e69755f,0x31752874,0x0000003b,0x00030005, + 0x00000041,0x00000078,0x00060005,0x00000046,0x756d6e75,0x7069746c,0x7628796c,0x003b3466, + 0x00040005,0x00000045,0x6f6c6f63,0x00000072,0x00050005,0x0000004a,0x766e696d,0x66762833, + 0x00003b33,0x00030005,0x00000049,0x00000063,0x00050005,0x0000004d,0x7678616d,0x66762833, + 0x00003b33,0x00030005,0x0000004c,0x00000063,0x00050005,0x00000050,0x766d756c,0x66762833, + 0x00003b33,0x00030005,0x0000004f,0x00000063,0x00050005,0x00000053,0x76746173,0x66762833, + 0x00003b33,0x00030005,0x00000052,0x00000063,0x00060005,0x00000057,0x70696c63,0x6c6f635f, + 0x7628726f,0x003b3366,0x00040005,0x00000056,0x6f6c6f63,0x00000072,0x00070005,0x0000005c, + 0x5f746573,0x286d756c,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005a,0x73616263, + 0x00000065,0x00040005,0x0000005b,0x6d756c63,0x00000000,0x00090005,0x00000062,0x5f746573, + 0x5f6d756c,0x28746173,0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005f, + 0x73616263,0x00000065,0x00040005,0x00000060,0x74617363,0x00000000,0x00040005,0x00000061, + 0x6d756c63,0x00000000,0x000b0005,0x00000068,0x61766461,0x6465636e,0x656c625f,0x635f646e, + 0x6666656f,0x66762873,0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000065,0x00637273, + 0x00030005,0x00000066,0x00747364,0x00040005,0x00000067,0x65646f6d,0x00000000,0x000e0005, + 0x0000006e,0x61766461,0x6465636e,0x6c6f635f,0x625f726f,0x646e656c,0x6572705f,0x6372735f, + 0x65766f5f,0x66762872,0x66763b33,0x31753b34,0x0000003b,0x00030005,0x0000006b,0x00637273, + 0x00030005,0x0000006c,0x00747364,0x00040005,0x0000006d,0x65646f6d,0x00000000,0x00060005, + 0x00000072,0x6d6f7266,0x7869665f,0x75286465,0x00003b31,0x00030005,0x00000071,0x00000078, + 0x00080005,0x00000078,0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b, + 0x00040005,0x00000075,0x70696c63,0x00004449,0x00050005,0x00000076,0x70696c63,0x61746144, + 0x00000000,0x00050005,0x00000077,0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000083, + 0x6f736572,0x5f65766c,0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976, + 0x00000000,0x00040005,0x0000007e,0x68746170,0x00004449,0x00060005,0x0000007f,0x65766f63, + 0x65676172,0x6e756f43,0x00000074,0x00060005,0x00000080,0x67617266,0x6f6c6f43,0x74754f72, + 0x00000000,0x00050005,0x00000081,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000082, + 0x736c705f,0x726f6f43,0x00000064,0x00080005,0x00000088,0x74696d65,0x736c705f,0x6c6f635f, + 0x7628726f,0x763b3466,0x003b3269,0x00060005,0x00000086,0x67617266,0x6f6c6f43,0x74754f72, + 0x00000000,0x00050005,0x00000087,0x736c705f,0x726f6f43,0x00000064,0x00080005,0x0000008c, + 0x74696d65,0x736c705f,0x696c635f,0x66762870,0x69763b34,0x00003b32,0x00050005,0x0000008a, + 0x67617266,0x70696c43,0x0074754f,0x00050005,0x0000008b,0x736c705f,0x726f6f43,0x00000064, + 0x00030005,0x000000a0,0x00746572,0x00030005,0x000000aa,0x00746572,0x00030005,0x000000b2, + 0x00746572,0x00030005,0x000000bd,0x00746572,0x00030005,0x000000c7,0x00746572,0x00030005, + 0x000000d5,0x00746572,0x00040005,0x0000010d,0x61726170,0x0000006d,0x00040005,0x00000112, + 0x61726170,0x0000006d,0x00040005,0x00000138,0x61726170,0x0000006d,0x00040005,0x00000139, + 0x61726170,0x0000006d,0x00040005,0x0000013a,0x61726170,0x0000006d,0x00040005,0x0000013f, + 0x61726170,0x0000006d,0x00040005,0x00000142,0x61726170,0x0000006d,0x00030005,0x00000148, + 0x006d756c,0x00040005,0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014c,0x636e696d, + 0x00006c6f,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000150,0x6378616d, + 0x00006c6f,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005,0x0000017c,0x7361626c, + 0x00000065,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005,0x00000180,0x6d756c6c, + 0x00000000,0x00040005,0x00000181,0x61726170,0x0000006d,0x00040005,0x00000184,0x6669646c, + 0x00000066,0x00040005,0x00000188,0x6f6c6f63,0x00000072,0x00040005,0x0000018a,0x61726170, + 0x0000006d,0x00040005,0x0000018e,0x61726170,0x0000006d,0x00040005,0x00000193,0x626e696d, + 0x00657361,0x00040005,0x00000194,0x61726170,0x0000006d,0x00040005,0x00000197,0x73616273, + 0x00000065,0x00040005,0x00000198,0x61726170,0x0000006d,0x00040005,0x0000019b,0x74617373, + 0x00000000,0x00040005,0x0000019c,0x61726170,0x0000006d,0x00040005,0x000001a3,0x6f6c6f63, + 0x00000072,0x00040005,0x000001ae,0x61726170,0x0000006d,0x00040005,0x000001b0,0x61726170, + 0x0000006d,0x00040005,0x000001b2,0x61726170,0x0000006d,0x00040005,0x000001c8,0x66656f63, + 0x00007366,0x00030005,0x000001d6,0x00000069,0x00040005,0x0000020f,0x61726170,0x0000006d, + 0x00040005,0x00000212,0x61726170,0x0000006d,0x00040005,0x00000215,0x61726170,0x0000006d, + 0x00040005,0x00000223,0x61726170,0x0000006d,0x00040005,0x00000226,0x61726170,0x0000006d, + 0x00030005,0x0000022b,0x00000069,0x00030005,0x00000254,0x00000069,0x00080005,0x000002c1, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005,0x000002c5, + 0x61726170,0x0000006d,0x00040005,0x000002c7,0x61726170,0x0000006d,0x00040005,0x000002ca, + 0x61726170,0x0000006d,0x00040005,0x000002cc,0x61726170,0x0000006d,0x00040005,0x000002ce, + 0x61726170,0x0000006d,0x00040005,0x000002d5,0x61726170,0x0000006d,0x00040005,0x000002d7, + 0x61726170,0x0000006d,0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002dc, + 0x61726170,0x0000006d,0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002e5, + 0x61726170,0x0000006d,0x00040005,0x000002e7,0x61726170,0x0000006d,0x00040005,0x000002ea, + 0x61726170,0x0000006d,0x00040005,0x000002ec,0x61726170,0x0000006d,0x00040005,0x000002f3, + 0x61726170,0x0000006d,0x00040005,0x000002f5,0x61726170,0x0000006d,0x00040005,0x000002f8, + 0x61726170,0x0000006d,0x00040005,0x000002fa,0x61726170,0x0000006d,0x00040005,0x00000302, + 0x66656f63,0x00007366,0x00040005,0x00000303,0x61726170,0x0000006d,0x00040005,0x00000305, + 0x61726170,0x0000006d,0x00040005,0x00000308,0x61726170,0x0000006d,0x00030005,0x0000030b, + 0x00000070,0x00040005,0x0000030f,0x61726170,0x0000006d,0x00040005,0x00000312,0x61726170, + 0x0000006d,0x00040005,0x00000314,0x61726170,0x0000006d,0x00040005,0x00000316,0x61726170, + 0x0000006d,0x00040005,0x00000323,0x61726170,0x0000006d,0x00040005,0x0000032f,0x61726170, + 0x0000006d,0x00050005,0x0000033d,0x6e696170,0x74614474,0x00000061,0x00050005,0x0000033f, + 0x6e696150,0x66754274,0x00726566,0x00050006,0x0000033f,0x00000000,0x6c61765f,0x00736575, + 0x00080005,0x00000341,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072, + 0x00050005,0x00000346,0x65766f63,0x65676172,0x00000000,0x00060005,0x00000351,0x616e456b, + 0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x00000365,0x61726170,0x0000006d,0x00040005, + 0x00000367,0x61726170,0x0000006d,0x00060005,0x0000036a,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00040005,0x0000036d,0x70696c63,0x00004449,0x00060005,0x00000378,0x5f6e695f, + 0x70696c63,0x66667542,0x00007265,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005, + 0x0000037e,0x61726170,0x0000006d,0x00040005,0x0000037f,0x61726170,0x0000006d,0x00060005, + 0x00000383,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x0000038f,0x0000004d, + 0x00060005,0x00000391,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000391, + 0x00000000,0x6c61765f,0x00736575,0x00090005,0x00000393,0x5058455f,0x4554524f,0x61705f44, + 0x41746e69,0x75427875,0x72656666,0x00000000,0x00040005,0x00000398,0x61726170,0x0000006d, + 0x00050005,0x0000039d,0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003a3,0x70696c63, + 0x726f6f43,0x00000064,0x00060005,0x000003a6,0x465f6c67,0x43676172,0x64726f6f,0x00000000, + 0x00040005,0x000003ad,0x74736964,0x00005958,0x00040005,0x000003b6,0x61726170,0x0000006d, + 0x00070005,0x000003b8,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005, + 0x000003c3,0x6e696170,0x70795474,0x00000065,0x00040005,0x000003dd,0x61726170,0x0000006d, + 0x00030005,0x000003e0,0x0000004d,0x00040005,0x000003e3,0x61726170,0x0000006d,0x00050005, + 0x000003e7,0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003ed,0x6e696170,0x6f6f4374, + 0x00006472,0x00030005,0x000003f5,0x00000074,0x00030005,0x00000403,0x00000078,0x00030005, + 0x0000040b,0x00000079,0x00080005,0x00000411,0x5058455f,0x4554524f,0x72675f44,0x65546461, + 0x72757478,0x00000065,0x00050005,0x00000415,0x64617267,0x706d6153,0x0072656c,0x00080005, + 0x00000422,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005, + 0x0000042b,0x6e656c62,0x646f4d64,0x00000065,0x00040005,0x00000431,0x61726170,0x0000006d, + 0x00050005,0x00000437,0x43747364,0x726f6c6f,0x00000000,0x00060005,0x00000438,0x5f6e695f, + 0x6f6c6f63,0x66754272,0x00726566,0x00040005,0x0000043b,0x61726170,0x0000006d,0x00040005, + 0x0000043e,0x61726170,0x0000006d,0x00040005,0x00000441,0x61726170,0x0000006d,0x00040005, + 0x00000442,0x61726170,0x0000006d,0x00050005,0x0000044c,0x6f6c6f63,0x66754272,0x00726566, + 0x00050005,0x0000044e,0x70696c63,0x66667542,0x00007265,0x00050005,0x00000450,0x736c705f, + 0x726f6f43,0x00000064,0x00070005,0x00000455,0x7473616c,0x65766f43,0x65676172,0x61746144, + 0x00000000,0x00080005,0x00000458,0x65766f63,0x65676172,0x6d6f7441,0x75426369,0x72656666, + 0x00000000,0x00050005,0x0000045e,0x7473616c,0x68746150,0x00004449,0x00040005,0x00000462, + 0x61726170,0x0000006d,0x00070005,0x00000464,0x65766f63,0x65676172,0x746c6544,0x78694661, + 0x00006465,0x00060005,0x00000466,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00080005, + 0x0000046b,0x72727563,0x68746150,0x65766f43,0x65676172,0x61746144,0x00000000,0x00050005, + 0x0000046e,0x61705f76,0x44496874,0x00000000,0x00040005,0x00000476,0x61726170,0x0000006d, + 0x00070005,0x0000048a,0x7473616c,0x65766f43,0x65676172,0x6e756f43,0x00000074,0x00040005, + 0x0000048e,0x61726170,0x0000006d,0x00050005,0x00000490,0x67617266,0x70696c43,0x0074754f, + 0x00040005,0x00000491,0x61726170,0x0000006d,0x00060005,0x00000493,0x67617266,0x6f6c6f43, + 0x74754f72,0x00000000,0x00040005,0x00000494,0x61726170,0x0000006d,0x00040005,0x00000496, + 0x61726170,0x0000006d,0x00040005,0x00000498,0x61726170,0x0000006d,0x00040005,0x00000499, + 0x61726170,0x0000006d,0x00040005,0x0000049b,0x61726170,0x0000006d,0x00040005,0x000004a0, + 0x61726170,0x0000006d,0x00040005,0x000004a2,0x61726170,0x0000006d,0x00040005,0x000004a5, + 0x61726170,0x0000006d,0x00040005,0x000004a7,0x61726170,0x0000006d,0x00080005,0x000004aa, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00060005,0x000004ab, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000004ac,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x000004ae,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x000004ae,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x000004ae, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x000004ae,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x000004ae,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x000004ae,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x000004ae,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x000004ae,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x000004ae,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x000004ae,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x000004ae, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x000004ae,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x000004ae,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x000004b0,0x66696e75,0x736d726f,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047, + 0x00000010,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000019,0x00000000, + 0x00030047,0x00000018,0x00000000,0x00030047,0x0000001e,0x00000000,0x00030047,0x0000001c, + 0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x00000022,0x00000000,0x00030047, + 0x00000021,0x00000000,0x00030047,0x00000029,0x00000000,0x00030047,0x00000026,0x00000000, + 0x00030047,0x00000027,0x00000000,0x00030047,0x00000028,0x00000000,0x00030047,0x0000002d, + 0x00000000,0x00030047,0x0000002c,0x00000000,0x00030047,0x00000032,0x00000000,0x00030047, + 0x00000031,0x00000000,0x00030047,0x00000039,0x00000000,0x00030047,0x00000037,0x00000000, + 0x00030047,0x00000038,0x00000000,0x00030047,0x00000041,0x00000000,0x00030047,0x00000046, + 0x00000000,0x00030047,0x00000045,0x00000000,0x00030047,0x0000004a,0x00000000,0x00030047, + 0x00000049,0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047,0x0000004c,0x00000000, + 0x00030047,0x00000050,0x00000000,0x00030047,0x0000004f,0x00000000,0x00030047,0x00000053, + 0x00000000,0x00030047,0x00000052,0x00000000,0x00030047,0x00000057,0x00000000,0x00030047, + 0x00000056,0x00000000,0x00030047,0x0000005c,0x00000000,0x00030047,0x0000005a,0x00000000, + 0x00030047,0x0000005b,0x00000000,0x00030047,0x00000062,0x00000000,0x00030047,0x0000005f, + 0x00000000,0x00030047,0x00000060,0x00000000,0x00030047,0x00000061,0x00000000,0x00030047, + 0x00000068,0x00000000,0x00030047,0x00000065,0x00000000,0x00030047,0x00000066,0x00000000, + 0x00030047,0x00000067,0x00000000,0x00030047,0x0000006e,0x00000000,0x00030047,0x0000006b, + 0x00000000,0x00030047,0x0000006c,0x00000000,0x00030047,0x0000006d,0x00000000,0x00030047, + 0x00000072,0x00000000,0x00030047,0x00000076,0x00000000,0x00030047,0x00000077,0x00000000, + 0x00030047,0x0000007f,0x00000000,0x00030047,0x00000080,0x00000000,0x00030047,0x00000081, + 0x00000000,0x00030047,0x00000086,0x00000000,0x00030047,0x0000008a,0x00000000,0x00030047, + 0x0000008f,0x00000000,0x00030047,0x00000090,0x00000000,0x00030047,0x00000094,0x00000000, + 0x00030047,0x00000095,0x00000000,0x00030047,0x00000099,0x00000000,0x00030047,0x0000009a, + 0x00000000,0x00030047,0x0000009d,0x00000000,0x00030047,0x000000a0,0x00000000,0x00030047, + 0x000000a1,0x00000000,0x00030047,0x000000a4,0x00000000,0x00030047,0x000000a7,0x00000000, + 0x00030047,0x000000aa,0x00000000,0x00030047,0x000000ab,0x00000000,0x00030047,0x000000ad, + 0x00000000,0x00030047,0x000000af,0x00000000,0x00030047,0x000000b2,0x00000000,0x00030047, + 0x000000b3,0x00000000,0x00030047,0x000000b5,0x00000000,0x00030047,0x000000b7,0x00000000, + 0x00030047,0x000000ba,0x00000000,0x00030047,0x000000bd,0x00000000,0x00030047,0x000000be, + 0x00000000,0x00030047,0x000000c0,0x00000000,0x00030047,0x000000c2,0x00000000,0x00030047, + 0x000000c4,0x00000000,0x00030047,0x000000c7,0x00000000,0x00030047,0x000000c8,0x00000000, + 0x00030047,0x000000ca,0x00000000,0x00030047,0x000000cc,0x00000000,0x00030047,0x000000ce, + 0x00000000,0x00030047,0x000000d1,0x00000000,0x00030047,0x000000d5,0x00000000,0x00030047, + 0x000000d7,0x00000000,0x00030047,0x000000da,0x00000000,0x00030047,0x000000dc,0x00000000, + 0x00030047,0x000000ee,0x00000000,0x00030047,0x000000f5,0x00000000,0x00030047,0x000000fa, + 0x00000000,0x00030047,0x00000100,0x00000000,0x00030047,0x00000101,0x00000000,0x00030047, + 0x00000102,0x00000000,0x00030047,0x00000103,0x00000000,0x00030047,0x00000104,0x00000000, + 0x00030047,0x0000010b,0x00000000,0x00030047,0x0000010c,0x00000000,0x00030047,0x0000010d, + 0x00000000,0x00030047,0x0000010e,0x00000000,0x00030047,0x0000010f,0x00000000,0x00030047, + 0x00000110,0x00000000,0x00030047,0x00000112,0x00000000,0x00030047,0x00000113,0x00000000, + 0x00030047,0x00000115,0x00000000,0x00030047,0x00000116,0x00000000,0x00030047,0x0000011d, + 0x00000000,0x00030047,0x00000121,0x00000000,0x00030047,0x00000123,0x00000000,0x00030047, + 0x00000124,0x00000000,0x00030047,0x00000126,0x00000000,0x00030047,0x00000127,0x00000000, + 0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012d,0x00000000,0x00030047,0x0000012e, + 0x00000000,0x00030047,0x00000130,0x00000000,0x00030047,0x00000131,0x00000000,0x00030047, + 0x00000134,0x00000000,0x00030047,0x00000138,0x00000000,0x00030047,0x00000139,0x00000000, + 0x00030047,0x0000013a,0x00000000,0x00030047,0x0000013b,0x00000000,0x00030047,0x0000013c, + 0x00000000,0x00030047,0x0000013f,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047, + 0x00000141,0x00000000,0x00030047,0x00000142,0x00000000,0x00030047,0x00000143,0x00000000, + 0x00030047,0x00000144,0x00000000,0x00030047,0x00000145,0x00000000,0x00030047,0x00000148, + 0x00000000,0x00030047,0x00000149,0x00000000,0x00030047,0x0000014a,0x00000000,0x00030047, + 0x0000014b,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047,0x0000014d,0x00000000, + 0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000,0x00030047,0x00000150, + 0x00000000,0x00030047,0x00000151,0x00000000,0x00030047,0x00000152,0x00000000,0x00030047, + 0x00000153,0x00000000,0x00030047,0x00000154,0x00000000,0x00030047,0x00000158,0x00000000, + 0x00030047,0x00000159,0x00000000,0x00030047,0x0000015a,0x00000000,0x00030047,0x0000015b, + 0x00000000,0x00030047,0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047, + 0x0000015e,0x00000000,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000160,0x00000000, + 0x00030047,0x00000161,0x00000000,0x00030047,0x00000162,0x00000000,0x00030047,0x00000163, + 0x00000000,0x00030047,0x00000164,0x00000000,0x00030047,0x00000165,0x00000000,0x00030047, + 0x00000166,0x00000000,0x00030047,0x0000016a,0x00000000,0x00030047,0x0000016b,0x00000000, + 0x00030047,0x0000016c,0x00000000,0x00030047,0x0000016d,0x00000000,0x00030047,0x0000016e, + 0x00000000,0x00030047,0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047, + 0x00000171,0x00000000,0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000, + 0x00030047,0x00000174,0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176, + 0x00000000,0x00030047,0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047, + 0x00000179,0x00000000,0x00030047,0x0000017c,0x00000000,0x00030047,0x0000017d,0x00000000, + 0x00030047,0x0000017e,0x00000000,0x00030047,0x0000017f,0x00000000,0x00030047,0x00000180, + 0x00000000,0x00030047,0x00000181,0x00000000,0x00030047,0x00000182,0x00000000,0x00030047, + 0x00000183,0x00000000,0x00030047,0x00000184,0x00000000,0x00030047,0x00000185,0x00000000, + 0x00030047,0x00000186,0x00000000,0x00030047,0x00000187,0x00000000,0x00030047,0x00000188, + 0x00000000,0x00030047,0x00000189,0x00000000,0x00030047,0x0000018a,0x00000000,0x00030047, + 0x0000018b,0x00000000,0x00030047,0x0000018c,0x00000000,0x00030047,0x0000018d,0x00000000, + 0x00030047,0x0000018e,0x00000000,0x00030047,0x0000018f,0x00000000,0x00030047,0x00000190, + 0x00000000,0x00030047,0x00000193,0x00000000,0x00030047,0x00000194,0x00000000,0x00030047, + 0x00000195,0x00000000,0x00030047,0x00000196,0x00000000,0x00030047,0x00000197,0x00000000, + 0x00030047,0x00000198,0x00000000,0x00030047,0x00000199,0x00000000,0x00030047,0x0000019a, + 0x00000000,0x00030047,0x0000019b,0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047, + 0x0000019d,0x00000000,0x00030047,0x0000019e,0x00000000,0x00030047,0x0000019f,0x00000000, + 0x00030047,0x000001a3,0x00000000,0x00030047,0x000001a4,0x00000000,0x00030047,0x000001a5, + 0x00000000,0x00030047,0x000001a6,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047, + 0x000001a8,0x00000000,0x00030047,0x000001a9,0x00000000,0x00030047,0x000001aa,0x00000000, + 0x00030047,0x000001ab,0x00000000,0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ae, + 0x00000000,0x00030047,0x000001af,0x00000000,0x00030047,0x000001b0,0x00000000,0x00030047, + 0x000001b1,0x00000000,0x00030047,0x000001b2,0x00000000,0x00030047,0x000001b3,0x00000000, + 0x00030047,0x000001b4,0x00000000,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001c8, + 0x00000000,0x00030047,0x000001c9,0x00000000,0x00030047,0x000001ca,0x00000000,0x00030047, + 0x000001cb,0x00000000,0x00030047,0x000001cd,0x00000000,0x00030047,0x000001ce,0x00000000, + 0x00030047,0x000001cf,0x00000000,0x00030047,0x000001d0,0x00000000,0x00030047,0x000001d1, + 0x00000000,0x00030047,0x000001d2,0x00000000,0x00030047,0x000001d3,0x00000000,0x00030047, + 0x000001e1,0x00000000,0x00030047,0x000001ea,0x00000000,0x00030047,0x000001eb,0x00000000, + 0x00030047,0x000001ee,0x00000000,0x00030047,0x000001ef,0x00000000,0x00030047,0x000001f5, + 0x00000000,0x00030047,0x000001f6,0x00000000,0x00030047,0x000001f7,0x00000000,0x00030047, + 0x000001fa,0x00000000,0x00030047,0x000001fb,0x00000000,0x00030047,0x000001fc,0x00000000, + 0x00030047,0x000001fd,0x00000000,0x00030047,0x00000202,0x00000000,0x00030047,0x00000203, + 0x00000000,0x00030047,0x00000204,0x00000000,0x00030047,0x00000206,0x00000000,0x00030047, + 0x00000207,0x00000000,0x00030047,0x00000208,0x00000000,0x00030047,0x0000020a,0x00000000, + 0x00030047,0x0000020b,0x00000000,0x00030047,0x0000020c,0x00000000,0x00030047,0x0000020d, + 0x00000000,0x00030047,0x0000020e,0x00000000,0x00030047,0x0000020f,0x00000000,0x00030047, + 0x00000210,0x00000000,0x00030047,0x00000211,0x00000000,0x00030047,0x00000212,0x00000000, + 0x00030047,0x00000213,0x00000000,0x00030047,0x00000214,0x00000000,0x00030047,0x00000215, + 0x00000000,0x00030047,0x00000216,0x00000000,0x00030047,0x00000217,0x00000000,0x00030047, + 0x00000218,0x00000000,0x00030047,0x0000021a,0x00000000,0x00030047,0x0000021b,0x00000000, + 0x00030047,0x0000021c,0x00000000,0x00030047,0x0000021d,0x00000000,0x00030047,0x0000021e, + 0x00000000,0x00030047,0x0000021f,0x00000000,0x00030047,0x00000220,0x00000000,0x00030047, + 0x00000221,0x00000000,0x00030047,0x00000222,0x00000000,0x00030047,0x00000223,0x00000000, + 0x00030047,0x00000224,0x00000000,0x00030047,0x00000225,0x00000000,0x00030047,0x00000226, + 0x00000000,0x00030047,0x00000227,0x00000000,0x00030047,0x00000228,0x00000000,0x00030047, + 0x00000229,0x00000000,0x00030047,0x00000235,0x00000000,0x00030047,0x0000023c,0x00000000, + 0x00030047,0x0000023d,0x00000000,0x00030047,0x00000240,0x00000000,0x00030047,0x00000241, + 0x00000000,0x00030047,0x00000247,0x00000000,0x00030047,0x00000248,0x00000000,0x00030047, + 0x00000249,0x00000000,0x00030047,0x0000024c,0x00000000,0x00030047,0x0000024d,0x00000000, + 0x00030047,0x0000024e,0x00000000,0x00030047,0x0000024f,0x00000000,0x00030047,0x0000025e, + 0x00000000,0x00030047,0x00000265,0x00000000,0x00030047,0x00000268,0x00000000,0x00030047, + 0x00000269,0x00000000,0x00030047,0x0000026a,0x00000000,0x00030047,0x0000026d,0x00000000, + 0x00030047,0x0000026e,0x00000000,0x00030047,0x00000271,0x00000000,0x00030047,0x00000272, + 0x00000000,0x00030047,0x00000273,0x00000000,0x00030047,0x00000274,0x00000000,0x00030047, + 0x00000279,0x00000000,0x00030047,0x00000281,0x00000000,0x00030047,0x00000284,0x00000000, + 0x00030047,0x00000285,0x00000000,0x00030047,0x00000286,0x00000000,0x00030047,0x00000289, + 0x00000000,0x00030047,0x0000028a,0x00000000,0x00030047,0x0000028e,0x00000000,0x00030047, + 0x0000028f,0x00000000,0x00030047,0x00000291,0x00000000,0x00030047,0x00000294,0x00000000, + 0x00030047,0x00000295,0x00000000,0x00030047,0x00000297,0x00000000,0x00030047,0x00000298, + 0x00000000,0x00030047,0x00000299,0x00000000,0x00030047,0x0000029f,0x00000000,0x00030047, + 0x000002a2,0x00000000,0x00030047,0x000002a3,0x00000000,0x00030047,0x000002a4,0x00000000, + 0x00030047,0x000002a7,0x00000000,0x00030047,0x000002a8,0x00000000,0x00030047,0x000002ab, + 0x00000000,0x00030047,0x000002ac,0x00000000,0x00030047,0x000002ad,0x00000000,0x00030047, + 0x000002ae,0x00000000,0x00030047,0x000002b3,0x00000000,0x00030047,0x000002b4,0x00000000, + 0x00030047,0x000002b5,0x00000000,0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b8, + 0x00000000,0x00030047,0x000002b9,0x00000000,0x00030047,0x000002ba,0x00000000,0x00030047, + 0x000002bb,0x00000000,0x00030047,0x000002bc,0x00000000,0x00030047,0x000002bd,0x00000000, + 0x00030047,0x000002be,0x00000000,0x00030047,0x000002bf,0x00000000,0x00040047,0x000002c1, + 0x00000001,0x00000005,0x00030047,0x000002c4,0x00000000,0x00030047,0x000002c5,0x00000000, + 0x00030047,0x000002c6,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047,0x000002c8, + 0x00000000,0x00030047,0x000002c9,0x00000000,0x00030047,0x000002ca,0x00000000,0x00030047, + 0x000002cb,0x00000000,0x00030047,0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000, + 0x00030047,0x000002ce,0x00000000,0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0, + 0x00000000,0x00030047,0x000002d4,0x00000000,0x00030047,0x000002d5,0x00000000,0x00030047, + 0x000002d6,0x00000000,0x00030047,0x000002d7,0x00000000,0x00030047,0x000002d8,0x00000000, + 0x00030047,0x000002d9,0x00000000,0x00030047,0x000002da,0x00000000,0x00030047,0x000002db, + 0x00000000,0x00030047,0x000002dc,0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047, + 0x000002de,0x00000000,0x00030047,0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000, + 0x00030047,0x000002e4,0x00000000,0x00030047,0x000002e5,0x00000000,0x00030047,0x000002e6, + 0x00000000,0x00030047,0x000002e7,0x00000000,0x00030047,0x000002e8,0x00000000,0x00030047, + 0x000002e9,0x00000000,0x00030047,0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000, + 0x00030047,0x000002ec,0x00000000,0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee, + 0x00000000,0x00030047,0x000002f2,0x00000000,0x00030047,0x000002f3,0x00000000,0x00030047, + 0x000002f4,0x00000000,0x00030047,0x000002f5,0x00000000,0x00030047,0x000002f6,0x00000000, + 0x00030047,0x000002f7,0x00000000,0x00030047,0x000002f8,0x00000000,0x00030047,0x000002f9, + 0x00000000,0x00030047,0x000002fa,0x00000000,0x00030047,0x000002fb,0x00000000,0x00030047, + 0x000002fc,0x00000000,0x00030047,0x000002ff,0x00000000,0x00030047,0x00000302,0x00000000, + 0x00030047,0x00000303,0x00000000,0x00030047,0x00000304,0x00000000,0x00030047,0x00000305, + 0x00000000,0x00030047,0x00000306,0x00000000,0x00030047,0x00000307,0x00000000,0x00030047, + 0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047,0x0000030a,0x00000000, + 0x00030047,0x0000030b,0x00000000,0x00030047,0x0000030d,0x00000000,0x00030047,0x0000030e, + 0x00000000,0x00030047,0x0000030f,0x00000000,0x00030047,0x00000311,0x00000000,0x00030047, + 0x00000312,0x00000000,0x00030047,0x00000313,0x00000000,0x00030047,0x00000314,0x00000000, + 0x00030047,0x00000315,0x00000000,0x00030047,0x00000316,0x00000000,0x00030047,0x00000317, + 0x00000000,0x00030047,0x00000318,0x00000000,0x00030047,0x00000319,0x00000000,0x00030047, + 0x0000031a,0x00000000,0x00030047,0x00000324,0x00000000,0x00030047,0x00000327,0x00000000, + 0x00030047,0x00000328,0x00000000,0x00030047,0x0000032f,0x00000000,0x00030047,0x00000330, + 0x00000000,0x00030047,0x00000336,0x00000000,0x00030047,0x00000338,0x00000000,0x00030047, + 0x00000339,0x00000000,0x00040047,0x0000033e,0x00000006,0x00000008,0x00040048,0x0000033f, + 0x00000000,0x00000018,0x00050048,0x0000033f,0x00000000,0x00000023,0x00000000,0x00030047, + 0x0000033f,0x00000003,0x00040047,0x00000341,0x00000022,0x00000000,0x00040047,0x00000341, + 0x00000021,0x00000004,0x00030047,0x00000346,0x00000000,0x00030047,0x00000347,0x00000000, + 0x00030047,0x0000034f,0x00000000,0x00030047,0x00000350,0x00000000,0x00040047,0x00000351, + 0x00000001,0x00000003,0x00030047,0x0000035c,0x00000000,0x00030047,0x0000035d,0x00000000, + 0x00030047,0x0000035e,0x00000000,0x00030047,0x0000035f,0x00000000,0x00030047,0x00000361, + 0x00000000,0x00030047,0x00000362,0x00000000,0x00030047,0x00000363,0x00000000,0x00030047, + 0x00000364,0x00000000,0x00030047,0x00000365,0x00000000,0x00030047,0x00000366,0x00000000, + 0x00030047,0x00000367,0x00000000,0x00030047,0x00000368,0x00000000,0x00030047,0x00000369, + 0x00000000,0x00040047,0x0000036a,0x00000001,0x00000000,0x00030047,0x00000378,0x00000000, + 0x00040047,0x00000378,0x00000022,0x00000003,0x00040047,0x00000378,0x00000021,0x00000001, + 0x00040047,0x00000378,0x0000002b,0x00000001,0x00030047,0x00000379,0x00000000,0x00030047, + 0x0000037b,0x00000000,0x00030047,0x0000037e,0x00000000,0x00030047,0x0000037f,0x00000000, + 0x00030047,0x00000380,0x00000000,0x00040047,0x00000383,0x00000001,0x00000001,0x00040047, + 0x00000390,0x00000006,0x00000010,0x00040048,0x00000391,0x00000000,0x00000018,0x00050048, + 0x00000391,0x00000000,0x00000023,0x00000000,0x00030047,0x00000391,0x00000003,0x00040047, + 0x00000393,0x00000022,0x00000000,0x00040047,0x00000393,0x00000021,0x00000005,0x00040047, + 0x000003a6,0x0000000b,0x0000000f,0x00030047,0x000003ad,0x00000000,0x00030047,0x000003b7, + 0x00000000,0x00030047,0x000003b8,0x00000000,0x00030047,0x000003ba,0x00000000,0x00030047, + 0x000003bc,0x00000000,0x00030047,0x000003bd,0x00000000,0x00030047,0x000003be,0x00000000, + 0x00030047,0x000003bf,0x00000000,0x00030047,0x000003c0,0x00000000,0x00030047,0x000003c1, + 0x00000000,0x00030047,0x000003c2,0x00000000,0x00030047,0x000003d4,0x00000000,0x00030047, + 0x000003d5,0x00000000,0x00030047,0x000003da,0x00000000,0x00030047,0x000003dd,0x00000000, + 0x00030047,0x000003de,0x00000000,0x00030047,0x00000411,0x00000000,0x00040047,0x00000411, + 0x00000022,0x00000000,0x00040047,0x00000411,0x00000021,0x00000001,0x00030047,0x00000412, + 0x00000000,0x00030047,0x00000415,0x00000000,0x00040047,0x00000415,0x00000022,0x00000002, + 0x00040047,0x00000415,0x00000021,0x00000001,0x00030047,0x00000416,0x00000000,0x00030047, + 0x0000041c,0x00000000,0x00030047,0x0000041d,0x00000000,0x00030047,0x0000041f,0x00000000, + 0x00030047,0x00000420,0x00000000,0x00040047,0x00000422,0x00000001,0x00000002,0x00030047, + 0x00000426,0x00000000,0x00030047,0x0000042b,0x00000000,0x00030047,0x00000432,0x00000000, + 0x00030047,0x00000437,0x00000000,0x00030047,0x00000438,0x00000000,0x00040047,0x00000438, + 0x00000022,0x00000003,0x00040047,0x00000438,0x00000021,0x00000000,0x00040047,0x00000438, + 0x0000002b,0x00000000,0x00030047,0x00000439,0x00000000,0x00030047,0x0000043a,0x00000000, + 0x00030047,0x0000043b,0x00000000,0x00030047,0x0000043c,0x00000000,0x00030047,0x0000043d, + 0x00000000,0x00030047,0x0000043e,0x00000000,0x00030047,0x0000043f,0x00000000,0x00030047, + 0x00000440,0x00000000,0x00030047,0x00000441,0x00000000,0x00030047,0x00000442,0x00000000, + 0x00030047,0x00000443,0x00000000,0x00030047,0x00000444,0x00000000,0x00030047,0x0000044c, + 0x00000000,0x00040047,0x0000044c,0x0000001e,0x00000000,0x00030047,0x0000044d,0x00000000, + 0x00030047,0x0000044e,0x00000000,0x00040047,0x0000044e,0x0000001e,0x00000001,0x00030047, + 0x0000044f,0x00000000,0x00040047,0x00000458,0x00000022,0x00000003,0x00040047,0x00000458, + 0x00000021,0x00000003,0x00030047,0x00000458,0x00000017,0x00030047,0x0000045e,0x00000000, + 0x00030047,0x00000463,0x00000000,0x00030047,0x00000466,0x00000000,0x00030047,0x00000466, + 0x0000000e,0x00040047,0x00000466,0x0000001e,0x00000000,0x00030047,0x00000467,0x00000000, + 0x00030047,0x00000469,0x00000000,0x00030047,0x0000046a,0x00000000,0x00030047,0x0000046c, + 0x00000000,0x00030047,0x0000046e,0x00000000,0x00030047,0x0000046e,0x0000000e,0x00040047, + 0x0000046e,0x0000001e,0x00000001,0x00030047,0x0000046f,0x00000000,0x00030047,0x00000476, + 0x00000000,0x00030047,0x00000477,0x00000000,0x00030047,0x00000484,0x00000000,0x00030047, + 0x00000485,0x00000000,0x00030047,0x0000048a,0x00000000,0x00030047,0x0000048f,0x00000000, + 0x00030047,0x00000490,0x00000000,0x00030047,0x00000491,0x00000000,0x00030047,0x00000492, + 0x00000000,0x00030047,0x00000493,0x00000000,0x00030047,0x00000495,0x00000000,0x00030047, + 0x00000496,0x00000000,0x00030047,0x00000497,0x00000000,0x00030047,0x00000498,0x00000000, + 0x00030047,0x00000499,0x00000000,0x00030047,0x0000049a,0x00000000,0x00030047,0x000004a0, + 0x00000000,0x00030047,0x000004a1,0x00000000,0x00030047,0x000004a5,0x00000000,0x00030047, + 0x000004a6,0x00000000,0x00040047,0x000004aa,0x00000001,0x00000004,0x00040047,0x000004ab, + 0x00000001,0x00000006,0x00040047,0x000004ac,0x00000001,0x00000007,0x00050048,0x000004ae, + 0x00000000,0x00000023,0x00000000,0x00050048,0x000004ae,0x00000001,0x00000023,0x00000004, + 0x00050048,0x000004ae,0x00000002,0x00000023,0x00000008,0x00050048,0x000004ae,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x000004ae,0x00000004,0x00000023,0x00000010,0x00050048, + 0x000004ae,0x00000005,0x00000023,0x00000014,0x00050048,0x000004ae,0x00000006,0x00000023, + 0x00000018,0x00050048,0x000004ae,0x00000007,0x00000023,0x0000001c,0x00050048,0x000004ae, + 0x00000008,0x00000023,0x00000020,0x00050048,0x000004ae,0x00000009,0x00000023,0x00000030, + 0x00050048,0x000004ae,0x0000000a,0x00000023,0x00000034,0x00050048,0x000004ae,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x000004ae,0x00000002,0x00040047,0x000004b0,0x00000022, + 0x00000000,0x00040047,0x000004b0,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006, + 0x00000002,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c, + 0x0000000d,0x00040015,0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007, + 0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00050021,0x0000001b,0x0000000c, + 0x00000007,0x00000007,0x00040021,0x00000020,0x0000000c,0x00000007,0x00040017,0x00000024, + 0x00000006,0x00000003,0x00060021,0x00000025,0x00000024,0x00000007,0x00000007,0x00000007, + 0x00040021,0x0000002b,0x00000024,0x00000007,0x00040017,0x0000002f,0x00000006,0x00000004, + 0x00040021,0x00000030,0x0000002f,0x00000007,0x00040020,0x00000034,0x00000007,0x00000024, + 0x00040018,0x00000035,0x00000024,0x00000002,0x00050021,0x00000036,0x00000035,0x00000034, + 0x00000034,0x00040020,0x0000003b,0x00000007,0x0000002f,0x00040018,0x0000003c,0x0000000c, + 0x00000002,0x00040021,0x0000003d,0x0000003c,0x0000003b,0x00040021,0x00000044,0x0000002f, + 0x0000003b,0x00040021,0x00000048,0x00000006,0x00000034,0x00040021,0x00000055,0x00000024, + 0x00000034,0x00050021,0x00000059,0x00000024,0x00000034,0x00000034,0x00060021,0x0000005e, + 0x00000024,0x00000034,0x00000034,0x00000034,0x00060021,0x00000064,0x00000024,0x00000034, + 0x00000034,0x00000013,0x00060021,0x0000006a,0x00000024,0x00000034,0x0000003b,0x00000013, + 0x00040021,0x00000070,0x00000006,0x00000013,0x00060021,0x00000074,0x00000002,0x00000013, + 0x0000003b,0x00000007,0x00040015,0x0000007a,0x00000020,0x00000001,0x00040017,0x0000007b, + 0x0000007a,0x00000002,0x00040020,0x0000007c,0x00000007,0x0000007b,0x00080021,0x0000007d, + 0x00000002,0x00000013,0x00000007,0x0000003b,0x0000003b,0x0000007c,0x00050021,0x00000085, + 0x00000002,0x0000003b,0x0000007c,0x0004002b,0x00000012,0x000000a2,0x00000000,0x0004002b, + 0x00000012,0x000000a5,0x00000001,0x0004002b,0x00000012,0x000000b8,0x00000002,0x0004002b, + 0x00000012,0x000000cf,0x00000003,0x00040020,0x000000d4,0x00000007,0x00000035,0x0004002b, + 0x0000007a,0x000000d6,0x00000000,0x0004002b,0x0000007a,0x000000d9,0x00000001,0x0004002b, + 0x00000006,0x000000e3,0x3f800000,0x0004002b,0x00000006,0x000000e4,0x00000000,0x00020014, + 0x000000f3,0x0004002b,0x00000006,0x00000111,0x3f7f7f7f,0x00040017,0x00000114,0x000000f3, + 0x00000003,0x0004002b,0x00000006,0x00000135,0x3e99999a,0x0004002b,0x00000006,0x00000136, + 0x3f170a3d,0x0004002b,0x00000006,0x00000137,0x3de147ae,0x00040020,0x000001d5,0x00000007, + 0x0000007a,0x0004002b,0x0000007a,0x000001dd,0x00000003,0x0004002b,0x00000006,0x000001e2, + 0x3f000000,0x0004002b,0x00000006,0x000001e7,0x40000000,0x0004002b,0x00000006,0x0000027a, + 0x3e800000,0x0004002b,0x00000006,0x0000028b,0x41800000,0x0004002b,0x00000006,0x00000290, + 0x41400000,0x0004002b,0x00000006,0x00000296,0x40400000,0x00030031,0x000000f3,0x000002c1, + 0x0004002b,0x00000006,0x0000031f,0x3b000000,0x0004002b,0x00000006,0x00000321,0xc2800000, + 0x0004002b,0x00000006,0x0000032e,0x3a808081,0x00040017,0x00000331,0x000000f3,0x00000002, + 0x00040017,0x0000033b,0x00000012,0x00000002,0x00040020,0x0000033c,0x00000007,0x0000033b, + 0x0003001d,0x0000033e,0x0000033b,0x0003001e,0x0000033f,0x0000033e,0x00040020,0x00000340, + 0x00000002,0x0000033f,0x0004003b,0x00000340,0x00000341,0x00000002,0x00040020,0x00000343, + 0x00000002,0x0000033b,0x0004002b,0x00000012,0x0000034a,0x00000300,0x00030031,0x000000f3, + 0x00000351,0x0004002b,0x00000012,0x00000356,0x00000200,0x0004002b,0x00000006,0x00000360, + 0xbf800000,0x00030031,0x000000f3,0x0000036a,0x0004002b,0x00000012,0x00000370,0x00000010, + 0x00090019,0x00000376,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x00000377,0x00000000,0x00000376,0x0004003b,0x00000377,0x00000378, + 0x00000000,0x0005002c,0x0000007b,0x0000037a,0x000000d6,0x000000d6,0x00030031,0x000000f3, + 0x00000383,0x0004002b,0x00000012,0x00000388,0x00000400,0x00040020,0x0000038e,0x00000007, + 0x0000003c,0x0003001d,0x00000390,0x0000002f,0x0003001e,0x00000391,0x00000390,0x00040020, + 0x00000392,0x00000002,0x00000391,0x0004003b,0x00000392,0x00000393,0x00000002,0x0004002b, + 0x00000012,0x00000395,0x00000004,0x00040020,0x00000399,0x00000002,0x0000002f,0x00040020, + 0x000003a5,0x00000001,0x0000002f,0x0004003b,0x000003a5,0x000003a6,0x00000001,0x0004002b, + 0x00000012,0x000003c6,0x0000000f,0x00090019,0x0000040f,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000410,0x00000000,0x0000040f, + 0x0004003b,0x00000410,0x00000411,0x00000000,0x0002001a,0x00000413,0x00040020,0x00000414, + 0x00000000,0x00000413,0x0004003b,0x00000414,0x00000415,0x00000000,0x0003001b,0x00000417, + 0x0000040f,0x00030031,0x000000f3,0x00000422,0x0004002b,0x0000007a,0x0000042e,0x00000004, + 0x0004003b,0x00000377,0x00000438,0x00000000,0x00040020,0x0000044b,0x00000003,0x0000002f, + 0x0004003b,0x0000044b,0x0000044c,0x00000003,0x0004003b,0x0000044b,0x0000044e,0x00000003, + 0x00090019,0x00000456,0x00000012,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x00000457,0x00000000,0x00000456,0x0004003b,0x00000457,0x00000458, + 0x00000000,0x00040017,0x0000045b,0x00000012,0x00000004,0x0004002b,0x0000007a,0x00000460, + 0x00000010,0x00040020,0x00000465,0x00000001,0x00000006,0x0004003b,0x00000465,0x00000466, + 0x00000001,0x0004002b,0x00000006,0x00000468,0x44000000,0x00040020,0x0000046d,0x00000001, + 0x00000012,0x0004003b,0x0000046d,0x0000046e,0x00000001,0x0004002b,0x00000012,0x0000047a, + 0x00008000,0x0004002b,0x00000012,0x0000048c,0x0000ffff,0x00030031,0x000000f3,0x000004aa, + 0x00030031,0x000000f3,0x000004ab,0x00030031,0x000000f3,0x000004ac,0x00040017,0x000004ad, + 0x0000007a,0x00000004,0x000e001e,0x000004ae,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000012,0x00000012,0x00000012,0x00000012,0x000004ad,0x00000012,0x00000012,0x00000006, + 0x00040020,0x000004af,0x00000002,0x000004ae,0x0004003b,0x000004af,0x000004b0,0x00000002, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b, + 0x0000007c,0x00000450,0x00000007,0x0004003b,0x00000013,0x00000455,0x00000007,0x0004003b, + 0x00000013,0x0000045e,0x00000007,0x0004003b,0x00000013,0x00000462,0x00000007,0x0004003b, + 0x000001d5,0x00000464,0x00000007,0x0004003b,0x00000013,0x0000046b,0x00000007,0x0004003b, + 0x00000013,0x00000471,0x00000007,0x0004003b,0x00000013,0x00000476,0x00000007,0x0004003b, + 0x00000007,0x0000048a,0x00000007,0x0004003b,0x00000013,0x0000048e,0x00000007,0x0004003b, + 0x0000003b,0x00000490,0x00000007,0x0004003b,0x00000007,0x00000491,0x00000007,0x0004003b, + 0x0000003b,0x00000493,0x00000007,0x0004003b,0x00000013,0x00000494,0x00000007,0x0004003b, + 0x00000007,0x00000496,0x00000007,0x0004003b,0x0000003b,0x00000498,0x00000007,0x0004003b, + 0x0000003b,0x00000499,0x00000007,0x0004003b,0x0000007c,0x0000049b,0x00000007,0x0004003b, + 0x0000003b,0x000004a0,0x00000007,0x0004003b,0x0000007c,0x000004a2,0x00000007,0x0004003b, + 0x0000003b,0x000004a5,0x00000007,0x0004003b,0x0000007c,0x000004a7,0x00000007,0x0004003d, + 0x0000002f,0x00000451,0x000003a6,0x0007004f,0x0000000c,0x00000452,0x00000451,0x00000451, + 0x00000000,0x00000001,0x0006000c,0x0000000c,0x00000453,0x00000001,0x00000008,0x00000452, + 0x0004006e,0x0000007b,0x00000454,0x00000453,0x0003003e,0x00000450,0x00000454,0x0004003d, + 0x00000456,0x00000459,0x00000458,0x0004003d,0x0000007b,0x0000045a,0x00000450,0x00050062, + 0x0000045b,0x0000045c,0x00000459,0x0000045a,0x00050051,0x00000012,0x0000045d,0x0000045c, + 0x00000000,0x0003003e,0x00000455,0x0000045d,0x0004003d,0x00000012,0x0000045f,0x00000455, + 0x000500c2,0x00000012,0x00000461,0x0000045f,0x00000460,0x0003003e,0x00000462,0x00000461, + 0x00050039,0x00000012,0x00000463,0x00000016,0x00000462,0x0003003e,0x0000045e,0x00000463, + 0x0004003d,0x00000006,0x00000467,0x00000466,0x00050085,0x00000006,0x00000469,0x00000467, + 0x00000468,0x0004006e,0x0000007a,0x0000046a,0x00000469,0x0003003e,0x00000464,0x0000046a, + 0x0004003d,0x00000012,0x0000046c,0x0000045e,0x0004003d,0x00000012,0x0000046f,0x0000046e, + 0x000500aa,0x000000f3,0x00000470,0x0000046c,0x0000046f,0x000300f7,0x00000473,0x00000000, + 0x000400fa,0x00000470,0x00000472,0x00000475,0x000200f8,0x00000472,0x0004003d,0x00000012, + 0x00000474,0x00000455,0x0003003e,0x00000471,0x00000474,0x000200f9,0x00000473,0x000200f8, + 0x00000475,0x0004003d,0x00000012,0x00000477,0x0000046e,0x0003003e,0x00000476,0x00000477, + 0x00050039,0x00000012,0x00000478,0x00000042,0x00000476,0x000500c4,0x00000012,0x00000479, + 0x00000478,0x00000460,0x00050080,0x00000012,0x0000047b,0x00000479,0x0000047a,0x0003003e, + 0x00000471,0x0000047b,0x000200f9,0x00000473,0x000200f8,0x00000473,0x0004003d,0x00000012, + 0x0000047c,0x00000471,0x0003003e,0x0000046b,0x0000047c,0x0004003d,0x00000456,0x0000047d, + 0x00000458,0x0004003d,0x0000007b,0x0000047e,0x00000450,0x0004003d,0x00000012,0x0000047f, + 0x0000046b,0x0004003d,0x0000007a,0x00000480,0x00000464,0x0004007c,0x00000012,0x00000481, + 0x00000480,0x00050080,0x00000012,0x00000482,0x0000047f,0x00000481,0x00070050,0x0000045b, + 0x00000483,0x00000482,0x00000482,0x00000482,0x00000482,0x00040063,0x0000047d,0x0000047e, + 0x00000483,0x0004003d,0x00000012,0x00000484,0x0000045e,0x0004003d,0x00000012,0x00000485, + 0x0000046e,0x000500aa,0x000000f3,0x00000486,0x00000484,0x00000485,0x000300f7,0x00000488, + 0x00000000,0x000400fa,0x00000486,0x00000487,0x00000488,0x000200f8,0x00000487,0x000100fc, + 0x000200f8,0x00000488,0x0004003d,0x00000012,0x0000048b,0x00000455,0x000500c7,0x00000012, + 0x0000048d,0x0000048b,0x0000048c,0x0003003e,0x0000048e,0x0000048d,0x00050039,0x00000006, + 0x0000048f,0x00000072,0x0000048e,0x0003003e,0x0000048a,0x0000048f,0x0003003e,0x00000491, + 0x000000e4,0x00050039,0x0000002f,0x00000492,0x00000032,0x00000491,0x0003003e,0x00000490, + 0x00000492,0x0004003d,0x00000012,0x00000495,0x0000045e,0x0003003e,0x00000494,0x00000495, + 0x0004003d,0x00000006,0x00000497,0x0000048a,0x0003003e,0x00000496,0x00000497,0x0004003d, + 0x0000002f,0x0000049a,0x00000490,0x0003003e,0x00000499,0x0000049a,0x0004003d,0x0000007b, + 0x0000049c,0x00000450,0x0003003e,0x0000049b,0x0000049c,0x00090039,0x00000002,0x0000049d, + 0x00000083,0x00000494,0x00000496,0x00000498,0x00000499,0x0000049b,0x0004003d,0x0000002f, + 0x0000049e,0x00000498,0x0003003e,0x00000493,0x0000049e,0x0004003d,0x0000002f,0x0000049f, + 0x00000499,0x0003003e,0x00000490,0x0000049f,0x0004003d,0x0000002f,0x000004a1,0x00000493, + 0x0003003e,0x000004a0,0x000004a1,0x0004003d,0x0000007b,0x000004a3,0x00000450,0x0003003e, + 0x000004a2,0x000004a3,0x00060039,0x00000002,0x000004a4,0x00000088,0x000004a0,0x000004a2, + 0x0004003d,0x0000002f,0x000004a6,0x00000490,0x0003003e,0x000004a5,0x000004a6,0x0004003d, + 0x0000007b,0x000004a8,0x00000450,0x0003003e,0x000004a7,0x000004a8,0x00060039,0x00000002, + 0x000004a9,0x0000008c,0x000004a5,0x000004a7,0x000100fd,0x00010038,0x00050036,0x00000006, + 0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b, + 0x0004003b,0x00000007,0x0000008f,0x00000007,0x0004003d,0x00000006,0x0000008e,0x00000009, + 0x0003003e,0x0000008f,0x0000008e,0x0004003d,0x00000006,0x00000090,0x0000008f,0x000200fe, + 0x00000090,0x00010038,0x00050036,0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037, + 0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003b,0x0000000d,0x00000094,0x00000007, + 0x0004003d,0x0000000c,0x00000093,0x0000000f,0x0003003e,0x00000094,0x00000093,0x0004003d, + 0x0000000c,0x00000095,0x00000094,0x000200fe,0x00000095,0x00010038,0x00050036,0x00000012, + 0x00000016,0x00000000,0x00000014,0x00030037,0x00000013,0x00000015,0x000200f8,0x00000017, + 0x0004003b,0x00000013,0x00000099,0x00000007,0x0004003d,0x00000012,0x00000098,0x00000015, + 0x0003003e,0x00000099,0x00000098,0x0004003d,0x00000012,0x0000009a,0x00000099,0x000200fe, + 0x0000009a,0x00010038,0x00050036,0x00000006,0x00000019,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000018,0x000200f8,0x0000001a,0x0004003d,0x00000006,0x0000009d,0x00000018, + 0x000200fe,0x0000009d,0x00010038,0x00050036,0x0000000c,0x0000001e,0x00000000,0x0000001b, + 0x00030037,0x00000007,0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f, + 0x0004003b,0x0000000d,0x000000a0,0x00000007,0x0004003d,0x00000006,0x000000a1,0x0000001c, + 0x00050041,0x00000007,0x000000a3,0x000000a0,0x000000a2,0x0003003e,0x000000a3,0x000000a1, + 0x0004003d,0x00000006,0x000000a4,0x0000001d,0x00050041,0x00000007,0x000000a6,0x000000a0, + 0x000000a5,0x0003003e,0x000000a6,0x000000a4,0x0004003d,0x0000000c,0x000000a7,0x000000a0, + 0x000200fe,0x000000a7,0x00010038,0x00050036,0x0000000c,0x00000022,0x00000000,0x00000020, + 0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x0004003b,0x0000000d,0x000000aa, + 0x00000007,0x0004003d,0x00000006,0x000000ab,0x00000021,0x00050041,0x00000007,0x000000ac, + 0x000000aa,0x000000a2,0x0003003e,0x000000ac,0x000000ab,0x0004003d,0x00000006,0x000000ad, + 0x00000021,0x00050041,0x00000007,0x000000ae,0x000000aa,0x000000a5,0x0003003e,0x000000ae, + 0x000000ad,0x0004003d,0x0000000c,0x000000af,0x000000aa,0x000200fe,0x000000af,0x00010038, + 0x00050036,0x00000024,0x00000029,0x00000000,0x00000025,0x00030037,0x00000007,0x00000026, + 0x00030037,0x00000007,0x00000027,0x00030037,0x00000007,0x00000028,0x000200f8,0x0000002a, + 0x0004003b,0x00000034,0x000000b2,0x00000007,0x0004003d,0x00000006,0x000000b3,0x00000026, + 0x00050041,0x00000007,0x000000b4,0x000000b2,0x000000a2,0x0003003e,0x000000b4,0x000000b3, + 0x0004003d,0x00000006,0x000000b5,0x00000027,0x00050041,0x00000007,0x000000b6,0x000000b2, + 0x000000a5,0x0003003e,0x000000b6,0x000000b5,0x0004003d,0x00000006,0x000000b7,0x00000028, + 0x00050041,0x00000007,0x000000b9,0x000000b2,0x000000b8,0x0003003e,0x000000b9,0x000000b7, + 0x0004003d,0x00000024,0x000000ba,0x000000b2,0x000200fe,0x000000ba,0x00010038,0x00050036, + 0x00000024,0x0000002d,0x00000000,0x0000002b,0x00030037,0x00000007,0x0000002c,0x000200f8, + 0x0000002e,0x0004003b,0x00000034,0x000000bd,0x00000007,0x0004003d,0x00000006,0x000000be, + 0x0000002c,0x00050041,0x00000007,0x000000bf,0x000000bd,0x000000a2,0x0003003e,0x000000bf, + 0x000000be,0x0004003d,0x00000006,0x000000c0,0x0000002c,0x00050041,0x00000007,0x000000c1, + 0x000000bd,0x000000a5,0x0003003e,0x000000c1,0x000000c0,0x0004003d,0x00000006,0x000000c2, + 0x0000002c,0x00050041,0x00000007,0x000000c3,0x000000bd,0x000000b8,0x0003003e,0x000000c3, + 0x000000c2,0x0004003d,0x00000024,0x000000c4,0x000000bd,0x000200fe,0x000000c4,0x00010038, + 0x00050036,0x0000002f,0x00000032,0x00000000,0x00000030,0x00030037,0x00000007,0x00000031, + 0x000200f8,0x00000033,0x0004003b,0x0000003b,0x000000c7,0x00000007,0x0004003d,0x00000006, + 0x000000c8,0x00000031,0x00050041,0x00000007,0x000000c9,0x000000c7,0x000000a2,0x0003003e, + 0x000000c9,0x000000c8,0x0004003d,0x00000006,0x000000ca,0x00000031,0x00050041,0x00000007, + 0x000000cb,0x000000c7,0x000000a5,0x0003003e,0x000000cb,0x000000ca,0x0004003d,0x00000006, + 0x000000cc,0x00000031,0x00050041,0x00000007,0x000000cd,0x000000c7,0x000000b8,0x0003003e, + 0x000000cd,0x000000cc,0x0004003d,0x00000006,0x000000ce,0x00000031,0x00050041,0x00000007, + 0x000000d0,0x000000c7,0x000000cf,0x0003003e,0x000000d0,0x000000ce,0x0004003d,0x0000002f, + 0x000000d1,0x000000c7,0x000200fe,0x000000d1,0x00010038,0x00050036,0x00000035,0x00000039, + 0x00000000,0x00000036,0x00030037,0x00000034,0x00000037,0x00030037,0x00000034,0x00000038, + 0x000200f8,0x0000003a,0x0004003b,0x000000d4,0x000000d5,0x00000007,0x0004003d,0x00000024, + 0x000000d7,0x00000037,0x00050041,0x00000034,0x000000d8,0x000000d5,0x000000d6,0x0003003e, + 0x000000d8,0x000000d7,0x0004003d,0x00000024,0x000000da,0x00000038,0x00050041,0x00000034, + 0x000000db,0x000000d5,0x000000d9,0x0003003e,0x000000db,0x000000da,0x0004003d,0x00000035, + 0x000000dc,0x000000d5,0x000200fe,0x000000dc,0x00010038,0x00050036,0x0000003c,0x0000003f, + 0x00000000,0x0000003d,0x00030037,0x0000003b,0x0000003e,0x000200f8,0x00000040,0x0004003d, + 0x0000002f,0x000000df,0x0000003e,0x0007004f,0x0000000c,0x000000e0,0x000000df,0x000000df, + 0x00000000,0x00000001,0x0004003d,0x0000002f,0x000000e1,0x0000003e,0x0007004f,0x0000000c, + 0x000000e2,0x000000e1,0x000000e1,0x00000002,0x00000003,0x00050051,0x00000006,0x000000e5, + 0x000000e0,0x00000000,0x00050051,0x00000006,0x000000e6,0x000000e0,0x00000001,0x00050051, + 0x00000006,0x000000e7,0x000000e2,0x00000000,0x00050051,0x00000006,0x000000e8,0x000000e2, + 0x00000001,0x00050050,0x0000000c,0x000000e9,0x000000e5,0x000000e6,0x00050050,0x0000000c, + 0x000000ea,0x000000e7,0x000000e8,0x00050050,0x0000003c,0x000000eb,0x000000e9,0x000000ea, + 0x000200fe,0x000000eb,0x00010038,0x00050036,0x00000012,0x00000042,0x00000000,0x00000014, + 0x00030037,0x00000013,0x00000041,0x000200f8,0x00000043,0x0004003b,0x00000013,0x000000ef, + 0x00000007,0x0004003d,0x00000012,0x000000ee,0x00000041,0x0003003e,0x000000ef,0x000000ee, + 0x0004003d,0x00000012,0x000000f0,0x000000ef,0x000200fe,0x000000f0,0x00010038,0x00050036, + 0x0000002f,0x00000046,0x00000000,0x00000044,0x00030037,0x0000003b,0x00000045,0x000200f8, + 0x00000047,0x0004003b,0x00000007,0x0000010d,0x00000007,0x0004003b,0x00000007,0x00000112, + 0x00000007,0x00050041,0x00000007,0x000000f4,0x00000045,0x000000cf,0x0004003d,0x00000006, + 0x000000f5,0x000000f4,0x000500b8,0x000000f3,0x000000f6,0x000000e4,0x000000f5,0x000300f7, + 0x000000f8,0x00000000,0x000400fa,0x000000f6,0x000000f7,0x000000f8,0x000200f8,0x000000f7, + 0x00050041,0x00000007,0x000000f9,0x00000045,0x000000cf,0x0004003d,0x00000006,0x000000fa, + 0x000000f9,0x000500b8,0x000000f3,0x000000fb,0x000000fa,0x000000e3,0x000200f9,0x000000f8, + 0x000200f8,0x000000f8,0x000700f5,0x000000f3,0x000000fc,0x000000f6,0x00000047,0x000000fb, + 0x000000f7,0x000300f7,0x000000fe,0x00000000,0x000400fa,0x000000fc,0x000000fd,0x000000fe, + 0x000200f8,0x000000fd,0x00050041,0x00000007,0x000000ff,0x00000045,0x000000cf,0x0004003d, + 0x00000006,0x00000100,0x000000ff,0x00050088,0x00000006,0x00000101,0x000000e3,0x00000100, + 0x0004003d,0x0000002f,0x00000102,0x00000045,0x0008004f,0x00000024,0x00000103,0x00000102, + 0x00000102,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000024,0x00000104,0x00000103, + 0x00000101,0x00050041,0x00000007,0x00000105,0x00000045,0x000000a2,0x00050051,0x00000006, + 0x00000106,0x00000104,0x00000000,0x0003003e,0x00000105,0x00000106,0x00050041,0x00000007, + 0x00000107,0x00000045,0x000000a5,0x00050051,0x00000006,0x00000108,0x00000104,0x00000001, + 0x0003003e,0x00000107,0x00000108,0x00050041,0x00000007,0x00000109,0x00000045,0x000000b8, + 0x00050051,0x00000006,0x0000010a,0x00000104,0x00000002,0x0003003e,0x00000109,0x0000010a, + 0x0004003d,0x0000002f,0x0000010b,0x00000045,0x0008004f,0x00000024,0x0000010c,0x0000010b, + 0x0000010b,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010d,0x000000e3,0x00050039, + 0x00000024,0x0000010e,0x0000002d,0x0000010d,0x0004003d,0x0000002f,0x0000010f,0x00000045, + 0x0008004f,0x00000024,0x00000110,0x0000010f,0x0000010f,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x00000112,0x00000111,0x00050039,0x00000024,0x00000113,0x0000002d,0x00000112, + 0x000500ba,0x00000114,0x00000115,0x00000110,0x00000113,0x000600a9,0x00000024,0x00000116, + 0x00000115,0x0000010e,0x0000010c,0x00050041,0x00000007,0x00000117,0x00000045,0x000000a2, + 0x00050051,0x00000006,0x00000118,0x00000116,0x00000000,0x0003003e,0x00000117,0x00000118, + 0x00050041,0x00000007,0x00000119,0x00000045,0x000000a5,0x00050051,0x00000006,0x0000011a, + 0x00000116,0x00000001,0x0003003e,0x00000119,0x0000011a,0x00050041,0x00000007,0x0000011b, + 0x00000045,0x000000b8,0x00050051,0x00000006,0x0000011c,0x00000116,0x00000002,0x0003003e, + 0x0000011b,0x0000011c,0x000200f9,0x000000fe,0x000200f8,0x000000fe,0x0004003d,0x0000002f, + 0x0000011d,0x00000045,0x000200fe,0x0000011d,0x00010038,0x00050036,0x00000006,0x0000004a, + 0x00000000,0x00000048,0x00030037,0x00000034,0x00000049,0x000200f8,0x0000004b,0x00050041, + 0x00000007,0x00000120,0x00000049,0x000000a2,0x0004003d,0x00000006,0x00000121,0x00000120, + 0x00050041,0x00000007,0x00000122,0x00000049,0x000000a5,0x0004003d,0x00000006,0x00000123, + 0x00000122,0x0007000c,0x00000006,0x00000124,0x00000001,0x00000025,0x00000121,0x00000123, + 0x00050041,0x00000007,0x00000125,0x00000049,0x000000b8,0x0004003d,0x00000006,0x00000126, + 0x00000125,0x0007000c,0x00000006,0x00000127,0x00000001,0x00000025,0x00000124,0x00000126, + 0x000200fe,0x00000127,0x00010038,0x00050036,0x00000006,0x0000004d,0x00000000,0x00000048, + 0x00030037,0x00000034,0x0000004c,0x000200f8,0x0000004e,0x00050041,0x00000007,0x0000012a, + 0x0000004c,0x000000a2,0x0004003d,0x00000006,0x0000012b,0x0000012a,0x00050041,0x00000007, + 0x0000012c,0x0000004c,0x000000a5,0x0004003d,0x00000006,0x0000012d,0x0000012c,0x0007000c, + 0x00000006,0x0000012e,0x00000001,0x00000028,0x0000012b,0x0000012d,0x00050041,0x00000007, + 0x0000012f,0x0000004c,0x000000b8,0x0004003d,0x00000006,0x00000130,0x0000012f,0x0007000c, + 0x00000006,0x00000131,0x00000001,0x00000028,0x0000012e,0x00000130,0x000200fe,0x00000131, + 0x00010038,0x00050036,0x00000006,0x00000050,0x00000000,0x00000048,0x00030037,0x00000034, + 0x0000004f,0x000200f8,0x00000051,0x0004003b,0x00000007,0x00000138,0x00000007,0x0004003b, + 0x00000007,0x00000139,0x00000007,0x0004003b,0x00000007,0x0000013a,0x00000007,0x0004003d, + 0x00000024,0x00000134,0x0000004f,0x0003003e,0x00000138,0x00000135,0x0003003e,0x00000139, + 0x00000136,0x0003003e,0x0000013a,0x00000137,0x00070039,0x00000024,0x0000013b,0x00000029, + 0x00000138,0x00000139,0x0000013a,0x00050094,0x00000006,0x0000013c,0x00000134,0x0000013b, + 0x000200fe,0x0000013c,0x00010038,0x00050036,0x00000006,0x00000053,0x00000000,0x00000048, + 0x00030037,0x00000034,0x00000052,0x000200f8,0x00000054,0x0004003b,0x00000034,0x0000013f, + 0x00000007,0x0004003b,0x00000034,0x00000142,0x00000007,0x0004003d,0x00000024,0x00000140, + 0x00000052,0x0003003e,0x0000013f,0x00000140,0x00050039,0x00000006,0x00000141,0x0000004d, + 0x0000013f,0x0004003d,0x00000024,0x00000143,0x00000052,0x0003003e,0x00000142,0x00000143, + 0x00050039,0x00000006,0x00000144,0x0000004a,0x00000142,0x00050083,0x00000006,0x00000145, + 0x00000141,0x00000144,0x000200fe,0x00000145,0x00010038,0x00050036,0x00000024,0x00000057, + 0x00000000,0x00000055,0x00030037,0x00000034,0x00000056,0x000200f8,0x00000058,0x0004003b, + 0x00000007,0x00000148,0x00000007,0x0004003b,0x00000034,0x00000149,0x00000007,0x0004003b, + 0x00000007,0x0000014c,0x00000007,0x0004003b,0x00000034,0x0000014d,0x00000007,0x0004003b, + 0x00000007,0x00000150,0x00000007,0x0004003b,0x00000034,0x00000151,0x00000007,0x0004003d, + 0x00000024,0x0000014a,0x00000056,0x0003003e,0x00000149,0x0000014a,0x00050039,0x00000006, + 0x0000014b,0x00000050,0x00000149,0x0003003e,0x00000148,0x0000014b,0x0004003d,0x00000024, + 0x0000014e,0x00000056,0x0003003e,0x0000014d,0x0000014e,0x00050039,0x00000006,0x0000014f, + 0x0000004a,0x0000014d,0x0003003e,0x0000014c,0x0000014f,0x0004003d,0x00000024,0x00000152, + 0x00000056,0x0003003e,0x00000151,0x00000152,0x00050039,0x00000006,0x00000153,0x0000004d, + 0x00000151,0x0003003e,0x00000150,0x00000153,0x0004003d,0x00000006,0x00000154,0x0000014c, + 0x000500b8,0x000000f3,0x00000155,0x00000154,0x000000e4,0x000300f7,0x00000157,0x00000000, + 0x000400fa,0x00000155,0x00000156,0x00000157,0x000200f8,0x00000156,0x0004003d,0x00000006, + 0x00000158,0x00000148,0x0004003d,0x00000024,0x00000159,0x00000056,0x0004003d,0x00000006, + 0x0000015a,0x00000148,0x00060050,0x00000024,0x0000015b,0x0000015a,0x0000015a,0x0000015a, + 0x00050083,0x00000024,0x0000015c,0x00000159,0x0000015b,0x0004003d,0x00000006,0x0000015d, + 0x00000148,0x0005008e,0x00000024,0x0000015e,0x0000015c,0x0000015d,0x0004003d,0x00000006, + 0x0000015f,0x00000148,0x0004003d,0x00000006,0x00000160,0x0000014c,0x00050083,0x00000006, + 0x00000161,0x0000015f,0x00000160,0x00060050,0x00000024,0x00000162,0x00000161,0x00000161, + 0x00000161,0x00050088,0x00000024,0x00000163,0x0000015e,0x00000162,0x00060050,0x00000024, + 0x00000164,0x00000158,0x00000158,0x00000158,0x00050081,0x00000024,0x00000165,0x00000164, + 0x00000163,0x0003003e,0x00000056,0x00000165,0x000200f9,0x00000157,0x000200f8,0x00000157, + 0x0004003d,0x00000006,0x00000166,0x00000150,0x000500ba,0x000000f3,0x00000167,0x00000166, + 0x000000e3,0x000300f7,0x00000169,0x00000000,0x000400fa,0x00000167,0x00000168,0x00000169, + 0x000200f8,0x00000168,0x0004003d,0x00000006,0x0000016a,0x00000148,0x0004003d,0x00000024, + 0x0000016b,0x00000056,0x0004003d,0x00000006,0x0000016c,0x00000148,0x00060050,0x00000024, + 0x0000016d,0x0000016c,0x0000016c,0x0000016c,0x00050083,0x00000024,0x0000016e,0x0000016b, + 0x0000016d,0x0004003d,0x00000006,0x0000016f,0x00000148,0x00050083,0x00000006,0x00000170, + 0x000000e3,0x0000016f,0x0005008e,0x00000024,0x00000171,0x0000016e,0x00000170,0x0004003d, + 0x00000006,0x00000172,0x00000150,0x0004003d,0x00000006,0x00000173,0x00000148,0x00050083, + 0x00000006,0x00000174,0x00000172,0x00000173,0x00060050,0x00000024,0x00000175,0x00000174, + 0x00000174,0x00000174,0x00050088,0x00000024,0x00000176,0x00000171,0x00000175,0x00060050, + 0x00000024,0x00000177,0x0000016a,0x0000016a,0x0000016a,0x00050081,0x00000024,0x00000178, + 0x00000177,0x00000176,0x0003003e,0x00000056,0x00000178,0x000200f9,0x00000169,0x000200f8, + 0x00000169,0x0004003d,0x00000024,0x00000179,0x00000056,0x000200fe,0x00000179,0x00010038, + 0x00050036,0x00000024,0x0000005c,0x00000000,0x00000059,0x00030037,0x00000034,0x0000005a, + 0x00030037,0x00000034,0x0000005b,0x000200f8,0x0000005d,0x0004003b,0x00000007,0x0000017c, + 0x00000007,0x0004003b,0x00000034,0x0000017d,0x00000007,0x0004003b,0x00000007,0x00000180, + 0x00000007,0x0004003b,0x00000034,0x00000181,0x00000007,0x0004003b,0x00000007,0x00000184, + 0x00000007,0x0004003b,0x00000034,0x00000188,0x00000007,0x0004003b,0x00000007,0x0000018a, + 0x00000007,0x0004003b,0x00000034,0x0000018e,0x00000007,0x0004003d,0x00000024,0x0000017e, + 0x0000005a,0x0003003e,0x0000017d,0x0000017e,0x00050039,0x00000006,0x0000017f,0x00000050, + 0x0000017d,0x0003003e,0x0000017c,0x0000017f,0x0004003d,0x00000024,0x00000182,0x0000005b, + 0x0003003e,0x00000181,0x00000182,0x00050039,0x00000006,0x00000183,0x00000050,0x00000181, + 0x0003003e,0x00000180,0x00000183,0x0004003d,0x00000006,0x00000185,0x00000180,0x0004003d, + 0x00000006,0x00000186,0x0000017c,0x00050083,0x00000006,0x00000187,0x00000185,0x00000186, + 0x0003003e,0x00000184,0x00000187,0x0004003d,0x00000024,0x00000189,0x0000005a,0x0004003d, + 0x00000006,0x0000018b,0x00000184,0x0003003e,0x0000018a,0x0000018b,0x00050039,0x00000024, + 0x0000018c,0x0000002d,0x0000018a,0x00050081,0x00000024,0x0000018d,0x00000189,0x0000018c, + 0x0003003e,0x00000188,0x0000018d,0x0004003d,0x00000024,0x0000018f,0x00000188,0x0003003e, + 0x0000018e,0x0000018f,0x00050039,0x00000024,0x00000190,0x00000057,0x0000018e,0x000200fe, + 0x00000190,0x00010038,0x00050036,0x00000024,0x00000062,0x00000000,0x0000005e,0x00030037, + 0x00000034,0x0000005f,0x00030037,0x00000034,0x00000060,0x00030037,0x00000034,0x00000061, + 0x000200f8,0x00000063,0x0004003b,0x00000007,0x00000193,0x00000007,0x0004003b,0x00000034, + 0x00000194,0x00000007,0x0004003b,0x00000007,0x00000197,0x00000007,0x0004003b,0x00000034, + 0x00000198,0x00000007,0x0004003b,0x00000007,0x0000019b,0x00000007,0x0004003b,0x00000034, + 0x0000019c,0x00000007,0x0004003b,0x00000034,0x000001a3,0x00000007,0x0004003b,0x00000007, + 0x000001ae,0x00000007,0x0004003b,0x00000034,0x000001b0,0x00000007,0x0004003b,0x00000034, + 0x000001b2,0x00000007,0x0004003d,0x00000024,0x00000195,0x0000005f,0x0003003e,0x00000194, + 0x00000195,0x00050039,0x00000006,0x00000196,0x0000004a,0x00000194,0x0003003e,0x00000193, + 0x00000196,0x0004003d,0x00000024,0x00000199,0x0000005f,0x0003003e,0x00000198,0x00000199, + 0x00050039,0x00000006,0x0000019a,0x00000053,0x00000198,0x0003003e,0x00000197,0x0000019a, + 0x0004003d,0x00000024,0x0000019d,0x00000060,0x0003003e,0x0000019c,0x0000019d,0x00050039, + 0x00000006,0x0000019e,0x00000053,0x0000019c,0x0003003e,0x0000019b,0x0000019e,0x0004003d, + 0x00000006,0x0000019f,0x00000197,0x000500ba,0x000000f3,0x000001a0,0x0000019f,0x000000e4, + 0x000300f7,0x000001a2,0x00000000,0x000400fa,0x000001a0,0x000001a1,0x000001ad,0x000200f8, + 0x000001a1,0x0004003d,0x00000024,0x000001a4,0x0000005f,0x0004003d,0x00000006,0x000001a5, + 0x00000193,0x00060050,0x00000024,0x000001a6,0x000001a5,0x000001a5,0x000001a5,0x00050083, + 0x00000024,0x000001a7,0x000001a4,0x000001a6,0x0004003d,0x00000006,0x000001a8,0x0000019b, + 0x0005008e,0x00000024,0x000001a9,0x000001a7,0x000001a8,0x0004003d,0x00000006,0x000001aa, + 0x00000197,0x00060050,0x00000024,0x000001ab,0x000001aa,0x000001aa,0x000001aa,0x00050088, + 0x00000024,0x000001ac,0x000001a9,0x000001ab,0x0003003e,0x000001a3,0x000001ac,0x000200f9, + 0x000001a2,0x000200f8,0x000001ad,0x0003003e,0x000001ae,0x000000e4,0x00050039,0x00000024, + 0x000001af,0x0000002d,0x000001ae,0x0003003e,0x000001a3,0x000001af,0x000200f9,0x000001a2, + 0x000200f8,0x000001a2,0x0004003d,0x00000024,0x000001b1,0x000001a3,0x0003003e,0x000001b0, + 0x000001b1,0x0004003d,0x00000024,0x000001b3,0x00000061,0x0003003e,0x000001b2,0x000001b3, + 0x00060039,0x00000024,0x000001b4,0x0000005c,0x000001b0,0x000001b2,0x000200fe,0x000001b4, + 0x00010038,0x00050036,0x00000024,0x00000068,0x00000000,0x00000064,0x00030037,0x00000034, + 0x00000065,0x00030037,0x00000034,0x00000066,0x00030037,0x00000013,0x00000067,0x000200f8, + 0x00000069,0x0004003b,0x00000034,0x000001c8,0x00000007,0x0004003b,0x000001d5,0x000001d6, + 0x00000007,0x0004003b,0x00000007,0x0000020f,0x00000007,0x0004003b,0x00000007,0x00000212, + 0x00000007,0x0004003b,0x00000007,0x00000215,0x00000007,0x0004003b,0x00000007,0x00000223, + 0x00000007,0x0004003b,0x00000007,0x00000226,0x00000007,0x0004003b,0x000001d5,0x0000022b, + 0x00000007,0x0004003b,0x000001d5,0x00000254,0x00000007,0x0004003b,0x00000007,0x000002c5, + 0x00000007,0x0004003b,0x00000007,0x000002c7,0x00000007,0x0004003b,0x00000034,0x000002ca, + 0x00000007,0x0004003b,0x00000034,0x000002cc,0x00000007,0x0004003b,0x00000034,0x000002ce, + 0x00000007,0x0004003b,0x00000007,0x000002d5,0x00000007,0x0004003b,0x00000007,0x000002d7, + 0x00000007,0x0004003b,0x00000034,0x000002da,0x00000007,0x0004003b,0x00000034,0x000002dc, + 0x00000007,0x0004003b,0x00000034,0x000002de,0x00000007,0x0004003b,0x00000007,0x000002e5, + 0x00000007,0x0004003b,0x00000007,0x000002e7,0x00000007,0x0004003b,0x00000034,0x000002ea, + 0x00000007,0x0004003b,0x00000034,0x000002ec,0x00000007,0x0004003b,0x00000007,0x000002f3, + 0x00000007,0x0004003b,0x00000007,0x000002f5,0x00000007,0x0004003b,0x00000034,0x000002f8, + 0x00000007,0x0004003b,0x00000034,0x000002fa,0x00000007,0x0004003d,0x00000012,0x000001b7, + 0x00000067,0x000300f7,0x000001c7,0x00000000,0x002100fb,0x000001b7,0x000001c7,0x0000000b, + 0x000001b8,0x00000001,0x000001b9,0x00000002,0x000001ba,0x00000003,0x000001bb,0x00000004, + 0x000001bc,0x00000005,0x000001bd,0x00000006,0x000001be,0x00000007,0x000001bf,0x00000008, + 0x000001c0,0x00000009,0x000001c1,0x0000000a,0x000001c2,0x0000000c,0x000001c3,0x0000000d, + 0x000001c4,0x0000000e,0x000001c5,0x0000000f,0x000001c6,0x000200f8,0x000001b8,0x0004003d, + 0x00000024,0x000001c9,0x00000065,0x0004003d,0x00000024,0x000001ca,0x00000066,0x00050085, + 0x00000024,0x000001cb,0x000001c9,0x000001ca,0x0003003e,0x000001c8,0x000001cb,0x000200f9, + 0x000001c7,0x000200f8,0x000001b9,0x0004003d,0x00000024,0x000001cd,0x00000065,0x0004003d, + 0x00000024,0x000001ce,0x00000066,0x00050081,0x00000024,0x000001cf,0x000001cd,0x000001ce, + 0x0004003d,0x00000024,0x000001d0,0x00000065,0x0004003d,0x00000024,0x000001d1,0x00000066, + 0x00050085,0x00000024,0x000001d2,0x000001d0,0x000001d1,0x00050083,0x00000024,0x000001d3, + 0x000001cf,0x000001d2,0x0003003e,0x000001c8,0x000001d3,0x000200f9,0x000001c7,0x000200f8, + 0x000001ba,0x0003003e,0x000001d6,0x000000d6,0x000200f9,0x000001d7,0x000200f8,0x000001d7, + 0x000400f6,0x000001d9,0x000001da,0x00000000,0x000200f9,0x000001db,0x000200f8,0x000001db, + 0x0004003d,0x0000007a,0x000001dc,0x000001d6,0x000500b1,0x000000f3,0x000001de,0x000001dc, + 0x000001dd,0x000400fa,0x000001de,0x000001d8,0x000001d9,0x000200f8,0x000001d8,0x0004003d, + 0x0000007a,0x000001df,0x000001d6,0x00050041,0x00000007,0x000001e0,0x00000066,0x000001df, + 0x0004003d,0x00000006,0x000001e1,0x000001e0,0x000500bc,0x000000f3,0x000001e3,0x000001e1, + 0x000001e2,0x000300f7,0x000001e5,0x00000000,0x000400fa,0x000001e3,0x000001e4,0x000001f1, + 0x000200f8,0x000001e4,0x0004003d,0x0000007a,0x000001e6,0x000001d6,0x0004003d,0x0000007a, + 0x000001e8,0x000001d6,0x00050041,0x00000007,0x000001e9,0x00000065,0x000001e8,0x0004003d, + 0x00000006,0x000001ea,0x000001e9,0x00050085,0x00000006,0x000001eb,0x000001e7,0x000001ea, + 0x0004003d,0x0000007a,0x000001ec,0x000001d6,0x00050041,0x00000007,0x000001ed,0x00000066, + 0x000001ec,0x0004003d,0x00000006,0x000001ee,0x000001ed,0x00050085,0x00000006,0x000001ef, + 0x000001eb,0x000001ee,0x00050041,0x00000007,0x000001f0,0x000001c8,0x000001e6,0x0003003e, + 0x000001f0,0x000001ef,0x000200f9,0x000001e5,0x000200f8,0x000001f1,0x0004003d,0x0000007a, + 0x000001f2,0x000001d6,0x0004003d,0x0000007a,0x000001f3,0x000001d6,0x00050041,0x00000007, + 0x000001f4,0x00000065,0x000001f3,0x0004003d,0x00000006,0x000001f5,0x000001f4,0x00050083, + 0x00000006,0x000001f6,0x000000e3,0x000001f5,0x00050085,0x00000006,0x000001f7,0x000001e7, + 0x000001f6,0x0004003d,0x0000007a,0x000001f8,0x000001d6,0x00050041,0x00000007,0x000001f9, + 0x00000066,0x000001f8,0x0004003d,0x00000006,0x000001fa,0x000001f9,0x00050083,0x00000006, + 0x000001fb,0x000000e3,0x000001fa,0x00050085,0x00000006,0x000001fc,0x000001f7,0x000001fb, + 0x00050083,0x00000006,0x000001fd,0x000000e3,0x000001fc,0x00050041,0x00000007,0x000001fe, + 0x000001c8,0x000001f2,0x0003003e,0x000001fe,0x000001fd,0x000200f9,0x000001e5,0x000200f8, + 0x000001e5,0x000200f9,0x000001da,0x000200f8,0x000001da,0x0004003d,0x0000007a,0x000001ff, + 0x000001d6,0x00050080,0x0000007a,0x00000200,0x000001ff,0x000000d9,0x0003003e,0x000001d6, + 0x00000200,0x000200f9,0x000001d7,0x000200f8,0x000001d9,0x000200f9,0x000001c7,0x000200f8, + 0x000001bb,0x0004003d,0x00000024,0x00000202,0x00000065,0x0004003d,0x00000024,0x00000203, + 0x00000066,0x0007000c,0x00000024,0x00000204,0x00000001,0x00000025,0x00000202,0x00000203, + 0x0003003e,0x000001c8,0x00000204,0x000200f9,0x000001c7,0x000200f8,0x000001bc,0x0004003d, + 0x00000024,0x00000206,0x00000065,0x0004003d,0x00000024,0x00000207,0x00000066,0x0007000c, + 0x00000024,0x00000208,0x00000001,0x00000028,0x00000206,0x00000207,0x0003003e,0x000001c8, + 0x00000208,0x000200f9,0x000001c7,0x000200f8,0x000001bd,0x0004003d,0x00000024,0x0000020a, + 0x00000066,0x0004003d,0x00000024,0x0000020b,0x00000065,0x00060050,0x00000024,0x0000020c, + 0x000000e3,0x000000e3,0x000000e3,0x00050083,0x00000024,0x0000020d,0x0000020c,0x0000020b, + 0x00050088,0x00000024,0x0000020e,0x0000020a,0x0000020d,0x0003003e,0x0000020f,0x000000e3, + 0x00050039,0x00000024,0x00000210,0x0000002d,0x0000020f,0x0007000c,0x00000024,0x00000211, + 0x00000001,0x00000025,0x0000020e,0x00000210,0x0003003e,0x00000212,0x000000e4,0x00050039, + 0x00000024,0x00000213,0x0000002d,0x00000212,0x0004003d,0x00000024,0x00000214,0x00000066, + 0x0003003e,0x00000215,0x000000e4,0x00050039,0x00000024,0x00000216,0x0000002d,0x00000215, + 0x000500bc,0x00000114,0x00000217,0x00000214,0x00000216,0x000600a9,0x00000024,0x00000218, + 0x00000217,0x00000213,0x00000211,0x0003003e,0x000001c8,0x00000218,0x000200f9,0x000001c7, + 0x000200f8,0x000001be,0x0004003d,0x00000024,0x0000021a,0x00000066,0x00060050,0x00000024, + 0x0000021b,0x000000e3,0x000000e3,0x000000e3,0x00050083,0x00000024,0x0000021c,0x0000021b, + 0x0000021a,0x0004003d,0x00000024,0x0000021d,0x00000065,0x00050088,0x00000024,0x0000021e, + 0x0000021c,0x0000021d,0x00060050,0x00000024,0x0000021f,0x000000e3,0x000000e3,0x000000e3, + 0x0007000c,0x00000024,0x00000220,0x00000001,0x00000025,0x0000021e,0x0000021f,0x00060050, + 0x00000024,0x00000221,0x000000e3,0x000000e3,0x000000e3,0x00050083,0x00000024,0x00000222, + 0x00000221,0x00000220,0x0003003e,0x00000223,0x000000e3,0x00050039,0x00000024,0x00000224, + 0x0000002d,0x00000223,0x0004003d,0x00000024,0x00000225,0x00000066,0x0003003e,0x00000226, + 0x000000e3,0x00050039,0x00000024,0x00000227,0x0000002d,0x00000226,0x000500be,0x00000114, + 0x00000228,0x00000225,0x00000227,0x000600a9,0x00000024,0x00000229,0x00000228,0x00000224, + 0x00000222,0x0003003e,0x000001c8,0x00000229,0x000200f9,0x000001c7,0x000200f8,0x000001bf, + 0x0003003e,0x0000022b,0x000000d6,0x000200f9,0x0000022c,0x000200f8,0x0000022c,0x000400f6, + 0x0000022e,0x0000022f,0x00000000,0x000200f9,0x00000230,0x000200f8,0x00000230,0x0004003d, + 0x0000007a,0x00000231,0x0000022b,0x000500b1,0x000000f3,0x00000232,0x00000231,0x000001dd, + 0x000400fa,0x00000232,0x0000022d,0x0000022e,0x000200f8,0x0000022d,0x0004003d,0x0000007a, + 0x00000233,0x0000022b,0x00050041,0x00000007,0x00000234,0x00000065,0x00000233,0x0004003d, + 0x00000006,0x00000235,0x00000234,0x000500bc,0x000000f3,0x00000236,0x00000235,0x000001e2, + 0x000300f7,0x00000238,0x00000000,0x000400fa,0x00000236,0x00000237,0x00000243,0x000200f8, + 0x00000237,0x0004003d,0x0000007a,0x00000239,0x0000022b,0x0004003d,0x0000007a,0x0000023a, + 0x0000022b,0x00050041,0x00000007,0x0000023b,0x00000065,0x0000023a,0x0004003d,0x00000006, + 0x0000023c,0x0000023b,0x00050085,0x00000006,0x0000023d,0x000001e7,0x0000023c,0x0004003d, + 0x0000007a,0x0000023e,0x0000022b,0x00050041,0x00000007,0x0000023f,0x00000066,0x0000023e, + 0x0004003d,0x00000006,0x00000240,0x0000023f,0x00050085,0x00000006,0x00000241,0x0000023d, + 0x00000240,0x00050041,0x00000007,0x00000242,0x000001c8,0x00000239,0x0003003e,0x00000242, + 0x00000241,0x000200f9,0x00000238,0x000200f8,0x00000243,0x0004003d,0x0000007a,0x00000244, + 0x0000022b,0x0004003d,0x0000007a,0x00000245,0x0000022b,0x00050041,0x00000007,0x00000246, + 0x00000065,0x00000245,0x0004003d,0x00000006,0x00000247,0x00000246,0x00050083,0x00000006, + 0x00000248,0x000000e3,0x00000247,0x00050085,0x00000006,0x00000249,0x000001e7,0x00000248, + 0x0004003d,0x0000007a,0x0000024a,0x0000022b,0x00050041,0x00000007,0x0000024b,0x00000066, + 0x0000024a,0x0004003d,0x00000006,0x0000024c,0x0000024b,0x00050083,0x00000006,0x0000024d, + 0x000000e3,0x0000024c,0x00050085,0x00000006,0x0000024e,0x00000249,0x0000024d,0x00050083, + 0x00000006,0x0000024f,0x000000e3,0x0000024e,0x00050041,0x00000007,0x00000250,0x000001c8, + 0x00000244,0x0003003e,0x00000250,0x0000024f,0x000200f9,0x00000238,0x000200f8,0x00000238, + 0x000200f9,0x0000022f,0x000200f8,0x0000022f,0x0004003d,0x0000007a,0x00000251,0x0000022b, + 0x00050080,0x0000007a,0x00000252,0x00000251,0x000000d9,0x0003003e,0x0000022b,0x00000252, + 0x000200f9,0x0000022c,0x000200f8,0x0000022e,0x000200f9,0x000001c7,0x000200f8,0x000001c0, + 0x0003003e,0x00000254,0x000000d6,0x000200f9,0x00000255,0x000200f8,0x00000255,0x000400f6, + 0x00000257,0x00000258,0x00000000,0x000200f9,0x00000259,0x000200f8,0x00000259,0x0004003d, + 0x0000007a,0x0000025a,0x00000254,0x000500b1,0x000000f3,0x0000025b,0x0000025a,0x000001dd, + 0x000400fa,0x0000025b,0x00000256,0x00000257,0x000200f8,0x00000256,0x0004003d,0x0000007a, + 0x0000025c,0x00000254,0x00050041,0x00000007,0x0000025d,0x00000065,0x0000025c,0x0004003d, + 0x00000006,0x0000025e,0x0000025d,0x000500bc,0x000000f3,0x0000025f,0x0000025e,0x000001e2, + 0x000300f7,0x00000261,0x00000000,0x000400fa,0x0000025f,0x00000260,0x00000276,0x000200f8, + 0x00000260,0x0004003d,0x0000007a,0x00000262,0x00000254,0x0004003d,0x0000007a,0x00000263, + 0x00000254,0x00050041,0x00000007,0x00000264,0x00000066,0x00000263,0x0004003d,0x00000006, + 0x00000265,0x00000264,0x0004003d,0x0000007a,0x00000266,0x00000254,0x00050041,0x00000007, + 0x00000267,0x00000065,0x00000266,0x0004003d,0x00000006,0x00000268,0x00000267,0x00050085, + 0x00000006,0x00000269,0x000001e7,0x00000268,0x00050083,0x00000006,0x0000026a,0x000000e3, + 0x00000269,0x0004003d,0x0000007a,0x0000026b,0x00000254,0x00050041,0x00000007,0x0000026c, + 0x00000066,0x0000026b,0x0004003d,0x00000006,0x0000026d,0x0000026c,0x00050085,0x00000006, + 0x0000026e,0x0000026a,0x0000026d,0x0004003d,0x0000007a,0x0000026f,0x00000254,0x00050041, + 0x00000007,0x00000270,0x00000066,0x0000026f,0x0004003d,0x00000006,0x00000271,0x00000270, + 0x00050083,0x00000006,0x00000272,0x000000e3,0x00000271,0x00050085,0x00000006,0x00000273, + 0x0000026e,0x00000272,0x00050083,0x00000006,0x00000274,0x00000265,0x00000273,0x00050041, + 0x00000007,0x00000275,0x000001c8,0x00000262,0x0003003e,0x00000275,0x00000274,0x000200f9, + 0x00000261,0x000200f8,0x00000276,0x0004003d,0x0000007a,0x00000277,0x00000254,0x00050041, + 0x00000007,0x00000278,0x00000066,0x00000277,0x0004003d,0x00000006,0x00000279,0x00000278, + 0x000500bc,0x000000f3,0x0000027b,0x00000279,0x0000027a,0x000300f7,0x0000027d,0x00000000, + 0x000400fa,0x0000027b,0x0000027c,0x0000029b,0x000200f8,0x0000027c,0x0004003d,0x0000007a, + 0x0000027e,0x00000254,0x0004003d,0x0000007a,0x0000027f,0x00000254,0x00050041,0x00000007, + 0x00000280,0x00000066,0x0000027f,0x0004003d,0x00000006,0x00000281,0x00000280,0x0004003d, + 0x0000007a,0x00000282,0x00000254,0x00050041,0x00000007,0x00000283,0x00000065,0x00000282, + 0x0004003d,0x00000006,0x00000284,0x00000283,0x00050085,0x00000006,0x00000285,0x000001e7, + 0x00000284,0x00050083,0x00000006,0x00000286,0x00000285,0x000000e3,0x0004003d,0x0000007a, + 0x00000287,0x00000254,0x00050041,0x00000007,0x00000288,0x00000066,0x00000287,0x0004003d, + 0x00000006,0x00000289,0x00000288,0x00050085,0x00000006,0x0000028a,0x00000286,0x00000289, + 0x0004003d,0x0000007a,0x0000028c,0x00000254,0x00050041,0x00000007,0x0000028d,0x00000066, + 0x0000028c,0x0004003d,0x00000006,0x0000028e,0x0000028d,0x00050085,0x00000006,0x0000028f, + 0x0000028b,0x0000028e,0x00050083,0x00000006,0x00000291,0x0000028f,0x00000290,0x0004003d, + 0x0000007a,0x00000292,0x00000254,0x00050041,0x00000007,0x00000293,0x00000066,0x00000292, + 0x0004003d,0x00000006,0x00000294,0x00000293,0x00050085,0x00000006,0x00000295,0x00000291, + 0x00000294,0x00050081,0x00000006,0x00000297,0x00000295,0x00000296,0x00050085,0x00000006, + 0x00000298,0x0000028a,0x00000297,0x00050081,0x00000006,0x00000299,0x00000281,0x00000298, + 0x00050041,0x00000007,0x0000029a,0x000001c8,0x0000027e,0x0003003e,0x0000029a,0x00000299, + 0x000200f9,0x0000027d,0x000200f8,0x0000029b,0x0004003d,0x0000007a,0x0000029c,0x00000254, + 0x0004003d,0x0000007a,0x0000029d,0x00000254,0x00050041,0x00000007,0x0000029e,0x00000066, + 0x0000029d,0x0004003d,0x00000006,0x0000029f,0x0000029e,0x0004003d,0x0000007a,0x000002a0, + 0x00000254,0x00050041,0x00000007,0x000002a1,0x00000065,0x000002a0,0x0004003d,0x00000006, + 0x000002a2,0x000002a1,0x00050085,0x00000006,0x000002a3,0x000001e7,0x000002a2,0x00050083, + 0x00000006,0x000002a4,0x000002a3,0x000000e3,0x0004003d,0x0000007a,0x000002a5,0x00000254, + 0x00050041,0x00000007,0x000002a6,0x00000066,0x000002a5,0x0004003d,0x00000006,0x000002a7, + 0x000002a6,0x0006000c,0x00000006,0x000002a8,0x00000001,0x0000001f,0x000002a7,0x0004003d, + 0x0000007a,0x000002a9,0x00000254,0x00050041,0x00000007,0x000002aa,0x00000066,0x000002a9, + 0x0004003d,0x00000006,0x000002ab,0x000002aa,0x00050083,0x00000006,0x000002ac,0x000002a8, + 0x000002ab,0x00050085,0x00000006,0x000002ad,0x000002a4,0x000002ac,0x00050081,0x00000006, + 0x000002ae,0x0000029f,0x000002ad,0x00050041,0x00000007,0x000002af,0x000001c8,0x0000029c, + 0x0003003e,0x000002af,0x000002ae,0x000200f9,0x0000027d,0x000200f8,0x0000027d,0x000200f9, + 0x00000261,0x000200f8,0x00000261,0x000200f9,0x00000258,0x000200f8,0x00000258,0x0004003d, + 0x0000007a,0x000002b0,0x00000254,0x00050080,0x0000007a,0x000002b1,0x000002b0,0x000000d9, + 0x0003003e,0x00000254,0x000002b1,0x000200f9,0x00000255,0x000200f8,0x00000257,0x000200f9, + 0x000001c7,0x000200f8,0x000001c1,0x0004003d,0x00000024,0x000002b3,0x00000066,0x0004003d, + 0x00000024,0x000002b4,0x00000065,0x00050083,0x00000024,0x000002b5,0x000002b3,0x000002b4, + 0x0006000c,0x00000024,0x000002b6,0x00000001,0x00000004,0x000002b5,0x0003003e,0x000001c8, + 0x000002b6,0x000200f9,0x000001c7,0x000200f8,0x000001c2,0x0004003d,0x00000024,0x000002b8, + 0x00000065,0x0004003d,0x00000024,0x000002b9,0x00000066,0x00050081,0x00000024,0x000002ba, + 0x000002b8,0x000002b9,0x0004003d,0x00000024,0x000002bb,0x00000065,0x0005008e,0x00000024, + 0x000002bc,0x000002bb,0x000001e7,0x0004003d,0x00000024,0x000002bd,0x00000066,0x00050085, + 0x00000024,0x000002be,0x000002bc,0x000002bd,0x00050083,0x00000024,0x000002bf,0x000002ba, + 0x000002be,0x0003003e,0x000001c8,0x000002bf,0x000200f9,0x000001c7,0x000200f8,0x000001c3, + 0x000300f7,0x000002c3,0x00000000,0x000400fa,0x000002c1,0x000002c2,0x000002c3,0x000200f8, + 0x000002c2,0x0004003d,0x00000024,0x000002c4,0x00000065,0x0003003e,0x000002c5,0x000000e4, + 0x00050039,0x00000024,0x000002c6,0x0000002d,0x000002c5,0x0003003e,0x000002c7,0x000000e3, + 0x00050039,0x00000024,0x000002c8,0x0000002d,0x000002c7,0x0008000c,0x00000024,0x000002c9, + 0x00000001,0x0000002b,0x000002c4,0x000002c6,0x000002c8,0x0003003e,0x00000065,0x000002c9, + 0x0004003d,0x00000024,0x000002cb,0x00000065,0x0003003e,0x000002ca,0x000002cb,0x0004003d, + 0x00000024,0x000002cd,0x00000066,0x0003003e,0x000002cc,0x000002cd,0x0004003d,0x00000024, + 0x000002cf,0x00000066,0x0003003e,0x000002ce,0x000002cf,0x00070039,0x00000024,0x000002d0, + 0x00000062,0x000002ca,0x000002cc,0x000002ce,0x0003003e,0x000001c8,0x000002d0,0x000200f9, + 0x000001c7,0x000200f8,0x000002c3,0x000200f9,0x000001c4,0x000200f8,0x000001c4,0x000300f7, + 0x000002d3,0x00000000,0x000400fa,0x000002c1,0x000002d2,0x000002d3,0x000200f8,0x000002d2, + 0x0004003d,0x00000024,0x000002d4,0x00000065,0x0003003e,0x000002d5,0x000000e4,0x00050039, + 0x00000024,0x000002d6,0x0000002d,0x000002d5,0x0003003e,0x000002d7,0x000000e3,0x00050039, + 0x00000024,0x000002d8,0x0000002d,0x000002d7,0x0008000c,0x00000024,0x000002d9,0x00000001, + 0x0000002b,0x000002d4,0x000002d6,0x000002d8,0x0003003e,0x00000065,0x000002d9,0x0004003d, + 0x00000024,0x000002db,0x00000066,0x0003003e,0x000002da,0x000002db,0x0004003d,0x00000024, + 0x000002dd,0x00000065,0x0003003e,0x000002dc,0x000002dd,0x0004003d,0x00000024,0x000002df, + 0x00000066,0x0003003e,0x000002de,0x000002df,0x00070039,0x00000024,0x000002e0,0x00000062, + 0x000002da,0x000002dc,0x000002de,0x0003003e,0x000001c8,0x000002e0,0x000200f9,0x000001c7, + 0x000200f8,0x000002d3,0x000200f9,0x000001c5,0x000200f8,0x000001c5,0x000300f7,0x000002e3, + 0x00000000,0x000400fa,0x000002c1,0x000002e2,0x000002e3,0x000200f8,0x000002e2,0x0004003d, + 0x00000024,0x000002e4,0x00000065,0x0003003e,0x000002e5,0x000000e4,0x00050039,0x00000024, + 0x000002e6,0x0000002d,0x000002e5,0x0003003e,0x000002e7,0x000000e3,0x00050039,0x00000024, + 0x000002e8,0x0000002d,0x000002e7,0x0008000c,0x00000024,0x000002e9,0x00000001,0x0000002b, + 0x000002e4,0x000002e6,0x000002e8,0x0003003e,0x00000065,0x000002e9,0x0004003d,0x00000024, + 0x000002eb,0x00000065,0x0003003e,0x000002ea,0x000002eb,0x0004003d,0x00000024,0x000002ed, + 0x00000066,0x0003003e,0x000002ec,0x000002ed,0x00060039,0x00000024,0x000002ee,0x0000005c, + 0x000002ea,0x000002ec,0x0003003e,0x000001c8,0x000002ee,0x000200f9,0x000001c7,0x000200f8, + 0x000002e3,0x000200f9,0x000001c6,0x000200f8,0x000001c6,0x000300f7,0x000002f1,0x00000000, + 0x000400fa,0x000002c1,0x000002f0,0x000002f1,0x000200f8,0x000002f0,0x0004003d,0x00000024, + 0x000002f2,0x00000065,0x0003003e,0x000002f3,0x000000e4,0x00050039,0x00000024,0x000002f4, + 0x0000002d,0x000002f3,0x0003003e,0x000002f5,0x000000e3,0x00050039,0x00000024,0x000002f6, + 0x0000002d,0x000002f5,0x0008000c,0x00000024,0x000002f7,0x00000001,0x0000002b,0x000002f2, + 0x000002f4,0x000002f6,0x0003003e,0x00000065,0x000002f7,0x0004003d,0x00000024,0x000002f9, + 0x00000066,0x0003003e,0x000002f8,0x000002f9,0x0004003d,0x00000024,0x000002fb,0x00000065, + 0x0003003e,0x000002fa,0x000002fb,0x00060039,0x00000024,0x000002fc,0x0000005c,0x000002f8, + 0x000002fa,0x0003003e,0x000001c8,0x000002fc,0x000200f9,0x000001c7,0x000200f8,0x000002f1, + 0x000200f9,0x000001c7,0x000200f8,0x000001c7,0x0004003d,0x00000024,0x000002ff,0x000001c8, + 0x000200fe,0x000002ff,0x00010038,0x00050036,0x00000024,0x0000006e,0x00000000,0x0000006a, + 0x00030037,0x00000034,0x0000006b,0x00030037,0x0000003b,0x0000006c,0x00030037,0x00000013, + 0x0000006d,0x000200f8,0x0000006f,0x0004003b,0x00000034,0x00000302,0x00000007,0x0004003b, + 0x00000034,0x00000303,0x00000007,0x0004003b,0x00000034,0x00000305,0x00000007,0x0004003b, + 0x00000013,0x00000308,0x00000007,0x0004003b,0x0000000d,0x0000030b,0x00000007,0x0004003b, + 0x00000007,0x0000030f,0x00000007,0x0004003b,0x00000007,0x00000312,0x00000007,0x0004003b, + 0x00000034,0x00000314,0x00000007,0x0004003b,0x00000034,0x00000316,0x00000007,0x0004003d, + 0x00000024,0x00000304,0x0000006b,0x0003003e,0x00000303,0x00000304,0x0004003d,0x0000002f, + 0x00000306,0x0000006c,0x0008004f,0x00000024,0x00000307,0x00000306,0x00000306,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x00000305,0x00000307,0x0004003d,0x00000012,0x00000309, + 0x0000006d,0x0003003e,0x00000308,0x00000309,0x00070039,0x00000024,0x0000030a,0x00000068, + 0x00000303,0x00000305,0x00000308,0x0003003e,0x00000302,0x0000030a,0x00050041,0x00000007, + 0x0000030c,0x0000006c,0x000000cf,0x0004003d,0x00000006,0x0000030d,0x0000030c,0x00050083, + 0x00000006,0x0000030e,0x000000e3,0x0000030d,0x00050041,0x00000007,0x00000310,0x0000006c, + 0x000000cf,0x0004003d,0x00000006,0x00000311,0x00000310,0x0003003e,0x0000030f,0x00000311, + 0x0003003e,0x00000312,0x0000030e,0x00060039,0x0000000c,0x00000313,0x0000001e,0x0000030f, + 0x00000312,0x0003003e,0x0000030b,0x00000313,0x0004003d,0x00000024,0x00000315,0x00000302, + 0x0003003e,0x00000314,0x00000315,0x0004003d,0x00000024,0x00000317,0x0000006b,0x0003003e, + 0x00000316,0x00000317,0x00060039,0x00000035,0x00000318,0x00000039,0x00000314,0x00000316, + 0x0004003d,0x0000000c,0x00000319,0x0000030b,0x00050091,0x00000024,0x0000031a,0x00000318, + 0x00000319,0x000200fe,0x0000031a,0x00010038,0x00050036,0x00000006,0x00000072,0x00000000, + 0x00000070,0x00030037,0x00000013,0x00000071,0x000200f8,0x00000073,0x0004003b,0x00000007, + 0x00000323,0x00000007,0x0004003d,0x00000012,0x0000031d,0x00000071,0x00040070,0x00000006, + 0x0000031e,0x0000031d,0x00050085,0x00000006,0x00000320,0x0000031e,0x0000031f,0x00050081, + 0x00000006,0x00000322,0x00000320,0x00000321,0x0003003e,0x00000323,0x00000322,0x00050039, + 0x00000006,0x00000324,0x0000000a,0x00000323,0x000200fe,0x00000324,0x00010038,0x00050036, + 0x00000002,0x00000078,0x00000000,0x00000074,0x00030037,0x00000013,0x00000075,0x00030037, + 0x0000003b,0x00000076,0x00030037,0x00000007,0x00000077,0x000200f8,0x00000079,0x0004003b, + 0x00000007,0x0000032f,0x00000007,0x0004003d,0x0000002f,0x00000327,0x00000076,0x0007004f, + 0x0000000c,0x00000328,0x00000327,0x00000327,0x00000000,0x00000001,0x0004003d,0x00000012, + 0x00000329,0x00000075,0x0006000c,0x0000002f,0x0000032a,0x00000001,0x00000040,0x00000329, + 0x0007004f,0x0000000c,0x0000032b,0x0000032a,0x0000032a,0x00000000,0x00000001,0x00050083, + 0x0000000c,0x0000032c,0x00000328,0x0000032b,0x0006000c,0x0000000c,0x0000032d,0x00000001, + 0x00000004,0x0000032c,0x0003003e,0x0000032f,0x0000032e,0x00050039,0x0000000c,0x00000330, + 0x00000022,0x0000032f,0x000500b8,0x00000331,0x00000332,0x0000032d,0x00000330,0x0004009b, + 0x000000f3,0x00000333,0x00000332,0x000300f7,0x00000335,0x00000000,0x000400fa,0x00000333, + 0x00000334,0x0000033a,0x000200f8,0x00000334,0x0004003d,0x00000006,0x00000336,0x00000077, + 0x00050041,0x00000007,0x00000337,0x00000076,0x000000b8,0x0004003d,0x00000006,0x00000338, + 0x00000337,0x0007000c,0x00000006,0x00000339,0x00000001,0x00000025,0x00000336,0x00000338, + 0x0003003e,0x00000077,0x00000339,0x000200f9,0x00000335,0x000200f8,0x0000033a,0x0003003e, + 0x00000077,0x000000e4,0x000200f9,0x00000335,0x000200f8,0x00000335,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000083,0x00000000,0x0000007d,0x00030037,0x00000013,0x0000007e, + 0x00030037,0x00000007,0x0000007f,0x00030037,0x0000003b,0x00000080,0x00030037,0x0000003b, + 0x00000081,0x00030037,0x0000007c,0x00000082,0x000200f8,0x00000084,0x0004003b,0x0000033c, + 0x0000033d,0x00000007,0x0004003b,0x00000007,0x00000346,0x00000007,0x0004003b,0x00000007, + 0x00000365,0x00000007,0x0004003b,0x00000007,0x00000367,0x00000007,0x0004003b,0x00000013, + 0x0000036d,0x00000007,0x0004003b,0x00000013,0x0000037c,0x00000007,0x0004003b,0x0000003b, + 0x0000037e,0x00000007,0x0004003b,0x00000007,0x0000037f,0x00000007,0x0004003b,0x0000038e, + 0x0000038f,0x00000007,0x0004003b,0x0000003b,0x00000398,0x00000007,0x0004003b,0x0000003b, + 0x0000039d,0x00000007,0x0004003b,0x0000000d,0x000003a3,0x00000007,0x0004003b,0x0000000d, + 0x000003ad,0x00000007,0x0004003b,0x0000000d,0x000003b6,0x00000007,0x0004003b,0x00000007, + 0x000003b8,0x00000007,0x0004003b,0x00000013,0x000003c3,0x00000007,0x0004003b,0x00000007, + 0x000003dd,0x00000007,0x0004003b,0x0000038e,0x000003e0,0x00000007,0x0004003b,0x0000003b, + 0x000003e3,0x00000007,0x0004003b,0x0000003b,0x000003e7,0x00000007,0x0004003b,0x0000000d, + 0x000003ed,0x00000007,0x0004003b,0x00000007,0x000003f5,0x00000007,0x0004003b,0x00000007, + 0x000003f8,0x00000007,0x0004003b,0x00000007,0x00000403,0x00000007,0x0004003b,0x00000007, + 0x0000040b,0x00000007,0x0004003b,0x00000013,0x0000042b,0x00000007,0x0004003b,0x00000013, + 0x00000431,0x00000007,0x0004003b,0x0000003b,0x00000437,0x00000007,0x0004003b,0x0000003b, + 0x0000043b,0x00000007,0x0004003b,0x00000034,0x0000043e,0x00000007,0x0004003b,0x0000003b, + 0x00000441,0x00000007,0x0004003b,0x00000013,0x00000442,0x00000007,0x0004003d,0x00000012, + 0x00000342,0x0000007e,0x00060041,0x00000343,0x00000344,0x00000341,0x000000d6,0x00000342, + 0x0004003d,0x0000033b,0x00000345,0x00000344,0x0003003e,0x0000033d,0x00000345,0x0004003d, + 0x00000006,0x00000347,0x0000007f,0x0003003e,0x00000346,0x00000347,0x00050041,0x00000013, + 0x00000348,0x0000033d,0x000000a2,0x0004003d,0x00000012,0x00000349,0x00000348,0x000500c7, + 0x00000012,0x0000034b,0x00000349,0x0000034a,0x000500ab,0x000000f3,0x0000034c,0x0000034b, + 0x000000a2,0x000300f7,0x0000034e,0x00000000,0x000400fa,0x0000034c,0x0000034d,0x0000034e, + 0x000200f8,0x0000034d,0x0004003d,0x00000006,0x0000034f,0x00000346,0x0006000c,0x00000006, + 0x00000350,0x00000001,0x00000004,0x0000034f,0x0003003e,0x00000346,0x00000350,0x000300f7, + 0x00000353,0x00000000,0x000400fa,0x00000351,0x00000352,0x00000353,0x000200f8,0x00000352, + 0x00050041,0x00000013,0x00000354,0x0000033d,0x000000a2,0x0004003d,0x00000012,0x00000355, + 0x00000354,0x000500c7,0x00000012,0x00000357,0x00000355,0x00000356,0x000500ab,0x000000f3, + 0x00000358,0x00000357,0x000000a2,0x000200f9,0x00000353,0x000200f8,0x00000353,0x000700f5, + 0x000000f3,0x00000359,0x00000351,0x0000034d,0x00000358,0x00000352,0x000300f7,0x0000035b, + 0x00000000,0x000400fa,0x00000359,0x0000035a,0x0000035b,0x000200f8,0x0000035a,0x0004003d, + 0x00000006,0x0000035c,0x00000346,0x00050085,0x00000006,0x0000035d,0x0000035c,0x000001e2, + 0x0006000c,0x00000006,0x0000035e,0x00000001,0x0000000a,0x0000035d,0x00050085,0x00000006, + 0x0000035f,0x0000035e,0x000001e7,0x00050081,0x00000006,0x00000361,0x0000035f,0x00000360, + 0x0006000c,0x00000006,0x00000362,0x00000001,0x00000004,0x00000361,0x00050083,0x00000006, + 0x00000363,0x000000e3,0x00000362,0x0003003e,0x00000346,0x00000363,0x000200f9,0x0000035b, + 0x000200f8,0x0000035b,0x000200f9,0x0000034e,0x000200f8,0x0000034e,0x0004003d,0x00000006, + 0x00000364,0x00000346,0x0003003e,0x00000365,0x000000e4,0x00050039,0x00000006,0x00000366, + 0x00000019,0x00000365,0x0003003e,0x00000367,0x000000e3,0x00050039,0x00000006,0x00000368, + 0x00000019,0x00000367,0x0008000c,0x00000006,0x00000369,0x00000001,0x0000002b,0x00000364, + 0x00000366,0x00000368,0x0003003e,0x00000346,0x00000369,0x000300f7,0x0000036c,0x00000000, + 0x000400fa,0x0000036a,0x0000036b,0x0000036c,0x000200f8,0x0000036b,0x00050041,0x00000013, + 0x0000036e,0x0000033d,0x000000a2,0x0004003d,0x00000012,0x0000036f,0x0000036e,0x000500c2, + 0x00000012,0x00000371,0x0000036f,0x00000370,0x0003003e,0x0000036d,0x00000371,0x0004003d, + 0x00000012,0x00000372,0x0000036d,0x000500ab,0x000000f3,0x00000373,0x00000372,0x000000a2, + 0x000300f7,0x00000375,0x00000000,0x000400fa,0x00000373,0x00000374,0x00000375,0x000200f8, + 0x00000374,0x0004003d,0x00000376,0x00000379,0x00000378,0x00050062,0x0000002f,0x0000037b, + 0x00000379,0x0000037a,0x0004003d,0x00000012,0x0000037d,0x0000036d,0x0003003e,0x0000037c, + 0x0000037d,0x0003003e,0x0000037e,0x0000037b,0x0004003d,0x00000006,0x00000380,0x00000346, + 0x0003003e,0x0000037f,0x00000380,0x00070039,0x00000002,0x00000381,0x00000078,0x0000037c, + 0x0000037e,0x0000037f,0x0004003d,0x00000006,0x00000382,0x0000037f,0x0003003e,0x00000346, + 0x00000382,0x000200f9,0x00000375,0x000200f8,0x00000375,0x000200f9,0x0000036c,0x000200f8, + 0x0000036c,0x000300f7,0x00000385,0x00000000,0x000400fa,0x00000383,0x00000384,0x00000385, + 0x000200f8,0x00000384,0x00050041,0x00000013,0x00000386,0x0000033d,0x000000a2,0x0004003d, + 0x00000012,0x00000387,0x00000386,0x000500c7,0x00000012,0x00000389,0x00000387,0x00000388, + 0x000500ab,0x000000f3,0x0000038a,0x00000389,0x000000a2,0x000200f9,0x00000385,0x000200f8, + 0x00000385,0x000700f5,0x000000f3,0x0000038b,0x00000383,0x0000036c,0x0000038a,0x00000384, + 0x000300f7,0x0000038d,0x00000000,0x000400fa,0x0000038b,0x0000038c,0x0000038d,0x000200f8, + 0x0000038c,0x0004003d,0x00000012,0x00000394,0x0000007e,0x00050084,0x00000012,0x00000396, + 0x00000394,0x00000395,0x00050080,0x00000012,0x00000397,0x00000396,0x000000b8,0x00060041, + 0x00000399,0x0000039a,0x00000393,0x000000d6,0x00000397,0x0004003d,0x0000002f,0x0000039b, + 0x0000039a,0x0003003e,0x00000398,0x0000039b,0x00050039,0x0000003c,0x0000039c,0x0000003f, + 0x00000398,0x0003003e,0x0000038f,0x0000039c,0x0004003d,0x00000012,0x0000039e,0x0000007e, + 0x00050084,0x00000012,0x0000039f,0x0000039e,0x00000395,0x00050080,0x00000012,0x000003a0, + 0x0000039f,0x000000cf,0x00060041,0x00000399,0x000003a1,0x00000393,0x000000d6,0x000003a0, + 0x0004003d,0x0000002f,0x000003a2,0x000003a1,0x0003003e,0x0000039d,0x000003a2,0x0004003d, + 0x0000003c,0x000003a4,0x0000038f,0x0004003d,0x0000002f,0x000003a7,0x000003a6,0x0007004f, + 0x0000000c,0x000003a8,0x000003a7,0x000003a7,0x00000000,0x00000001,0x00050091,0x0000000c, + 0x000003a9,0x000003a4,0x000003a8,0x0004003d,0x0000002f,0x000003aa,0x0000039d,0x0007004f, + 0x0000000c,0x000003ab,0x000003aa,0x000003aa,0x00000000,0x00000001,0x00050081,0x0000000c, + 0x000003ac,0x000003a9,0x000003ab,0x0003003e,0x000003a3,0x000003ac,0x0004003d,0x0000000c, + 0x000003ae,0x000003a3,0x0006000c,0x0000000c,0x000003af,0x00000001,0x00000004,0x000003ae, + 0x0004003d,0x0000002f,0x000003b0,0x0000039d,0x0007004f,0x0000000c,0x000003b1,0x000003b0, + 0x000003b0,0x00000002,0x00000003,0x00050085,0x0000000c,0x000003b2,0x000003af,0x000003b1, + 0x0004003d,0x0000002f,0x000003b3,0x0000039d,0x0007004f,0x0000000c,0x000003b4,0x000003b3, + 0x000003b3,0x00000002,0x00000003,0x00050083,0x0000000c,0x000003b5,0x000003b2,0x000003b4, + 0x0003003e,0x000003b6,0x000003b5,0x00050039,0x0000000c,0x000003b7,0x00000010,0x000003b6, + 0x0003003e,0x000003ad,0x000003b7,0x00050041,0x00000007,0x000003b9,0x000003ad,0x000000a2, + 0x0004003d,0x00000006,0x000003ba,0x000003b9,0x00050041,0x00000007,0x000003bb,0x000003ad, + 0x000000a5,0x0004003d,0x00000006,0x000003bc,0x000003bb,0x0007000c,0x00000006,0x000003bd, + 0x00000001,0x00000025,0x000003ba,0x000003bc,0x00050081,0x00000006,0x000003be,0x000003bd, + 0x000001e2,0x0008000c,0x00000006,0x000003bf,0x00000001,0x0000002b,0x000003be,0x000000e4, + 0x000000e3,0x0003003e,0x000003b8,0x000003bf,0x0004003d,0x00000006,0x000003c0,0x00000346, + 0x0004003d,0x00000006,0x000003c1,0x000003b8,0x0007000c,0x00000006,0x000003c2,0x00000001, + 0x00000025,0x000003c0,0x000003c1,0x0003003e,0x00000346,0x000003c2,0x000200f9,0x0000038d, + 0x000200f8,0x0000038d,0x00050041,0x00000013,0x000003c4,0x0000033d,0x000000a2,0x0004003d, + 0x00000012,0x000003c5,0x000003c4,0x000500c7,0x00000012,0x000003c7,0x000003c5,0x000003c6, + 0x0003003e,0x000003c3,0x000003c7,0x0004003d,0x00000012,0x000003c8,0x000003c3,0x000500b2, + 0x000000f3,0x000003c9,0x000003c8,0x000000a5,0x000300f7,0x000003cb,0x00000000,0x000400fa, + 0x000003c9,0x000003ca,0x000003df,0x000200f8,0x000003ca,0x00050041,0x00000013,0x000003cc, + 0x0000033d,0x000000a5,0x0004003d,0x00000012,0x000003cd,0x000003cc,0x0006000c,0x0000002f, + 0x000003ce,0x00000001,0x00000040,0x000003cd,0x0003003e,0x00000080,0x000003ce,0x0004003d, + 0x00000012,0x000003cf,0x000003c3,0x000500aa,0x000000f3,0x000003d0,0x000003cf,0x000000a2, + 0x000500a7,0x000000f3,0x000003d1,0x0000036a,0x000003d0,0x000300f7,0x000003d3,0x00000000, + 0x000400fa,0x000003d1,0x000003d2,0x000003d3,0x000200f8,0x000003d2,0x0004003d,0x0000002f, + 0x000003d4,0x00000080,0x0007004f,0x0000000c,0x000003d5,0x000003d4,0x000003d4,0x00000002, + 0x00000003,0x00050041,0x00000007,0x000003d6,0x00000081,0x000000a2,0x00050051,0x00000006, + 0x000003d7,0x000003d5,0x00000000,0x0003003e,0x000003d6,0x000003d7,0x00050041,0x00000007, + 0x000003d8,0x00000081,0x000000a5,0x00050051,0x00000006,0x000003d9,0x000003d5,0x00000001, + 0x0003003e,0x000003d8,0x000003d9,0x0004003d,0x00000006,0x000003da,0x00000346,0x00050041, + 0x00000007,0x000003db,0x00000081,0x000000b8,0x0003003e,0x000003db,0x000003da,0x00050041, + 0x00000007,0x000003dc,0x00000081,0x000000cf,0x0003003e,0x000003dc,0x000000e3,0x0003003e, + 0x000003dd,0x000000e4,0x00050039,0x0000002f,0x000003de,0x00000032,0x000003dd,0x0003003e, + 0x00000080,0x000003de,0x000200f9,0x000003d3,0x000200f8,0x000003d3,0x000200f9,0x000003cb, + 0x000200f8,0x000003df,0x0004003d,0x00000012,0x000003e1,0x0000007e,0x00050084,0x00000012, + 0x000003e2,0x000003e1,0x00000395,0x00060041,0x00000399,0x000003e4,0x00000393,0x000000d6, + 0x000003e2,0x0004003d,0x0000002f,0x000003e5,0x000003e4,0x0003003e,0x000003e3,0x000003e5, + 0x00050039,0x0000003c,0x000003e6,0x0000003f,0x000003e3,0x0003003e,0x000003e0,0x000003e6, + 0x0004003d,0x00000012,0x000003e8,0x0000007e,0x00050084,0x00000012,0x000003e9,0x000003e8, + 0x00000395,0x00050080,0x00000012,0x000003ea,0x000003e9,0x000000a5,0x00060041,0x00000399, + 0x000003eb,0x00000393,0x000000d6,0x000003ea,0x0004003d,0x0000002f,0x000003ec,0x000003eb, + 0x0003003e,0x000003e7,0x000003ec,0x0004003d,0x0000003c,0x000003ee,0x000003e0,0x0004003d, + 0x0000002f,0x000003ef,0x000003a6,0x0007004f,0x0000000c,0x000003f0,0x000003ef,0x000003ef, + 0x00000000,0x00000001,0x00050091,0x0000000c,0x000003f1,0x000003ee,0x000003f0,0x0004003d, + 0x0000002f,0x000003f2,0x000003e7,0x0007004f,0x0000000c,0x000003f3,0x000003f2,0x000003f2, + 0x00000000,0x00000001,0x00050081,0x0000000c,0x000003f4,0x000003f1,0x000003f3,0x0003003e, + 0x000003ed,0x000003f4,0x0004003d,0x00000012,0x000003f6,0x000003c3,0x000500aa,0x000000f3, + 0x000003f7,0x000003f6,0x000000b8,0x000300f7,0x000003fa,0x00000000,0x000400fa,0x000003f7, + 0x000003f9,0x000003fd,0x000200f8,0x000003f9,0x00050041,0x00000007,0x000003fb,0x000003ed, + 0x000000a2,0x0004003d,0x00000006,0x000003fc,0x000003fb,0x0003003e,0x000003f8,0x000003fc, + 0x000200f9,0x000003fa,0x000200f8,0x000003fd,0x0004003d,0x0000000c,0x000003fe,0x000003ed, + 0x0006000c,0x00000006,0x000003ff,0x00000001,0x00000042,0x000003fe,0x0003003e,0x000003f8, + 0x000003ff,0x000200f9,0x000003fa,0x000200f8,0x000003fa,0x0004003d,0x00000006,0x00000400, + 0x000003f8,0x0003003e,0x000003f5,0x00000400,0x0004003d,0x00000006,0x00000401,0x000003f5, + 0x0008000c,0x00000006,0x00000402,0x00000001,0x0000002b,0x00000401,0x000000e4,0x000000e3, + 0x0003003e,0x000003f5,0x00000402,0x0004003d,0x00000006,0x00000404,0x000003f5,0x00050041, + 0x00000007,0x00000405,0x000003e7,0x000000b8,0x0004003d,0x00000006,0x00000406,0x00000405, + 0x00050085,0x00000006,0x00000407,0x00000404,0x00000406,0x00050041,0x00000007,0x00000408, + 0x000003e7,0x000000cf,0x0004003d,0x00000006,0x00000409,0x00000408,0x00050081,0x00000006, + 0x0000040a,0x00000407,0x00000409,0x0003003e,0x00000403,0x0000040a,0x00050041,0x00000013, + 0x0000040c,0x0000033d,0x000000a5,0x0004003d,0x00000012,0x0000040d,0x0000040c,0x0004007c, + 0x00000006,0x0000040e,0x0000040d,0x0003003e,0x0000040b,0x0000040e,0x0004003d,0x0000040f, + 0x00000412,0x00000411,0x0004003d,0x00000413,0x00000416,0x00000415,0x00050056,0x00000417, + 0x00000418,0x00000412,0x00000416,0x0004003d,0x00000006,0x00000419,0x00000403,0x0004003d, + 0x00000006,0x0000041a,0x0000040b,0x00050050,0x0000000c,0x0000041b,0x00000419,0x0000041a, + 0x00070058,0x0000002f,0x0000041c,0x00000418,0x0000041b,0x00000002,0x000000e4,0x0003003e, + 0x00000080,0x0000041c,0x000200f9,0x000003cb,0x000200f8,0x000003cb,0x0004003d,0x00000006, + 0x0000041d,0x00000346,0x00050041,0x00000007,0x0000041e,0x00000080,0x000000cf,0x0004003d, + 0x00000006,0x0000041f,0x0000041e,0x00050085,0x00000006,0x00000420,0x0000041f,0x0000041d, + 0x00050041,0x00000007,0x00000421,0x00000080,0x000000cf,0x0003003e,0x00000421,0x00000420, + 0x000300f7,0x00000424,0x00000000,0x000400fa,0x00000422,0x00000423,0x00000424,0x000200f8, + 0x00000423,0x00050041,0x00000007,0x00000425,0x00000080,0x000000cf,0x0004003d,0x00000006, + 0x00000426,0x00000425,0x000500b7,0x000000f3,0x00000427,0x00000426,0x000000e4,0x000200f9, + 0x00000424,0x000200f8,0x00000424,0x000700f5,0x000000f3,0x00000428,0x00000422,0x000003cb, + 0x00000427,0x00000423,0x000300f7,0x0000042a,0x00000000,0x000400fa,0x00000428,0x00000429, + 0x0000042a,0x000200f8,0x00000429,0x00050041,0x00000013,0x0000042c,0x0000033d,0x000000a2, + 0x0004003d,0x00000012,0x0000042d,0x0000042c,0x000500c2,0x00000012,0x0000042f,0x0000042d, + 0x0000042e,0x000500c7,0x00000012,0x00000430,0x0000042f,0x000003c6,0x0003003e,0x00000431, + 0x00000430,0x00050039,0x00000012,0x00000432,0x00000016,0x00000431,0x0003003e,0x0000042b, + 0x00000432,0x000500ab,0x000000f3,0x00000433,0x00000432,0x000000a2,0x000200f9,0x0000042a, + 0x000200f8,0x0000042a,0x000700f5,0x000000f3,0x00000434,0x00000428,0x00000424,0x00000433, + 0x00000429,0x000300f7,0x00000436,0x00000000,0x000400fa,0x00000434,0x00000435,0x00000436, + 0x000200f8,0x00000435,0x0004003d,0x00000376,0x00000439,0x00000438,0x00050062,0x0000002f, + 0x0000043a,0x00000439,0x0000037a,0x0003003e,0x00000437,0x0000043a,0x0004003d,0x0000002f, + 0x0000043c,0x00000437,0x0003003e,0x0000043b,0x0000043c,0x00050039,0x0000002f,0x0000043d, + 0x00000046,0x0000043b,0x0004003d,0x0000002f,0x0000043f,0x00000080,0x0008004f,0x00000024, + 0x00000440,0x0000043f,0x0000043f,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000043e, + 0x00000440,0x0003003e,0x00000441,0x0000043d,0x0004003d,0x00000012,0x00000443,0x0000042b, + 0x0003003e,0x00000442,0x00000443,0x00070039,0x00000024,0x00000444,0x0000006e,0x0000043e, + 0x00000441,0x00000442,0x00050041,0x00000007,0x00000445,0x00000080,0x000000a2,0x00050051, + 0x00000006,0x00000446,0x00000444,0x00000000,0x0003003e,0x00000445,0x00000446,0x00050041, + 0x00000007,0x00000447,0x00000080,0x000000a5,0x00050051,0x00000006,0x00000448,0x00000444, + 0x00000001,0x0003003e,0x00000447,0x00000448,0x00050041,0x00000007,0x00000449,0x00000080, + 0x000000b8,0x00050051,0x00000006,0x0000044a,0x00000444,0x00000002,0x0003003e,0x00000449, + 0x0000044a,0x000200f9,0x00000436,0x000200f8,0x00000436,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000088,0x00000000,0x00000085,0x00030037,0x0000003b,0x00000086,0x00030037, + 0x0000007c,0x00000087,0x000200f8,0x00000089,0x0004003d,0x0000002f,0x0000044d,0x00000086, + 0x0003003e,0x0000044c,0x0000044d,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000008c, + 0x00000000,0x00000085,0x00030037,0x0000003b,0x0000008a,0x00030037,0x0000007c,0x0000008b, + 0x000200f8,0x0000008d,0x0004003d,0x0000002f,0x0000044f,0x0000008a,0x0003003e,0x0000044e, + 0x0000044f,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.vert.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.vert.h new file mode 100644 index 00000000..83b5e9ab --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_interior_triangles.vert.h @@ -0,0 +1,213 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_interior_triangles_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000000c4,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000b000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x00000074,0x00000077,0x0000007b, + 0x0000007e,0x00000087,0x000000a8,0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47, + 0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365, + 0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572, + 0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00080005,0x0000000b,0x74736163,0x746e695f,0x5f6f745f,0x666c6168,0x3b316928, + 0x00000000,0x00030005,0x0000000a,0x00000078,0x00080005,0x00000011,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000010,0x00000078,0x00070005, + 0x00000019,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000018, + 0x00000078,0x000d0005,0x00000022,0x61706e75,0x695f6b63,0x7265746e,0x5f726f69,0x61697274, + 0x656c676e,0x7265765f,0x28786574,0x3b336676,0x663b3175,0x00003b31,0x00060005,0x0000001f, + 0x61697274,0x656c676e,0x74726556,0x00007865,0x00050005,0x00000020,0x5074756f,0x49687461, + 0x00000044,0x00070005,0x00000021,0x5774756f,0x69646e69,0x6557676e,0x74686769,0x00000000, + 0x00030005,0x00000045,0x0000004d,0x00050005,0x00000048,0x68746150,0x66667542,0x00007265, + 0x00050006,0x00000048,0x00000000,0x6c61765f,0x00736575,0x00080005,0x0000004a,0x5058455f, + 0x4554524f,0x61705f44,0x75426874,0x72656666,0x00000000,0x00040005,0x00000053,0x61726170, + 0x0000006d,0x00050005,0x00000056,0x68746170,0x61746144,0x00000000,0x00050005,0x0000005e, + 0x6e617274,0x74616c73,0x00000065,0x00040005,0x00000068,0x61726170,0x0000006d,0x00050005, + 0x00000072,0x7265765f,0x49786574,0x00000044,0x00060005,0x00000074,0x565f6c67,0x65747265, + 0x646e4978,0x00007865,0x00050005,0x00000076,0x736e695f,0x636e6174,0x00444965,0x00070005, + 0x00000077,0x495f6c67,0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00060005,0x00000079, + 0x74726576,0x6f507865,0x69746973,0x00006e6f,0x00090005,0x0000007b,0x5058455f,0x4554524f, + 0x5f615f44,0x61697274,0x656c676e,0x74726556,0x00007865,0x00040005,0x0000007c,0x68746170, + 0x00004449,0x00060005,0x0000007e,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00040005, + 0x0000007f,0x61726170,0x0000006d,0x00040005,0x00000081,0x61726170,0x0000006d,0x00040005, + 0x00000082,0x61726170,0x0000006d,0x00050005,0x00000087,0x61705f76,0x44496874,0x00000000, + 0x00040005,0x00000088,0x61726170,0x0000006d,0x00030005,0x0000008b,0x00736f70,0x00080005, + 0x00000090,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006, + 0x00000090,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00090006,0x00000090,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x000b0006,0x00000090,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x00000090,0x00000003,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006, + 0x00000090,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006, + 0x00000090,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006, + 0x00000090,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000090, + 0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000090, + 0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000, + 0x00090006,0x00000090,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665, + 0x00000000,0x00080006,0x00000090,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261, + 0x00000079,0x00080006,0x00000090,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664, + 0x00006575,0x00050005,0x00000092,0x66696e75,0x736d726f,0x00000000,0x00060005,0x000000a6, + 0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x000000a6,0x00000000,0x505f6c67, + 0x7469736f,0x006e6f69,0x00070006,0x000000a6,0x00000001,0x505f6c67,0x746e696f,0x657a6953, + 0x00000000,0x00070006,0x000000a6,0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e, + 0x00070006,0x000000a6,0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005, + 0x000000a8,0x00000000,0x00060005,0x000000ad,0x616e456b,0x43656c62,0x7070696c,0x00676e69, + 0x00060005,0x000000ae,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00080005,0x000000af, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00060005,0x000000b0, + 0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x000000b1,0x616e456b,0x4e656c62, + 0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x000000b2,0x616e456b,0x48656c62, + 0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x000000b3,0x6f6c436b,0x69776b63, + 0x69466573,0x00006c6c,0x00090005,0x000000b4,0x726f426b,0x65776f72,0x766f4364,0x67617265, + 0x65725065,0x73736170,0x00000000,0x00090005,0x000000b7,0x5058455f,0x4554524f,0x65745f44, + 0x65567373,0x78657472,0x74786554,0x00657275,0x00050005,0x000000b9,0x6e696150,0x66754274, + 0x00726566,0x00050006,0x000000b9,0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000bb, + 0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00060005,0x000000bd, + 0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x000000bd,0x00000000,0x6c61765f, + 0x00736575,0x00090005,0x000000bf,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875, + 0x72656666,0x00000000,0x00060005,0x000000c1,0x746e6f43,0x4272756f,0x65666675,0x00000072, + 0x00050006,0x000000c1,0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000c3,0x5058455f, + 0x4554524f,0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00030047,0x0000000b,0x00000000, + 0x00030047,0x00000011,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047,0x00000026, + 0x00000000,0x00030047,0x00000027,0x00000000,0x00030047,0x0000002b,0x00000000,0x00030047, + 0x0000002c,0x00000000,0x00040047,0x00000047,0x00000006,0x00000010,0x00040048,0x00000048, + 0x00000000,0x00000018,0x00050048,0x00000048,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000048,0x00000003,0x00040047,0x0000004a,0x00000022,0x00000000,0x00040047,0x0000004a, + 0x00000021,0x00000003,0x00030047,0x00000069,0x00000000,0x00040047,0x00000074,0x0000000b, + 0x0000002a,0x00040047,0x00000077,0x0000000b,0x0000002b,0x00040047,0x0000007b,0x0000001e, + 0x00000000,0x00030047,0x0000007e,0x00000000,0x00030047,0x0000007e,0x0000000e,0x00040047, + 0x0000007e,0x0000001e,0x00000000,0x00030047,0x00000082,0x00000000,0x00030047,0x00000087, + 0x00000000,0x00030047,0x00000087,0x0000000e,0x00040047,0x00000087,0x0000001e,0x00000001, + 0x00030047,0x0000008a,0x00000000,0x00050048,0x00000090,0x00000000,0x00000023,0x00000000, + 0x00050048,0x00000090,0x00000001,0x00000023,0x00000004,0x00050048,0x00000090,0x00000002, + 0x00000023,0x00000008,0x00050048,0x00000090,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x00000090,0x00000004,0x00000023,0x00000010,0x00050048,0x00000090,0x00000005,0x00000023, + 0x00000014,0x00050048,0x00000090,0x00000006,0x00000023,0x00000018,0x00050048,0x00000090, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x00000090,0x00000008,0x00000023,0x00000020, + 0x00050048,0x00000090,0x00000009,0x00000023,0x00000030,0x00050048,0x00000090,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x00000090,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x00000090,0x00000002,0x00040047,0x00000092,0x00000022,0x00000000,0x00040047,0x00000092, + 0x00000021,0x00000007,0x00050048,0x000000a6,0x00000000,0x0000000b,0x00000000,0x00050048, + 0x000000a6,0x00000001,0x0000000b,0x00000001,0x00050048,0x000000a6,0x00000002,0x0000000b, + 0x00000003,0x00050048,0x000000a6,0x00000003,0x0000000b,0x00000004,0x00030047,0x000000a6, + 0x00000002,0x00040047,0x000000ad,0x00000001,0x00000000,0x00040047,0x000000ae,0x00000001, + 0x00000001,0x00040047,0x000000af,0x00000001,0x00000002,0x00040047,0x000000b0,0x00000001, + 0x00000003,0x00040047,0x000000b1,0x00000001,0x00000004,0x00040047,0x000000b2,0x00000001, + 0x00000005,0x00040047,0x000000b3,0x00000001,0x00000006,0x00040047,0x000000b4,0x00000001, + 0x00000007,0x00040047,0x000000b7,0x00000022,0x00000000,0x00040047,0x000000b7,0x00000021, + 0x00000000,0x00040047,0x000000b8,0x00000006,0x00000008,0x00040048,0x000000b9,0x00000000, + 0x00000018,0x00050048,0x000000b9,0x00000000,0x00000023,0x00000000,0x00030047,0x000000b9, + 0x00000003,0x00040047,0x000000bb,0x00000022,0x00000000,0x00040047,0x000000bb,0x00000021, + 0x00000004,0x00040047,0x000000bc,0x00000006,0x00000010,0x00040048,0x000000bd,0x00000000, + 0x00000018,0x00050048,0x000000bd,0x00000000,0x00000023,0x00000000,0x00030047,0x000000bd, + 0x00000003,0x00040047,0x000000bf,0x00000022,0x00000000,0x00040047,0x000000bf,0x00000021, + 0x00000005,0x00040047,0x000000c0,0x00000006,0x00000010,0x00040048,0x000000c1,0x00000000, + 0x00000018,0x00050048,0x000000c1,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c1, + 0x00000003,0x00040047,0x000000c3,0x00000022,0x00000000,0x00040047,0x000000c3,0x00000021, + 0x00000006,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008, + 0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040015,0x0000000d,0x00000020, + 0x00000000,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f,0x0000000d, + 0x0000000e,0x00040017,0x00000013,0x00000008,0x00000004,0x00040020,0x00000014,0x00000007, + 0x00000013,0x00040017,0x00000015,0x00000008,0x00000002,0x00040018,0x00000016,0x00000015, + 0x00000002,0x00040021,0x00000017,0x00000016,0x00000014,0x00040017,0x0000001b,0x00000008, + 0x00000003,0x00040020,0x0000001c,0x00000007,0x0000001b,0x00040020,0x0000001d,0x00000007, + 0x00000008,0x00060021,0x0000001e,0x00000015,0x0000001c,0x0000000e,0x0000001d,0x0004002b, + 0x00000008,0x00000033,0x3f800000,0x0004002b,0x00000008,0x00000034,0x00000000,0x0004002b, + 0x0000000d,0x0000003e,0x00000002,0x0004002b,0x0000000d,0x00000042,0x0000ffff,0x00040020, + 0x00000044,0x00000007,0x00000016,0x00040017,0x00000046,0x0000000d,0x00000004,0x0003001d, + 0x00000047,0x00000046,0x0003001e,0x00000048,0x00000047,0x00040020,0x00000049,0x00000002, + 0x00000048,0x0004003b,0x00000049,0x0000004a,0x00000002,0x0004002b,0x00000006,0x0000004b, + 0x00000000,0x0004002b,0x0000000d,0x0000004d,0x00000004,0x00040020,0x0000004f,0x00000002, + 0x00000046,0x00040020,0x00000055,0x00000007,0x00000046,0x0004002b,0x0000000d,0x00000059, + 0x00000001,0x00040020,0x0000005d,0x00000007,0x00000015,0x00040017,0x0000005f,0x0000000d, + 0x00000002,0x0004002b,0x00000006,0x00000066,0x00000010,0x00040020,0x00000073,0x00000001, + 0x00000006,0x0004003b,0x00000073,0x00000074,0x00000001,0x0004003b,0x00000073,0x00000077, + 0x00000001,0x00040020,0x0000007a,0x00000001,0x0000001b,0x0004003b,0x0000007a,0x0000007b, + 0x00000001,0x00040020,0x0000007d,0x00000003,0x00000008,0x0004003b,0x0000007d,0x0000007e, + 0x00000003,0x00040020,0x00000086,0x00000003,0x0000000d,0x0004003b,0x00000086,0x00000087, + 0x00000003,0x0004002b,0x0000000d,0x0000008c,0x00000000,0x00040017,0x0000008f,0x00000006, + 0x00000004,0x000e001e,0x00000090,0x00000008,0x00000008,0x00000008,0x00000008,0x0000000d, + 0x0000000d,0x0000000d,0x0000000d,0x0000008f,0x0000000d,0x0000000d,0x00000008,0x00040020, + 0x00000091,0x00000002,0x00000090,0x0004003b,0x00000091,0x00000092,0x00000002,0x0004002b, + 0x00000006,0x00000093,0x00000002,0x00040020,0x00000094,0x00000002,0x00000008,0x0004002b, + 0x00000006,0x0000009b,0x00000003,0x0004001c,0x000000a5,0x00000008,0x00000059,0x0006001e, + 0x000000a6,0x00000013,0x00000008,0x000000a5,0x000000a5,0x00040020,0x000000a7,0x00000003, + 0x000000a6,0x0004003b,0x000000a7,0x000000a8,0x00000003,0x00040020,0x000000aa,0x00000003, + 0x00000013,0x00020014,0x000000ac,0x00030031,0x000000ac,0x000000ad,0x00030031,0x000000ac, + 0x000000ae,0x00030031,0x000000ac,0x000000af,0x00030031,0x000000ac,0x000000b0,0x00030031, + 0x000000ac,0x000000b1,0x00030031,0x000000ac,0x000000b2,0x00030031,0x000000ac,0x000000b3, + 0x00030031,0x000000ac,0x000000b4,0x00090019,0x000000b5,0x0000000d,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000b6,0x00000000,0x000000b5, + 0x0004003b,0x000000b6,0x000000b7,0x00000000,0x0003001d,0x000000b8,0x0000005f,0x0003001e, + 0x000000b9,0x000000b8,0x00040020,0x000000ba,0x00000002,0x000000b9,0x0004003b,0x000000ba, + 0x000000bb,0x00000002,0x0003001d,0x000000bc,0x00000013,0x0003001e,0x000000bd,0x000000bc, + 0x00040020,0x000000be,0x00000002,0x000000bd,0x0004003b,0x000000be,0x000000bf,0x00000002, + 0x0003001d,0x000000c0,0x00000046,0x0003001e,0x000000c1,0x000000c0,0x00040020,0x000000c2, + 0x00000002,0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000002,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000072, + 0x00000007,0x0004003b,0x00000007,0x00000076,0x00000007,0x0004003b,0x0000005d,0x00000079, + 0x00000007,0x0004003b,0x0000000e,0x0000007c,0x00000007,0x0004003b,0x0000001c,0x0000007f, + 0x00000007,0x0004003b,0x0000000e,0x00000081,0x00000007,0x0004003b,0x0000001d,0x00000082, + 0x00000007,0x0004003b,0x0000000e,0x00000088,0x00000007,0x0004003b,0x00000014,0x0000008b, + 0x00000007,0x0004003d,0x00000006,0x00000075,0x00000074,0x0003003e,0x00000072,0x00000075, + 0x0004003d,0x00000006,0x00000078,0x00000077,0x0003003e,0x00000076,0x00000078,0x0004003d, + 0x0000001b,0x00000080,0x0000007b,0x0003003e,0x0000007f,0x00000080,0x00070039,0x00000015, + 0x00000083,0x00000022,0x0000007f,0x00000081,0x00000082,0x0004003d,0x0000000d,0x00000084, + 0x00000081,0x0003003e,0x0000007c,0x00000084,0x0004003d,0x00000008,0x00000085,0x00000082, + 0x0003003e,0x0000007e,0x00000085,0x0003003e,0x00000079,0x00000083,0x0004003d,0x0000000d, + 0x00000089,0x0000007c,0x0003003e,0x00000088,0x00000089,0x00050039,0x0000000d,0x0000008a, + 0x00000011,0x00000088,0x0003003e,0x00000087,0x0000008a,0x00050041,0x0000001d,0x0000008d, + 0x00000079,0x0000008c,0x0004003d,0x00000008,0x0000008e,0x0000008d,0x00050041,0x00000094, + 0x00000095,0x00000092,0x00000093,0x0004003d,0x00000008,0x00000096,0x00000095,0x00050085, + 0x00000008,0x00000097,0x0000008e,0x00000096,0x00050083,0x00000008,0x00000098,0x00000097, + 0x00000033,0x00050041,0x0000001d,0x00000099,0x00000079,0x00000059,0x0004003d,0x00000008, + 0x0000009a,0x00000099,0x00050041,0x00000094,0x0000009c,0x00000092,0x0000009b,0x0004003d, + 0x00000008,0x0000009d,0x0000009c,0x0004007f,0x00000008,0x0000009e,0x0000009d,0x00050085, + 0x00000008,0x0000009f,0x0000009a,0x0000009e,0x00050041,0x00000094,0x000000a0,0x00000092, + 0x0000009b,0x0004003d,0x00000008,0x000000a1,0x000000a0,0x0006000c,0x00000008,0x000000a2, + 0x00000001,0x00000006,0x000000a1,0x00050081,0x00000008,0x000000a3,0x0000009f,0x000000a2, + 0x00070050,0x00000013,0x000000a4,0x00000098,0x000000a3,0x00000034,0x00000033,0x0003003e, + 0x0000008b,0x000000a4,0x0004003d,0x00000013,0x000000a9,0x0000008b,0x00050041,0x000000aa, + 0x000000ab,0x000000a8,0x0000004b,0x0003003e,0x000000ab,0x000000a9,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003b,0x0000001d,0x00000026,0x00000007,0x0004003d,0x00000006, + 0x00000024,0x0000000a,0x0004006f,0x00000008,0x00000025,0x00000024,0x0003003e,0x00000026, + 0x00000025,0x0004003d,0x00000008,0x00000027,0x00000026,0x000200fe,0x00000027,0x00010038, + 0x00050036,0x0000000d,0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010, + 0x000200f8,0x00000012,0x0004003b,0x0000000e,0x0000002b,0x00000007,0x0004003d,0x0000000d, + 0x0000002a,0x00000010,0x0003003e,0x0000002b,0x0000002a,0x0004003d,0x0000000d,0x0000002c, + 0x0000002b,0x000200fe,0x0000002c,0x00010038,0x00050036,0x00000016,0x00000019,0x00000000, + 0x00000017,0x00030037,0x00000014,0x00000018,0x000200f8,0x0000001a,0x0004003d,0x00000013, + 0x0000002f,0x00000018,0x0007004f,0x00000015,0x00000030,0x0000002f,0x0000002f,0x00000000, + 0x00000001,0x0004003d,0x00000013,0x00000031,0x00000018,0x0007004f,0x00000015,0x00000032, + 0x00000031,0x00000031,0x00000002,0x00000003,0x00050051,0x00000008,0x00000035,0x00000030, + 0x00000000,0x00050051,0x00000008,0x00000036,0x00000030,0x00000001,0x00050051,0x00000008, + 0x00000037,0x00000032,0x00000000,0x00050051,0x00000008,0x00000038,0x00000032,0x00000001, + 0x00050050,0x00000015,0x00000039,0x00000035,0x00000036,0x00050050,0x00000015,0x0000003a, + 0x00000037,0x00000038,0x00050050,0x00000016,0x0000003b,0x00000039,0x0000003a,0x000200fe, + 0x0000003b,0x00010038,0x00050036,0x00000015,0x00000022,0x00000000,0x0000001e,0x00030037, + 0x0000001c,0x0000001f,0x00030037,0x0000000e,0x00000020,0x00030037,0x0000001d,0x00000021, + 0x000200f8,0x00000023,0x0004003b,0x00000044,0x00000045,0x00000007,0x0004003b,0x00000014, + 0x00000053,0x00000007,0x0004003b,0x00000055,0x00000056,0x00000007,0x0004003b,0x0000005d, + 0x0000005e,0x00000007,0x0004003b,0x00000007,0x00000068,0x00000007,0x00050041,0x0000001d, + 0x0000003f,0x0000001f,0x0000003e,0x0004003d,0x00000008,0x00000040,0x0000003f,0x0004007c, + 0x0000000d,0x00000041,0x00000040,0x000500c7,0x0000000d,0x00000043,0x00000041,0x00000042, + 0x0003003e,0x00000020,0x00000043,0x0004003d,0x0000000d,0x0000004c,0x00000020,0x00050084, + 0x0000000d,0x0000004e,0x0000004c,0x0000004d,0x00060041,0x0000004f,0x00000050,0x0000004a, + 0x0000004b,0x0000004e,0x0004003d,0x00000046,0x00000051,0x00000050,0x0004007c,0x00000013, + 0x00000052,0x00000051,0x0003003e,0x00000053,0x00000052,0x00050039,0x00000016,0x00000054, + 0x00000019,0x00000053,0x0003003e,0x00000045,0x00000054,0x0004003d,0x0000000d,0x00000057, + 0x00000020,0x00050084,0x0000000d,0x00000058,0x00000057,0x0000004d,0x00050080,0x0000000d, + 0x0000005a,0x00000058,0x00000059,0x00060041,0x0000004f,0x0000005b,0x0000004a,0x0000004b, + 0x0000005a,0x0004003d,0x00000046,0x0000005c,0x0000005b,0x0003003e,0x00000056,0x0000005c, + 0x0004003d,0x00000046,0x00000060,0x00000056,0x0007004f,0x0000005f,0x00000061,0x00000060, + 0x00000060,0x00000000,0x00000001,0x0004007c,0x00000015,0x00000062,0x00000061,0x0003003e, + 0x0000005e,0x00000062,0x00050041,0x0000001d,0x00000063,0x0000001f,0x0000003e,0x0004003d, + 0x00000008,0x00000064,0x00000063,0x0004007c,0x00000006,0x00000065,0x00000064,0x000500c3, + 0x00000006,0x00000067,0x00000065,0x00000066,0x0003003e,0x00000068,0x00000067,0x00050039, + 0x00000008,0x00000069,0x0000000b,0x00000068,0x0003003e,0x00000021,0x00000069,0x0004003d, + 0x00000016,0x0000006a,0x00000045,0x0004003d,0x0000001b,0x0000006b,0x0000001f,0x0007004f, + 0x00000015,0x0000006c,0x0000006b,0x0000006b,0x00000000,0x00000001,0x00050091,0x00000015, + 0x0000006d,0x0000006a,0x0000006c,0x0004003d,0x00000015,0x0000006e,0x0000005e,0x00050081, + 0x00000015,0x0000006f,0x0000006d,0x0000006e,0x000200fe,0x0000006f,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_path.fixedcolor_frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.fixedcolor_frag.h new file mode 100644 index 00000000..b7f4db0d --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.fixedcolor_frag.h @@ -0,0 +1,489 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_path_fixedcolor_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x0000020a,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000011e, + 0x0000019b,0x000001a4,0x000001b5,0x000001fa,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628, + 0x0000003b,0x00030005,0x0000000f,0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005, + 0x00000019,0x656b616d,0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078, + 0x00060005,0x0000001d,0x656b616d,0x6c61685f,0x66283266,0x00003b31,0x00030005,0x0000001c, + 0x00000078,0x00060005,0x00000022,0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005, + 0x00000021,0x00000078,0x00070005,0x00000028,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x00000027,0x00000078,0x00060005,0x0000002b,0x656b616d,0x6e69755f, + 0x31752874,0x0000003b,0x00030005,0x0000002a,0x00000078,0x00060005,0x0000002f,0x665f6f74, + 0x64657869,0x3b316628,0x00000000,0x00030005,0x0000002e,0x00000078,0x00060005,0x00000033, + 0x6d6f7266,0x7869665f,0x75286465,0x00003b31,0x00030005,0x00000032,0x00000078,0x00080005, + 0x00000039,0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005, + 0x00000036,0x70696c63,0x00004449,0x00050005,0x00000037,0x70696c63,0x61746144,0x00000000, + 0x00050005,0x00000038,0x65766f63,0x65676172,0x00000000,0x000b0005,0x00000044,0x6f736572, + 0x5f65766c,0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676,0x3b326976,0x00000000, + 0x00040005,0x0000003f,0x68746170,0x00004449,0x00060005,0x00000040,0x65766f63,0x65676172, + 0x6e756f43,0x00000074,0x00060005,0x00000041,0x67617266,0x6f6c6f43,0x74754f72,0x00000000, + 0x00050005,0x00000042,0x67617266,0x70696c43,0x0074754f,0x00050005,0x00000043,0x736c705f, + 0x726f6f43,0x00000064,0x00080005,0x00000049,0x74696d65,0x736c705f,0x696c635f,0x66762870, + 0x69763b34,0x00003b32,0x00050005,0x00000047,0x67617266,0x70696c43,0x0074754f,0x00050005, + 0x00000048,0x736c705f,0x726f6f43,0x00000064,0x00030005,0x0000005d,0x00746572,0x00030005, + 0x00000067,0x00746572,0x00040005,0x00000097,0x61726170,0x0000006d,0x00040005,0x000000a3, + 0x61726170,0x0000006d,0x00050005,0x000000b2,0x6e696170,0x74614474,0x00000061,0x00050005, + 0x000000b4,0x6e696150,0x66754274,0x00726566,0x00050006,0x000000b4,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x000000b6,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675, + 0x00000072,0x00050005,0x000000bc,0x65766f63,0x65676172,0x00000000,0x00060005,0x000000c7, + 0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x000000dd,0x61726170,0x0000006d, + 0x00040005,0x000000df,0x61726170,0x0000006d,0x00060005,0x000000e2,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00040005,0x000000e5,0x70696c63,0x00004449,0x00060005,0x000000f0, + 0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00040005,0x000000f4,0x61726170,0x0000006d, + 0x00040005,0x000000f6,0x61726170,0x0000006d,0x00040005,0x000000f7,0x61726170,0x0000006d, + 0x00060005,0x000000fb,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x00000107, + 0x0000004d,0x00060005,0x00000109,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006, + 0x00000109,0x00000000,0x6c61765f,0x00736575,0x00090005,0x0000010b,0x5058455f,0x4554524f, + 0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00040005,0x00000110,0x61726170, + 0x0000006d,0x00050005,0x00000115,0x6e617274,0x74616c73,0x00000065,0x00050005,0x0000011b, + 0x70696c63,0x726f6f43,0x00000064,0x00060005,0x0000011e,0x465f6c67,0x43676172,0x64726f6f, + 0x00000000,0x00040005,0x00000125,0x74736964,0x00005958,0x00040005,0x0000012e,0x61726170, + 0x0000006d,0x00070005,0x00000130,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000, + 0x00050005,0x0000013b,0x6e696170,0x70795474,0x00000065,0x00040005,0x00000155,0x61726170, + 0x0000006d,0x00030005,0x00000158,0x0000004d,0x00040005,0x0000015b,0x61726170,0x0000006d, + 0x00050005,0x0000015f,0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000165,0x6e696170, + 0x6f6f4374,0x00006472,0x00030005,0x0000016d,0x00000074,0x00030005,0x0000017b,0x00000078, + 0x00030005,0x00000183,0x00000079,0x00080005,0x00000189,0x5058455f,0x4554524f,0x72675f44, + 0x65546461,0x72757478,0x00000065,0x00050005,0x0000018d,0x64617267,0x706d6153,0x0072656c, + 0x00050005,0x0000019b,0x70696c63,0x66667542,0x00007265,0x00050005,0x0000019d,0x736c705f, + 0x726f6f43,0x00000064,0x00070005,0x000001a2,0x67617266,0x746e656d,0x65766f43,0x65676172, + 0x00000000,0x00060005,0x000001a4,0x64655f76,0x69446567,0x6e617473,0x00006563,0x00040005, + 0x000001ac,0x61726170,0x0000006d,0x00060005,0x000001af,0x65786966,0x766f4364,0x67617265, + 0x00000065,0x00040005,0x000001b0,0x61726170,0x0000006d,0x00060005,0x000001b3,0x436e696d, + 0x7265766f,0x44656761,0x00617461,0x00050005,0x000001b5,0x61705f76,0x44496874,0x00000000, + 0x00040005,0x000001b6,0x61726170,0x0000006d,0x00070005,0x000001bd,0x7473616c,0x65766f43, + 0x65676172,0x61746144,0x00000000,0x00080005,0x000001c0,0x65766f63,0x65676172,0x6d6f7441, + 0x75426369,0x72656666,0x00000000,0x00050005,0x000001c6,0x7473616c,0x68746150,0x00004449, + 0x00040005,0x000001c9,0x61726170,0x0000006d,0x00060005,0x000001e4,0x65766f63,0x65676172, + 0x6e756f43,0x00000074,0x00040005,0x000001e8,0x61726170,0x0000006d,0x00050005,0x000001ea, + 0x67617266,0x70696c43,0x0074754f,0x00040005,0x000001eb,0x61726170,0x0000006d,0x00060005, + 0x000001ed,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00040005,0x000001ee,0x61726170, + 0x0000006d,0x00040005,0x000001f0,0x61726170,0x0000006d,0x00040005,0x000001f2,0x61726170, + 0x0000006d,0x00040005,0x000001f3,0x61726170,0x0000006d,0x00040005,0x000001f5,0x61726170, + 0x0000006d,0x00050005,0x000001fa,0x6172665f,0x6c6f4367,0x0000726f,0x00040005,0x000001fc, + 0x61726170,0x0000006d,0x00040005,0x000001fe,0x61726170,0x0000006d,0x00080005,0x00000201, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00080005,0x00000202, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000203, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000204, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000205,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x00000207,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000207,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000207, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x00000207,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x00000207,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000207,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000207,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000207,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000207,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000207,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000207, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x00000207,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x00000207,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x00000209,0x66696e75,0x736d726f,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047, + 0x00000010,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000019,0x00000000, + 0x00030047,0x00000018,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x0000001c, + 0x00000000,0x00030047,0x00000022,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047, + 0x0000002a,0x00000000,0x00030047,0x00000033,0x00000000,0x00030047,0x00000037,0x00000000, + 0x00030047,0x00000038,0x00000000,0x00030047,0x00000040,0x00000000,0x00030047,0x00000041, + 0x00000000,0x00030047,0x00000042,0x00000000,0x00030047,0x00000047,0x00000000,0x00030047, + 0x0000004c,0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047,0x00000051,0x00000000, + 0x00030047,0x00000052,0x00000000,0x00030047,0x00000056,0x00000000,0x00030047,0x00000057, + 0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047, + 0x0000005e,0x00000000,0x00030047,0x00000061,0x00000000,0x00030047,0x00000064,0x00000000, + 0x00030047,0x00000067,0x00000000,0x00030047,0x00000068,0x00000000,0x00030047,0x0000006a, + 0x00000000,0x00030047,0x0000006c,0x00000000,0x00030047,0x0000006f,0x00000000,0x00030047, + 0x00000072,0x00000000,0x00030047,0x00000084,0x00000000,0x00030047,0x00000098,0x00000000, + 0x00030047,0x0000009b,0x00000000,0x00030047,0x0000009c,0x00000000,0x00030047,0x000000a3, + 0x00000000,0x00030047,0x000000a4,0x00000000,0x00030047,0x000000ab,0x00000000,0x00030047, + 0x000000ad,0x00000000,0x00030047,0x000000ae,0x00000000,0x00040047,0x000000b3,0x00000006, + 0x00000008,0x00040048,0x000000b4,0x00000000,0x00000018,0x00050048,0x000000b4,0x00000000, + 0x00000023,0x00000000,0x00030047,0x000000b4,0x00000003,0x00040047,0x000000b6,0x00000022, + 0x00000000,0x00040047,0x000000b6,0x00000021,0x00000004,0x00030047,0x000000bc,0x00000000, + 0x00030047,0x000000bd,0x00000000,0x00030047,0x000000c5,0x00000000,0x00030047,0x000000c6, + 0x00000000,0x00040047,0x000000c7,0x00000001,0x00000003,0x00030047,0x000000d2,0x00000000, + 0x00030047,0x000000d4,0x00000000,0x00030047,0x000000d5,0x00000000,0x00030047,0x000000d7, + 0x00000000,0x00030047,0x000000d9,0x00000000,0x00030047,0x000000da,0x00000000,0x00030047, + 0x000000db,0x00000000,0x00030047,0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000, + 0x00030047,0x000000de,0x00000000,0x00030047,0x000000df,0x00000000,0x00030047,0x000000e0, + 0x00000000,0x00030047,0x000000e1,0x00000000,0x00040047,0x000000e2,0x00000001,0x00000000, + 0x00030047,0x000000f0,0x00000000,0x00040047,0x000000f0,0x00000022,0x00000003,0x00040047, + 0x000000f0,0x00000021,0x00000001,0x00040047,0x000000f0,0x0000002b,0x00000001,0x00030047, + 0x000000f1,0x00000000,0x00030047,0x000000f3,0x00000000,0x00030047,0x000000f6,0x00000000, + 0x00030047,0x000000f7,0x00000000,0x00030047,0x000000f8,0x00000000,0x00040047,0x000000fb, + 0x00000001,0x00000001,0x00040047,0x00000108,0x00000006,0x00000010,0x00040048,0x00000109, + 0x00000000,0x00000018,0x00050048,0x00000109,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000109,0x00000003,0x00040047,0x0000010b,0x00000022,0x00000000,0x00040047,0x0000010b, + 0x00000021,0x00000005,0x00040047,0x0000011e,0x0000000b,0x0000000f,0x00030047,0x00000125, + 0x00000000,0x00030047,0x0000012f,0x00000000,0x00030047,0x00000130,0x00000000,0x00030047, + 0x00000132,0x00000000,0x00030047,0x00000134,0x00000000,0x00030047,0x00000135,0x00000000, + 0x00030047,0x00000136,0x00000000,0x00030047,0x00000137,0x00000000,0x00030047,0x00000138, + 0x00000000,0x00030047,0x00000139,0x00000000,0x00030047,0x0000013a,0x00000000,0x00030047, + 0x0000014c,0x00000000,0x00030047,0x0000014d,0x00000000,0x00030047,0x00000152,0x00000000, + 0x00030047,0x00000155,0x00000000,0x00030047,0x00000156,0x00000000,0x00030047,0x00000189, + 0x00000000,0x00040047,0x00000189,0x00000022,0x00000000,0x00040047,0x00000189,0x00000021, + 0x00000001,0x00030047,0x0000018a,0x00000000,0x00030047,0x0000018d,0x00000000,0x00040047, + 0x0000018d,0x00000022,0x00000002,0x00040047,0x0000018d,0x00000021,0x00000001,0x00030047, + 0x0000018e,0x00000000,0x00030047,0x00000194,0x00000000,0x00030047,0x00000195,0x00000000, + 0x00030047,0x00000197,0x00000000,0x00030047,0x00000198,0x00000000,0x00030047,0x0000019b, + 0x00000000,0x00040047,0x0000019b,0x0000001e,0x00000001,0x00030047,0x0000019c,0x00000000, + 0x00030047,0x000001a2,0x00000000,0x00030047,0x000001a4,0x00000000,0x00040047,0x000001a4, + 0x0000001e,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047,0x000001a9,0x00000000, + 0x00030047,0x000001aa,0x00000000,0x00030047,0x000001ab,0x00000000,0x00030047,0x000001ac, + 0x00000000,0x00030047,0x000001ad,0x00000000,0x00030047,0x000001ae,0x00000000,0x00030047, + 0x000001b1,0x00000000,0x00030047,0x000001b5,0x00000000,0x00030047,0x000001b5,0x0000000e, + 0x00040047,0x000001b5,0x0000001e,0x00000001,0x00030047,0x000001b6,0x00000000,0x00030047, + 0x000001b7,0x00000000,0x00040047,0x000001c0,0x00000022,0x00000003,0x00040047,0x000001c0, + 0x00000021,0x00000003,0x00030047,0x000001c0,0x00000017,0x00030047,0x000001c6,0x00000000, + 0x00030047,0x000001ca,0x00000000,0x00030047,0x000001cb,0x00000000,0x00030047,0x000001cc, + 0x00000000,0x00030047,0x000001d1,0x00000000,0x00030047,0x000001e4,0x00000000,0x00030047, + 0x000001e9,0x00000000,0x00030047,0x000001ea,0x00000000,0x00030047,0x000001eb,0x00000000, + 0x00030047,0x000001ec,0x00000000,0x00030047,0x000001ed,0x00000000,0x00030047,0x000001ef, + 0x00000000,0x00030047,0x000001f0,0x00000000,0x00030047,0x000001f1,0x00000000,0x00030047, + 0x000001f2,0x00000000,0x00030047,0x000001f3,0x00000000,0x00030047,0x000001f4,0x00000000, + 0x00030047,0x000001fa,0x00000000,0x00040047,0x000001fa,0x0000001e,0x00000000,0x00030047, + 0x000001fb,0x00000000,0x00030047,0x000001fc,0x00000000,0x00030047,0x000001fd,0x00000000, + 0x00040047,0x00000201,0x00000001,0x00000002,0x00040047,0x00000202,0x00000001,0x00000004, + 0x00040047,0x00000203,0x00000001,0x00000005,0x00040047,0x00000204,0x00000001,0x00000006, + 0x00040047,0x00000205,0x00000001,0x00000007,0x00050048,0x00000207,0x00000000,0x00000023, + 0x00000000,0x00050048,0x00000207,0x00000001,0x00000023,0x00000004,0x00050048,0x00000207, + 0x00000002,0x00000023,0x00000008,0x00050048,0x00000207,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x00000207,0x00000004,0x00000023,0x00000010,0x00050048,0x00000207,0x00000005, + 0x00000023,0x00000014,0x00050048,0x00000207,0x00000006,0x00000023,0x00000018,0x00050048, + 0x00000207,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000207,0x00000008,0x00000023, + 0x00000020,0x00050048,0x00000207,0x00000009,0x00000023,0x00000030,0x00050048,0x00000207, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x00000207,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x00000207,0x00000002,0x00040047,0x00000209,0x00000022,0x00000000,0x00040047, + 0x00000209,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021, + 0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002,0x00040020, + 0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00040015, + 0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007,0x00000012,0x00040021, + 0x00000014,0x00000012,0x00000013,0x00040021,0x0000001b,0x0000000c,0x00000007,0x00040017, + 0x0000001f,0x00000006,0x00000004,0x00040021,0x00000020,0x0000001f,0x00000007,0x00040020, + 0x00000024,0x00000007,0x0000001f,0x00040018,0x00000025,0x0000000c,0x00000002,0x00040021, + 0x00000026,0x00000025,0x00000024,0x00040021,0x0000002d,0x00000012,0x00000007,0x00040021, + 0x00000031,0x00000006,0x00000013,0x00060021,0x00000035,0x00000002,0x00000013,0x00000024, + 0x00000007,0x00040015,0x0000003b,0x00000020,0x00000001,0x00040017,0x0000003c,0x0000003b, + 0x00000002,0x00040020,0x0000003d,0x00000007,0x0000003c,0x00080021,0x0000003e,0x00000002, + 0x00000013,0x00000007,0x00000024,0x00000024,0x0000003d,0x00050021,0x00000046,0x00000002, + 0x00000024,0x0000003d,0x0004002b,0x00000012,0x0000005f,0x00000000,0x0004002b,0x00000012, + 0x00000062,0x00000001,0x0004002b,0x00000012,0x0000006d,0x00000002,0x0004002b,0x00000012, + 0x00000070,0x00000003,0x0004002b,0x00000006,0x00000079,0x3f800000,0x0004002b,0x00000006, + 0x0000007a,0x00000000,0x0004002b,0x00000006,0x0000008a,0x44000000,0x0004002b,0x00000006, + 0x0000008c,0x47000000,0x0004002b,0x00000006,0x00000093,0x3b000000,0x0004002b,0x00000006, + 0x00000095,0xc2800000,0x0004002b,0x00000006,0x000000a2,0x3a808081,0x00020014,0x000000a5, + 0x00040017,0x000000a6,0x000000a5,0x00000002,0x00040017,0x000000b0,0x00000012,0x00000002, + 0x00040020,0x000000b1,0x00000007,0x000000b0,0x0003001d,0x000000b3,0x000000b0,0x0003001e, + 0x000000b4,0x000000b3,0x00040020,0x000000b5,0x00000002,0x000000b4,0x0004003b,0x000000b5, + 0x000000b6,0x00000002,0x0004002b,0x0000003b,0x000000b7,0x00000000,0x00040020,0x000000b9, + 0x00000002,0x000000b0,0x0004002b,0x00000012,0x000000c0,0x00000300,0x00030031,0x000000a5, + 0x000000c7,0x0004002b,0x00000012,0x000000cc,0x00000200,0x0004002b,0x00000006,0x000000d3, + 0x3f000000,0x0004002b,0x00000006,0x000000d6,0x40000000,0x0004002b,0x00000006,0x000000d8, + 0xbf800000,0x00030031,0x000000a5,0x000000e2,0x0004002b,0x00000012,0x000000e8,0x00000010, + 0x00090019,0x000000ee,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x000000ef,0x00000000,0x000000ee,0x0004003b,0x000000ef,0x000000f0, + 0x00000000,0x0005002c,0x0000003c,0x000000f2,0x000000b7,0x000000b7,0x00030031,0x000000a5, + 0x000000fb,0x0004002b,0x00000012,0x00000100,0x00000400,0x00040020,0x00000106,0x00000007, + 0x00000025,0x0003001d,0x00000108,0x0000001f,0x0003001e,0x00000109,0x00000108,0x00040020, + 0x0000010a,0x00000002,0x00000109,0x0004003b,0x0000010a,0x0000010b,0x00000002,0x0004002b, + 0x00000012,0x0000010d,0x00000004,0x00040020,0x00000111,0x00000002,0x0000001f,0x00040020, + 0x0000011d,0x00000001,0x0000001f,0x0004003b,0x0000011d,0x0000011e,0x00000001,0x0004002b, + 0x00000012,0x0000013e,0x0000000f,0x00090019,0x00000187,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000188,0x00000000,0x00000187, + 0x0004003b,0x00000188,0x00000189,0x00000000,0x0002001a,0x0000018b,0x00040020,0x0000018c, + 0x00000000,0x0000018b,0x0004003b,0x0000018c,0x0000018d,0x00000000,0x0003001b,0x0000018f, + 0x00000187,0x00040020,0x0000019a,0x00000003,0x0000001f,0x0004003b,0x0000019a,0x0000019b, + 0x00000003,0x00040020,0x000001a3,0x00000001,0x0000000c,0x0004003b,0x000001a3,0x000001a4, + 0x00000001,0x00040020,0x000001a5,0x00000001,0x00000006,0x00040020,0x000001b4,0x00000001, + 0x00000012,0x0004003b,0x000001b4,0x000001b5,0x00000001,0x0004002b,0x0000003b,0x000001b9, + 0x00000010,0x00090019,0x000001be,0x00000012,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x000001bf,0x00000000,0x000001be,0x0004003b,0x000001bf, + 0x000001c0,0x00000000,0x00040020,0x000001c3,0x0000000b,0x00000012,0x0004002b,0x00000012, + 0x000001dc,0x00008000,0x0004002b,0x00000012,0x000001e6,0x0000ffff,0x0004003b,0x0000019a, + 0x000001fa,0x00000003,0x00030031,0x000000a5,0x00000201,0x00030031,0x000000a5,0x00000202, + 0x00030031,0x000000a5,0x00000203,0x00030031,0x000000a5,0x00000204,0x00030031,0x000000a5, + 0x00000205,0x00040017,0x00000206,0x0000003b,0x00000004,0x000e001e,0x00000207,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012,0x00000012,0x00000206, + 0x00000012,0x00000012,0x00000006,0x00040020,0x00000208,0x00000002,0x00000207,0x0004003b, + 0x00000208,0x00000209,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000003d,0x0000019d,0x00000007,0x0004003b,0x00000007, + 0x000001a2,0x00000007,0x0004003b,0x00000007,0x000001ac,0x00000007,0x0004003b,0x00000013, + 0x000001af,0x00000007,0x0004003b,0x00000007,0x000001b0,0x00000007,0x0004003b,0x00000013, + 0x000001b3,0x00000007,0x0004003b,0x00000013,0x000001b6,0x00000007,0x0004003b,0x00000013, + 0x000001bd,0x00000007,0x0004003b,0x00000013,0x000001c6,0x00000007,0x0004003b,0x00000013, + 0x000001c9,0x00000007,0x0004003b,0x00000007,0x000001e4,0x00000007,0x0004003b,0x00000013, + 0x000001e8,0x00000007,0x0004003b,0x00000024,0x000001ea,0x00000007,0x0004003b,0x00000007, + 0x000001eb,0x00000007,0x0004003b,0x00000024,0x000001ed,0x00000007,0x0004003b,0x00000013, + 0x000001ee,0x00000007,0x0004003b,0x00000007,0x000001f0,0x00000007,0x0004003b,0x00000024, + 0x000001f2,0x00000007,0x0004003b,0x00000024,0x000001f3,0x00000007,0x0004003b,0x0000003d, + 0x000001f5,0x00000007,0x0004003b,0x00000024,0x000001fc,0x00000007,0x0004003b,0x0000003d, + 0x000001fe,0x00000007,0x0004003d,0x0000001f,0x0000019e,0x0000011e,0x0007004f,0x0000000c, + 0x0000019f,0x0000019e,0x0000019e,0x00000000,0x00000001,0x0006000c,0x0000000c,0x000001a0, + 0x00000001,0x00000008,0x0000019f,0x0004006e,0x0000003c,0x000001a1,0x000001a0,0x0003003e, + 0x0000019d,0x000001a1,0x00050041,0x000001a5,0x000001a6,0x000001a4,0x0000005f,0x0004003d, + 0x00000006,0x000001a7,0x000001a6,0x00050041,0x000001a5,0x000001a8,0x000001a4,0x00000062, + 0x0004003d,0x00000006,0x000001a9,0x000001a8,0x0006000c,0x00000006,0x000001aa,0x00000001, + 0x00000004,0x000001a9,0x0007000c,0x00000006,0x000001ab,0x00000001,0x00000025,0x000001a7, + 0x000001aa,0x0003003e,0x000001ac,0x00000079,0x00050039,0x00000006,0x000001ad,0x00000019, + 0x000001ac,0x0007000c,0x00000006,0x000001ae,0x00000001,0x00000025,0x000001ab,0x000001ad, + 0x0003003e,0x000001a2,0x000001ae,0x0004003d,0x00000006,0x000001b1,0x000001a2,0x0003003e, + 0x000001b0,0x000001b1,0x00050039,0x00000012,0x000001b2,0x0000002f,0x000001b0,0x0003003e, + 0x000001af,0x000001b2,0x0004003d,0x00000012,0x000001b7,0x000001b5,0x0003003e,0x000001b6, + 0x000001b7,0x00050039,0x00000012,0x000001b8,0x0000002b,0x000001b6,0x000500c4,0x00000012, + 0x000001ba,0x000001b8,0x000001b9,0x0004003d,0x00000012,0x000001bb,0x000001af,0x000500c5, + 0x00000012,0x000001bc,0x000001ba,0x000001bb,0x0003003e,0x000001b3,0x000001bc,0x0004003d, + 0x0000003c,0x000001c1,0x0000019d,0x0004003d,0x00000012,0x000001c2,0x000001b3,0x0006003c, + 0x000001c3,0x000001c4,0x000001c0,0x000001c1,0x0000005f,0x000700ef,0x00000012,0x000001c5, + 0x000001c4,0x00000062,0x0000005f,0x000001c2,0x0003003e,0x000001bd,0x000001c5,0x0004003d, + 0x00000012,0x000001c7,0x000001bd,0x000500c2,0x00000012,0x000001c8,0x000001c7,0x000001b9, + 0x0003003e,0x000001c9,0x000001c8,0x00050039,0x00000012,0x000001ca,0x00000016,0x000001c9, + 0x0003003e,0x000001c6,0x000001ca,0x0004003d,0x00000012,0x000001cb,0x000001c6,0x0004003d, + 0x00000012,0x000001cc,0x000001b5,0x000500aa,0x000000a5,0x000001cd,0x000001cb,0x000001cc, + 0x000300f7,0x000001cf,0x00000000,0x000400fa,0x000001cd,0x000001ce,0x000001cf,0x000200f8, + 0x000001ce,0x00050041,0x000001a5,0x000001d0,0x000001a4,0x00000062,0x0004003d,0x00000006, + 0x000001d1,0x000001d0,0x000500b8,0x000000a5,0x000001d2,0x000001d1,0x0000007a,0x000300f7, + 0x000001d4,0x00000000,0x000400fa,0x000001d2,0x000001d3,0x000001d4,0x000200f8,0x000001d3, + 0x0004003d,0x00000012,0x000001d5,0x000001bd,0x0004003d,0x00000012,0x000001d6,0x000001b3, + 0x0004003d,0x00000012,0x000001d7,0x000001bd,0x0007000c,0x00000012,0x000001d8,0x00000001, + 0x00000029,0x000001d6,0x000001d7,0x00050082,0x00000012,0x000001d9,0x000001d5,0x000001d8, + 0x0004003d,0x00000012,0x000001da,0x000001af,0x00050080,0x00000012,0x000001db,0x000001da, + 0x000001d9,0x0003003e,0x000001af,0x000001db,0x0004003d,0x00000012,0x000001dd,0x000001af, + 0x00050082,0x00000012,0x000001de,0x000001dd,0x000001dc,0x0003003e,0x000001af,0x000001de, + 0x0004003d,0x0000003c,0x000001df,0x0000019d,0x0004003d,0x00000012,0x000001e0,0x000001af, + 0x0006003c,0x000001c3,0x000001e1,0x000001c0,0x000001df,0x0000005f,0x000700ea,0x00000012, + 0x000001e2,0x000001e1,0x00000062,0x0000005f,0x000001e0,0x000200f9,0x000001d4,0x000200f8, + 0x000001d4,0x000100fc,0x000200f8,0x000001cf,0x0004003d,0x00000012,0x000001e5,0x000001bd, + 0x000500c7,0x00000012,0x000001e7,0x000001e5,0x000001e6,0x0003003e,0x000001e8,0x000001e7, + 0x00050039,0x00000006,0x000001e9,0x00000033,0x000001e8,0x0003003e,0x000001e4,0x000001e9, + 0x0003003e,0x000001eb,0x0000007a,0x00050039,0x0000001f,0x000001ec,0x00000022,0x000001eb, + 0x0003003e,0x000001ea,0x000001ec,0x0004003d,0x00000012,0x000001ef,0x000001c6,0x0003003e, + 0x000001ee,0x000001ef,0x0004003d,0x00000006,0x000001f1,0x000001e4,0x0003003e,0x000001f0, + 0x000001f1,0x0004003d,0x0000001f,0x000001f4,0x000001ea,0x0003003e,0x000001f3,0x000001f4, + 0x0004003d,0x0000003c,0x000001f6,0x0000019d,0x0003003e,0x000001f5,0x000001f6,0x00090039, + 0x00000002,0x000001f7,0x00000044,0x000001ee,0x000001f0,0x000001f2,0x000001f3,0x000001f5, + 0x0004003d,0x0000001f,0x000001f8,0x000001f2,0x0003003e,0x000001ed,0x000001f8,0x0004003d, + 0x0000001f,0x000001f9,0x000001f3,0x0003003e,0x000001ea,0x000001f9,0x0004003d,0x0000001f, + 0x000001fb,0x000001ed,0x0003003e,0x000001fa,0x000001fb,0x0004003d,0x0000001f,0x000001fd, + 0x000001ea,0x0003003e,0x000001fc,0x000001fd,0x0004003d,0x0000003c,0x000001ff,0x0000019d, + 0x0003003e,0x000001fe,0x000001ff,0x00060039,0x00000002,0x00000200,0x00000049,0x000001fc, + 0x000001fe,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x0000004c, + 0x00000007,0x0004003d,0x00000006,0x0000004b,0x00000009,0x0003003e,0x0000004c,0x0000004b, + 0x0004003d,0x00000006,0x0000004d,0x0000004c,0x000200fe,0x0000004d,0x00010038,0x00050036, + 0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8, + 0x00000011,0x0004003b,0x0000000d,0x00000051,0x00000007,0x0004003d,0x0000000c,0x00000050, + 0x0000000f,0x0003003e,0x00000051,0x00000050,0x0004003d,0x0000000c,0x00000052,0x00000051, + 0x000200fe,0x00000052,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014, + 0x00030037,0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x00000056, + 0x00000007,0x0004003d,0x00000012,0x00000055,0x00000015,0x0003003e,0x00000056,0x00000055, + 0x0004003d,0x00000012,0x00000057,0x00000056,0x000200fe,0x00000057,0x00010038,0x00050036, + 0x00000006,0x00000019,0x00000000,0x00000008,0x00030037,0x00000007,0x00000018,0x000200f8, + 0x0000001a,0x0004003d,0x00000006,0x0000005a,0x00000018,0x000200fe,0x0000005a,0x00010038, + 0x00050036,0x0000000c,0x0000001d,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c, + 0x000200f8,0x0000001e,0x0004003b,0x0000000d,0x0000005d,0x00000007,0x0004003d,0x00000006, + 0x0000005e,0x0000001c,0x00050041,0x00000007,0x00000060,0x0000005d,0x0000005f,0x0003003e, + 0x00000060,0x0000005e,0x0004003d,0x00000006,0x00000061,0x0000001c,0x00050041,0x00000007, + 0x00000063,0x0000005d,0x00000062,0x0003003e,0x00000063,0x00000061,0x0004003d,0x0000000c, + 0x00000064,0x0000005d,0x000200fe,0x00000064,0x00010038,0x00050036,0x0000001f,0x00000022, + 0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x0004003b, + 0x00000024,0x00000067,0x00000007,0x0004003d,0x00000006,0x00000068,0x00000021,0x00050041, + 0x00000007,0x00000069,0x00000067,0x0000005f,0x0003003e,0x00000069,0x00000068,0x0004003d, + 0x00000006,0x0000006a,0x00000021,0x00050041,0x00000007,0x0000006b,0x00000067,0x00000062, + 0x0003003e,0x0000006b,0x0000006a,0x0004003d,0x00000006,0x0000006c,0x00000021,0x00050041, + 0x00000007,0x0000006e,0x00000067,0x0000006d,0x0003003e,0x0000006e,0x0000006c,0x0004003d, + 0x00000006,0x0000006f,0x00000021,0x00050041,0x00000007,0x00000071,0x00000067,0x00000070, + 0x0003003e,0x00000071,0x0000006f,0x0004003d,0x0000001f,0x00000072,0x00000067,0x000200fe, + 0x00000072,0x00010038,0x00050036,0x00000025,0x00000028,0x00000000,0x00000026,0x00030037, + 0x00000024,0x00000027,0x000200f8,0x00000029,0x0004003d,0x0000001f,0x00000075,0x00000027, + 0x0007004f,0x0000000c,0x00000076,0x00000075,0x00000075,0x00000000,0x00000001,0x0004003d, + 0x0000001f,0x00000077,0x00000027,0x0007004f,0x0000000c,0x00000078,0x00000077,0x00000077, + 0x00000002,0x00000003,0x00050051,0x00000006,0x0000007b,0x00000076,0x00000000,0x00050051, + 0x00000006,0x0000007c,0x00000076,0x00000001,0x00050051,0x00000006,0x0000007d,0x00000078, + 0x00000000,0x00050051,0x00000006,0x0000007e,0x00000078,0x00000001,0x00050050,0x0000000c, + 0x0000007f,0x0000007b,0x0000007c,0x00050050,0x0000000c,0x00000080,0x0000007d,0x0000007e, + 0x00050050,0x00000025,0x00000081,0x0000007f,0x00000080,0x000200fe,0x00000081,0x00010038, + 0x00050036,0x00000012,0x0000002b,0x00000000,0x00000014,0x00030037,0x00000013,0x0000002a, + 0x000200f8,0x0000002c,0x0004003b,0x00000013,0x00000085,0x00000007,0x0004003d,0x00000012, + 0x00000084,0x0000002a,0x0003003e,0x00000085,0x00000084,0x0004003d,0x00000012,0x00000086, + 0x00000085,0x000200fe,0x00000086,0x00010038,0x00050036,0x00000012,0x0000002f,0x00000000, + 0x0000002d,0x00030037,0x00000007,0x0000002e,0x000200f8,0x00000030,0x0004003d,0x00000006, + 0x00000089,0x0000002e,0x00050085,0x00000006,0x0000008b,0x00000089,0x0000008a,0x00050081, + 0x00000006,0x0000008d,0x0000008b,0x0000008c,0x0004006d,0x00000012,0x0000008e,0x0000008d, + 0x000200fe,0x0000008e,0x00010038,0x00050036,0x00000006,0x00000033,0x00000000,0x00000031, + 0x00030037,0x00000013,0x00000032,0x000200f8,0x00000034,0x0004003b,0x00000007,0x00000097, + 0x00000007,0x0004003d,0x00000012,0x00000091,0x00000032,0x00040070,0x00000006,0x00000092, + 0x00000091,0x00050085,0x00000006,0x00000094,0x00000092,0x00000093,0x00050081,0x00000006, + 0x00000096,0x00000094,0x00000095,0x0003003e,0x00000097,0x00000096,0x00050039,0x00000006, + 0x00000098,0x0000000a,0x00000097,0x000200fe,0x00000098,0x00010038,0x00050036,0x00000002, + 0x00000039,0x00000000,0x00000035,0x00030037,0x00000013,0x00000036,0x00030037,0x00000024, + 0x00000037,0x00030037,0x00000007,0x00000038,0x000200f8,0x0000003a,0x0004003b,0x00000007, + 0x000000a3,0x00000007,0x0004003d,0x0000001f,0x0000009b,0x00000037,0x0007004f,0x0000000c, + 0x0000009c,0x0000009b,0x0000009b,0x00000000,0x00000001,0x0004003d,0x00000012,0x0000009d, + 0x00000036,0x0006000c,0x0000001f,0x0000009e,0x00000001,0x00000040,0x0000009d,0x0007004f, + 0x0000000c,0x0000009f,0x0000009e,0x0000009e,0x00000000,0x00000001,0x00050083,0x0000000c, + 0x000000a0,0x0000009c,0x0000009f,0x0006000c,0x0000000c,0x000000a1,0x00000001,0x00000004, + 0x000000a0,0x0003003e,0x000000a3,0x000000a2,0x00050039,0x0000000c,0x000000a4,0x0000001d, + 0x000000a3,0x000500b8,0x000000a6,0x000000a7,0x000000a1,0x000000a4,0x0004009b,0x000000a5, + 0x000000a8,0x000000a7,0x000300f7,0x000000aa,0x00000000,0x000400fa,0x000000a8,0x000000a9, + 0x000000af,0x000200f8,0x000000a9,0x0004003d,0x00000006,0x000000ab,0x00000038,0x00050041, + 0x00000007,0x000000ac,0x00000037,0x0000006d,0x0004003d,0x00000006,0x000000ad,0x000000ac, + 0x0007000c,0x00000006,0x000000ae,0x00000001,0x00000025,0x000000ab,0x000000ad,0x0003003e, + 0x00000038,0x000000ae,0x000200f9,0x000000aa,0x000200f8,0x000000af,0x0003003e,0x00000038, + 0x0000007a,0x000200f9,0x000000aa,0x000200f8,0x000000aa,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000044,0x00000000,0x0000003e,0x00030037,0x00000013,0x0000003f,0x00030037, + 0x00000007,0x00000040,0x00030037,0x00000024,0x00000041,0x00030037,0x00000024,0x00000042, + 0x00030037,0x0000003d,0x00000043,0x000200f8,0x00000045,0x0004003b,0x000000b1,0x000000b2, + 0x00000007,0x0004003b,0x00000007,0x000000bc,0x00000007,0x0004003b,0x00000007,0x000000dd, + 0x00000007,0x0004003b,0x00000007,0x000000df,0x00000007,0x0004003b,0x00000013,0x000000e5, + 0x00000007,0x0004003b,0x00000013,0x000000f4,0x00000007,0x0004003b,0x00000024,0x000000f6, + 0x00000007,0x0004003b,0x00000007,0x000000f7,0x00000007,0x0004003b,0x00000106,0x00000107, + 0x00000007,0x0004003b,0x00000024,0x00000110,0x00000007,0x0004003b,0x00000024,0x00000115, + 0x00000007,0x0004003b,0x0000000d,0x0000011b,0x00000007,0x0004003b,0x0000000d,0x00000125, + 0x00000007,0x0004003b,0x0000000d,0x0000012e,0x00000007,0x0004003b,0x00000007,0x00000130, + 0x00000007,0x0004003b,0x00000013,0x0000013b,0x00000007,0x0004003b,0x00000007,0x00000155, + 0x00000007,0x0004003b,0x00000106,0x00000158,0x00000007,0x0004003b,0x00000024,0x0000015b, + 0x00000007,0x0004003b,0x00000024,0x0000015f,0x00000007,0x0004003b,0x0000000d,0x00000165, + 0x00000007,0x0004003b,0x00000007,0x0000016d,0x00000007,0x0004003b,0x00000007,0x00000170, + 0x00000007,0x0004003b,0x00000007,0x0000017b,0x00000007,0x0004003b,0x00000007,0x00000183, + 0x00000007,0x0004003d,0x00000012,0x000000b8,0x0000003f,0x00060041,0x000000b9,0x000000ba, + 0x000000b6,0x000000b7,0x000000b8,0x0004003d,0x000000b0,0x000000bb,0x000000ba,0x0003003e, + 0x000000b2,0x000000bb,0x0004003d,0x00000006,0x000000bd,0x00000040,0x0003003e,0x000000bc, + 0x000000bd,0x00050041,0x00000013,0x000000be,0x000000b2,0x0000005f,0x0004003d,0x00000012, + 0x000000bf,0x000000be,0x000500c7,0x00000012,0x000000c1,0x000000bf,0x000000c0,0x000500ab, + 0x000000a5,0x000000c2,0x000000c1,0x0000005f,0x000300f7,0x000000c4,0x00000000,0x000400fa, + 0x000000c2,0x000000c3,0x000000c4,0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000000c5, + 0x000000bc,0x0006000c,0x00000006,0x000000c6,0x00000001,0x00000004,0x000000c5,0x0003003e, + 0x000000bc,0x000000c6,0x000300f7,0x000000c9,0x00000000,0x000400fa,0x000000c7,0x000000c8, + 0x000000c9,0x000200f8,0x000000c8,0x00050041,0x00000013,0x000000ca,0x000000b2,0x0000005f, + 0x0004003d,0x00000012,0x000000cb,0x000000ca,0x000500c7,0x00000012,0x000000cd,0x000000cb, + 0x000000cc,0x000500ab,0x000000a5,0x000000ce,0x000000cd,0x0000005f,0x000200f9,0x000000c9, + 0x000200f8,0x000000c9,0x000700f5,0x000000a5,0x000000cf,0x000000c7,0x000000c3,0x000000ce, + 0x000000c8,0x000300f7,0x000000d1,0x00000000,0x000400fa,0x000000cf,0x000000d0,0x000000d1, + 0x000200f8,0x000000d0,0x0004003d,0x00000006,0x000000d2,0x000000bc,0x00050085,0x00000006, + 0x000000d4,0x000000d2,0x000000d3,0x0006000c,0x00000006,0x000000d5,0x00000001,0x0000000a, + 0x000000d4,0x00050085,0x00000006,0x000000d7,0x000000d5,0x000000d6,0x00050081,0x00000006, + 0x000000d9,0x000000d7,0x000000d8,0x0006000c,0x00000006,0x000000da,0x00000001,0x00000004, + 0x000000d9,0x00050083,0x00000006,0x000000db,0x00000079,0x000000da,0x0003003e,0x000000bc, + 0x000000db,0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x000200f9,0x000000c4,0x000200f8, + 0x000000c4,0x0004003d,0x00000006,0x000000dc,0x000000bc,0x0003003e,0x000000dd,0x0000007a, + 0x00050039,0x00000006,0x000000de,0x00000019,0x000000dd,0x0003003e,0x000000df,0x00000079, + 0x00050039,0x00000006,0x000000e0,0x00000019,0x000000df,0x0008000c,0x00000006,0x000000e1, + 0x00000001,0x0000002b,0x000000dc,0x000000de,0x000000e0,0x0003003e,0x000000bc,0x000000e1, + 0x000300f7,0x000000e4,0x00000000,0x000400fa,0x000000e2,0x000000e3,0x000000e4,0x000200f8, + 0x000000e3,0x00050041,0x00000013,0x000000e6,0x000000b2,0x0000005f,0x0004003d,0x00000012, + 0x000000e7,0x000000e6,0x000500c2,0x00000012,0x000000e9,0x000000e7,0x000000e8,0x0003003e, + 0x000000e5,0x000000e9,0x0004003d,0x00000012,0x000000ea,0x000000e5,0x000500ab,0x000000a5, + 0x000000eb,0x000000ea,0x0000005f,0x000300f7,0x000000ed,0x00000000,0x000400fa,0x000000eb, + 0x000000ec,0x000000ed,0x000200f8,0x000000ec,0x0004003d,0x000000ee,0x000000f1,0x000000f0, + 0x00050062,0x0000001f,0x000000f3,0x000000f1,0x000000f2,0x0004003d,0x00000012,0x000000f5, + 0x000000e5,0x0003003e,0x000000f4,0x000000f5,0x0003003e,0x000000f6,0x000000f3,0x0004003d, + 0x00000006,0x000000f8,0x000000bc,0x0003003e,0x000000f7,0x000000f8,0x00070039,0x00000002, + 0x000000f9,0x00000039,0x000000f4,0x000000f6,0x000000f7,0x0004003d,0x00000006,0x000000fa, + 0x000000f7,0x0003003e,0x000000bc,0x000000fa,0x000200f9,0x000000ed,0x000200f8,0x000000ed, + 0x000200f9,0x000000e4,0x000200f8,0x000000e4,0x000300f7,0x000000fd,0x00000000,0x000400fa, + 0x000000fb,0x000000fc,0x000000fd,0x000200f8,0x000000fc,0x00050041,0x00000013,0x000000fe, + 0x000000b2,0x0000005f,0x0004003d,0x00000012,0x000000ff,0x000000fe,0x000500c7,0x00000012, + 0x00000101,0x000000ff,0x00000100,0x000500ab,0x000000a5,0x00000102,0x00000101,0x0000005f, + 0x000200f9,0x000000fd,0x000200f8,0x000000fd,0x000700f5,0x000000a5,0x00000103,0x000000fb, + 0x000000e4,0x00000102,0x000000fc,0x000300f7,0x00000105,0x00000000,0x000400fa,0x00000103, + 0x00000104,0x00000105,0x000200f8,0x00000104,0x0004003d,0x00000012,0x0000010c,0x0000003f, + 0x00050084,0x00000012,0x0000010e,0x0000010c,0x0000010d,0x00050080,0x00000012,0x0000010f, + 0x0000010e,0x0000006d,0x00060041,0x00000111,0x00000112,0x0000010b,0x000000b7,0x0000010f, + 0x0004003d,0x0000001f,0x00000113,0x00000112,0x0003003e,0x00000110,0x00000113,0x00050039, + 0x00000025,0x00000114,0x00000028,0x00000110,0x0003003e,0x00000107,0x00000114,0x0004003d, + 0x00000012,0x00000116,0x0000003f,0x00050084,0x00000012,0x00000117,0x00000116,0x0000010d, + 0x00050080,0x00000012,0x00000118,0x00000117,0x00000070,0x00060041,0x00000111,0x00000119, + 0x0000010b,0x000000b7,0x00000118,0x0004003d,0x0000001f,0x0000011a,0x00000119,0x0003003e, + 0x00000115,0x0000011a,0x0004003d,0x00000025,0x0000011c,0x00000107,0x0004003d,0x0000001f, + 0x0000011f,0x0000011e,0x0007004f,0x0000000c,0x00000120,0x0000011f,0x0000011f,0x00000000, + 0x00000001,0x00050091,0x0000000c,0x00000121,0x0000011c,0x00000120,0x0004003d,0x0000001f, + 0x00000122,0x00000115,0x0007004f,0x0000000c,0x00000123,0x00000122,0x00000122,0x00000000, + 0x00000001,0x00050081,0x0000000c,0x00000124,0x00000121,0x00000123,0x0003003e,0x0000011b, + 0x00000124,0x0004003d,0x0000000c,0x00000126,0x0000011b,0x0006000c,0x0000000c,0x00000127, + 0x00000001,0x00000004,0x00000126,0x0004003d,0x0000001f,0x00000128,0x00000115,0x0007004f, + 0x0000000c,0x00000129,0x00000128,0x00000128,0x00000002,0x00000003,0x00050085,0x0000000c, + 0x0000012a,0x00000127,0x00000129,0x0004003d,0x0000001f,0x0000012b,0x00000115,0x0007004f, + 0x0000000c,0x0000012c,0x0000012b,0x0000012b,0x00000002,0x00000003,0x00050083,0x0000000c, + 0x0000012d,0x0000012a,0x0000012c,0x0003003e,0x0000012e,0x0000012d,0x00050039,0x0000000c, + 0x0000012f,0x00000010,0x0000012e,0x0003003e,0x00000125,0x0000012f,0x00050041,0x00000007, + 0x00000131,0x00000125,0x0000005f,0x0004003d,0x00000006,0x00000132,0x00000131,0x00050041, + 0x00000007,0x00000133,0x00000125,0x00000062,0x0004003d,0x00000006,0x00000134,0x00000133, + 0x0007000c,0x00000006,0x00000135,0x00000001,0x00000025,0x00000132,0x00000134,0x00050081, + 0x00000006,0x00000136,0x00000135,0x000000d3,0x0008000c,0x00000006,0x00000137,0x00000001, + 0x0000002b,0x00000136,0x0000007a,0x00000079,0x0003003e,0x00000130,0x00000137,0x0004003d, + 0x00000006,0x00000138,0x000000bc,0x0004003d,0x00000006,0x00000139,0x00000130,0x0007000c, + 0x00000006,0x0000013a,0x00000001,0x00000025,0x00000138,0x00000139,0x0003003e,0x000000bc, + 0x0000013a,0x000200f9,0x00000105,0x000200f8,0x00000105,0x00050041,0x00000013,0x0000013c, + 0x000000b2,0x0000005f,0x0004003d,0x00000012,0x0000013d,0x0000013c,0x000500c7,0x00000012, + 0x0000013f,0x0000013d,0x0000013e,0x0003003e,0x0000013b,0x0000013f,0x0004003d,0x00000012, + 0x00000140,0x0000013b,0x000500b2,0x000000a5,0x00000141,0x00000140,0x00000062,0x000300f7, + 0x00000143,0x00000000,0x000400fa,0x00000141,0x00000142,0x00000157,0x000200f8,0x00000142, + 0x00050041,0x00000013,0x00000144,0x000000b2,0x00000062,0x0004003d,0x00000012,0x00000145, + 0x00000144,0x0006000c,0x0000001f,0x00000146,0x00000001,0x00000040,0x00000145,0x0003003e, + 0x00000041,0x00000146,0x0004003d,0x00000012,0x00000147,0x0000013b,0x000500aa,0x000000a5, + 0x00000148,0x00000147,0x0000005f,0x000500a7,0x000000a5,0x00000149,0x000000e2,0x00000148, + 0x000300f7,0x0000014b,0x00000000,0x000400fa,0x00000149,0x0000014a,0x0000014b,0x000200f8, + 0x0000014a,0x0004003d,0x0000001f,0x0000014c,0x00000041,0x0007004f,0x0000000c,0x0000014d, + 0x0000014c,0x0000014c,0x00000002,0x00000003,0x00050041,0x00000007,0x0000014e,0x00000042, + 0x0000005f,0x00050051,0x00000006,0x0000014f,0x0000014d,0x00000000,0x0003003e,0x0000014e, + 0x0000014f,0x00050041,0x00000007,0x00000150,0x00000042,0x00000062,0x00050051,0x00000006, + 0x00000151,0x0000014d,0x00000001,0x0003003e,0x00000150,0x00000151,0x0004003d,0x00000006, + 0x00000152,0x000000bc,0x00050041,0x00000007,0x00000153,0x00000042,0x0000006d,0x0003003e, + 0x00000153,0x00000152,0x00050041,0x00000007,0x00000154,0x00000042,0x00000070,0x0003003e, + 0x00000154,0x00000079,0x0003003e,0x00000155,0x0000007a,0x00050039,0x0000001f,0x00000156, + 0x00000022,0x00000155,0x0003003e,0x00000041,0x00000156,0x000200f9,0x0000014b,0x000200f8, + 0x0000014b,0x000200f9,0x00000143,0x000200f8,0x00000157,0x0004003d,0x00000012,0x00000159, + 0x0000003f,0x00050084,0x00000012,0x0000015a,0x00000159,0x0000010d,0x00060041,0x00000111, + 0x0000015c,0x0000010b,0x000000b7,0x0000015a,0x0004003d,0x0000001f,0x0000015d,0x0000015c, + 0x0003003e,0x0000015b,0x0000015d,0x00050039,0x00000025,0x0000015e,0x00000028,0x0000015b, + 0x0003003e,0x00000158,0x0000015e,0x0004003d,0x00000012,0x00000160,0x0000003f,0x00050084, + 0x00000012,0x00000161,0x00000160,0x0000010d,0x00050080,0x00000012,0x00000162,0x00000161, + 0x00000062,0x00060041,0x00000111,0x00000163,0x0000010b,0x000000b7,0x00000162,0x0004003d, + 0x0000001f,0x00000164,0x00000163,0x0003003e,0x0000015f,0x00000164,0x0004003d,0x00000025, + 0x00000166,0x00000158,0x0004003d,0x0000001f,0x00000167,0x0000011e,0x0007004f,0x0000000c, + 0x00000168,0x00000167,0x00000167,0x00000000,0x00000001,0x00050091,0x0000000c,0x00000169, + 0x00000166,0x00000168,0x0004003d,0x0000001f,0x0000016a,0x0000015f,0x0007004f,0x0000000c, + 0x0000016b,0x0000016a,0x0000016a,0x00000000,0x00000001,0x00050081,0x0000000c,0x0000016c, + 0x00000169,0x0000016b,0x0003003e,0x00000165,0x0000016c,0x0004003d,0x00000012,0x0000016e, + 0x0000013b,0x000500aa,0x000000a5,0x0000016f,0x0000016e,0x0000006d,0x000300f7,0x00000172, + 0x00000000,0x000400fa,0x0000016f,0x00000171,0x00000175,0x000200f8,0x00000171,0x00050041, + 0x00000007,0x00000173,0x00000165,0x0000005f,0x0004003d,0x00000006,0x00000174,0x00000173, + 0x0003003e,0x00000170,0x00000174,0x000200f9,0x00000172,0x000200f8,0x00000175,0x0004003d, + 0x0000000c,0x00000176,0x00000165,0x0006000c,0x00000006,0x00000177,0x00000001,0x00000042, + 0x00000176,0x0003003e,0x00000170,0x00000177,0x000200f9,0x00000172,0x000200f8,0x00000172, + 0x0004003d,0x00000006,0x00000178,0x00000170,0x0003003e,0x0000016d,0x00000178,0x0004003d, + 0x00000006,0x00000179,0x0000016d,0x0008000c,0x00000006,0x0000017a,0x00000001,0x0000002b, + 0x00000179,0x0000007a,0x00000079,0x0003003e,0x0000016d,0x0000017a,0x0004003d,0x00000006, + 0x0000017c,0x0000016d,0x00050041,0x00000007,0x0000017d,0x0000015f,0x0000006d,0x0004003d, + 0x00000006,0x0000017e,0x0000017d,0x00050085,0x00000006,0x0000017f,0x0000017c,0x0000017e, + 0x00050041,0x00000007,0x00000180,0x0000015f,0x00000070,0x0004003d,0x00000006,0x00000181, + 0x00000180,0x00050081,0x00000006,0x00000182,0x0000017f,0x00000181,0x0003003e,0x0000017b, + 0x00000182,0x00050041,0x00000013,0x00000184,0x000000b2,0x00000062,0x0004003d,0x00000012, + 0x00000185,0x00000184,0x0004007c,0x00000006,0x00000186,0x00000185,0x0003003e,0x00000183, + 0x00000186,0x0004003d,0x00000187,0x0000018a,0x00000189,0x0004003d,0x0000018b,0x0000018e, + 0x0000018d,0x00050056,0x0000018f,0x00000190,0x0000018a,0x0000018e,0x0004003d,0x00000006, + 0x00000191,0x0000017b,0x0004003d,0x00000006,0x00000192,0x00000183,0x00050050,0x0000000c, + 0x00000193,0x00000191,0x00000192,0x00070058,0x0000001f,0x00000194,0x00000190,0x00000193, + 0x00000002,0x0000007a,0x0003003e,0x00000041,0x00000194,0x000200f9,0x00000143,0x000200f8, + 0x00000143,0x0004003d,0x00000006,0x00000195,0x000000bc,0x00050041,0x00000007,0x00000196, + 0x00000041,0x00000070,0x0004003d,0x00000006,0x00000197,0x00000196,0x00050085,0x00000006, + 0x00000198,0x00000197,0x00000195,0x00050041,0x00000007,0x00000199,0x00000041,0x00000070, + 0x0003003e,0x00000199,0x00000198,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000049, + 0x00000000,0x00000046,0x00030037,0x00000024,0x00000047,0x00030037,0x0000003d,0x00000048, + 0x000200f8,0x0000004a,0x0004003d,0x0000001f,0x0000019c,0x00000047,0x0003003e,0x0000019b, + 0x0000019c,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_path.frag.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.frag.h new file mode 100644 index 00000000..a22c506c --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.frag.h @@ -0,0 +1,1143 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_path_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000004ca,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000a000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000003b2, + 0x00000458,0x0000045a,0x00000463,0x00000474,0x00030010,0x00000004,0x00000007,0x00030003, + 0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f, + 0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163, + 0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078, + 0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628, + 0x0000003b,0x00030005,0x0000000f,0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005, + 0x00000019,0x656b616d,0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078, + 0x00070005,0x0000001e,0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005, + 0x0000001c,0x00000078,0x00030005,0x0000001d,0x00000079,0x00060005,0x00000022,0x656b616d, + 0x6c61685f,0x66283266,0x00003b31,0x00030005,0x00000021,0x00000078,0x00080005,0x00000029, + 0x656b616d,0x6c61685f,0x66283366,0x31663b31,0x3b31663b,0x00000000,0x00030005,0x00000026, + 0x00000078,0x00030005,0x00000027,0x00000079,0x00030005,0x00000028,0x0000007a,0x00060005, + 0x0000002d,0x656b616d,0x6c61685f,0x66283366,0x00003b31,0x00030005,0x0000002c,0x00000078, + 0x00060005,0x00000032,0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000031, + 0x00000078,0x00080005,0x00000039,0x656b616d,0x6c61685f,0x33783266,0x33667628,0x3366763b, + 0x0000003b,0x00030005,0x00000037,0x00000061,0x00030005,0x00000038,0x00000062,0x00070005, + 0x0000003f,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x0000003e, + 0x00000078,0x00060005,0x00000042,0x656b616d,0x6e69755f,0x31752874,0x0000003b,0x00030005, + 0x00000041,0x00000078,0x00060005,0x00000046,0x756d6e75,0x7069746c,0x7628796c,0x003b3466, + 0x00040005,0x00000045,0x6f6c6f63,0x00000072,0x00050005,0x0000004a,0x766e696d,0x66762833, + 0x00003b33,0x00030005,0x00000049,0x00000063,0x00050005,0x0000004d,0x7678616d,0x66762833, + 0x00003b33,0x00030005,0x0000004c,0x00000063,0x00050005,0x00000050,0x766d756c,0x66762833, + 0x00003b33,0x00030005,0x0000004f,0x00000063,0x00050005,0x00000053,0x76746173,0x66762833, + 0x00003b33,0x00030005,0x00000052,0x00000063,0x00060005,0x00000057,0x70696c63,0x6c6f635f, + 0x7628726f,0x003b3366,0x00040005,0x00000056,0x6f6c6f63,0x00000072,0x00070005,0x0000005c, + 0x5f746573,0x286d756c,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005a,0x73616263, + 0x00000065,0x00040005,0x0000005b,0x6d756c63,0x00000000,0x00090005,0x00000062,0x5f746573, + 0x5f6d756c,0x28746173,0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005f, + 0x73616263,0x00000065,0x00040005,0x00000060,0x74617363,0x00000000,0x00040005,0x00000061, + 0x6d756c63,0x00000000,0x000b0005,0x00000068,0x61766461,0x6465636e,0x656c625f,0x635f646e, + 0x6666656f,0x66762873,0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000065,0x00637273, + 0x00030005,0x00000066,0x00747364,0x00040005,0x00000067,0x65646f6d,0x00000000,0x000e0005, + 0x0000006e,0x61766461,0x6465636e,0x6c6f635f,0x625f726f,0x646e656c,0x6572705f,0x6372735f, + 0x65766f5f,0x66762872,0x66763b33,0x31753b34,0x0000003b,0x00030005,0x0000006b,0x00637273, + 0x00030005,0x0000006c,0x00747364,0x00040005,0x0000006d,0x65646f6d,0x00000000,0x00060005, + 0x00000072,0x665f6f74,0x64657869,0x3b316628,0x00000000,0x00030005,0x00000071,0x00000078, + 0x00060005,0x00000076,0x6d6f7266,0x7869665f,0x75286465,0x00003b31,0x00030005,0x00000075, + 0x00000078,0x00080005,0x0000007c,0x6c707061,0x6c635f79,0x75287069,0x66763b31,0x31663b34, + 0x0000003b,0x00040005,0x00000079,0x70696c63,0x00004449,0x00050005,0x0000007a,0x70696c63, + 0x61746144,0x00000000,0x00050005,0x0000007b,0x65766f63,0x65676172,0x00000000,0x000b0005, + 0x00000087,0x6f736572,0x5f65766c,0x6e696170,0x31752874,0x3b31663b,0x3b346676,0x3b346676, + 0x3b326976,0x00000000,0x00040005,0x00000082,0x68746170,0x00004449,0x00060005,0x00000083, + 0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00060005,0x00000084,0x67617266,0x6f6c6f43, + 0x74754f72,0x00000000,0x00050005,0x00000085,0x67617266,0x70696c43,0x0074754f,0x00050005, + 0x00000086,0x736c705f,0x726f6f43,0x00000064,0x00080005,0x0000008c,0x74696d65,0x736c705f, + 0x6c6f635f,0x7628726f,0x763b3466,0x003b3269,0x00060005,0x0000008a,0x67617266,0x6f6c6f43, + 0x74754f72,0x00000000,0x00050005,0x0000008b,0x736c705f,0x726f6f43,0x00000064,0x00080005, + 0x00000090,0x74696d65,0x736c705f,0x696c635f,0x66762870,0x69763b34,0x00003b32,0x00050005, + 0x0000008e,0x67617266,0x70696c43,0x0074754f,0x00050005,0x0000008f,0x736c705f,0x726f6f43, + 0x00000064,0x00030005,0x000000a4,0x00746572,0x00030005,0x000000ae,0x00746572,0x00030005, + 0x000000b6,0x00746572,0x00030005,0x000000c1,0x00746572,0x00030005,0x000000cb,0x00746572, + 0x00030005,0x000000d9,0x00746572,0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005, + 0x00000116,0x61726170,0x0000006d,0x00040005,0x0000013c,0x61726170,0x0000006d,0x00040005, + 0x0000013d,0x61726170,0x0000006d,0x00040005,0x0000013e,0x61726170,0x0000006d,0x00040005, + 0x00000143,0x61726170,0x0000006d,0x00040005,0x00000146,0x61726170,0x0000006d,0x00030005, + 0x0000014c,0x006d756c,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000150, + 0x636e696d,0x00006c6f,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005,0x00000154, + 0x6378616d,0x00006c6f,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005,0x00000180, + 0x7361626c,0x00000065,0x00040005,0x00000181,0x61726170,0x0000006d,0x00040005,0x00000184, + 0x6d756c6c,0x00000000,0x00040005,0x00000185,0x61726170,0x0000006d,0x00040005,0x00000188, + 0x6669646c,0x00000066,0x00040005,0x0000018c,0x6f6c6f63,0x00000072,0x00040005,0x0000018e, + 0x61726170,0x0000006d,0x00040005,0x00000192,0x61726170,0x0000006d,0x00040005,0x00000197, + 0x626e696d,0x00657361,0x00040005,0x00000198,0x61726170,0x0000006d,0x00040005,0x0000019b, + 0x73616273,0x00000065,0x00040005,0x0000019c,0x61726170,0x0000006d,0x00040005,0x0000019f, + 0x74617373,0x00000000,0x00040005,0x000001a0,0x61726170,0x0000006d,0x00040005,0x000001a7, + 0x6f6c6f63,0x00000072,0x00040005,0x000001b2,0x61726170,0x0000006d,0x00040005,0x000001b4, + 0x61726170,0x0000006d,0x00040005,0x000001b6,0x61726170,0x0000006d,0x00040005,0x000001cc, + 0x66656f63,0x00007366,0x00030005,0x000001da,0x00000069,0x00040005,0x00000213,0x61726170, + 0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d,0x00040005,0x00000219,0x61726170, + 0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d,0x00040005,0x0000022a,0x61726170, + 0x0000006d,0x00030005,0x0000022f,0x00000069,0x00030005,0x00000258,0x00000069,0x00080005, + 0x000002c5,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005, + 0x000002c9,0x61726170,0x0000006d,0x00040005,0x000002cb,0x61726170,0x0000006d,0x00040005, + 0x000002ce,0x61726170,0x0000006d,0x00040005,0x000002d0,0x61726170,0x0000006d,0x00040005, + 0x000002d2,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005, + 0x000002db,0x61726170,0x0000006d,0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005, + 0x000002e0,0x61726170,0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005, + 0x000002e9,0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005, + 0x000002ee,0x61726170,0x0000006d,0x00040005,0x000002f0,0x61726170,0x0000006d,0x00040005, + 0x000002f7,0x61726170,0x0000006d,0x00040005,0x000002f9,0x61726170,0x0000006d,0x00040005, + 0x000002fc,0x61726170,0x0000006d,0x00040005,0x000002fe,0x61726170,0x0000006d,0x00040005, + 0x00000306,0x66656f63,0x00007366,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005, + 0x00000309,0x61726170,0x0000006d,0x00040005,0x0000030c,0x61726170,0x0000006d,0x00030005, + 0x0000030f,0x00000070,0x00040005,0x00000313,0x61726170,0x0000006d,0x00040005,0x00000316, + 0x61726170,0x0000006d,0x00040005,0x00000318,0x61726170,0x0000006d,0x00040005,0x0000031a, + 0x61726170,0x0000006d,0x00040005,0x0000032f,0x61726170,0x0000006d,0x00040005,0x0000033b, + 0x61726170,0x0000006d,0x00050005,0x00000349,0x6e696170,0x74614474,0x00000061,0x00050005, + 0x0000034b,0x6e696150,0x66754274,0x00726566,0x00050006,0x0000034b,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x0000034d,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675, + 0x00000072,0x00050005,0x00000352,0x65766f63,0x65676172,0x00000000,0x00060005,0x0000035d, + 0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x00000371,0x61726170,0x0000006d, + 0x00040005,0x00000373,0x61726170,0x0000006d,0x00060005,0x00000376,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00040005,0x00000379,0x70696c63,0x00004449,0x00060005,0x00000384, + 0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00040005,0x00000388,0x61726170,0x0000006d, + 0x00040005,0x0000038a,0x61726170,0x0000006d,0x00040005,0x0000038b,0x61726170,0x0000006d, + 0x00060005,0x0000038f,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00030005,0x0000039b, + 0x0000004d,0x00060005,0x0000039d,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006, + 0x0000039d,0x00000000,0x6c61765f,0x00736575,0x00090005,0x0000039f,0x5058455f,0x4554524f, + 0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00040005,0x000003a4,0x61726170, + 0x0000006d,0x00050005,0x000003a9,0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003af, + 0x70696c63,0x726f6f43,0x00000064,0x00060005,0x000003b2,0x465f6c67,0x43676172,0x64726f6f, + 0x00000000,0x00040005,0x000003b9,0x74736964,0x00005958,0x00040005,0x000003c2,0x61726170, + 0x0000006d,0x00070005,0x000003c4,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000, + 0x00050005,0x000003cf,0x6e696170,0x70795474,0x00000065,0x00040005,0x000003e9,0x61726170, + 0x0000006d,0x00030005,0x000003ec,0x0000004d,0x00040005,0x000003ef,0x61726170,0x0000006d, + 0x00050005,0x000003f3,0x6e617274,0x74616c73,0x00000065,0x00050005,0x000003f9,0x6e696170, + 0x6f6f4374,0x00006472,0x00030005,0x00000401,0x00000074,0x00030005,0x0000040f,0x00000078, + 0x00030005,0x00000417,0x00000079,0x00080005,0x0000041d,0x5058455f,0x4554524f,0x72675f44, + 0x65546461,0x72757478,0x00000065,0x00050005,0x00000421,0x64617267,0x706d6153,0x0072656c, + 0x00080005,0x0000042e,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00050005,0x00000437,0x6e656c62,0x646f4d64,0x00000065,0x00040005,0x0000043d,0x61726170, + 0x0000006d,0x00050005,0x00000443,0x43747364,0x726f6c6f,0x00000000,0x00060005,0x00000444, + 0x5f6e695f,0x6f6c6f63,0x66754272,0x00726566,0x00040005,0x00000447,0x61726170,0x0000006d, + 0x00040005,0x0000044a,0x61726170,0x0000006d,0x00040005,0x0000044d,0x61726170,0x0000006d, + 0x00040005,0x0000044e,0x61726170,0x0000006d,0x00050005,0x00000458,0x6f6c6f63,0x66754272, + 0x00726566,0x00050005,0x0000045a,0x70696c63,0x66667542,0x00007265,0x00050005,0x0000045c, + 0x736c705f,0x726f6f43,0x00000064,0x00070005,0x00000461,0x67617266,0x746e656d,0x65766f43, + 0x65676172,0x00000000,0x00060005,0x00000463,0x64655f76,0x69446567,0x6e617473,0x00006563, + 0x00040005,0x0000046b,0x61726170,0x0000006d,0x00060005,0x0000046e,0x65786966,0x766f4364, + 0x67617265,0x00000065,0x00040005,0x0000046f,0x61726170,0x0000006d,0x00060005,0x00000472, + 0x436e696d,0x7265766f,0x44656761,0x00617461,0x00050005,0x00000474,0x61705f76,0x44496874, + 0x00000000,0x00040005,0x00000475,0x61726170,0x0000006d,0x00070005,0x0000047c,0x7473616c, + 0x65766f43,0x65676172,0x61746144,0x00000000,0x00080005,0x0000047f,0x65766f63,0x65676172, + 0x6d6f7441,0x75426369,0x72656666,0x00000000,0x00050005,0x00000485,0x7473616c,0x68746150, + 0x00004449,0x00040005,0x00000488,0x61726170,0x0000006d,0x00060005,0x000004a3,0x65766f63, + 0x65676172,0x6e756f43,0x00000074,0x00040005,0x000004a7,0x61726170,0x0000006d,0x00050005, + 0x000004a9,0x67617266,0x70696c43,0x0074754f,0x00040005,0x000004aa,0x61726170,0x0000006d, + 0x00060005,0x000004ac,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00040005,0x000004ad, + 0x61726170,0x0000006d,0x00040005,0x000004af,0x61726170,0x0000006d,0x00040005,0x000004b1, + 0x61726170,0x0000006d,0x00040005,0x000004b2,0x61726170,0x0000006d,0x00040005,0x000004b4, + 0x61726170,0x0000006d,0x00040005,0x000004b9,0x61726170,0x0000006d,0x00040005,0x000004bb, + 0x61726170,0x0000006d,0x00040005,0x000004be,0x61726170,0x0000006d,0x00040005,0x000004c0, + 0x61726170,0x0000006d,0x00080005,0x000004c3,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00060005,0x000004c4,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00090005,0x000004c5,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170, + 0x00000000,0x00080005,0x000004c7,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e, + 0x00736d72,0x00090006,0x000004c7,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00090006,0x000004c7,0x00000001,0x73736574,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x000b0006,0x000004c7,0x00000002,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x000004c7, + 0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00080006,0x000004c7,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957, + 0x00000068,0x00080006,0x000004c7,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548, + 0x00007468,0x00070006,0x000004c7,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c, + 0x00080006,0x000004c7,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575, + 0x000a0006,0x000004c7,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574, + 0x73646e75,0x00000000,0x00090006,0x000004c7,0x00000009,0x65766f63,0x65676172,0x66667542, + 0x72507265,0x78696665,0x00000000,0x00080006,0x000004c7,0x0000000a,0x68746170,0x72474449, + 0x6c756e61,0x74697261,0x00000079,0x00080006,0x000004c7,0x0000000b,0x74726576,0x69447865, + 0x72616373,0x6c615664,0x00006575,0x00050005,0x000004c9,0x66696e75,0x736d726f,0x00000000, + 0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000,0x00030047,0x00000016, + 0x00000000,0x00030047,0x00000019,0x00000000,0x00030047,0x00000018,0x00000000,0x00030047, + 0x0000001e,0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x0000001d,0x00000000, + 0x00030047,0x00000022,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047,0x00000029, + 0x00000000,0x00030047,0x00000026,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047, + 0x00000028,0x00000000,0x00030047,0x0000002d,0x00000000,0x00030047,0x0000002c,0x00000000, + 0x00030047,0x00000032,0x00000000,0x00030047,0x00000031,0x00000000,0x00030047,0x00000039, + 0x00000000,0x00030047,0x00000037,0x00000000,0x00030047,0x00000038,0x00000000,0x00030047, + 0x00000041,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047,0x00000045,0x00000000, + 0x00030047,0x0000004a,0x00000000,0x00030047,0x00000049,0x00000000,0x00030047,0x0000004d, + 0x00000000,0x00030047,0x0000004c,0x00000000,0x00030047,0x00000050,0x00000000,0x00030047, + 0x0000004f,0x00000000,0x00030047,0x00000053,0x00000000,0x00030047,0x00000052,0x00000000, + 0x00030047,0x00000057,0x00000000,0x00030047,0x00000056,0x00000000,0x00030047,0x0000005c, + 0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x0000005b,0x00000000,0x00030047, + 0x00000062,0x00000000,0x00030047,0x0000005f,0x00000000,0x00030047,0x00000060,0x00000000, + 0x00030047,0x00000061,0x00000000,0x00030047,0x00000068,0x00000000,0x00030047,0x00000065, + 0x00000000,0x00030047,0x00000066,0x00000000,0x00030047,0x00000067,0x00000000,0x00030047, + 0x0000006e,0x00000000,0x00030047,0x0000006b,0x00000000,0x00030047,0x0000006c,0x00000000, + 0x00030047,0x0000006d,0x00000000,0x00030047,0x00000076,0x00000000,0x00030047,0x0000007a, + 0x00000000,0x00030047,0x0000007b,0x00000000,0x00030047,0x00000083,0x00000000,0x00030047, + 0x00000084,0x00000000,0x00030047,0x00000085,0x00000000,0x00030047,0x0000008a,0x00000000, + 0x00030047,0x0000008e,0x00000000,0x00030047,0x00000093,0x00000000,0x00030047,0x00000094, + 0x00000000,0x00030047,0x00000098,0x00000000,0x00030047,0x00000099,0x00000000,0x00030047, + 0x0000009d,0x00000000,0x00030047,0x0000009e,0x00000000,0x00030047,0x000000a1,0x00000000, + 0x00030047,0x000000a4,0x00000000,0x00030047,0x000000a5,0x00000000,0x00030047,0x000000a8, + 0x00000000,0x00030047,0x000000ab,0x00000000,0x00030047,0x000000ae,0x00000000,0x00030047, + 0x000000af,0x00000000,0x00030047,0x000000b1,0x00000000,0x00030047,0x000000b3,0x00000000, + 0x00030047,0x000000b6,0x00000000,0x00030047,0x000000b7,0x00000000,0x00030047,0x000000b9, + 0x00000000,0x00030047,0x000000bb,0x00000000,0x00030047,0x000000be,0x00000000,0x00030047, + 0x000000c1,0x00000000,0x00030047,0x000000c2,0x00000000,0x00030047,0x000000c4,0x00000000, + 0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c8,0x00000000,0x00030047,0x000000cb, + 0x00000000,0x00030047,0x000000cc,0x00000000,0x00030047,0x000000ce,0x00000000,0x00030047, + 0x000000d0,0x00000000,0x00030047,0x000000d2,0x00000000,0x00030047,0x000000d5,0x00000000, + 0x00030047,0x000000d9,0x00000000,0x00030047,0x000000db,0x00000000,0x00030047,0x000000de, + 0x00000000,0x00030047,0x000000e0,0x00000000,0x00030047,0x000000f2,0x00000000,0x00030047, + 0x000000f9,0x00000000,0x00030047,0x000000fe,0x00000000,0x00030047,0x00000104,0x00000000, + 0x00030047,0x00000105,0x00000000,0x00030047,0x00000106,0x00000000,0x00030047,0x00000107, + 0x00000000,0x00030047,0x00000108,0x00000000,0x00030047,0x0000010f,0x00000000,0x00030047, + 0x00000110,0x00000000,0x00030047,0x00000111,0x00000000,0x00030047,0x00000112,0x00000000, + 0x00030047,0x00000113,0x00000000,0x00030047,0x00000114,0x00000000,0x00030047,0x00000116, + 0x00000000,0x00030047,0x00000117,0x00000000,0x00030047,0x00000119,0x00000000,0x00030047, + 0x0000011a,0x00000000,0x00030047,0x00000121,0x00000000,0x00030047,0x00000125,0x00000000, + 0x00030047,0x00000127,0x00000000,0x00030047,0x00000128,0x00000000,0x00030047,0x0000012a, + 0x00000000,0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012f,0x00000000,0x00030047, + 0x00000131,0x00000000,0x00030047,0x00000132,0x00000000,0x00030047,0x00000134,0x00000000, + 0x00030047,0x00000135,0x00000000,0x00030047,0x00000138,0x00000000,0x00030047,0x0000013c, + 0x00000000,0x00030047,0x0000013d,0x00000000,0x00030047,0x0000013e,0x00000000,0x00030047, + 0x0000013f,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047,0x00000143,0x00000000, + 0x00030047,0x00000144,0x00000000,0x00030047,0x00000145,0x00000000,0x00030047,0x00000146, + 0x00000000,0x00030047,0x00000147,0x00000000,0x00030047,0x00000148,0x00000000,0x00030047, + 0x00000149,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047,0x0000014d,0x00000000, + 0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000,0x00030047,0x00000150, + 0x00000000,0x00030047,0x00000151,0x00000000,0x00030047,0x00000152,0x00000000,0x00030047, + 0x00000153,0x00000000,0x00030047,0x00000154,0x00000000,0x00030047,0x00000155,0x00000000, + 0x00030047,0x00000156,0x00000000,0x00030047,0x00000157,0x00000000,0x00030047,0x00000158, + 0x00000000,0x00030047,0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047, + 0x0000015e,0x00000000,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000160,0x00000000, + 0x00030047,0x00000161,0x00000000,0x00030047,0x00000162,0x00000000,0x00030047,0x00000163, + 0x00000000,0x00030047,0x00000164,0x00000000,0x00030047,0x00000165,0x00000000,0x00030047, + 0x00000166,0x00000000,0x00030047,0x00000167,0x00000000,0x00030047,0x00000168,0x00000000, + 0x00030047,0x00000169,0x00000000,0x00030047,0x0000016a,0x00000000,0x00030047,0x0000016e, + 0x00000000,0x00030047,0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047, + 0x00000171,0x00000000,0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000, + 0x00030047,0x00000174,0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176, + 0x00000000,0x00030047,0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047, + 0x00000179,0x00000000,0x00030047,0x0000017a,0x00000000,0x00030047,0x0000017b,0x00000000, + 0x00030047,0x0000017c,0x00000000,0x00030047,0x0000017d,0x00000000,0x00030047,0x00000180, + 0x00000000,0x00030047,0x00000181,0x00000000,0x00030047,0x00000182,0x00000000,0x00030047, + 0x00000183,0x00000000,0x00030047,0x00000184,0x00000000,0x00030047,0x00000185,0x00000000, + 0x00030047,0x00000186,0x00000000,0x00030047,0x00000187,0x00000000,0x00030047,0x00000188, + 0x00000000,0x00030047,0x00000189,0x00000000,0x00030047,0x0000018a,0x00000000,0x00030047, + 0x0000018b,0x00000000,0x00030047,0x0000018c,0x00000000,0x00030047,0x0000018d,0x00000000, + 0x00030047,0x0000018e,0x00000000,0x00030047,0x0000018f,0x00000000,0x00030047,0x00000190, + 0x00000000,0x00030047,0x00000191,0x00000000,0x00030047,0x00000192,0x00000000,0x00030047, + 0x00000193,0x00000000,0x00030047,0x00000194,0x00000000,0x00030047,0x00000197,0x00000000, + 0x00030047,0x00000198,0x00000000,0x00030047,0x00000199,0x00000000,0x00030047,0x0000019a, + 0x00000000,0x00030047,0x0000019b,0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047, + 0x0000019d,0x00000000,0x00030047,0x0000019e,0x00000000,0x00030047,0x0000019f,0x00000000, + 0x00030047,0x000001a0,0x00000000,0x00030047,0x000001a1,0x00000000,0x00030047,0x000001a2, + 0x00000000,0x00030047,0x000001a3,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047, + 0x000001a8,0x00000000,0x00030047,0x000001a9,0x00000000,0x00030047,0x000001aa,0x00000000, + 0x00030047,0x000001ab,0x00000000,0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ad, + 0x00000000,0x00030047,0x000001ae,0x00000000,0x00030047,0x000001af,0x00000000,0x00030047, + 0x000001b0,0x00000000,0x00030047,0x000001b2,0x00000000,0x00030047,0x000001b3,0x00000000, + 0x00030047,0x000001b4,0x00000000,0x00030047,0x000001b5,0x00000000,0x00030047,0x000001b6, + 0x00000000,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001b8,0x00000000,0x00030047, + 0x000001bb,0x00000000,0x00030047,0x000001cc,0x00000000,0x00030047,0x000001cd,0x00000000, + 0x00030047,0x000001ce,0x00000000,0x00030047,0x000001cf,0x00000000,0x00030047,0x000001d1, + 0x00000000,0x00030047,0x000001d2,0x00000000,0x00030047,0x000001d3,0x00000000,0x00030047, + 0x000001d4,0x00000000,0x00030047,0x000001d5,0x00000000,0x00030047,0x000001d6,0x00000000, + 0x00030047,0x000001d7,0x00000000,0x00030047,0x000001e5,0x00000000,0x00030047,0x000001ee, + 0x00000000,0x00030047,0x000001ef,0x00000000,0x00030047,0x000001f2,0x00000000,0x00030047, + 0x000001f3,0x00000000,0x00030047,0x000001f9,0x00000000,0x00030047,0x000001fa,0x00000000, + 0x00030047,0x000001fb,0x00000000,0x00030047,0x000001fe,0x00000000,0x00030047,0x000001ff, + 0x00000000,0x00030047,0x00000200,0x00000000,0x00030047,0x00000201,0x00000000,0x00030047, + 0x00000206,0x00000000,0x00030047,0x00000207,0x00000000,0x00030047,0x00000208,0x00000000, + 0x00030047,0x0000020a,0x00000000,0x00030047,0x0000020b,0x00000000,0x00030047,0x0000020c, + 0x00000000,0x00030047,0x0000020e,0x00000000,0x00030047,0x0000020f,0x00000000,0x00030047, + 0x00000210,0x00000000,0x00030047,0x00000211,0x00000000,0x00030047,0x00000212,0x00000000, + 0x00030047,0x00000213,0x00000000,0x00030047,0x00000214,0x00000000,0x00030047,0x00000215, + 0x00000000,0x00030047,0x00000216,0x00000000,0x00030047,0x00000217,0x00000000,0x00030047, + 0x00000218,0x00000000,0x00030047,0x00000219,0x00000000,0x00030047,0x0000021a,0x00000000, + 0x00030047,0x0000021b,0x00000000,0x00030047,0x0000021c,0x00000000,0x00030047,0x0000021e, + 0x00000000,0x00030047,0x0000021f,0x00000000,0x00030047,0x00000220,0x00000000,0x00030047, + 0x00000221,0x00000000,0x00030047,0x00000222,0x00000000,0x00030047,0x00000223,0x00000000, + 0x00030047,0x00000224,0x00000000,0x00030047,0x00000225,0x00000000,0x00030047,0x00000226, + 0x00000000,0x00030047,0x00000227,0x00000000,0x00030047,0x00000228,0x00000000,0x00030047, + 0x00000229,0x00000000,0x00030047,0x0000022a,0x00000000,0x00030047,0x0000022b,0x00000000, + 0x00030047,0x0000022c,0x00000000,0x00030047,0x0000022d,0x00000000,0x00030047,0x00000239, + 0x00000000,0x00030047,0x00000240,0x00000000,0x00030047,0x00000241,0x00000000,0x00030047, + 0x00000244,0x00000000,0x00030047,0x00000245,0x00000000,0x00030047,0x0000024b,0x00000000, + 0x00030047,0x0000024c,0x00000000,0x00030047,0x0000024d,0x00000000,0x00030047,0x00000250, + 0x00000000,0x00030047,0x00000251,0x00000000,0x00030047,0x00000252,0x00000000,0x00030047, + 0x00000253,0x00000000,0x00030047,0x00000262,0x00000000,0x00030047,0x00000269,0x00000000, + 0x00030047,0x0000026c,0x00000000,0x00030047,0x0000026d,0x00000000,0x00030047,0x0000026e, + 0x00000000,0x00030047,0x00000271,0x00000000,0x00030047,0x00000272,0x00000000,0x00030047, + 0x00000275,0x00000000,0x00030047,0x00000276,0x00000000,0x00030047,0x00000277,0x00000000, + 0x00030047,0x00000278,0x00000000,0x00030047,0x0000027d,0x00000000,0x00030047,0x00000285, + 0x00000000,0x00030047,0x00000288,0x00000000,0x00030047,0x00000289,0x00000000,0x00030047, + 0x0000028a,0x00000000,0x00030047,0x0000028d,0x00000000,0x00030047,0x0000028e,0x00000000, + 0x00030047,0x00000292,0x00000000,0x00030047,0x00000293,0x00000000,0x00030047,0x00000295, + 0x00000000,0x00030047,0x00000298,0x00000000,0x00030047,0x00000299,0x00000000,0x00030047, + 0x0000029b,0x00000000,0x00030047,0x0000029c,0x00000000,0x00030047,0x0000029d,0x00000000, + 0x00030047,0x000002a3,0x00000000,0x00030047,0x000002a6,0x00000000,0x00030047,0x000002a7, + 0x00000000,0x00030047,0x000002a8,0x00000000,0x00030047,0x000002ab,0x00000000,0x00030047, + 0x000002ac,0x00000000,0x00030047,0x000002af,0x00000000,0x00030047,0x000002b0,0x00000000, + 0x00030047,0x000002b1,0x00000000,0x00030047,0x000002b2,0x00000000,0x00030047,0x000002b7, + 0x00000000,0x00030047,0x000002b8,0x00000000,0x00030047,0x000002b9,0x00000000,0x00030047, + 0x000002ba,0x00000000,0x00030047,0x000002bc,0x00000000,0x00030047,0x000002bd,0x00000000, + 0x00030047,0x000002be,0x00000000,0x00030047,0x000002bf,0x00000000,0x00030047,0x000002c0, + 0x00000000,0x00030047,0x000002c1,0x00000000,0x00030047,0x000002c2,0x00000000,0x00030047, + 0x000002c3,0x00000000,0x00040047,0x000002c5,0x00000001,0x00000005,0x00030047,0x000002c8, + 0x00000000,0x00030047,0x000002c9,0x00000000,0x00030047,0x000002ca,0x00000000,0x00030047, + 0x000002cb,0x00000000,0x00030047,0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000, + 0x00030047,0x000002ce,0x00000000,0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0, + 0x00000000,0x00030047,0x000002d1,0x00000000,0x00030047,0x000002d2,0x00000000,0x00030047, + 0x000002d3,0x00000000,0x00030047,0x000002d4,0x00000000,0x00030047,0x000002d8,0x00000000, + 0x00030047,0x000002d9,0x00000000,0x00030047,0x000002da,0x00000000,0x00030047,0x000002db, + 0x00000000,0x00030047,0x000002dc,0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047, + 0x000002de,0x00000000,0x00030047,0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000, + 0x00030047,0x000002e1,0x00000000,0x00030047,0x000002e2,0x00000000,0x00030047,0x000002e3, + 0x00000000,0x00030047,0x000002e4,0x00000000,0x00030047,0x000002e8,0x00000000,0x00030047, + 0x000002e9,0x00000000,0x00030047,0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000, + 0x00030047,0x000002ec,0x00000000,0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee, + 0x00000000,0x00030047,0x000002ef,0x00000000,0x00030047,0x000002f0,0x00000000,0x00030047, + 0x000002f1,0x00000000,0x00030047,0x000002f2,0x00000000,0x00030047,0x000002f6,0x00000000, + 0x00030047,0x000002f7,0x00000000,0x00030047,0x000002f8,0x00000000,0x00030047,0x000002f9, + 0x00000000,0x00030047,0x000002fa,0x00000000,0x00030047,0x000002fb,0x00000000,0x00030047, + 0x000002fc,0x00000000,0x00030047,0x000002fd,0x00000000,0x00030047,0x000002fe,0x00000000, + 0x00030047,0x000002ff,0x00000000,0x00030047,0x00000300,0x00000000,0x00030047,0x00000303, + 0x00000000,0x00030047,0x00000306,0x00000000,0x00030047,0x00000307,0x00000000,0x00030047, + 0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047,0x0000030a,0x00000000, + 0x00030047,0x0000030b,0x00000000,0x00030047,0x0000030c,0x00000000,0x00030047,0x0000030d, + 0x00000000,0x00030047,0x0000030e,0x00000000,0x00030047,0x0000030f,0x00000000,0x00030047, + 0x00000311,0x00000000,0x00030047,0x00000312,0x00000000,0x00030047,0x00000313,0x00000000, + 0x00030047,0x00000315,0x00000000,0x00030047,0x00000316,0x00000000,0x00030047,0x00000317, + 0x00000000,0x00030047,0x00000318,0x00000000,0x00030047,0x00000319,0x00000000,0x00030047, + 0x0000031a,0x00000000,0x00030047,0x0000031b,0x00000000,0x00030047,0x0000031c,0x00000000, + 0x00030047,0x0000031d,0x00000000,0x00030047,0x0000031e,0x00000000,0x00030047,0x00000330, + 0x00000000,0x00030047,0x00000333,0x00000000,0x00030047,0x00000334,0x00000000,0x00030047, + 0x0000033b,0x00000000,0x00030047,0x0000033c,0x00000000,0x00030047,0x00000342,0x00000000, + 0x00030047,0x00000344,0x00000000,0x00030047,0x00000345,0x00000000,0x00040047,0x0000034a, + 0x00000006,0x00000008,0x00040048,0x0000034b,0x00000000,0x00000018,0x00050048,0x0000034b, + 0x00000000,0x00000023,0x00000000,0x00030047,0x0000034b,0x00000003,0x00040047,0x0000034d, + 0x00000022,0x00000000,0x00040047,0x0000034d,0x00000021,0x00000004,0x00030047,0x00000352, + 0x00000000,0x00030047,0x00000353,0x00000000,0x00030047,0x0000035b,0x00000000,0x00030047, + 0x0000035c,0x00000000,0x00040047,0x0000035d,0x00000001,0x00000003,0x00030047,0x00000368, + 0x00000000,0x00030047,0x00000369,0x00000000,0x00030047,0x0000036a,0x00000000,0x00030047, + 0x0000036b,0x00000000,0x00030047,0x0000036d,0x00000000,0x00030047,0x0000036e,0x00000000, + 0x00030047,0x0000036f,0x00000000,0x00030047,0x00000370,0x00000000,0x00030047,0x00000371, + 0x00000000,0x00030047,0x00000372,0x00000000,0x00030047,0x00000373,0x00000000,0x00030047, + 0x00000374,0x00000000,0x00030047,0x00000375,0x00000000,0x00040047,0x00000376,0x00000001, + 0x00000000,0x00030047,0x00000384,0x00000000,0x00040047,0x00000384,0x00000022,0x00000003, + 0x00040047,0x00000384,0x00000021,0x00000001,0x00040047,0x00000384,0x0000002b,0x00000001, + 0x00030047,0x00000385,0x00000000,0x00030047,0x00000387,0x00000000,0x00030047,0x0000038a, + 0x00000000,0x00030047,0x0000038b,0x00000000,0x00030047,0x0000038c,0x00000000,0x00040047, + 0x0000038f,0x00000001,0x00000001,0x00040047,0x0000039c,0x00000006,0x00000010,0x00040048, + 0x0000039d,0x00000000,0x00000018,0x00050048,0x0000039d,0x00000000,0x00000023,0x00000000, + 0x00030047,0x0000039d,0x00000003,0x00040047,0x0000039f,0x00000022,0x00000000,0x00040047, + 0x0000039f,0x00000021,0x00000005,0x00040047,0x000003b2,0x0000000b,0x0000000f,0x00030047, + 0x000003b9,0x00000000,0x00030047,0x000003c3,0x00000000,0x00030047,0x000003c4,0x00000000, + 0x00030047,0x000003c6,0x00000000,0x00030047,0x000003c8,0x00000000,0x00030047,0x000003c9, + 0x00000000,0x00030047,0x000003ca,0x00000000,0x00030047,0x000003cb,0x00000000,0x00030047, + 0x000003cc,0x00000000,0x00030047,0x000003cd,0x00000000,0x00030047,0x000003ce,0x00000000, + 0x00030047,0x000003e0,0x00000000,0x00030047,0x000003e1,0x00000000,0x00030047,0x000003e6, + 0x00000000,0x00030047,0x000003e9,0x00000000,0x00030047,0x000003ea,0x00000000,0x00030047, + 0x0000041d,0x00000000,0x00040047,0x0000041d,0x00000022,0x00000000,0x00040047,0x0000041d, + 0x00000021,0x00000001,0x00030047,0x0000041e,0x00000000,0x00030047,0x00000421,0x00000000, + 0x00040047,0x00000421,0x00000022,0x00000002,0x00040047,0x00000421,0x00000021,0x00000001, + 0x00030047,0x00000422,0x00000000,0x00030047,0x00000428,0x00000000,0x00030047,0x00000429, + 0x00000000,0x00030047,0x0000042b,0x00000000,0x00030047,0x0000042c,0x00000000,0x00040047, + 0x0000042e,0x00000001,0x00000002,0x00030047,0x00000432,0x00000000,0x00030047,0x00000437, + 0x00000000,0x00030047,0x0000043e,0x00000000,0x00030047,0x00000443,0x00000000,0x00030047, + 0x00000444,0x00000000,0x00040047,0x00000444,0x00000022,0x00000003,0x00040047,0x00000444, + 0x00000021,0x00000000,0x00040047,0x00000444,0x0000002b,0x00000000,0x00030047,0x00000445, + 0x00000000,0x00030047,0x00000446,0x00000000,0x00030047,0x00000447,0x00000000,0x00030047, + 0x00000448,0x00000000,0x00030047,0x00000449,0x00000000,0x00030047,0x0000044a,0x00000000, + 0x00030047,0x0000044b,0x00000000,0x00030047,0x0000044c,0x00000000,0x00030047,0x0000044d, + 0x00000000,0x00030047,0x0000044e,0x00000000,0x00030047,0x0000044f,0x00000000,0x00030047, + 0x00000450,0x00000000,0x00030047,0x00000458,0x00000000,0x00040047,0x00000458,0x0000001e, + 0x00000000,0x00030047,0x00000459,0x00000000,0x00030047,0x0000045a,0x00000000,0x00040047, + 0x0000045a,0x0000001e,0x00000001,0x00030047,0x0000045b,0x00000000,0x00030047,0x00000461, + 0x00000000,0x00030047,0x00000463,0x00000000,0x00040047,0x00000463,0x0000001e,0x00000000, + 0x00030047,0x00000466,0x00000000,0x00030047,0x00000468,0x00000000,0x00030047,0x00000469, + 0x00000000,0x00030047,0x0000046a,0x00000000,0x00030047,0x0000046b,0x00000000,0x00030047, + 0x0000046c,0x00000000,0x00030047,0x0000046d,0x00000000,0x00030047,0x00000470,0x00000000, + 0x00030047,0x00000474,0x00000000,0x00030047,0x00000474,0x0000000e,0x00040047,0x00000474, + 0x0000001e,0x00000001,0x00030047,0x00000475,0x00000000,0x00030047,0x00000476,0x00000000, + 0x00040047,0x0000047f,0x00000022,0x00000003,0x00040047,0x0000047f,0x00000021,0x00000003, + 0x00030047,0x0000047f,0x00000017,0x00030047,0x00000485,0x00000000,0x00030047,0x00000489, + 0x00000000,0x00030047,0x0000048a,0x00000000,0x00030047,0x0000048b,0x00000000,0x00030047, + 0x00000490,0x00000000,0x00030047,0x000004a3,0x00000000,0x00030047,0x000004a8,0x00000000, + 0x00030047,0x000004a9,0x00000000,0x00030047,0x000004aa,0x00000000,0x00030047,0x000004ab, + 0x00000000,0x00030047,0x000004ac,0x00000000,0x00030047,0x000004ae,0x00000000,0x00030047, + 0x000004af,0x00000000,0x00030047,0x000004b0,0x00000000,0x00030047,0x000004b1,0x00000000, + 0x00030047,0x000004b2,0x00000000,0x00030047,0x000004b3,0x00000000,0x00030047,0x000004b9, + 0x00000000,0x00030047,0x000004ba,0x00000000,0x00030047,0x000004be,0x00000000,0x00030047, + 0x000004bf,0x00000000,0x00040047,0x000004c3,0x00000001,0x00000004,0x00040047,0x000004c4, + 0x00000001,0x00000006,0x00040047,0x000004c5,0x00000001,0x00000007,0x00050048,0x000004c7, + 0x00000000,0x00000023,0x00000000,0x00050048,0x000004c7,0x00000001,0x00000023,0x00000004, + 0x00050048,0x000004c7,0x00000002,0x00000023,0x00000008,0x00050048,0x000004c7,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x000004c7,0x00000004,0x00000023,0x00000010,0x00050048, + 0x000004c7,0x00000005,0x00000023,0x00000014,0x00050048,0x000004c7,0x00000006,0x00000023, + 0x00000018,0x00050048,0x000004c7,0x00000007,0x00000023,0x0000001c,0x00050048,0x000004c7, + 0x00000008,0x00000023,0x00000020,0x00050048,0x000004c7,0x00000009,0x00000023,0x00000030, + 0x00050048,0x000004c7,0x0000000a,0x00000023,0x00000034,0x00050048,0x000004c7,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x000004c7,0x00000002,0x00040047,0x000004c9,0x00000022, + 0x00000000,0x00040047,0x000004c9,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006, + 0x00000002,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c, + 0x0000000d,0x00040015,0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007, + 0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00050021,0x0000001b,0x0000000c, + 0x00000007,0x00000007,0x00040021,0x00000020,0x0000000c,0x00000007,0x00040017,0x00000024, + 0x00000006,0x00000003,0x00060021,0x00000025,0x00000024,0x00000007,0x00000007,0x00000007, + 0x00040021,0x0000002b,0x00000024,0x00000007,0x00040017,0x0000002f,0x00000006,0x00000004, + 0x00040021,0x00000030,0x0000002f,0x00000007,0x00040020,0x00000034,0x00000007,0x00000024, + 0x00040018,0x00000035,0x00000024,0x00000002,0x00050021,0x00000036,0x00000035,0x00000034, + 0x00000034,0x00040020,0x0000003b,0x00000007,0x0000002f,0x00040018,0x0000003c,0x0000000c, + 0x00000002,0x00040021,0x0000003d,0x0000003c,0x0000003b,0x00040021,0x00000044,0x0000002f, + 0x0000003b,0x00040021,0x00000048,0x00000006,0x00000034,0x00040021,0x00000055,0x00000024, + 0x00000034,0x00050021,0x00000059,0x00000024,0x00000034,0x00000034,0x00060021,0x0000005e, + 0x00000024,0x00000034,0x00000034,0x00000034,0x00060021,0x00000064,0x00000024,0x00000034, + 0x00000034,0x00000013,0x00060021,0x0000006a,0x00000024,0x00000034,0x0000003b,0x00000013, + 0x00040021,0x00000070,0x00000012,0x00000007,0x00040021,0x00000074,0x00000006,0x00000013, + 0x00060021,0x00000078,0x00000002,0x00000013,0x0000003b,0x00000007,0x00040015,0x0000007e, + 0x00000020,0x00000001,0x00040017,0x0000007f,0x0000007e,0x00000002,0x00040020,0x00000080, + 0x00000007,0x0000007f,0x00080021,0x00000081,0x00000002,0x00000013,0x00000007,0x0000003b, + 0x0000003b,0x00000080,0x00050021,0x00000089,0x00000002,0x0000003b,0x00000080,0x0004002b, + 0x00000012,0x000000a6,0x00000000,0x0004002b,0x00000012,0x000000a9,0x00000001,0x0004002b, + 0x00000012,0x000000bc,0x00000002,0x0004002b,0x00000012,0x000000d3,0x00000003,0x00040020, + 0x000000d8,0x00000007,0x00000035,0x0004002b,0x0000007e,0x000000da,0x00000000,0x0004002b, + 0x0000007e,0x000000dd,0x00000001,0x0004002b,0x00000006,0x000000e7,0x3f800000,0x0004002b, + 0x00000006,0x000000e8,0x00000000,0x00020014,0x000000f7,0x0004002b,0x00000006,0x00000115, + 0x3f7f7f7f,0x00040017,0x00000118,0x000000f7,0x00000003,0x0004002b,0x00000006,0x00000139, + 0x3e99999a,0x0004002b,0x00000006,0x0000013a,0x3f170a3d,0x0004002b,0x00000006,0x0000013b, + 0x3de147ae,0x00040020,0x000001d9,0x00000007,0x0000007e,0x0004002b,0x0000007e,0x000001e1, + 0x00000003,0x0004002b,0x00000006,0x000001e6,0x3f000000,0x0004002b,0x00000006,0x000001eb, + 0x40000000,0x0004002b,0x00000006,0x0000027e,0x3e800000,0x0004002b,0x00000006,0x0000028f, + 0x41800000,0x0004002b,0x00000006,0x00000294,0x41400000,0x0004002b,0x00000006,0x0000029a, + 0x40400000,0x00030031,0x000000f7,0x000002c5,0x0004002b,0x00000006,0x00000322,0x44000000, + 0x0004002b,0x00000006,0x00000324,0x47000000,0x0004002b,0x00000006,0x0000032b,0x3b000000, + 0x0004002b,0x00000006,0x0000032d,0xc2800000,0x0004002b,0x00000006,0x0000033a,0x3a808081, + 0x00040017,0x0000033d,0x000000f7,0x00000002,0x00040017,0x00000347,0x00000012,0x00000002, + 0x00040020,0x00000348,0x00000007,0x00000347,0x0003001d,0x0000034a,0x00000347,0x0003001e, + 0x0000034b,0x0000034a,0x00040020,0x0000034c,0x00000002,0x0000034b,0x0004003b,0x0000034c, + 0x0000034d,0x00000002,0x00040020,0x0000034f,0x00000002,0x00000347,0x0004002b,0x00000012, + 0x00000356,0x00000300,0x00030031,0x000000f7,0x0000035d,0x0004002b,0x00000012,0x00000362, + 0x00000200,0x0004002b,0x00000006,0x0000036c,0xbf800000,0x00030031,0x000000f7,0x00000376, + 0x0004002b,0x00000012,0x0000037c,0x00000010,0x00090019,0x00000382,0x00000006,0x00000006, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x00000383,0x00000000, + 0x00000382,0x0004003b,0x00000383,0x00000384,0x00000000,0x0005002c,0x0000007f,0x00000386, + 0x000000da,0x000000da,0x00030031,0x000000f7,0x0000038f,0x0004002b,0x00000012,0x00000394, + 0x00000400,0x00040020,0x0000039a,0x00000007,0x0000003c,0x0003001d,0x0000039c,0x0000002f, + 0x0003001e,0x0000039d,0x0000039c,0x00040020,0x0000039e,0x00000002,0x0000039d,0x0004003b, + 0x0000039e,0x0000039f,0x00000002,0x0004002b,0x00000012,0x000003a1,0x00000004,0x00040020, + 0x000003a5,0x00000002,0x0000002f,0x00040020,0x000003b1,0x00000001,0x0000002f,0x0004003b, + 0x000003b1,0x000003b2,0x00000001,0x0004002b,0x00000012,0x000003d2,0x0000000f,0x00090019, + 0x0000041b,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x0000041c,0x00000000,0x0000041b,0x0004003b,0x0000041c,0x0000041d,0x00000000, + 0x0002001a,0x0000041f,0x00040020,0x00000420,0x00000000,0x0000041f,0x0004003b,0x00000420, + 0x00000421,0x00000000,0x0003001b,0x00000423,0x0000041b,0x00030031,0x000000f7,0x0000042e, + 0x0004002b,0x0000007e,0x0000043a,0x00000004,0x0004003b,0x00000383,0x00000444,0x00000000, + 0x00040020,0x00000457,0x00000003,0x0000002f,0x0004003b,0x00000457,0x00000458,0x00000003, + 0x0004003b,0x00000457,0x0000045a,0x00000003,0x00040020,0x00000462,0x00000001,0x0000000c, + 0x0004003b,0x00000462,0x00000463,0x00000001,0x00040020,0x00000464,0x00000001,0x00000006, + 0x00040020,0x00000473,0x00000001,0x00000012,0x0004003b,0x00000473,0x00000474,0x00000001, + 0x0004002b,0x0000007e,0x00000478,0x00000010,0x00090019,0x0000047d,0x00000012,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x0000047e,0x00000000, + 0x0000047d,0x0004003b,0x0000047e,0x0000047f,0x00000000,0x00040020,0x00000482,0x0000000b, + 0x00000012,0x0004002b,0x00000012,0x0000049b,0x00008000,0x0004002b,0x00000012,0x000004a5, + 0x0000ffff,0x00030031,0x000000f7,0x000004c3,0x00030031,0x000000f7,0x000004c4,0x00030031, + 0x000000f7,0x000004c5,0x00040017,0x000004c6,0x0000007e,0x00000004,0x000e001e,0x000004c7, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012,0x00000012, + 0x000004c6,0x00000012,0x00000012,0x00000006,0x00040020,0x000004c8,0x00000002,0x000004c7, + 0x0004003b,0x000004c8,0x000004c9,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000080,0x0000045c,0x00000007,0x0004003b, + 0x00000007,0x00000461,0x00000007,0x0004003b,0x00000007,0x0000046b,0x00000007,0x0004003b, + 0x00000013,0x0000046e,0x00000007,0x0004003b,0x00000007,0x0000046f,0x00000007,0x0004003b, + 0x00000013,0x00000472,0x00000007,0x0004003b,0x00000013,0x00000475,0x00000007,0x0004003b, + 0x00000013,0x0000047c,0x00000007,0x0004003b,0x00000013,0x00000485,0x00000007,0x0004003b, + 0x00000013,0x00000488,0x00000007,0x0004003b,0x00000007,0x000004a3,0x00000007,0x0004003b, + 0x00000013,0x000004a7,0x00000007,0x0004003b,0x0000003b,0x000004a9,0x00000007,0x0004003b, + 0x00000007,0x000004aa,0x00000007,0x0004003b,0x0000003b,0x000004ac,0x00000007,0x0004003b, + 0x00000013,0x000004ad,0x00000007,0x0004003b,0x00000007,0x000004af,0x00000007,0x0004003b, + 0x0000003b,0x000004b1,0x00000007,0x0004003b,0x0000003b,0x000004b2,0x00000007,0x0004003b, + 0x00000080,0x000004b4,0x00000007,0x0004003b,0x0000003b,0x000004b9,0x00000007,0x0004003b, + 0x00000080,0x000004bb,0x00000007,0x0004003b,0x0000003b,0x000004be,0x00000007,0x0004003b, + 0x00000080,0x000004c0,0x00000007,0x0004003d,0x0000002f,0x0000045d,0x000003b2,0x0007004f, + 0x0000000c,0x0000045e,0x0000045d,0x0000045d,0x00000000,0x00000001,0x0006000c,0x0000000c, + 0x0000045f,0x00000001,0x00000008,0x0000045e,0x0004006e,0x0000007f,0x00000460,0x0000045f, + 0x0003003e,0x0000045c,0x00000460,0x00050041,0x00000464,0x00000465,0x00000463,0x000000a6, + 0x0004003d,0x00000006,0x00000466,0x00000465,0x00050041,0x00000464,0x00000467,0x00000463, + 0x000000a9,0x0004003d,0x00000006,0x00000468,0x00000467,0x0006000c,0x00000006,0x00000469, + 0x00000001,0x00000004,0x00000468,0x0007000c,0x00000006,0x0000046a,0x00000001,0x00000025, + 0x00000466,0x00000469,0x0003003e,0x0000046b,0x000000e7,0x00050039,0x00000006,0x0000046c, + 0x00000019,0x0000046b,0x0007000c,0x00000006,0x0000046d,0x00000001,0x00000025,0x0000046a, + 0x0000046c,0x0003003e,0x00000461,0x0000046d,0x0004003d,0x00000006,0x00000470,0x00000461, + 0x0003003e,0x0000046f,0x00000470,0x00050039,0x00000012,0x00000471,0x00000072,0x0000046f, + 0x0003003e,0x0000046e,0x00000471,0x0004003d,0x00000012,0x00000476,0x00000474,0x0003003e, + 0x00000475,0x00000476,0x00050039,0x00000012,0x00000477,0x00000042,0x00000475,0x000500c4, + 0x00000012,0x00000479,0x00000477,0x00000478,0x0004003d,0x00000012,0x0000047a,0x0000046e, + 0x000500c5,0x00000012,0x0000047b,0x00000479,0x0000047a,0x0003003e,0x00000472,0x0000047b, + 0x0004003d,0x0000007f,0x00000480,0x0000045c,0x0004003d,0x00000012,0x00000481,0x00000472, + 0x0006003c,0x00000482,0x00000483,0x0000047f,0x00000480,0x000000a6,0x000700ef,0x00000012, + 0x00000484,0x00000483,0x000000a9,0x000000a6,0x00000481,0x0003003e,0x0000047c,0x00000484, + 0x0004003d,0x00000012,0x00000486,0x0000047c,0x000500c2,0x00000012,0x00000487,0x00000486, + 0x00000478,0x0003003e,0x00000488,0x00000487,0x00050039,0x00000012,0x00000489,0x00000016, + 0x00000488,0x0003003e,0x00000485,0x00000489,0x0004003d,0x00000012,0x0000048a,0x00000485, + 0x0004003d,0x00000012,0x0000048b,0x00000474,0x000500aa,0x000000f7,0x0000048c,0x0000048a, + 0x0000048b,0x000300f7,0x0000048e,0x00000000,0x000400fa,0x0000048c,0x0000048d,0x0000048e, + 0x000200f8,0x0000048d,0x00050041,0x00000464,0x0000048f,0x00000463,0x000000a9,0x0004003d, + 0x00000006,0x00000490,0x0000048f,0x000500b8,0x000000f7,0x00000491,0x00000490,0x000000e8, + 0x000300f7,0x00000493,0x00000000,0x000400fa,0x00000491,0x00000492,0x00000493,0x000200f8, + 0x00000492,0x0004003d,0x00000012,0x00000494,0x0000047c,0x0004003d,0x00000012,0x00000495, + 0x00000472,0x0004003d,0x00000012,0x00000496,0x0000047c,0x0007000c,0x00000012,0x00000497, + 0x00000001,0x00000029,0x00000495,0x00000496,0x00050082,0x00000012,0x00000498,0x00000494, + 0x00000497,0x0004003d,0x00000012,0x00000499,0x0000046e,0x00050080,0x00000012,0x0000049a, + 0x00000499,0x00000498,0x0003003e,0x0000046e,0x0000049a,0x0004003d,0x00000012,0x0000049c, + 0x0000046e,0x00050082,0x00000012,0x0000049d,0x0000049c,0x0000049b,0x0003003e,0x0000046e, + 0x0000049d,0x0004003d,0x0000007f,0x0000049e,0x0000045c,0x0004003d,0x00000012,0x0000049f, + 0x0000046e,0x0006003c,0x00000482,0x000004a0,0x0000047f,0x0000049e,0x000000a6,0x000700ea, + 0x00000012,0x000004a1,0x000004a0,0x000000a9,0x000000a6,0x0000049f,0x000200f9,0x00000493, + 0x000200f8,0x00000493,0x000100fc,0x000200f8,0x0000048e,0x0004003d,0x00000012,0x000004a4, + 0x0000047c,0x000500c7,0x00000012,0x000004a6,0x000004a4,0x000004a5,0x0003003e,0x000004a7, + 0x000004a6,0x00050039,0x00000006,0x000004a8,0x00000076,0x000004a7,0x0003003e,0x000004a3, + 0x000004a8,0x0003003e,0x000004aa,0x000000e8,0x00050039,0x0000002f,0x000004ab,0x00000032, + 0x000004aa,0x0003003e,0x000004a9,0x000004ab,0x0004003d,0x00000012,0x000004ae,0x00000485, + 0x0003003e,0x000004ad,0x000004ae,0x0004003d,0x00000006,0x000004b0,0x000004a3,0x0003003e, + 0x000004af,0x000004b0,0x0004003d,0x0000002f,0x000004b3,0x000004a9,0x0003003e,0x000004b2, + 0x000004b3,0x0004003d,0x0000007f,0x000004b5,0x0000045c,0x0003003e,0x000004b4,0x000004b5, + 0x00090039,0x00000002,0x000004b6,0x00000087,0x000004ad,0x000004af,0x000004b1,0x000004b2, + 0x000004b4,0x0004003d,0x0000002f,0x000004b7,0x000004b1,0x0003003e,0x000004ac,0x000004b7, + 0x0004003d,0x0000002f,0x000004b8,0x000004b2,0x0003003e,0x000004a9,0x000004b8,0x0004003d, + 0x0000002f,0x000004ba,0x000004ac,0x0003003e,0x000004b9,0x000004ba,0x0004003d,0x0000007f, + 0x000004bc,0x0000045c,0x0003003e,0x000004bb,0x000004bc,0x00060039,0x00000002,0x000004bd, + 0x0000008c,0x000004b9,0x000004bb,0x0004003d,0x0000002f,0x000004bf,0x000004a9,0x0003003e, + 0x000004be,0x000004bf,0x0004003d,0x0000007f,0x000004c1,0x0000045c,0x0003003e,0x000004c0, + 0x000004c1,0x00060039,0x00000002,0x000004c2,0x00000090,0x000004be,0x000004c0,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000093,0x00000007,0x0004003d, + 0x00000006,0x00000092,0x00000009,0x0003003e,0x00000093,0x00000092,0x0004003d,0x00000006, + 0x00000094,0x00000093,0x000200fe,0x00000094,0x00010038,0x00050036,0x0000000c,0x00000010, + 0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003b, + 0x0000000d,0x00000098,0x00000007,0x0004003d,0x0000000c,0x00000097,0x0000000f,0x0003003e, + 0x00000098,0x00000097,0x0004003d,0x0000000c,0x00000099,0x00000098,0x000200fe,0x00000099, + 0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013, + 0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x0000009d,0x00000007,0x0004003d, + 0x00000012,0x0000009c,0x00000015,0x0003003e,0x0000009d,0x0000009c,0x0004003d,0x00000012, + 0x0000009e,0x0000009d,0x000200fe,0x0000009e,0x00010038,0x00050036,0x00000006,0x00000019, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000018,0x000200f8,0x0000001a,0x0004003d, + 0x00000006,0x000000a1,0x00000018,0x000200fe,0x000000a1,0x00010038,0x00050036,0x0000000c, + 0x0000001e,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c,0x00030037,0x00000007, + 0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x0000000d,0x000000a4,0x00000007,0x0004003d, + 0x00000006,0x000000a5,0x0000001c,0x00050041,0x00000007,0x000000a7,0x000000a4,0x000000a6, + 0x0003003e,0x000000a7,0x000000a5,0x0004003d,0x00000006,0x000000a8,0x0000001d,0x00050041, + 0x00000007,0x000000aa,0x000000a4,0x000000a9,0x0003003e,0x000000aa,0x000000a8,0x0004003d, + 0x0000000c,0x000000ab,0x000000a4,0x000200fe,0x000000ab,0x00010038,0x00050036,0x0000000c, + 0x00000022,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023, + 0x0004003b,0x0000000d,0x000000ae,0x00000007,0x0004003d,0x00000006,0x000000af,0x00000021, + 0x00050041,0x00000007,0x000000b0,0x000000ae,0x000000a6,0x0003003e,0x000000b0,0x000000af, + 0x0004003d,0x00000006,0x000000b1,0x00000021,0x00050041,0x00000007,0x000000b2,0x000000ae, + 0x000000a9,0x0003003e,0x000000b2,0x000000b1,0x0004003d,0x0000000c,0x000000b3,0x000000ae, + 0x000200fe,0x000000b3,0x00010038,0x00050036,0x00000024,0x00000029,0x00000000,0x00000025, + 0x00030037,0x00000007,0x00000026,0x00030037,0x00000007,0x00000027,0x00030037,0x00000007, + 0x00000028,0x000200f8,0x0000002a,0x0004003b,0x00000034,0x000000b6,0x00000007,0x0004003d, + 0x00000006,0x000000b7,0x00000026,0x00050041,0x00000007,0x000000b8,0x000000b6,0x000000a6, + 0x0003003e,0x000000b8,0x000000b7,0x0004003d,0x00000006,0x000000b9,0x00000027,0x00050041, + 0x00000007,0x000000ba,0x000000b6,0x000000a9,0x0003003e,0x000000ba,0x000000b9,0x0004003d, + 0x00000006,0x000000bb,0x00000028,0x00050041,0x00000007,0x000000bd,0x000000b6,0x000000bc, + 0x0003003e,0x000000bd,0x000000bb,0x0004003d,0x00000024,0x000000be,0x000000b6,0x000200fe, + 0x000000be,0x00010038,0x00050036,0x00000024,0x0000002d,0x00000000,0x0000002b,0x00030037, + 0x00000007,0x0000002c,0x000200f8,0x0000002e,0x0004003b,0x00000034,0x000000c1,0x00000007, + 0x0004003d,0x00000006,0x000000c2,0x0000002c,0x00050041,0x00000007,0x000000c3,0x000000c1, + 0x000000a6,0x0003003e,0x000000c3,0x000000c2,0x0004003d,0x00000006,0x000000c4,0x0000002c, + 0x00050041,0x00000007,0x000000c5,0x000000c1,0x000000a9,0x0003003e,0x000000c5,0x000000c4, + 0x0004003d,0x00000006,0x000000c6,0x0000002c,0x00050041,0x00000007,0x000000c7,0x000000c1, + 0x000000bc,0x0003003e,0x000000c7,0x000000c6,0x0004003d,0x00000024,0x000000c8,0x000000c1, + 0x000200fe,0x000000c8,0x00010038,0x00050036,0x0000002f,0x00000032,0x00000000,0x00000030, + 0x00030037,0x00000007,0x00000031,0x000200f8,0x00000033,0x0004003b,0x0000003b,0x000000cb, + 0x00000007,0x0004003d,0x00000006,0x000000cc,0x00000031,0x00050041,0x00000007,0x000000cd, + 0x000000cb,0x000000a6,0x0003003e,0x000000cd,0x000000cc,0x0004003d,0x00000006,0x000000ce, + 0x00000031,0x00050041,0x00000007,0x000000cf,0x000000cb,0x000000a9,0x0003003e,0x000000cf, + 0x000000ce,0x0004003d,0x00000006,0x000000d0,0x00000031,0x00050041,0x00000007,0x000000d1, + 0x000000cb,0x000000bc,0x0003003e,0x000000d1,0x000000d0,0x0004003d,0x00000006,0x000000d2, + 0x00000031,0x00050041,0x00000007,0x000000d4,0x000000cb,0x000000d3,0x0003003e,0x000000d4, + 0x000000d2,0x0004003d,0x0000002f,0x000000d5,0x000000cb,0x000200fe,0x000000d5,0x00010038, + 0x00050036,0x00000035,0x00000039,0x00000000,0x00000036,0x00030037,0x00000034,0x00000037, + 0x00030037,0x00000034,0x00000038,0x000200f8,0x0000003a,0x0004003b,0x000000d8,0x000000d9, + 0x00000007,0x0004003d,0x00000024,0x000000db,0x00000037,0x00050041,0x00000034,0x000000dc, + 0x000000d9,0x000000da,0x0003003e,0x000000dc,0x000000db,0x0004003d,0x00000024,0x000000de, + 0x00000038,0x00050041,0x00000034,0x000000df,0x000000d9,0x000000dd,0x0003003e,0x000000df, + 0x000000de,0x0004003d,0x00000035,0x000000e0,0x000000d9,0x000200fe,0x000000e0,0x00010038, + 0x00050036,0x0000003c,0x0000003f,0x00000000,0x0000003d,0x00030037,0x0000003b,0x0000003e, + 0x000200f8,0x00000040,0x0004003d,0x0000002f,0x000000e3,0x0000003e,0x0007004f,0x0000000c, + 0x000000e4,0x000000e3,0x000000e3,0x00000000,0x00000001,0x0004003d,0x0000002f,0x000000e5, + 0x0000003e,0x0007004f,0x0000000c,0x000000e6,0x000000e5,0x000000e5,0x00000002,0x00000003, + 0x00050051,0x00000006,0x000000e9,0x000000e4,0x00000000,0x00050051,0x00000006,0x000000ea, + 0x000000e4,0x00000001,0x00050051,0x00000006,0x000000eb,0x000000e6,0x00000000,0x00050051, + 0x00000006,0x000000ec,0x000000e6,0x00000001,0x00050050,0x0000000c,0x000000ed,0x000000e9, + 0x000000ea,0x00050050,0x0000000c,0x000000ee,0x000000eb,0x000000ec,0x00050050,0x0000003c, + 0x000000ef,0x000000ed,0x000000ee,0x000200fe,0x000000ef,0x00010038,0x00050036,0x00000012, + 0x00000042,0x00000000,0x00000014,0x00030037,0x00000013,0x00000041,0x000200f8,0x00000043, + 0x0004003b,0x00000013,0x000000f3,0x00000007,0x0004003d,0x00000012,0x000000f2,0x00000041, + 0x0003003e,0x000000f3,0x000000f2,0x0004003d,0x00000012,0x000000f4,0x000000f3,0x000200fe, + 0x000000f4,0x00010038,0x00050036,0x0000002f,0x00000046,0x00000000,0x00000044,0x00030037, + 0x0000003b,0x00000045,0x000200f8,0x00000047,0x0004003b,0x00000007,0x00000111,0x00000007, + 0x0004003b,0x00000007,0x00000116,0x00000007,0x00050041,0x00000007,0x000000f8,0x00000045, + 0x000000d3,0x0004003d,0x00000006,0x000000f9,0x000000f8,0x000500b8,0x000000f7,0x000000fa, + 0x000000e8,0x000000f9,0x000300f7,0x000000fc,0x00000000,0x000400fa,0x000000fa,0x000000fb, + 0x000000fc,0x000200f8,0x000000fb,0x00050041,0x00000007,0x000000fd,0x00000045,0x000000d3, + 0x0004003d,0x00000006,0x000000fe,0x000000fd,0x000500b8,0x000000f7,0x000000ff,0x000000fe, + 0x000000e7,0x000200f9,0x000000fc,0x000200f8,0x000000fc,0x000700f5,0x000000f7,0x00000100, + 0x000000fa,0x00000047,0x000000ff,0x000000fb,0x000300f7,0x00000102,0x00000000,0x000400fa, + 0x00000100,0x00000101,0x00000102,0x000200f8,0x00000101,0x00050041,0x00000007,0x00000103, + 0x00000045,0x000000d3,0x0004003d,0x00000006,0x00000104,0x00000103,0x00050088,0x00000006, + 0x00000105,0x000000e7,0x00000104,0x0004003d,0x0000002f,0x00000106,0x00000045,0x0008004f, + 0x00000024,0x00000107,0x00000106,0x00000106,0x00000000,0x00000001,0x00000002,0x0005008e, + 0x00000024,0x00000108,0x00000107,0x00000105,0x00050041,0x00000007,0x00000109,0x00000045, + 0x000000a6,0x00050051,0x00000006,0x0000010a,0x00000108,0x00000000,0x0003003e,0x00000109, + 0x0000010a,0x00050041,0x00000007,0x0000010b,0x00000045,0x000000a9,0x00050051,0x00000006, + 0x0000010c,0x00000108,0x00000001,0x0003003e,0x0000010b,0x0000010c,0x00050041,0x00000007, + 0x0000010d,0x00000045,0x000000bc,0x00050051,0x00000006,0x0000010e,0x00000108,0x00000002, + 0x0003003e,0x0000010d,0x0000010e,0x0004003d,0x0000002f,0x0000010f,0x00000045,0x0008004f, + 0x00000024,0x00000110,0x0000010f,0x0000010f,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x00000111,0x000000e7,0x00050039,0x00000024,0x00000112,0x0000002d,0x00000111,0x0004003d, + 0x0000002f,0x00000113,0x00000045,0x0008004f,0x00000024,0x00000114,0x00000113,0x00000113, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000116,0x00000115,0x00050039,0x00000024, + 0x00000117,0x0000002d,0x00000116,0x000500ba,0x00000118,0x00000119,0x00000114,0x00000117, + 0x000600a9,0x00000024,0x0000011a,0x00000119,0x00000112,0x00000110,0x00050041,0x00000007, + 0x0000011b,0x00000045,0x000000a6,0x00050051,0x00000006,0x0000011c,0x0000011a,0x00000000, + 0x0003003e,0x0000011b,0x0000011c,0x00050041,0x00000007,0x0000011d,0x00000045,0x000000a9, + 0x00050051,0x00000006,0x0000011e,0x0000011a,0x00000001,0x0003003e,0x0000011d,0x0000011e, + 0x00050041,0x00000007,0x0000011f,0x00000045,0x000000bc,0x00050051,0x00000006,0x00000120, + 0x0000011a,0x00000002,0x0003003e,0x0000011f,0x00000120,0x000200f9,0x00000102,0x000200f8, + 0x00000102,0x0004003d,0x0000002f,0x00000121,0x00000045,0x000200fe,0x00000121,0x00010038, + 0x00050036,0x00000006,0x0000004a,0x00000000,0x00000048,0x00030037,0x00000034,0x00000049, + 0x000200f8,0x0000004b,0x00050041,0x00000007,0x00000124,0x00000049,0x000000a6,0x0004003d, + 0x00000006,0x00000125,0x00000124,0x00050041,0x00000007,0x00000126,0x00000049,0x000000a9, + 0x0004003d,0x00000006,0x00000127,0x00000126,0x0007000c,0x00000006,0x00000128,0x00000001, + 0x00000025,0x00000125,0x00000127,0x00050041,0x00000007,0x00000129,0x00000049,0x000000bc, + 0x0004003d,0x00000006,0x0000012a,0x00000129,0x0007000c,0x00000006,0x0000012b,0x00000001, + 0x00000025,0x00000128,0x0000012a,0x000200fe,0x0000012b,0x00010038,0x00050036,0x00000006, + 0x0000004d,0x00000000,0x00000048,0x00030037,0x00000034,0x0000004c,0x000200f8,0x0000004e, + 0x00050041,0x00000007,0x0000012e,0x0000004c,0x000000a6,0x0004003d,0x00000006,0x0000012f, + 0x0000012e,0x00050041,0x00000007,0x00000130,0x0000004c,0x000000a9,0x0004003d,0x00000006, + 0x00000131,0x00000130,0x0007000c,0x00000006,0x00000132,0x00000001,0x00000028,0x0000012f, + 0x00000131,0x00050041,0x00000007,0x00000133,0x0000004c,0x000000bc,0x0004003d,0x00000006, + 0x00000134,0x00000133,0x0007000c,0x00000006,0x00000135,0x00000001,0x00000028,0x00000132, + 0x00000134,0x000200fe,0x00000135,0x00010038,0x00050036,0x00000006,0x00000050,0x00000000, + 0x00000048,0x00030037,0x00000034,0x0000004f,0x000200f8,0x00000051,0x0004003b,0x00000007, + 0x0000013c,0x00000007,0x0004003b,0x00000007,0x0000013d,0x00000007,0x0004003b,0x00000007, + 0x0000013e,0x00000007,0x0004003d,0x00000024,0x00000138,0x0000004f,0x0003003e,0x0000013c, + 0x00000139,0x0003003e,0x0000013d,0x0000013a,0x0003003e,0x0000013e,0x0000013b,0x00070039, + 0x00000024,0x0000013f,0x00000029,0x0000013c,0x0000013d,0x0000013e,0x00050094,0x00000006, + 0x00000140,0x00000138,0x0000013f,0x000200fe,0x00000140,0x00010038,0x00050036,0x00000006, + 0x00000053,0x00000000,0x00000048,0x00030037,0x00000034,0x00000052,0x000200f8,0x00000054, + 0x0004003b,0x00000034,0x00000143,0x00000007,0x0004003b,0x00000034,0x00000146,0x00000007, + 0x0004003d,0x00000024,0x00000144,0x00000052,0x0003003e,0x00000143,0x00000144,0x00050039, + 0x00000006,0x00000145,0x0000004d,0x00000143,0x0004003d,0x00000024,0x00000147,0x00000052, + 0x0003003e,0x00000146,0x00000147,0x00050039,0x00000006,0x00000148,0x0000004a,0x00000146, + 0x00050083,0x00000006,0x00000149,0x00000145,0x00000148,0x000200fe,0x00000149,0x00010038, + 0x00050036,0x00000024,0x00000057,0x00000000,0x00000055,0x00030037,0x00000034,0x00000056, + 0x000200f8,0x00000058,0x0004003b,0x00000007,0x0000014c,0x00000007,0x0004003b,0x00000034, + 0x0000014d,0x00000007,0x0004003b,0x00000007,0x00000150,0x00000007,0x0004003b,0x00000034, + 0x00000151,0x00000007,0x0004003b,0x00000007,0x00000154,0x00000007,0x0004003b,0x00000034, + 0x00000155,0x00000007,0x0004003d,0x00000024,0x0000014e,0x00000056,0x0003003e,0x0000014d, + 0x0000014e,0x00050039,0x00000006,0x0000014f,0x00000050,0x0000014d,0x0003003e,0x0000014c, + 0x0000014f,0x0004003d,0x00000024,0x00000152,0x00000056,0x0003003e,0x00000151,0x00000152, + 0x00050039,0x00000006,0x00000153,0x0000004a,0x00000151,0x0003003e,0x00000150,0x00000153, + 0x0004003d,0x00000024,0x00000156,0x00000056,0x0003003e,0x00000155,0x00000156,0x00050039, + 0x00000006,0x00000157,0x0000004d,0x00000155,0x0003003e,0x00000154,0x00000157,0x0004003d, + 0x00000006,0x00000158,0x00000150,0x000500b8,0x000000f7,0x00000159,0x00000158,0x000000e8, + 0x000300f7,0x0000015b,0x00000000,0x000400fa,0x00000159,0x0000015a,0x0000015b,0x000200f8, + 0x0000015a,0x0004003d,0x00000006,0x0000015c,0x0000014c,0x0004003d,0x00000024,0x0000015d, + 0x00000056,0x0004003d,0x00000006,0x0000015e,0x0000014c,0x00060050,0x00000024,0x0000015f, + 0x0000015e,0x0000015e,0x0000015e,0x00050083,0x00000024,0x00000160,0x0000015d,0x0000015f, + 0x0004003d,0x00000006,0x00000161,0x0000014c,0x0005008e,0x00000024,0x00000162,0x00000160, + 0x00000161,0x0004003d,0x00000006,0x00000163,0x0000014c,0x0004003d,0x00000006,0x00000164, + 0x00000150,0x00050083,0x00000006,0x00000165,0x00000163,0x00000164,0x00060050,0x00000024, + 0x00000166,0x00000165,0x00000165,0x00000165,0x00050088,0x00000024,0x00000167,0x00000162, + 0x00000166,0x00060050,0x00000024,0x00000168,0x0000015c,0x0000015c,0x0000015c,0x00050081, + 0x00000024,0x00000169,0x00000168,0x00000167,0x0003003e,0x00000056,0x00000169,0x000200f9, + 0x0000015b,0x000200f8,0x0000015b,0x0004003d,0x00000006,0x0000016a,0x00000154,0x000500ba, + 0x000000f7,0x0000016b,0x0000016a,0x000000e7,0x000300f7,0x0000016d,0x00000000,0x000400fa, + 0x0000016b,0x0000016c,0x0000016d,0x000200f8,0x0000016c,0x0004003d,0x00000006,0x0000016e, + 0x0000014c,0x0004003d,0x00000024,0x0000016f,0x00000056,0x0004003d,0x00000006,0x00000170, + 0x0000014c,0x00060050,0x00000024,0x00000171,0x00000170,0x00000170,0x00000170,0x00050083, + 0x00000024,0x00000172,0x0000016f,0x00000171,0x0004003d,0x00000006,0x00000173,0x0000014c, + 0x00050083,0x00000006,0x00000174,0x000000e7,0x00000173,0x0005008e,0x00000024,0x00000175, + 0x00000172,0x00000174,0x0004003d,0x00000006,0x00000176,0x00000154,0x0004003d,0x00000006, + 0x00000177,0x0000014c,0x00050083,0x00000006,0x00000178,0x00000176,0x00000177,0x00060050, + 0x00000024,0x00000179,0x00000178,0x00000178,0x00000178,0x00050088,0x00000024,0x0000017a, + 0x00000175,0x00000179,0x00060050,0x00000024,0x0000017b,0x0000016e,0x0000016e,0x0000016e, + 0x00050081,0x00000024,0x0000017c,0x0000017b,0x0000017a,0x0003003e,0x00000056,0x0000017c, + 0x000200f9,0x0000016d,0x000200f8,0x0000016d,0x0004003d,0x00000024,0x0000017d,0x00000056, + 0x000200fe,0x0000017d,0x00010038,0x00050036,0x00000024,0x0000005c,0x00000000,0x00000059, + 0x00030037,0x00000034,0x0000005a,0x00030037,0x00000034,0x0000005b,0x000200f8,0x0000005d, + 0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b,0x00000034,0x00000181,0x00000007, + 0x0004003b,0x00000007,0x00000184,0x00000007,0x0004003b,0x00000034,0x00000185,0x00000007, + 0x0004003b,0x00000007,0x00000188,0x00000007,0x0004003b,0x00000034,0x0000018c,0x00000007, + 0x0004003b,0x00000007,0x0000018e,0x00000007,0x0004003b,0x00000034,0x00000192,0x00000007, + 0x0004003d,0x00000024,0x00000182,0x0000005a,0x0003003e,0x00000181,0x00000182,0x00050039, + 0x00000006,0x00000183,0x00000050,0x00000181,0x0003003e,0x00000180,0x00000183,0x0004003d, + 0x00000024,0x00000186,0x0000005b,0x0003003e,0x00000185,0x00000186,0x00050039,0x00000006, + 0x00000187,0x00000050,0x00000185,0x0003003e,0x00000184,0x00000187,0x0004003d,0x00000006, + 0x00000189,0x00000184,0x0004003d,0x00000006,0x0000018a,0x00000180,0x00050083,0x00000006, + 0x0000018b,0x00000189,0x0000018a,0x0003003e,0x00000188,0x0000018b,0x0004003d,0x00000024, + 0x0000018d,0x0000005a,0x0004003d,0x00000006,0x0000018f,0x00000188,0x0003003e,0x0000018e, + 0x0000018f,0x00050039,0x00000024,0x00000190,0x0000002d,0x0000018e,0x00050081,0x00000024, + 0x00000191,0x0000018d,0x00000190,0x0003003e,0x0000018c,0x00000191,0x0004003d,0x00000024, + 0x00000193,0x0000018c,0x0003003e,0x00000192,0x00000193,0x00050039,0x00000024,0x00000194, + 0x00000057,0x00000192,0x000200fe,0x00000194,0x00010038,0x00050036,0x00000024,0x00000062, + 0x00000000,0x0000005e,0x00030037,0x00000034,0x0000005f,0x00030037,0x00000034,0x00000060, + 0x00030037,0x00000034,0x00000061,0x000200f8,0x00000063,0x0004003b,0x00000007,0x00000197, + 0x00000007,0x0004003b,0x00000034,0x00000198,0x00000007,0x0004003b,0x00000007,0x0000019b, + 0x00000007,0x0004003b,0x00000034,0x0000019c,0x00000007,0x0004003b,0x00000007,0x0000019f, + 0x00000007,0x0004003b,0x00000034,0x000001a0,0x00000007,0x0004003b,0x00000034,0x000001a7, + 0x00000007,0x0004003b,0x00000007,0x000001b2,0x00000007,0x0004003b,0x00000034,0x000001b4, + 0x00000007,0x0004003b,0x00000034,0x000001b6,0x00000007,0x0004003d,0x00000024,0x00000199, + 0x0000005f,0x0003003e,0x00000198,0x00000199,0x00050039,0x00000006,0x0000019a,0x0000004a, + 0x00000198,0x0003003e,0x00000197,0x0000019a,0x0004003d,0x00000024,0x0000019d,0x0000005f, + 0x0003003e,0x0000019c,0x0000019d,0x00050039,0x00000006,0x0000019e,0x00000053,0x0000019c, + 0x0003003e,0x0000019b,0x0000019e,0x0004003d,0x00000024,0x000001a1,0x00000060,0x0003003e, + 0x000001a0,0x000001a1,0x00050039,0x00000006,0x000001a2,0x00000053,0x000001a0,0x0003003e, + 0x0000019f,0x000001a2,0x0004003d,0x00000006,0x000001a3,0x0000019b,0x000500ba,0x000000f7, + 0x000001a4,0x000001a3,0x000000e8,0x000300f7,0x000001a6,0x00000000,0x000400fa,0x000001a4, + 0x000001a5,0x000001b1,0x000200f8,0x000001a5,0x0004003d,0x00000024,0x000001a8,0x0000005f, + 0x0004003d,0x00000006,0x000001a9,0x00000197,0x00060050,0x00000024,0x000001aa,0x000001a9, + 0x000001a9,0x000001a9,0x00050083,0x00000024,0x000001ab,0x000001a8,0x000001aa,0x0004003d, + 0x00000006,0x000001ac,0x0000019f,0x0005008e,0x00000024,0x000001ad,0x000001ab,0x000001ac, + 0x0004003d,0x00000006,0x000001ae,0x0000019b,0x00060050,0x00000024,0x000001af,0x000001ae, + 0x000001ae,0x000001ae,0x00050088,0x00000024,0x000001b0,0x000001ad,0x000001af,0x0003003e, + 0x000001a7,0x000001b0,0x000200f9,0x000001a6,0x000200f8,0x000001b1,0x0003003e,0x000001b2, + 0x000000e8,0x00050039,0x00000024,0x000001b3,0x0000002d,0x000001b2,0x0003003e,0x000001a7, + 0x000001b3,0x000200f9,0x000001a6,0x000200f8,0x000001a6,0x0004003d,0x00000024,0x000001b5, + 0x000001a7,0x0003003e,0x000001b4,0x000001b5,0x0004003d,0x00000024,0x000001b7,0x00000061, + 0x0003003e,0x000001b6,0x000001b7,0x00060039,0x00000024,0x000001b8,0x0000005c,0x000001b4, + 0x000001b6,0x000200fe,0x000001b8,0x00010038,0x00050036,0x00000024,0x00000068,0x00000000, + 0x00000064,0x00030037,0x00000034,0x00000065,0x00030037,0x00000034,0x00000066,0x00030037, + 0x00000013,0x00000067,0x000200f8,0x00000069,0x0004003b,0x00000034,0x000001cc,0x00000007, + 0x0004003b,0x000001d9,0x000001da,0x00000007,0x0004003b,0x00000007,0x00000213,0x00000007, + 0x0004003b,0x00000007,0x00000216,0x00000007,0x0004003b,0x00000007,0x00000219,0x00000007, + 0x0004003b,0x00000007,0x00000227,0x00000007,0x0004003b,0x00000007,0x0000022a,0x00000007, + 0x0004003b,0x000001d9,0x0000022f,0x00000007,0x0004003b,0x000001d9,0x00000258,0x00000007, + 0x0004003b,0x00000007,0x000002c9,0x00000007,0x0004003b,0x00000007,0x000002cb,0x00000007, + 0x0004003b,0x00000034,0x000002ce,0x00000007,0x0004003b,0x00000034,0x000002d0,0x00000007, + 0x0004003b,0x00000034,0x000002d2,0x00000007,0x0004003b,0x00000007,0x000002d9,0x00000007, + 0x0004003b,0x00000007,0x000002db,0x00000007,0x0004003b,0x00000034,0x000002de,0x00000007, + 0x0004003b,0x00000034,0x000002e0,0x00000007,0x0004003b,0x00000034,0x000002e2,0x00000007, + 0x0004003b,0x00000007,0x000002e9,0x00000007,0x0004003b,0x00000007,0x000002eb,0x00000007, + 0x0004003b,0x00000034,0x000002ee,0x00000007,0x0004003b,0x00000034,0x000002f0,0x00000007, + 0x0004003b,0x00000007,0x000002f7,0x00000007,0x0004003b,0x00000007,0x000002f9,0x00000007, + 0x0004003b,0x00000034,0x000002fc,0x00000007,0x0004003b,0x00000034,0x000002fe,0x00000007, + 0x0004003d,0x00000012,0x000001bb,0x00000067,0x000300f7,0x000001cb,0x00000000,0x002100fb, + 0x000001bb,0x000001cb,0x0000000b,0x000001bc,0x00000001,0x000001bd,0x00000002,0x000001be, + 0x00000003,0x000001bf,0x00000004,0x000001c0,0x00000005,0x000001c1,0x00000006,0x000001c2, + 0x00000007,0x000001c3,0x00000008,0x000001c4,0x00000009,0x000001c5,0x0000000a,0x000001c6, + 0x0000000c,0x000001c7,0x0000000d,0x000001c8,0x0000000e,0x000001c9,0x0000000f,0x000001ca, + 0x000200f8,0x000001bc,0x0004003d,0x00000024,0x000001cd,0x00000065,0x0004003d,0x00000024, + 0x000001ce,0x00000066,0x00050085,0x00000024,0x000001cf,0x000001cd,0x000001ce,0x0003003e, + 0x000001cc,0x000001cf,0x000200f9,0x000001cb,0x000200f8,0x000001bd,0x0004003d,0x00000024, + 0x000001d1,0x00000065,0x0004003d,0x00000024,0x000001d2,0x00000066,0x00050081,0x00000024, + 0x000001d3,0x000001d1,0x000001d2,0x0004003d,0x00000024,0x000001d4,0x00000065,0x0004003d, + 0x00000024,0x000001d5,0x00000066,0x00050085,0x00000024,0x000001d6,0x000001d4,0x000001d5, + 0x00050083,0x00000024,0x000001d7,0x000001d3,0x000001d6,0x0003003e,0x000001cc,0x000001d7, + 0x000200f9,0x000001cb,0x000200f8,0x000001be,0x0003003e,0x000001da,0x000000da,0x000200f9, + 0x000001db,0x000200f8,0x000001db,0x000400f6,0x000001dd,0x000001de,0x00000000,0x000200f9, + 0x000001df,0x000200f8,0x000001df,0x0004003d,0x0000007e,0x000001e0,0x000001da,0x000500b1, + 0x000000f7,0x000001e2,0x000001e0,0x000001e1,0x000400fa,0x000001e2,0x000001dc,0x000001dd, + 0x000200f8,0x000001dc,0x0004003d,0x0000007e,0x000001e3,0x000001da,0x00050041,0x00000007, + 0x000001e4,0x00000066,0x000001e3,0x0004003d,0x00000006,0x000001e5,0x000001e4,0x000500bc, + 0x000000f7,0x000001e7,0x000001e5,0x000001e6,0x000300f7,0x000001e9,0x00000000,0x000400fa, + 0x000001e7,0x000001e8,0x000001f5,0x000200f8,0x000001e8,0x0004003d,0x0000007e,0x000001ea, + 0x000001da,0x0004003d,0x0000007e,0x000001ec,0x000001da,0x00050041,0x00000007,0x000001ed, + 0x00000065,0x000001ec,0x0004003d,0x00000006,0x000001ee,0x000001ed,0x00050085,0x00000006, + 0x000001ef,0x000001eb,0x000001ee,0x0004003d,0x0000007e,0x000001f0,0x000001da,0x00050041, + 0x00000007,0x000001f1,0x00000066,0x000001f0,0x0004003d,0x00000006,0x000001f2,0x000001f1, + 0x00050085,0x00000006,0x000001f3,0x000001ef,0x000001f2,0x00050041,0x00000007,0x000001f4, + 0x000001cc,0x000001ea,0x0003003e,0x000001f4,0x000001f3,0x000200f9,0x000001e9,0x000200f8, + 0x000001f5,0x0004003d,0x0000007e,0x000001f6,0x000001da,0x0004003d,0x0000007e,0x000001f7, + 0x000001da,0x00050041,0x00000007,0x000001f8,0x00000065,0x000001f7,0x0004003d,0x00000006, + 0x000001f9,0x000001f8,0x00050083,0x00000006,0x000001fa,0x000000e7,0x000001f9,0x00050085, + 0x00000006,0x000001fb,0x000001eb,0x000001fa,0x0004003d,0x0000007e,0x000001fc,0x000001da, + 0x00050041,0x00000007,0x000001fd,0x00000066,0x000001fc,0x0004003d,0x00000006,0x000001fe, + 0x000001fd,0x00050083,0x00000006,0x000001ff,0x000000e7,0x000001fe,0x00050085,0x00000006, + 0x00000200,0x000001fb,0x000001ff,0x00050083,0x00000006,0x00000201,0x000000e7,0x00000200, + 0x00050041,0x00000007,0x00000202,0x000001cc,0x000001f6,0x0003003e,0x00000202,0x00000201, + 0x000200f9,0x000001e9,0x000200f8,0x000001e9,0x000200f9,0x000001de,0x000200f8,0x000001de, + 0x0004003d,0x0000007e,0x00000203,0x000001da,0x00050080,0x0000007e,0x00000204,0x00000203, + 0x000000dd,0x0003003e,0x000001da,0x00000204,0x000200f9,0x000001db,0x000200f8,0x000001dd, + 0x000200f9,0x000001cb,0x000200f8,0x000001bf,0x0004003d,0x00000024,0x00000206,0x00000065, + 0x0004003d,0x00000024,0x00000207,0x00000066,0x0007000c,0x00000024,0x00000208,0x00000001, + 0x00000025,0x00000206,0x00000207,0x0003003e,0x000001cc,0x00000208,0x000200f9,0x000001cb, + 0x000200f8,0x000001c0,0x0004003d,0x00000024,0x0000020a,0x00000065,0x0004003d,0x00000024, + 0x0000020b,0x00000066,0x0007000c,0x00000024,0x0000020c,0x00000001,0x00000028,0x0000020a, + 0x0000020b,0x0003003e,0x000001cc,0x0000020c,0x000200f9,0x000001cb,0x000200f8,0x000001c1, + 0x0004003d,0x00000024,0x0000020e,0x00000066,0x0004003d,0x00000024,0x0000020f,0x00000065, + 0x00060050,0x00000024,0x00000210,0x000000e7,0x000000e7,0x000000e7,0x00050083,0x00000024, + 0x00000211,0x00000210,0x0000020f,0x00050088,0x00000024,0x00000212,0x0000020e,0x00000211, + 0x0003003e,0x00000213,0x000000e7,0x00050039,0x00000024,0x00000214,0x0000002d,0x00000213, + 0x0007000c,0x00000024,0x00000215,0x00000001,0x00000025,0x00000212,0x00000214,0x0003003e, + 0x00000216,0x000000e8,0x00050039,0x00000024,0x00000217,0x0000002d,0x00000216,0x0004003d, + 0x00000024,0x00000218,0x00000066,0x0003003e,0x00000219,0x000000e8,0x00050039,0x00000024, + 0x0000021a,0x0000002d,0x00000219,0x000500bc,0x00000118,0x0000021b,0x00000218,0x0000021a, + 0x000600a9,0x00000024,0x0000021c,0x0000021b,0x00000217,0x00000215,0x0003003e,0x000001cc, + 0x0000021c,0x000200f9,0x000001cb,0x000200f8,0x000001c2,0x0004003d,0x00000024,0x0000021e, + 0x00000066,0x00060050,0x00000024,0x0000021f,0x000000e7,0x000000e7,0x000000e7,0x00050083, + 0x00000024,0x00000220,0x0000021f,0x0000021e,0x0004003d,0x00000024,0x00000221,0x00000065, + 0x00050088,0x00000024,0x00000222,0x00000220,0x00000221,0x00060050,0x00000024,0x00000223, + 0x000000e7,0x000000e7,0x000000e7,0x0007000c,0x00000024,0x00000224,0x00000001,0x00000025, + 0x00000222,0x00000223,0x00060050,0x00000024,0x00000225,0x000000e7,0x000000e7,0x000000e7, + 0x00050083,0x00000024,0x00000226,0x00000225,0x00000224,0x0003003e,0x00000227,0x000000e7, + 0x00050039,0x00000024,0x00000228,0x0000002d,0x00000227,0x0004003d,0x00000024,0x00000229, + 0x00000066,0x0003003e,0x0000022a,0x000000e7,0x00050039,0x00000024,0x0000022b,0x0000002d, + 0x0000022a,0x000500be,0x00000118,0x0000022c,0x00000229,0x0000022b,0x000600a9,0x00000024, + 0x0000022d,0x0000022c,0x00000228,0x00000226,0x0003003e,0x000001cc,0x0000022d,0x000200f9, + 0x000001cb,0x000200f8,0x000001c3,0x0003003e,0x0000022f,0x000000da,0x000200f9,0x00000230, + 0x000200f8,0x00000230,0x000400f6,0x00000232,0x00000233,0x00000000,0x000200f9,0x00000234, + 0x000200f8,0x00000234,0x0004003d,0x0000007e,0x00000235,0x0000022f,0x000500b1,0x000000f7, + 0x00000236,0x00000235,0x000001e1,0x000400fa,0x00000236,0x00000231,0x00000232,0x000200f8, + 0x00000231,0x0004003d,0x0000007e,0x00000237,0x0000022f,0x00050041,0x00000007,0x00000238, + 0x00000065,0x00000237,0x0004003d,0x00000006,0x00000239,0x00000238,0x000500bc,0x000000f7, + 0x0000023a,0x00000239,0x000001e6,0x000300f7,0x0000023c,0x00000000,0x000400fa,0x0000023a, + 0x0000023b,0x00000247,0x000200f8,0x0000023b,0x0004003d,0x0000007e,0x0000023d,0x0000022f, + 0x0004003d,0x0000007e,0x0000023e,0x0000022f,0x00050041,0x00000007,0x0000023f,0x00000065, + 0x0000023e,0x0004003d,0x00000006,0x00000240,0x0000023f,0x00050085,0x00000006,0x00000241, + 0x000001eb,0x00000240,0x0004003d,0x0000007e,0x00000242,0x0000022f,0x00050041,0x00000007, + 0x00000243,0x00000066,0x00000242,0x0004003d,0x00000006,0x00000244,0x00000243,0x00050085, + 0x00000006,0x00000245,0x00000241,0x00000244,0x00050041,0x00000007,0x00000246,0x000001cc, + 0x0000023d,0x0003003e,0x00000246,0x00000245,0x000200f9,0x0000023c,0x000200f8,0x00000247, + 0x0004003d,0x0000007e,0x00000248,0x0000022f,0x0004003d,0x0000007e,0x00000249,0x0000022f, + 0x00050041,0x00000007,0x0000024a,0x00000065,0x00000249,0x0004003d,0x00000006,0x0000024b, + 0x0000024a,0x00050083,0x00000006,0x0000024c,0x000000e7,0x0000024b,0x00050085,0x00000006, + 0x0000024d,0x000001eb,0x0000024c,0x0004003d,0x0000007e,0x0000024e,0x0000022f,0x00050041, + 0x00000007,0x0000024f,0x00000066,0x0000024e,0x0004003d,0x00000006,0x00000250,0x0000024f, + 0x00050083,0x00000006,0x00000251,0x000000e7,0x00000250,0x00050085,0x00000006,0x00000252, + 0x0000024d,0x00000251,0x00050083,0x00000006,0x00000253,0x000000e7,0x00000252,0x00050041, + 0x00000007,0x00000254,0x000001cc,0x00000248,0x0003003e,0x00000254,0x00000253,0x000200f9, + 0x0000023c,0x000200f8,0x0000023c,0x000200f9,0x00000233,0x000200f8,0x00000233,0x0004003d, + 0x0000007e,0x00000255,0x0000022f,0x00050080,0x0000007e,0x00000256,0x00000255,0x000000dd, + 0x0003003e,0x0000022f,0x00000256,0x000200f9,0x00000230,0x000200f8,0x00000232,0x000200f9, + 0x000001cb,0x000200f8,0x000001c4,0x0003003e,0x00000258,0x000000da,0x000200f9,0x00000259, + 0x000200f8,0x00000259,0x000400f6,0x0000025b,0x0000025c,0x00000000,0x000200f9,0x0000025d, + 0x000200f8,0x0000025d,0x0004003d,0x0000007e,0x0000025e,0x00000258,0x000500b1,0x000000f7, + 0x0000025f,0x0000025e,0x000001e1,0x000400fa,0x0000025f,0x0000025a,0x0000025b,0x000200f8, + 0x0000025a,0x0004003d,0x0000007e,0x00000260,0x00000258,0x00050041,0x00000007,0x00000261, + 0x00000065,0x00000260,0x0004003d,0x00000006,0x00000262,0x00000261,0x000500bc,0x000000f7, + 0x00000263,0x00000262,0x000001e6,0x000300f7,0x00000265,0x00000000,0x000400fa,0x00000263, + 0x00000264,0x0000027a,0x000200f8,0x00000264,0x0004003d,0x0000007e,0x00000266,0x00000258, + 0x0004003d,0x0000007e,0x00000267,0x00000258,0x00050041,0x00000007,0x00000268,0x00000066, + 0x00000267,0x0004003d,0x00000006,0x00000269,0x00000268,0x0004003d,0x0000007e,0x0000026a, + 0x00000258,0x00050041,0x00000007,0x0000026b,0x00000065,0x0000026a,0x0004003d,0x00000006, + 0x0000026c,0x0000026b,0x00050085,0x00000006,0x0000026d,0x000001eb,0x0000026c,0x00050083, + 0x00000006,0x0000026e,0x000000e7,0x0000026d,0x0004003d,0x0000007e,0x0000026f,0x00000258, + 0x00050041,0x00000007,0x00000270,0x00000066,0x0000026f,0x0004003d,0x00000006,0x00000271, + 0x00000270,0x00050085,0x00000006,0x00000272,0x0000026e,0x00000271,0x0004003d,0x0000007e, + 0x00000273,0x00000258,0x00050041,0x00000007,0x00000274,0x00000066,0x00000273,0x0004003d, + 0x00000006,0x00000275,0x00000274,0x00050083,0x00000006,0x00000276,0x000000e7,0x00000275, + 0x00050085,0x00000006,0x00000277,0x00000272,0x00000276,0x00050083,0x00000006,0x00000278, + 0x00000269,0x00000277,0x00050041,0x00000007,0x00000279,0x000001cc,0x00000266,0x0003003e, + 0x00000279,0x00000278,0x000200f9,0x00000265,0x000200f8,0x0000027a,0x0004003d,0x0000007e, + 0x0000027b,0x00000258,0x00050041,0x00000007,0x0000027c,0x00000066,0x0000027b,0x0004003d, + 0x00000006,0x0000027d,0x0000027c,0x000500bc,0x000000f7,0x0000027f,0x0000027d,0x0000027e, + 0x000300f7,0x00000281,0x00000000,0x000400fa,0x0000027f,0x00000280,0x0000029f,0x000200f8, + 0x00000280,0x0004003d,0x0000007e,0x00000282,0x00000258,0x0004003d,0x0000007e,0x00000283, + 0x00000258,0x00050041,0x00000007,0x00000284,0x00000066,0x00000283,0x0004003d,0x00000006, + 0x00000285,0x00000284,0x0004003d,0x0000007e,0x00000286,0x00000258,0x00050041,0x00000007, + 0x00000287,0x00000065,0x00000286,0x0004003d,0x00000006,0x00000288,0x00000287,0x00050085, + 0x00000006,0x00000289,0x000001eb,0x00000288,0x00050083,0x00000006,0x0000028a,0x00000289, + 0x000000e7,0x0004003d,0x0000007e,0x0000028b,0x00000258,0x00050041,0x00000007,0x0000028c, + 0x00000066,0x0000028b,0x0004003d,0x00000006,0x0000028d,0x0000028c,0x00050085,0x00000006, + 0x0000028e,0x0000028a,0x0000028d,0x0004003d,0x0000007e,0x00000290,0x00000258,0x00050041, + 0x00000007,0x00000291,0x00000066,0x00000290,0x0004003d,0x00000006,0x00000292,0x00000291, + 0x00050085,0x00000006,0x00000293,0x0000028f,0x00000292,0x00050083,0x00000006,0x00000295, + 0x00000293,0x00000294,0x0004003d,0x0000007e,0x00000296,0x00000258,0x00050041,0x00000007, + 0x00000297,0x00000066,0x00000296,0x0004003d,0x00000006,0x00000298,0x00000297,0x00050085, + 0x00000006,0x00000299,0x00000295,0x00000298,0x00050081,0x00000006,0x0000029b,0x00000299, + 0x0000029a,0x00050085,0x00000006,0x0000029c,0x0000028e,0x0000029b,0x00050081,0x00000006, + 0x0000029d,0x00000285,0x0000029c,0x00050041,0x00000007,0x0000029e,0x000001cc,0x00000282, + 0x0003003e,0x0000029e,0x0000029d,0x000200f9,0x00000281,0x000200f8,0x0000029f,0x0004003d, + 0x0000007e,0x000002a0,0x00000258,0x0004003d,0x0000007e,0x000002a1,0x00000258,0x00050041, + 0x00000007,0x000002a2,0x00000066,0x000002a1,0x0004003d,0x00000006,0x000002a3,0x000002a2, + 0x0004003d,0x0000007e,0x000002a4,0x00000258,0x00050041,0x00000007,0x000002a5,0x00000065, + 0x000002a4,0x0004003d,0x00000006,0x000002a6,0x000002a5,0x00050085,0x00000006,0x000002a7, + 0x000001eb,0x000002a6,0x00050083,0x00000006,0x000002a8,0x000002a7,0x000000e7,0x0004003d, + 0x0000007e,0x000002a9,0x00000258,0x00050041,0x00000007,0x000002aa,0x00000066,0x000002a9, + 0x0004003d,0x00000006,0x000002ab,0x000002aa,0x0006000c,0x00000006,0x000002ac,0x00000001, + 0x0000001f,0x000002ab,0x0004003d,0x0000007e,0x000002ad,0x00000258,0x00050041,0x00000007, + 0x000002ae,0x00000066,0x000002ad,0x0004003d,0x00000006,0x000002af,0x000002ae,0x00050083, + 0x00000006,0x000002b0,0x000002ac,0x000002af,0x00050085,0x00000006,0x000002b1,0x000002a8, + 0x000002b0,0x00050081,0x00000006,0x000002b2,0x000002a3,0x000002b1,0x00050041,0x00000007, + 0x000002b3,0x000001cc,0x000002a0,0x0003003e,0x000002b3,0x000002b2,0x000200f9,0x00000281, + 0x000200f8,0x00000281,0x000200f9,0x00000265,0x000200f8,0x00000265,0x000200f9,0x0000025c, + 0x000200f8,0x0000025c,0x0004003d,0x0000007e,0x000002b4,0x00000258,0x00050080,0x0000007e, + 0x000002b5,0x000002b4,0x000000dd,0x0003003e,0x00000258,0x000002b5,0x000200f9,0x00000259, + 0x000200f8,0x0000025b,0x000200f9,0x000001cb,0x000200f8,0x000001c5,0x0004003d,0x00000024, + 0x000002b7,0x00000066,0x0004003d,0x00000024,0x000002b8,0x00000065,0x00050083,0x00000024, + 0x000002b9,0x000002b7,0x000002b8,0x0006000c,0x00000024,0x000002ba,0x00000001,0x00000004, + 0x000002b9,0x0003003e,0x000001cc,0x000002ba,0x000200f9,0x000001cb,0x000200f8,0x000001c6, + 0x0004003d,0x00000024,0x000002bc,0x00000065,0x0004003d,0x00000024,0x000002bd,0x00000066, + 0x00050081,0x00000024,0x000002be,0x000002bc,0x000002bd,0x0004003d,0x00000024,0x000002bf, + 0x00000065,0x0005008e,0x00000024,0x000002c0,0x000002bf,0x000001eb,0x0004003d,0x00000024, + 0x000002c1,0x00000066,0x00050085,0x00000024,0x000002c2,0x000002c0,0x000002c1,0x00050083, + 0x00000024,0x000002c3,0x000002be,0x000002c2,0x0003003e,0x000001cc,0x000002c3,0x000200f9, + 0x000001cb,0x000200f8,0x000001c7,0x000300f7,0x000002c7,0x00000000,0x000400fa,0x000002c5, + 0x000002c6,0x000002c7,0x000200f8,0x000002c6,0x0004003d,0x00000024,0x000002c8,0x00000065, + 0x0003003e,0x000002c9,0x000000e8,0x00050039,0x00000024,0x000002ca,0x0000002d,0x000002c9, + 0x0003003e,0x000002cb,0x000000e7,0x00050039,0x00000024,0x000002cc,0x0000002d,0x000002cb, + 0x0008000c,0x00000024,0x000002cd,0x00000001,0x0000002b,0x000002c8,0x000002ca,0x000002cc, + 0x0003003e,0x00000065,0x000002cd,0x0004003d,0x00000024,0x000002cf,0x00000065,0x0003003e, + 0x000002ce,0x000002cf,0x0004003d,0x00000024,0x000002d1,0x00000066,0x0003003e,0x000002d0, + 0x000002d1,0x0004003d,0x00000024,0x000002d3,0x00000066,0x0003003e,0x000002d2,0x000002d3, + 0x00070039,0x00000024,0x000002d4,0x00000062,0x000002ce,0x000002d0,0x000002d2,0x0003003e, + 0x000001cc,0x000002d4,0x000200f9,0x000001cb,0x000200f8,0x000002c7,0x000200f9,0x000001c8, + 0x000200f8,0x000001c8,0x000300f7,0x000002d7,0x00000000,0x000400fa,0x000002c5,0x000002d6, + 0x000002d7,0x000200f8,0x000002d6,0x0004003d,0x00000024,0x000002d8,0x00000065,0x0003003e, + 0x000002d9,0x000000e8,0x00050039,0x00000024,0x000002da,0x0000002d,0x000002d9,0x0003003e, + 0x000002db,0x000000e7,0x00050039,0x00000024,0x000002dc,0x0000002d,0x000002db,0x0008000c, + 0x00000024,0x000002dd,0x00000001,0x0000002b,0x000002d8,0x000002da,0x000002dc,0x0003003e, + 0x00000065,0x000002dd,0x0004003d,0x00000024,0x000002df,0x00000066,0x0003003e,0x000002de, + 0x000002df,0x0004003d,0x00000024,0x000002e1,0x00000065,0x0003003e,0x000002e0,0x000002e1, + 0x0004003d,0x00000024,0x000002e3,0x00000066,0x0003003e,0x000002e2,0x000002e3,0x00070039, + 0x00000024,0x000002e4,0x00000062,0x000002de,0x000002e0,0x000002e2,0x0003003e,0x000001cc, + 0x000002e4,0x000200f9,0x000001cb,0x000200f8,0x000002d7,0x000200f9,0x000001c9,0x000200f8, + 0x000001c9,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002c5,0x000002e6,0x000002e7, + 0x000200f8,0x000002e6,0x0004003d,0x00000024,0x000002e8,0x00000065,0x0003003e,0x000002e9, + 0x000000e8,0x00050039,0x00000024,0x000002ea,0x0000002d,0x000002e9,0x0003003e,0x000002eb, + 0x000000e7,0x00050039,0x00000024,0x000002ec,0x0000002d,0x000002eb,0x0008000c,0x00000024, + 0x000002ed,0x00000001,0x0000002b,0x000002e8,0x000002ea,0x000002ec,0x0003003e,0x00000065, + 0x000002ed,0x0004003d,0x00000024,0x000002ef,0x00000065,0x0003003e,0x000002ee,0x000002ef, + 0x0004003d,0x00000024,0x000002f1,0x00000066,0x0003003e,0x000002f0,0x000002f1,0x00060039, + 0x00000024,0x000002f2,0x0000005c,0x000002ee,0x000002f0,0x0003003e,0x000001cc,0x000002f2, + 0x000200f9,0x000001cb,0x000200f8,0x000002e7,0x000200f9,0x000001ca,0x000200f8,0x000001ca, + 0x000300f7,0x000002f5,0x00000000,0x000400fa,0x000002c5,0x000002f4,0x000002f5,0x000200f8, + 0x000002f4,0x0004003d,0x00000024,0x000002f6,0x00000065,0x0003003e,0x000002f7,0x000000e8, + 0x00050039,0x00000024,0x000002f8,0x0000002d,0x000002f7,0x0003003e,0x000002f9,0x000000e7, + 0x00050039,0x00000024,0x000002fa,0x0000002d,0x000002f9,0x0008000c,0x00000024,0x000002fb, + 0x00000001,0x0000002b,0x000002f6,0x000002f8,0x000002fa,0x0003003e,0x00000065,0x000002fb, + 0x0004003d,0x00000024,0x000002fd,0x00000066,0x0003003e,0x000002fc,0x000002fd,0x0004003d, + 0x00000024,0x000002ff,0x00000065,0x0003003e,0x000002fe,0x000002ff,0x00060039,0x00000024, + 0x00000300,0x0000005c,0x000002fc,0x000002fe,0x0003003e,0x000001cc,0x00000300,0x000200f9, + 0x000001cb,0x000200f8,0x000002f5,0x000200f9,0x000001cb,0x000200f8,0x000001cb,0x0004003d, + 0x00000024,0x00000303,0x000001cc,0x000200fe,0x00000303,0x00010038,0x00050036,0x00000024, + 0x0000006e,0x00000000,0x0000006a,0x00030037,0x00000034,0x0000006b,0x00030037,0x0000003b, + 0x0000006c,0x00030037,0x00000013,0x0000006d,0x000200f8,0x0000006f,0x0004003b,0x00000034, + 0x00000306,0x00000007,0x0004003b,0x00000034,0x00000307,0x00000007,0x0004003b,0x00000034, + 0x00000309,0x00000007,0x0004003b,0x00000013,0x0000030c,0x00000007,0x0004003b,0x0000000d, + 0x0000030f,0x00000007,0x0004003b,0x00000007,0x00000313,0x00000007,0x0004003b,0x00000007, + 0x00000316,0x00000007,0x0004003b,0x00000034,0x00000318,0x00000007,0x0004003b,0x00000034, + 0x0000031a,0x00000007,0x0004003d,0x00000024,0x00000308,0x0000006b,0x0003003e,0x00000307, + 0x00000308,0x0004003d,0x0000002f,0x0000030a,0x0000006c,0x0008004f,0x00000024,0x0000030b, + 0x0000030a,0x0000030a,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000309,0x0000030b, + 0x0004003d,0x00000012,0x0000030d,0x0000006d,0x0003003e,0x0000030c,0x0000030d,0x00070039, + 0x00000024,0x0000030e,0x00000068,0x00000307,0x00000309,0x0000030c,0x0003003e,0x00000306, + 0x0000030e,0x00050041,0x00000007,0x00000310,0x0000006c,0x000000d3,0x0004003d,0x00000006, + 0x00000311,0x00000310,0x00050083,0x00000006,0x00000312,0x000000e7,0x00000311,0x00050041, + 0x00000007,0x00000314,0x0000006c,0x000000d3,0x0004003d,0x00000006,0x00000315,0x00000314, + 0x0003003e,0x00000313,0x00000315,0x0003003e,0x00000316,0x00000312,0x00060039,0x0000000c, + 0x00000317,0x0000001e,0x00000313,0x00000316,0x0003003e,0x0000030f,0x00000317,0x0004003d, + 0x00000024,0x00000319,0x00000306,0x0003003e,0x00000318,0x00000319,0x0004003d,0x00000024, + 0x0000031b,0x0000006b,0x0003003e,0x0000031a,0x0000031b,0x00060039,0x00000035,0x0000031c, + 0x00000039,0x00000318,0x0000031a,0x0004003d,0x0000000c,0x0000031d,0x0000030f,0x00050091, + 0x00000024,0x0000031e,0x0000031c,0x0000031d,0x000200fe,0x0000031e,0x00010038,0x00050036, + 0x00000012,0x00000072,0x00000000,0x00000070,0x00030037,0x00000007,0x00000071,0x000200f8, + 0x00000073,0x0004003d,0x00000006,0x00000321,0x00000071,0x00050085,0x00000006,0x00000323, + 0x00000321,0x00000322,0x00050081,0x00000006,0x00000325,0x00000323,0x00000324,0x0004006d, + 0x00000012,0x00000326,0x00000325,0x000200fe,0x00000326,0x00010038,0x00050036,0x00000006, + 0x00000076,0x00000000,0x00000074,0x00030037,0x00000013,0x00000075,0x000200f8,0x00000077, + 0x0004003b,0x00000007,0x0000032f,0x00000007,0x0004003d,0x00000012,0x00000329,0x00000075, + 0x00040070,0x00000006,0x0000032a,0x00000329,0x00050085,0x00000006,0x0000032c,0x0000032a, + 0x0000032b,0x00050081,0x00000006,0x0000032e,0x0000032c,0x0000032d,0x0003003e,0x0000032f, + 0x0000032e,0x00050039,0x00000006,0x00000330,0x0000000a,0x0000032f,0x000200fe,0x00000330, + 0x00010038,0x00050036,0x00000002,0x0000007c,0x00000000,0x00000078,0x00030037,0x00000013, + 0x00000079,0x00030037,0x0000003b,0x0000007a,0x00030037,0x00000007,0x0000007b,0x000200f8, + 0x0000007d,0x0004003b,0x00000007,0x0000033b,0x00000007,0x0004003d,0x0000002f,0x00000333, + 0x0000007a,0x0007004f,0x0000000c,0x00000334,0x00000333,0x00000333,0x00000000,0x00000001, + 0x0004003d,0x00000012,0x00000335,0x00000079,0x0006000c,0x0000002f,0x00000336,0x00000001, + 0x00000040,0x00000335,0x0007004f,0x0000000c,0x00000337,0x00000336,0x00000336,0x00000000, + 0x00000001,0x00050083,0x0000000c,0x00000338,0x00000334,0x00000337,0x0006000c,0x0000000c, + 0x00000339,0x00000001,0x00000004,0x00000338,0x0003003e,0x0000033b,0x0000033a,0x00050039, + 0x0000000c,0x0000033c,0x00000022,0x0000033b,0x000500b8,0x0000033d,0x0000033e,0x00000339, + 0x0000033c,0x0004009b,0x000000f7,0x0000033f,0x0000033e,0x000300f7,0x00000341,0x00000000, + 0x000400fa,0x0000033f,0x00000340,0x00000346,0x000200f8,0x00000340,0x0004003d,0x00000006, + 0x00000342,0x0000007b,0x00050041,0x00000007,0x00000343,0x0000007a,0x000000bc,0x0004003d, + 0x00000006,0x00000344,0x00000343,0x0007000c,0x00000006,0x00000345,0x00000001,0x00000025, + 0x00000342,0x00000344,0x0003003e,0x0000007b,0x00000345,0x000200f9,0x00000341,0x000200f8, + 0x00000346,0x0003003e,0x0000007b,0x000000e8,0x000200f9,0x00000341,0x000200f8,0x00000341, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000087,0x00000000,0x00000081,0x00030037, + 0x00000013,0x00000082,0x00030037,0x00000007,0x00000083,0x00030037,0x0000003b,0x00000084, + 0x00030037,0x0000003b,0x00000085,0x00030037,0x00000080,0x00000086,0x000200f8,0x00000088, + 0x0004003b,0x00000348,0x00000349,0x00000007,0x0004003b,0x00000007,0x00000352,0x00000007, + 0x0004003b,0x00000007,0x00000371,0x00000007,0x0004003b,0x00000007,0x00000373,0x00000007, + 0x0004003b,0x00000013,0x00000379,0x00000007,0x0004003b,0x00000013,0x00000388,0x00000007, + 0x0004003b,0x0000003b,0x0000038a,0x00000007,0x0004003b,0x00000007,0x0000038b,0x00000007, + 0x0004003b,0x0000039a,0x0000039b,0x00000007,0x0004003b,0x0000003b,0x000003a4,0x00000007, + 0x0004003b,0x0000003b,0x000003a9,0x00000007,0x0004003b,0x0000000d,0x000003af,0x00000007, + 0x0004003b,0x0000000d,0x000003b9,0x00000007,0x0004003b,0x0000000d,0x000003c2,0x00000007, + 0x0004003b,0x00000007,0x000003c4,0x00000007,0x0004003b,0x00000013,0x000003cf,0x00000007, + 0x0004003b,0x00000007,0x000003e9,0x00000007,0x0004003b,0x0000039a,0x000003ec,0x00000007, + 0x0004003b,0x0000003b,0x000003ef,0x00000007,0x0004003b,0x0000003b,0x000003f3,0x00000007, + 0x0004003b,0x0000000d,0x000003f9,0x00000007,0x0004003b,0x00000007,0x00000401,0x00000007, + 0x0004003b,0x00000007,0x00000404,0x00000007,0x0004003b,0x00000007,0x0000040f,0x00000007, + 0x0004003b,0x00000007,0x00000417,0x00000007,0x0004003b,0x00000013,0x00000437,0x00000007, + 0x0004003b,0x00000013,0x0000043d,0x00000007,0x0004003b,0x0000003b,0x00000443,0x00000007, + 0x0004003b,0x0000003b,0x00000447,0x00000007,0x0004003b,0x00000034,0x0000044a,0x00000007, + 0x0004003b,0x0000003b,0x0000044d,0x00000007,0x0004003b,0x00000013,0x0000044e,0x00000007, + 0x0004003d,0x00000012,0x0000034e,0x00000082,0x00060041,0x0000034f,0x00000350,0x0000034d, + 0x000000da,0x0000034e,0x0004003d,0x00000347,0x00000351,0x00000350,0x0003003e,0x00000349, + 0x00000351,0x0004003d,0x00000006,0x00000353,0x00000083,0x0003003e,0x00000352,0x00000353, + 0x00050041,0x00000013,0x00000354,0x00000349,0x000000a6,0x0004003d,0x00000012,0x00000355, + 0x00000354,0x000500c7,0x00000012,0x00000357,0x00000355,0x00000356,0x000500ab,0x000000f7, + 0x00000358,0x00000357,0x000000a6,0x000300f7,0x0000035a,0x00000000,0x000400fa,0x00000358, + 0x00000359,0x0000035a,0x000200f8,0x00000359,0x0004003d,0x00000006,0x0000035b,0x00000352, + 0x0006000c,0x00000006,0x0000035c,0x00000001,0x00000004,0x0000035b,0x0003003e,0x00000352, + 0x0000035c,0x000300f7,0x0000035f,0x00000000,0x000400fa,0x0000035d,0x0000035e,0x0000035f, + 0x000200f8,0x0000035e,0x00050041,0x00000013,0x00000360,0x00000349,0x000000a6,0x0004003d, + 0x00000012,0x00000361,0x00000360,0x000500c7,0x00000012,0x00000363,0x00000361,0x00000362, + 0x000500ab,0x000000f7,0x00000364,0x00000363,0x000000a6,0x000200f9,0x0000035f,0x000200f8, + 0x0000035f,0x000700f5,0x000000f7,0x00000365,0x0000035d,0x00000359,0x00000364,0x0000035e, + 0x000300f7,0x00000367,0x00000000,0x000400fa,0x00000365,0x00000366,0x00000367,0x000200f8, + 0x00000366,0x0004003d,0x00000006,0x00000368,0x00000352,0x00050085,0x00000006,0x00000369, + 0x00000368,0x000001e6,0x0006000c,0x00000006,0x0000036a,0x00000001,0x0000000a,0x00000369, + 0x00050085,0x00000006,0x0000036b,0x0000036a,0x000001eb,0x00050081,0x00000006,0x0000036d, + 0x0000036b,0x0000036c,0x0006000c,0x00000006,0x0000036e,0x00000001,0x00000004,0x0000036d, + 0x00050083,0x00000006,0x0000036f,0x000000e7,0x0000036e,0x0003003e,0x00000352,0x0000036f, + 0x000200f9,0x00000367,0x000200f8,0x00000367,0x000200f9,0x0000035a,0x000200f8,0x0000035a, + 0x0004003d,0x00000006,0x00000370,0x00000352,0x0003003e,0x00000371,0x000000e8,0x00050039, + 0x00000006,0x00000372,0x00000019,0x00000371,0x0003003e,0x00000373,0x000000e7,0x00050039, + 0x00000006,0x00000374,0x00000019,0x00000373,0x0008000c,0x00000006,0x00000375,0x00000001, + 0x0000002b,0x00000370,0x00000372,0x00000374,0x0003003e,0x00000352,0x00000375,0x000300f7, + 0x00000378,0x00000000,0x000400fa,0x00000376,0x00000377,0x00000378,0x000200f8,0x00000377, + 0x00050041,0x00000013,0x0000037a,0x00000349,0x000000a6,0x0004003d,0x00000012,0x0000037b, + 0x0000037a,0x000500c2,0x00000012,0x0000037d,0x0000037b,0x0000037c,0x0003003e,0x00000379, + 0x0000037d,0x0004003d,0x00000012,0x0000037e,0x00000379,0x000500ab,0x000000f7,0x0000037f, + 0x0000037e,0x000000a6,0x000300f7,0x00000381,0x00000000,0x000400fa,0x0000037f,0x00000380, + 0x00000381,0x000200f8,0x00000380,0x0004003d,0x00000382,0x00000385,0x00000384,0x00050062, + 0x0000002f,0x00000387,0x00000385,0x00000386,0x0004003d,0x00000012,0x00000389,0x00000379, + 0x0003003e,0x00000388,0x00000389,0x0003003e,0x0000038a,0x00000387,0x0004003d,0x00000006, + 0x0000038c,0x00000352,0x0003003e,0x0000038b,0x0000038c,0x00070039,0x00000002,0x0000038d, + 0x0000007c,0x00000388,0x0000038a,0x0000038b,0x0004003d,0x00000006,0x0000038e,0x0000038b, + 0x0003003e,0x00000352,0x0000038e,0x000200f9,0x00000381,0x000200f8,0x00000381,0x000200f9, + 0x00000378,0x000200f8,0x00000378,0x000300f7,0x00000391,0x00000000,0x000400fa,0x0000038f, + 0x00000390,0x00000391,0x000200f8,0x00000390,0x00050041,0x00000013,0x00000392,0x00000349, + 0x000000a6,0x0004003d,0x00000012,0x00000393,0x00000392,0x000500c7,0x00000012,0x00000395, + 0x00000393,0x00000394,0x000500ab,0x000000f7,0x00000396,0x00000395,0x000000a6,0x000200f9, + 0x00000391,0x000200f8,0x00000391,0x000700f5,0x000000f7,0x00000397,0x0000038f,0x00000378, + 0x00000396,0x00000390,0x000300f7,0x00000399,0x00000000,0x000400fa,0x00000397,0x00000398, + 0x00000399,0x000200f8,0x00000398,0x0004003d,0x00000012,0x000003a0,0x00000082,0x00050084, + 0x00000012,0x000003a2,0x000003a0,0x000003a1,0x00050080,0x00000012,0x000003a3,0x000003a2, + 0x000000bc,0x00060041,0x000003a5,0x000003a6,0x0000039f,0x000000da,0x000003a3,0x0004003d, + 0x0000002f,0x000003a7,0x000003a6,0x0003003e,0x000003a4,0x000003a7,0x00050039,0x0000003c, + 0x000003a8,0x0000003f,0x000003a4,0x0003003e,0x0000039b,0x000003a8,0x0004003d,0x00000012, + 0x000003aa,0x00000082,0x00050084,0x00000012,0x000003ab,0x000003aa,0x000003a1,0x00050080, + 0x00000012,0x000003ac,0x000003ab,0x000000d3,0x00060041,0x000003a5,0x000003ad,0x0000039f, + 0x000000da,0x000003ac,0x0004003d,0x0000002f,0x000003ae,0x000003ad,0x0003003e,0x000003a9, + 0x000003ae,0x0004003d,0x0000003c,0x000003b0,0x0000039b,0x0004003d,0x0000002f,0x000003b3, + 0x000003b2,0x0007004f,0x0000000c,0x000003b4,0x000003b3,0x000003b3,0x00000000,0x00000001, + 0x00050091,0x0000000c,0x000003b5,0x000003b0,0x000003b4,0x0004003d,0x0000002f,0x000003b6, + 0x000003a9,0x0007004f,0x0000000c,0x000003b7,0x000003b6,0x000003b6,0x00000000,0x00000001, + 0x00050081,0x0000000c,0x000003b8,0x000003b5,0x000003b7,0x0003003e,0x000003af,0x000003b8, + 0x0004003d,0x0000000c,0x000003ba,0x000003af,0x0006000c,0x0000000c,0x000003bb,0x00000001, + 0x00000004,0x000003ba,0x0004003d,0x0000002f,0x000003bc,0x000003a9,0x0007004f,0x0000000c, + 0x000003bd,0x000003bc,0x000003bc,0x00000002,0x00000003,0x00050085,0x0000000c,0x000003be, + 0x000003bb,0x000003bd,0x0004003d,0x0000002f,0x000003bf,0x000003a9,0x0007004f,0x0000000c, + 0x000003c0,0x000003bf,0x000003bf,0x00000002,0x00000003,0x00050083,0x0000000c,0x000003c1, + 0x000003be,0x000003c0,0x0003003e,0x000003c2,0x000003c1,0x00050039,0x0000000c,0x000003c3, + 0x00000010,0x000003c2,0x0003003e,0x000003b9,0x000003c3,0x00050041,0x00000007,0x000003c5, + 0x000003b9,0x000000a6,0x0004003d,0x00000006,0x000003c6,0x000003c5,0x00050041,0x00000007, + 0x000003c7,0x000003b9,0x000000a9,0x0004003d,0x00000006,0x000003c8,0x000003c7,0x0007000c, + 0x00000006,0x000003c9,0x00000001,0x00000025,0x000003c6,0x000003c8,0x00050081,0x00000006, + 0x000003ca,0x000003c9,0x000001e6,0x0008000c,0x00000006,0x000003cb,0x00000001,0x0000002b, + 0x000003ca,0x000000e8,0x000000e7,0x0003003e,0x000003c4,0x000003cb,0x0004003d,0x00000006, + 0x000003cc,0x00000352,0x0004003d,0x00000006,0x000003cd,0x000003c4,0x0007000c,0x00000006, + 0x000003ce,0x00000001,0x00000025,0x000003cc,0x000003cd,0x0003003e,0x00000352,0x000003ce, + 0x000200f9,0x00000399,0x000200f8,0x00000399,0x00050041,0x00000013,0x000003d0,0x00000349, + 0x000000a6,0x0004003d,0x00000012,0x000003d1,0x000003d0,0x000500c7,0x00000012,0x000003d3, + 0x000003d1,0x000003d2,0x0003003e,0x000003cf,0x000003d3,0x0004003d,0x00000012,0x000003d4, + 0x000003cf,0x000500b2,0x000000f7,0x000003d5,0x000003d4,0x000000a9,0x000300f7,0x000003d7, + 0x00000000,0x000400fa,0x000003d5,0x000003d6,0x000003eb,0x000200f8,0x000003d6,0x00050041, + 0x00000013,0x000003d8,0x00000349,0x000000a9,0x0004003d,0x00000012,0x000003d9,0x000003d8, + 0x0006000c,0x0000002f,0x000003da,0x00000001,0x00000040,0x000003d9,0x0003003e,0x00000084, + 0x000003da,0x0004003d,0x00000012,0x000003db,0x000003cf,0x000500aa,0x000000f7,0x000003dc, + 0x000003db,0x000000a6,0x000500a7,0x000000f7,0x000003dd,0x00000376,0x000003dc,0x000300f7, + 0x000003df,0x00000000,0x000400fa,0x000003dd,0x000003de,0x000003df,0x000200f8,0x000003de, + 0x0004003d,0x0000002f,0x000003e0,0x00000084,0x0007004f,0x0000000c,0x000003e1,0x000003e0, + 0x000003e0,0x00000002,0x00000003,0x00050041,0x00000007,0x000003e2,0x00000085,0x000000a6, + 0x00050051,0x00000006,0x000003e3,0x000003e1,0x00000000,0x0003003e,0x000003e2,0x000003e3, + 0x00050041,0x00000007,0x000003e4,0x00000085,0x000000a9,0x00050051,0x00000006,0x000003e5, + 0x000003e1,0x00000001,0x0003003e,0x000003e4,0x000003e5,0x0004003d,0x00000006,0x000003e6, + 0x00000352,0x00050041,0x00000007,0x000003e7,0x00000085,0x000000bc,0x0003003e,0x000003e7, + 0x000003e6,0x00050041,0x00000007,0x000003e8,0x00000085,0x000000d3,0x0003003e,0x000003e8, + 0x000000e7,0x0003003e,0x000003e9,0x000000e8,0x00050039,0x0000002f,0x000003ea,0x00000032, + 0x000003e9,0x0003003e,0x00000084,0x000003ea,0x000200f9,0x000003df,0x000200f8,0x000003df, + 0x000200f9,0x000003d7,0x000200f8,0x000003eb,0x0004003d,0x00000012,0x000003ed,0x00000082, + 0x00050084,0x00000012,0x000003ee,0x000003ed,0x000003a1,0x00060041,0x000003a5,0x000003f0, + 0x0000039f,0x000000da,0x000003ee,0x0004003d,0x0000002f,0x000003f1,0x000003f0,0x0003003e, + 0x000003ef,0x000003f1,0x00050039,0x0000003c,0x000003f2,0x0000003f,0x000003ef,0x0003003e, + 0x000003ec,0x000003f2,0x0004003d,0x00000012,0x000003f4,0x00000082,0x00050084,0x00000012, + 0x000003f5,0x000003f4,0x000003a1,0x00050080,0x00000012,0x000003f6,0x000003f5,0x000000a9, + 0x00060041,0x000003a5,0x000003f7,0x0000039f,0x000000da,0x000003f6,0x0004003d,0x0000002f, + 0x000003f8,0x000003f7,0x0003003e,0x000003f3,0x000003f8,0x0004003d,0x0000003c,0x000003fa, + 0x000003ec,0x0004003d,0x0000002f,0x000003fb,0x000003b2,0x0007004f,0x0000000c,0x000003fc, + 0x000003fb,0x000003fb,0x00000000,0x00000001,0x00050091,0x0000000c,0x000003fd,0x000003fa, + 0x000003fc,0x0004003d,0x0000002f,0x000003fe,0x000003f3,0x0007004f,0x0000000c,0x000003ff, + 0x000003fe,0x000003fe,0x00000000,0x00000001,0x00050081,0x0000000c,0x00000400,0x000003fd, + 0x000003ff,0x0003003e,0x000003f9,0x00000400,0x0004003d,0x00000012,0x00000402,0x000003cf, + 0x000500aa,0x000000f7,0x00000403,0x00000402,0x000000bc,0x000300f7,0x00000406,0x00000000, + 0x000400fa,0x00000403,0x00000405,0x00000409,0x000200f8,0x00000405,0x00050041,0x00000007, + 0x00000407,0x000003f9,0x000000a6,0x0004003d,0x00000006,0x00000408,0x00000407,0x0003003e, + 0x00000404,0x00000408,0x000200f9,0x00000406,0x000200f8,0x00000409,0x0004003d,0x0000000c, + 0x0000040a,0x000003f9,0x0006000c,0x00000006,0x0000040b,0x00000001,0x00000042,0x0000040a, + 0x0003003e,0x00000404,0x0000040b,0x000200f9,0x00000406,0x000200f8,0x00000406,0x0004003d, + 0x00000006,0x0000040c,0x00000404,0x0003003e,0x00000401,0x0000040c,0x0004003d,0x00000006, + 0x0000040d,0x00000401,0x0008000c,0x00000006,0x0000040e,0x00000001,0x0000002b,0x0000040d, + 0x000000e8,0x000000e7,0x0003003e,0x00000401,0x0000040e,0x0004003d,0x00000006,0x00000410, + 0x00000401,0x00050041,0x00000007,0x00000411,0x000003f3,0x000000bc,0x0004003d,0x00000006, + 0x00000412,0x00000411,0x00050085,0x00000006,0x00000413,0x00000410,0x00000412,0x00050041, + 0x00000007,0x00000414,0x000003f3,0x000000d3,0x0004003d,0x00000006,0x00000415,0x00000414, + 0x00050081,0x00000006,0x00000416,0x00000413,0x00000415,0x0003003e,0x0000040f,0x00000416, + 0x00050041,0x00000013,0x00000418,0x00000349,0x000000a9,0x0004003d,0x00000012,0x00000419, + 0x00000418,0x0004007c,0x00000006,0x0000041a,0x00000419,0x0003003e,0x00000417,0x0000041a, + 0x0004003d,0x0000041b,0x0000041e,0x0000041d,0x0004003d,0x0000041f,0x00000422,0x00000421, + 0x00050056,0x00000423,0x00000424,0x0000041e,0x00000422,0x0004003d,0x00000006,0x00000425, + 0x0000040f,0x0004003d,0x00000006,0x00000426,0x00000417,0x00050050,0x0000000c,0x00000427, + 0x00000425,0x00000426,0x00070058,0x0000002f,0x00000428,0x00000424,0x00000427,0x00000002, + 0x000000e8,0x0003003e,0x00000084,0x00000428,0x000200f9,0x000003d7,0x000200f8,0x000003d7, + 0x0004003d,0x00000006,0x00000429,0x00000352,0x00050041,0x00000007,0x0000042a,0x00000084, + 0x000000d3,0x0004003d,0x00000006,0x0000042b,0x0000042a,0x00050085,0x00000006,0x0000042c, + 0x0000042b,0x00000429,0x00050041,0x00000007,0x0000042d,0x00000084,0x000000d3,0x0003003e, + 0x0000042d,0x0000042c,0x000300f7,0x00000430,0x00000000,0x000400fa,0x0000042e,0x0000042f, + 0x00000430,0x000200f8,0x0000042f,0x00050041,0x00000007,0x00000431,0x00000084,0x000000d3, + 0x0004003d,0x00000006,0x00000432,0x00000431,0x000500b7,0x000000f7,0x00000433,0x00000432, + 0x000000e8,0x000200f9,0x00000430,0x000200f8,0x00000430,0x000700f5,0x000000f7,0x00000434, + 0x0000042e,0x000003d7,0x00000433,0x0000042f,0x000300f7,0x00000436,0x00000000,0x000400fa, + 0x00000434,0x00000435,0x00000436,0x000200f8,0x00000435,0x00050041,0x00000013,0x00000438, + 0x00000349,0x000000a6,0x0004003d,0x00000012,0x00000439,0x00000438,0x000500c2,0x00000012, + 0x0000043b,0x00000439,0x0000043a,0x000500c7,0x00000012,0x0000043c,0x0000043b,0x000003d2, + 0x0003003e,0x0000043d,0x0000043c,0x00050039,0x00000012,0x0000043e,0x00000016,0x0000043d, + 0x0003003e,0x00000437,0x0000043e,0x000500ab,0x000000f7,0x0000043f,0x0000043e,0x000000a6, + 0x000200f9,0x00000436,0x000200f8,0x00000436,0x000700f5,0x000000f7,0x00000440,0x00000434, + 0x00000430,0x0000043f,0x00000435,0x000300f7,0x00000442,0x00000000,0x000400fa,0x00000440, + 0x00000441,0x00000442,0x000200f8,0x00000441,0x0004003d,0x00000382,0x00000445,0x00000444, + 0x00050062,0x0000002f,0x00000446,0x00000445,0x00000386,0x0003003e,0x00000443,0x00000446, + 0x0004003d,0x0000002f,0x00000448,0x00000443,0x0003003e,0x00000447,0x00000448,0x00050039, + 0x0000002f,0x00000449,0x00000046,0x00000447,0x0004003d,0x0000002f,0x0000044b,0x00000084, + 0x0008004f,0x00000024,0x0000044c,0x0000044b,0x0000044b,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x0000044a,0x0000044c,0x0003003e,0x0000044d,0x00000449,0x0004003d,0x00000012, + 0x0000044f,0x00000437,0x0003003e,0x0000044e,0x0000044f,0x00070039,0x00000024,0x00000450, + 0x0000006e,0x0000044a,0x0000044d,0x0000044e,0x00050041,0x00000007,0x00000451,0x00000084, + 0x000000a6,0x00050051,0x00000006,0x00000452,0x00000450,0x00000000,0x0003003e,0x00000451, + 0x00000452,0x00050041,0x00000007,0x00000453,0x00000084,0x000000a9,0x00050051,0x00000006, + 0x00000454,0x00000450,0x00000001,0x0003003e,0x00000453,0x00000454,0x00050041,0x00000007, + 0x00000455,0x00000084,0x000000bc,0x00050051,0x00000006,0x00000456,0x00000450,0x00000002, + 0x0003003e,0x00000455,0x00000456,0x000200f9,0x00000442,0x000200f8,0x00000442,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000008c,0x00000000,0x00000089,0x00030037,0x0000003b, + 0x0000008a,0x00030037,0x00000080,0x0000008b,0x000200f8,0x0000008d,0x0004003d,0x0000002f, + 0x00000459,0x0000008a,0x0003003e,0x00000458,0x00000459,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000090,0x00000000,0x00000089,0x00030037,0x0000003b,0x0000008e,0x00030037, + 0x00000080,0x0000008f,0x000200f8,0x00000091,0x0004003d,0x0000002f,0x0000045b,0x0000008e, + 0x0003003e,0x0000045a,0x0000045b,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_draw_path.vert.h b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.vert.h new file mode 100644 index 00000000..73203c47 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_draw_path.vert.h @@ -0,0 +1,643 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_draw_path_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x00000305,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000c000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x000002ad,0x000002b0,0x000002b3, + 0x000002b4,0x000002b8,0x000002c9,0x000002f1,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163,0x6f6c665f,0x745f7461,0x61685f6f, + 0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078,0x00090005,0x00000010,0x74736163, + 0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005,0x0000000f, + 0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f,0x6f745f74,0x6873755f,0x2874726f, + 0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005,0x00000019,0x656b616d,0x6c61685f, + 0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078,0x00070005,0x0000001e,0x656b616d, + 0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x0000001c,0x00000078,0x00030005, + 0x0000001d,0x00000079,0x00070005,0x00000025,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x00000024,0x00000078,0x00080005,0x00000028,0x746e6f63,0x5f72756f, + 0x61746164,0x7864695f,0x3b317528,0x00000000,0x00070005,0x00000027,0x746e6f63,0x4972756f, + 0x74695744,0x616c4668,0x00007367,0x00080005,0x0000002f,0x73736574,0x7865745f,0x635f6c65, + 0x64726f6f,0x3b316928,0x00000000,0x00050005,0x0000002e,0x65786574,0x646e496c,0x00007865, + 0x000a0005,0x00000035,0x686e616d,0x61747461,0x69705f6e,0x5f6c6578,0x74646977,0x666d2868, + 0x763b3232,0x003b3266,0x00030005,0x00000033,0x0000004d,0x00050005,0x00000034,0x6d726f6e, + 0x7a696c61,0x00006465,0x00100005,0x0000003f,0x61706e75,0x745f6b63,0x65737365,0x74616c6c, + 0x705f6465,0x5f687461,0x74726576,0x76287865,0x763b3466,0x693b3466,0x31753b31,0x3266763b, + 0x3266763b,0x0000003b,0x00060005,0x00000039,0x63746170,0x72655668,0x44786574,0x00617461, + 0x00070005,0x0000003a,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174,0x00050005, + 0x0000003b,0x736e695f,0x636e6174,0x00444965,0x00050005,0x0000003c,0x5074756f,0x49687461, + 0x00000044,0x00070005,0x0000003d,0x5674756f,0x65747265,0x736f5078,0x6f697469,0x0000006e, + 0x00060005,0x0000003e,0x4574756f,0x44656764,0x61747369,0x0065636e,0x00030005,0x00000053, + 0x00746572,0x00030005,0x0000007b,0x00000076,0x00060005,0x0000008d,0x61636f6c,0x7265566c, + 0x49786574,0x00000044,0x00040005,0x00000091,0x7374756f,0x00007465,0x00060005,0x00000094, + 0x6c6c6966,0x65766f43,0x65676172,0x00000000,0x00070005,0x00000098,0x63746170,0x67655368, + 0x746e656d,0x6e617053,0x00000000,0x00050005,0x0000009f,0x74726576,0x79547865,0x00006570, + 0x00070005,0x000000a5,0x74726576,0x44497865,0x6f436e4f,0x756f746e,0x00000072,0x00060005, + 0x000000ab,0x73736574,0x74726556,0x64497865,0x00000078,0x00060005,0x000000b3,0x73736574, + 0x74726556,0x61447865,0x00006174,0x00090005,0x000000b6,0x5058455f,0x4554524f,0x65745f44, + 0x65567373,0x78657472,0x74786554,0x00657275,0x00040005,0x000000b8,0x61726170,0x0000006d, + 0x00070005,0x000000bd,0x746e6f63,0x4972756f,0x74695744,0x616c4668,0x00007367,0x00050005, + 0x000000c0,0x746e6f63,0x4472756f,0x00617461,0x00060005,0x000000c2,0x746e6f43,0x4272756f, + 0x65666675,0x00000072,0x00050006,0x000000c2,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x000000c4,0x5058455f,0x4554524f,0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00040005, + 0x000000c5,0x61726170,0x0000006d,0x00050005,0x000000cb,0x7064696d,0x746e696f,0x00000000, + 0x00060005,0x000000d3,0x74726576,0x6e497865,0x30786564,0x00000000,0x00030005,0x000000d6, + 0x0000004d,0x00050005,0x000000d8,0x68746150,0x66667542,0x00007265,0x00050006,0x000000d8, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000da,0x5058455f,0x4554524f,0x61705f44, + 0x75426874,0x72656666,0x00000000,0x00040005,0x000000e1,0x61726170,0x0000006d,0x00050005, + 0x000000e3,0x68746170,0x61746144,0x00000000,0x00050005,0x000000e9,0x6e617274,0x74616c73, + 0x00000065,0x00060005,0x000000ed,0x6f727473,0x6152656b,0x73756964,0x00000000,0x00070005, + 0x000000f1,0x7272696d,0x6465726f,0x746e6f43,0x4672756f,0x0067616c,0x00090005,0x0000010a, + 0x6c706572,0x6d656361,0x54746e65,0x56737365,0x65747265,0x74614478,0x00000061,0x00040005, + 0x0000010c,0x61726170,0x0000006d,0x00050005,0x0000011a,0x6c437369,0x6465736f,0x00000000, + 0x00040005,0x0000012a,0x61726170,0x0000006d,0x00040005,0x00000135,0x74656874,0x00000061, + 0x00040005,0x00000139,0x6d726f6e,0x00000000,0x00040005,0x00000140,0x6769726f,0x00006e69, + 0x00050005,0x0000015d,0x61526161,0x73756964,0x00000000,0x00040005,0x0000015e,0x61726170, + 0x0000006d,0x00040005,0x00000160,0x61726170,0x0000006d,0x00060005,0x00000165,0x626f6c67, + 0x6f436c61,0x61726576,0x00006567,0x00040005,0x0000016b,0x61726170,0x0000006d,0x00040005, + 0x0000016e,0x61726170,0x0000006d,0x00060005,0x00000173,0x74726576,0x664f7865,0x74657366, + 0x00000000,0x00030005,0x00000179,0x00000078,0x00040005,0x0000018d,0x61726170,0x0000006d, + 0x00050005,0x0000018f,0x6e696f6a,0x65707954,0x00000000,0x00040005,0x00000197,0x6b656570, + 0x00726944,0x00070005,0x000001a8,0x6568746f,0x696f4a72,0x7865546e,0x6f436c65,0x0064726f, + 0x00040005,0x000001ac,0x61726170,0x0000006d,0x00060005,0x000001ae,0x6568746f,0x696f4a72, + 0x7461446e,0x00000061,0x00060005,0x000001b2,0x6568746f,0x696f4a72,0x6568546e,0x00006174, + 0x00050005,0x000001b6,0x6e696f6a,0x6c676e41,0x00000065,0x00040005,0x000001c3,0x61547369, + 0x0000306e,0x00050005,0x000001c7,0x654c7369,0x6f4a7466,0x00006e69,0x00050005,0x000001cb, + 0x65736962,0x68547463,0x00617465,0x00050005,0x000001d5,0x65736962,0x726f7463,0x00000000, + 0x00070005,0x000001dc,0x65736962,0x69507463,0x576c6578,0x68746469,0x00000000,0x00040005, + 0x000001dd,0x61726170,0x0000006d,0x00040005,0x000001df,0x61726170,0x0000006d,0x00050005, + 0x000001e2,0x6574696d,0x74615272,0x00006f69,0x00070005,0x000001f5,0x6574696d,0x766e4972, + 0x65737265,0x696d694c,0x00000074,0x00050005,0x000001fb,0x70696c63,0x69646152,0x00007375, + 0x00060005,0x00000209,0x70696c63,0x61524141,0x73756964,0x00000000,0x00060005,0x00000214, + 0x6f727473,0x4141656b,0x64696152,0x00007375,0x00040005,0x00000218,0x706f6c73,0x00000000, + 0x00060005,0x00000225,0x6574696d,0x52414172,0x75696461,0x00000073,0x00060005,0x0000022e, + 0x65736962,0x41417463,0x7366664f,0x00007465,0x00030005,0x00000232,0x0000006b,0x00030005, + 0x00000246,0x00007470,0x00060005,0x0000024b,0x70696c63,0x74736944,0x65636e61,0x00000000, + 0x00040005,0x00000259,0x61726170,0x0000006d,0x00040005,0x0000025e,0x61726170,0x0000006d, + 0x00040005,0x00000268,0x61726170,0x0000006d,0x00090005,0x0000026c,0x74736f70,0x6e617254, + 0x726f6673,0x7265566d,0x4f786574,0x65736666,0x00000074,0x00040005,0x00000293,0x61726170, + 0x0000006d,0x00040005,0x00000295,0x61726170,0x0000006d,0x00050005,0x000002ab,0x7265765f, + 0x49786574,0x00000044,0x00060005,0x000002ad,0x565f6c67,0x65747265,0x646e4978,0x00007865, + 0x00050005,0x000002af,0x736e695f,0x636e6174,0x00444965,0x00070005,0x000002b0,0x495f6c67, + 0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00090005,0x000002b3,0x5058455f,0x4554524f, + 0x5f615f44,0x63746170,0x72655668,0x44786574,0x00617461,0x000a0005,0x000002b4,0x5058455f, + 0x4554524f,0x5f615f44,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174,0x00040005, + 0x000002b5,0x68746170,0x00004449,0x00060005,0x000002b6,0x74726576,0x6f507865,0x69746973, + 0x00006e6f,0x00060005,0x000002b8,0x64655f76,0x69446567,0x6e617473,0x00006563,0x00040005, + 0x000002b9,0x61726170,0x0000006d,0x00040005,0x000002bb,0x61726170,0x0000006d,0x00040005, + 0x000002bd,0x61726170,0x0000006d,0x00040005,0x000002bf,0x61726170,0x0000006d,0x00040005, + 0x000002c0,0x61726170,0x0000006d,0x00040005,0x000002c1,0x61726170,0x0000006d,0x00050005, + 0x000002c9,0x61705f76,0x44496874,0x00000000,0x00040005,0x000002ca,0x61726170,0x0000006d, + 0x00030005,0x000002cd,0x00736f70,0x00080005,0x000002d1,0x5058455f,0x4554524f,0x6c465f44, + 0x55687375,0x6f66696e,0x00736d72,0x00090006,0x000002d1,0x00000000,0x64617267,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x000002d1,0x00000001,0x73736574, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x000002d1,0x00000002, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000, + 0x000b0006,0x000002d1,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00080006,0x000002d1,0x00000004,0x646e6572,0x61547265, + 0x74656772,0x74646957,0x00000068,0x00080006,0x000002d1,0x00000005,0x646e6572,0x61547265, + 0x74656772,0x67696548,0x00007468,0x00070006,0x000002d1,0x00000006,0x6f6c6f63,0x656c4372, + 0x61567261,0x0065756c,0x00080006,0x000002d1,0x00000007,0x65766f63,0x65676172,0x61656c43, + 0x6c615672,0x00006575,0x000a0006,0x000002d1,0x00000008,0x646e6572,0x61547265,0x74656772, + 0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x000002d1,0x00000009,0x65766f63, + 0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x000002d1,0x0000000a, + 0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x000002d1,0x0000000b, + 0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x000002d3,0x66696e75, + 0x736d726f,0x00000000,0x00060005,0x000002ef,0x505f6c67,0x65567265,0x78657472,0x00000000, + 0x00060006,0x000002ef,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x000002ef, + 0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x000002ef,0x00000002, + 0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x000002ef,0x00000003,0x435f6c67, + 0x446c6c75,0x61747369,0x0065636e,0x00030005,0x000002f1,0x00000000,0x00060005,0x000002f5, + 0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00060005,0x000002f6,0x616e456b,0x43656c62, + 0x5270696c,0x00746365,0x00080005,0x000002f7,0x616e456b,0x41656c62,0x6e617664,0x42646563, + 0x646e656c,0x00000000,0x00060005,0x000002f8,0x616e456b,0x45656c62,0x4f6e6576,0x00006464, + 0x00080005,0x000002f9,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067, + 0x00080005,0x000002fa,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000, + 0x00060005,0x000002fb,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000002fc, + 0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00050005, + 0x000002fe,0x6e696150,0x66754274,0x00726566,0x00050006,0x000002fe,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x00000300,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675, + 0x00000072,0x00060005,0x00000302,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006, + 0x00000302,0x00000000,0x6c61765f,0x00736575,0x00090005,0x00000304,0x5058455f,0x4554524f, + 0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00030047,0x0000000a,0x00000000, + 0x00030047,0x00000010,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000019, + 0x00000000,0x00030047,0x00000018,0x00000000,0x00030047,0x0000001e,0x00000000,0x00030047, + 0x0000001c,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x0000003e,0x00000000, + 0x00030047,0x00000042,0x00000000,0x00030047,0x00000043,0x00000000,0x00030047,0x00000047, + 0x00000000,0x00030047,0x00000048,0x00000000,0x00030047,0x0000004c,0x00000000,0x00030047, + 0x0000004d,0x00000000,0x00030047,0x00000050,0x00000000,0x00030047,0x00000053,0x00000000, + 0x00030047,0x00000054,0x00000000,0x00030047,0x00000057,0x00000000,0x00030047,0x0000005a, + 0x00000000,0x00040047,0x000000b6,0x00000022,0x00000000,0x00040047,0x000000b6,0x00000021, + 0x00000000,0x00040047,0x000000c1,0x00000006,0x00000010,0x00040048,0x000000c2,0x00000000, + 0x00000018,0x00050048,0x000000c2,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c2, + 0x00000003,0x00040047,0x000000c4,0x00000022,0x00000000,0x00040047,0x000000c4,0x00000021, + 0x00000006,0x00040047,0x000000d7,0x00000006,0x00000010,0x00040048,0x000000d8,0x00000000, + 0x00000018,0x00050048,0x000000d8,0x00000000,0x00000023,0x00000000,0x00030047,0x000000d8, + 0x00000003,0x00040047,0x000000da,0x00000022,0x00000000,0x00040047,0x000000da,0x00000021, + 0x00000003,0x00030047,0x00000165,0x00000000,0x00030047,0x0000016d,0x00000000,0x00030047, + 0x00000170,0x00000000,0x00030047,0x00000171,0x00000000,0x00030047,0x0000018e,0x00000000, + 0x00030047,0x0000025b,0x00000000,0x00030047,0x00000260,0x00000000,0x00030047,0x00000262, + 0x00000000,0x00030047,0x00000263,0x00000000,0x00030047,0x00000264,0x00000000,0x00030047, + 0x00000266,0x00000000,0x00030047,0x00000268,0x00000000,0x00030047,0x00000269,0x00000000, + 0x00030047,0x0000026a,0x00000000,0x00030047,0x00000293,0x00000000,0x00030047,0x00000295, + 0x00000000,0x00030047,0x00000296,0x00000000,0x00040047,0x000002ad,0x0000000b,0x0000002a, + 0x00040047,0x000002b0,0x0000000b,0x0000002b,0x00040047,0x000002b3,0x0000001e,0x00000000, + 0x00040047,0x000002b4,0x0000001e,0x00000001,0x00030047,0x000002b8,0x00000000,0x00040047, + 0x000002b8,0x0000001e,0x00000000,0x00030047,0x000002c1,0x00000000,0x00030047,0x000002c9, + 0x00000000,0x00030047,0x000002c9,0x0000000e,0x00040047,0x000002c9,0x0000001e,0x00000001, + 0x00030047,0x000002cc,0x00000000,0x00050048,0x000002d1,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000002d1,0x00000001,0x00000023,0x00000004,0x00050048,0x000002d1,0x00000002, + 0x00000023,0x00000008,0x00050048,0x000002d1,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x000002d1,0x00000004,0x00000023,0x00000010,0x00050048,0x000002d1,0x00000005,0x00000023, + 0x00000014,0x00050048,0x000002d1,0x00000006,0x00000023,0x00000018,0x00050048,0x000002d1, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x000002d1,0x00000008,0x00000023,0x00000020, + 0x00050048,0x000002d1,0x00000009,0x00000023,0x00000030,0x00050048,0x000002d1,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x000002d1,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x000002d1,0x00000002,0x00040047,0x000002d3,0x00000022,0x00000000,0x00040047,0x000002d3, + 0x00000021,0x00000007,0x00050048,0x000002ef,0x00000000,0x0000000b,0x00000000,0x00050048, + 0x000002ef,0x00000001,0x0000000b,0x00000001,0x00050048,0x000002ef,0x00000002,0x0000000b, + 0x00000003,0x00050048,0x000002ef,0x00000003,0x0000000b,0x00000004,0x00030047,0x000002ef, + 0x00000002,0x00040047,0x000002f5,0x00000001,0x00000000,0x00040047,0x000002f6,0x00000001, + 0x00000001,0x00040047,0x000002f7,0x00000001,0x00000002,0x00040047,0x000002f8,0x00000001, + 0x00000003,0x00040047,0x000002f9,0x00000001,0x00000004,0x00040047,0x000002fa,0x00000001, + 0x00000005,0x00040047,0x000002fb,0x00000001,0x00000006,0x00040047,0x000002fc,0x00000001, + 0x00000007,0x00040047,0x000002fd,0x00000006,0x00000008,0x00040048,0x000002fe,0x00000000, + 0x00000018,0x00050048,0x000002fe,0x00000000,0x00000023,0x00000000,0x00030047,0x000002fe, + 0x00000003,0x00040047,0x00000300,0x00000022,0x00000000,0x00040047,0x00000300,0x00000021, + 0x00000004,0x00040047,0x00000301,0x00000006,0x00000010,0x00040048,0x00000302,0x00000000, + 0x00000018,0x00050048,0x00000302,0x00000000,0x00000023,0x00000000,0x00030047,0x00000302, + 0x00000003,0x00040047,0x00000304,0x00000022,0x00000000,0x00040047,0x00000304,0x00000021, + 0x00000005,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006, + 0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002,0x00040020,0x0000000d,0x00000007, + 0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00040015,0x00000012,0x00000020, + 0x00000000,0x00040020,0x00000013,0x00000007,0x00000012,0x00040021,0x00000014,0x00000012, + 0x00000013,0x00050021,0x0000001b,0x0000000c,0x00000007,0x00000007,0x00040017,0x00000020, + 0x00000006,0x00000004,0x00040020,0x00000021,0x00000007,0x00000020,0x00040018,0x00000022, + 0x0000000c,0x00000002,0x00040021,0x00000023,0x00000022,0x00000021,0x00040015,0x0000002a, + 0x00000020,0x00000001,0x00040020,0x0000002b,0x00000007,0x0000002a,0x00040017,0x0000002c, + 0x0000002a,0x00000002,0x00040021,0x0000002d,0x0000002c,0x0000002b,0x00040020,0x00000031, + 0x00000007,0x00000022,0x00050021,0x00000032,0x00000006,0x00000031,0x0000000d,0x00020014, + 0x00000037,0x00090021,0x00000038,0x00000037,0x00000021,0x00000021,0x0000002b,0x00000013, + 0x0000000d,0x0000000d,0x0004002b,0x00000012,0x00000055,0x00000000,0x0004002b,0x00000012, + 0x00000058,0x00000001,0x0004002b,0x00000006,0x00000061,0x3f800000,0x0004002b,0x00000006, + 0x00000062,0x00000000,0x0004002b,0x00000012,0x0000006d,0x0000ffff,0x0004002b,0x0000002a, + 0x00000073,0x000007ff,0x0004002b,0x0000002a,0x00000076,0x0000000b,0x0004002b,0x00000012, + 0x00000095,0x00000002,0x0004002b,0x00000012,0x00000099,0x00000003,0x0004002b,0x0000002a, + 0x0000009d,0x00000002,0x0004002b,0x0000002a,0x000000a3,0x00000003,0x0004002b,0x0000002a, + 0x000000a8,0x00000001,0x00040017,0x000000b1,0x00000012,0x00000004,0x00040020,0x000000b2, + 0x00000007,0x000000b1,0x00090019,0x000000b4,0x00000012,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000000b5,0x00000000,0x000000b4,0x0004003b, + 0x000000b5,0x000000b6,0x00000000,0x0004002b,0x0000002a,0x000000bb,0x00000000,0x0003001d, + 0x000000c1,0x000000b1,0x0003001e,0x000000c2,0x000000c1,0x00040020,0x000000c3,0x00000002, + 0x000000c2,0x0004003b,0x000000c3,0x000000c4,0x00000002,0x00040020,0x000000c8,0x00000002, + 0x000000b1,0x00040017,0x000000cc,0x00000012,0x00000002,0x0003001d,0x000000d7,0x000000b1, + 0x0003001e,0x000000d8,0x000000d7,0x00040020,0x000000d9,0x00000002,0x000000d8,0x0004003b, + 0x000000d9,0x000000da,0x00000002,0x0004002b,0x00000012,0x000000dc,0x00000004,0x0004002b, + 0x00000012,0x000000f3,0x02000000,0x0004002b,0x00000012,0x00000112,0x0200ffff,0x00040020, + 0x00000119,0x00000007,0x00000037,0x0004002b,0x00000012,0x00000131,0xfdffffff,0x0004002b, + 0x00000012,0x0000014e,0x00400000,0x0004002b,0x00000012,0x00000156,0x00200000,0x0004002b, + 0x00000006,0x00000163,0x3f000000,0x0004002b,0x00000006,0x00000180,0x40000000,0x0004002b, + 0x00000012,0x00000191,0x30000000,0x0004002b,0x00000012,0x00000199,0x01000000,0x00040020, + 0x000001a7,0x00000007,0x0000002c,0x0004002b,0x00000006,0x000001bc,0x40490fdb,0x0004002b, + 0x00000006,0x000001c0,0x40c90fdb,0x0004002b,0x00000006,0x000001d0,0xbf000000,0x0004002b, + 0x00000012,0x000001ec,0x20000000,0x0004002b,0x00000006,0x000001ef,0x3e800000,0x0004002b, + 0x00000012,0x000001f7,0x08000000,0x0004002b,0x00000012,0x0000020f,0x00800000,0x0004002b, + 0x00000006,0x0000021a,0x3e000000,0x0004002b,0x00000006,0x00000267,0x38d1b717,0x0003002a, + 0x00000037,0x00000276,0x0004002b,0x00000012,0x0000028a,0x04000000,0x0004002b,0x00000006, + 0x00000292,0xbf800000,0x0004002b,0x00000012,0x00000298,0x80000000,0x00030029,0x00000037, + 0x000002a8,0x00040020,0x000002ac,0x00000001,0x0000002a,0x0004003b,0x000002ac,0x000002ad, + 0x00000001,0x0004003b,0x000002ac,0x000002b0,0x00000001,0x00040020,0x000002b2,0x00000001, + 0x00000020,0x0004003b,0x000002b2,0x000002b3,0x00000001,0x0004003b,0x000002b2,0x000002b4, + 0x00000001,0x00040020,0x000002b7,0x00000003,0x0000000c,0x0004003b,0x000002b7,0x000002b8, + 0x00000003,0x00040020,0x000002c8,0x00000003,0x00000012,0x0004003b,0x000002c8,0x000002c9, + 0x00000003,0x00040017,0x000002d0,0x0000002a,0x00000004,0x000e001e,0x000002d1,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012,0x00000012,0x000002d0, + 0x00000012,0x00000012,0x00000006,0x00040020,0x000002d2,0x00000002,0x000002d1,0x0004003b, + 0x000002d2,0x000002d3,0x00000002,0x00040020,0x000002d4,0x00000002,0x00000006,0x0004001c, + 0x000002ee,0x00000006,0x00000058,0x0006001e,0x000002ef,0x00000020,0x00000006,0x000002ee, + 0x000002ee,0x00040020,0x000002f0,0x00000003,0x000002ef,0x0004003b,0x000002f0,0x000002f1, + 0x00000003,0x00040020,0x000002f3,0x00000003,0x00000020,0x00030031,0x00000037,0x000002f5, + 0x00030031,0x00000037,0x000002f6,0x00030031,0x00000037,0x000002f7,0x00030031,0x00000037, + 0x000002f8,0x00030031,0x00000037,0x000002f9,0x00030031,0x00000037,0x000002fa,0x00030031, + 0x00000037,0x000002fb,0x00030031,0x00000037,0x000002fc,0x0003001d,0x000002fd,0x000000cc, + 0x0003001e,0x000002fe,0x000002fd,0x00040020,0x000002ff,0x00000002,0x000002fe,0x0004003b, + 0x000002ff,0x00000300,0x00000002,0x0003001d,0x00000301,0x00000020,0x0003001e,0x00000302, + 0x00000301,0x00040020,0x00000303,0x00000002,0x00000302,0x0004003b,0x00000303,0x00000304, + 0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005, + 0x0004003b,0x0000002b,0x000002ab,0x00000007,0x0004003b,0x0000002b,0x000002af,0x00000007, + 0x0004003b,0x00000013,0x000002b5,0x00000007,0x0004003b,0x0000000d,0x000002b6,0x00000007, + 0x0004003b,0x00000021,0x000002b9,0x00000007,0x0004003b,0x00000021,0x000002bb,0x00000007, + 0x0004003b,0x0000002b,0x000002bd,0x00000007,0x0004003b,0x00000013,0x000002bf,0x00000007, + 0x0004003b,0x0000000d,0x000002c0,0x00000007,0x0004003b,0x0000000d,0x000002c1,0x00000007, + 0x0004003b,0x00000013,0x000002ca,0x00000007,0x0004003b,0x00000021,0x000002cd,0x00000007, + 0x0004003d,0x0000002a,0x000002ae,0x000002ad,0x0003003e,0x000002ab,0x000002ae,0x0004003d, + 0x0000002a,0x000002b1,0x000002b0,0x0003003e,0x000002af,0x000002b1,0x0004003d,0x00000020, + 0x000002ba,0x000002b3,0x0003003e,0x000002b9,0x000002ba,0x0004003d,0x00000020,0x000002bc, + 0x000002b4,0x0003003e,0x000002bb,0x000002bc,0x0004003d,0x0000002a,0x000002be,0x000002af, + 0x0003003e,0x000002bd,0x000002be,0x000a0039,0x00000037,0x000002c2,0x0000003f,0x000002b9, + 0x000002bb,0x000002bd,0x000002bf,0x000002c0,0x000002c1,0x0004003d,0x00000012,0x000002c3, + 0x000002bf,0x0003003e,0x000002b5,0x000002c3,0x0004003d,0x0000000c,0x000002c4,0x000002c0, + 0x0003003e,0x000002b6,0x000002c4,0x0004003d,0x0000000c,0x000002c5,0x000002c1,0x0003003e, + 0x000002b8,0x000002c5,0x000300f7,0x000002c7,0x00000000,0x000400fa,0x000002c2,0x000002c6, + 0x000002e4,0x000200f8,0x000002c6,0x0004003d,0x00000012,0x000002cb,0x000002b5,0x0003003e, + 0x000002ca,0x000002cb,0x00050039,0x00000012,0x000002cc,0x00000016,0x000002ca,0x0003003e, + 0x000002c9,0x000002cc,0x00050041,0x00000007,0x000002ce,0x000002b6,0x00000055,0x0004003d, + 0x00000006,0x000002cf,0x000002ce,0x00050041,0x000002d4,0x000002d5,0x000002d3,0x0000009d, + 0x0004003d,0x00000006,0x000002d6,0x000002d5,0x00050085,0x00000006,0x000002d7,0x000002cf, + 0x000002d6,0x00050083,0x00000006,0x000002d8,0x000002d7,0x00000061,0x00050041,0x00000007, + 0x000002d9,0x000002b6,0x00000058,0x0004003d,0x00000006,0x000002da,0x000002d9,0x00050041, + 0x000002d4,0x000002db,0x000002d3,0x000000a3,0x0004003d,0x00000006,0x000002dc,0x000002db, + 0x0004007f,0x00000006,0x000002dd,0x000002dc,0x00050085,0x00000006,0x000002de,0x000002da, + 0x000002dd,0x00050041,0x000002d4,0x000002df,0x000002d3,0x000000a3,0x0004003d,0x00000006, + 0x000002e0,0x000002df,0x0006000c,0x00000006,0x000002e1,0x00000001,0x00000006,0x000002e0, + 0x00050081,0x00000006,0x000002e2,0x000002de,0x000002e1,0x00070050,0x00000020,0x000002e3, + 0x000002d8,0x000002e2,0x00000062,0x00000061,0x0003003e,0x000002cd,0x000002e3,0x000200f9, + 0x000002c7,0x000200f8,0x000002e4,0x00050041,0x000002d4,0x000002e5,0x000002d3,0x00000076, + 0x0004003d,0x00000006,0x000002e6,0x000002e5,0x00050041,0x000002d4,0x000002e7,0x000002d3, + 0x00000076,0x0004003d,0x00000006,0x000002e8,0x000002e7,0x00050041,0x000002d4,0x000002e9, + 0x000002d3,0x00000076,0x0004003d,0x00000006,0x000002ea,0x000002e9,0x00050041,0x000002d4, + 0x000002eb,0x000002d3,0x00000076,0x0004003d,0x00000006,0x000002ec,0x000002eb,0x00070050, + 0x00000020,0x000002ed,0x000002e6,0x000002e8,0x000002ea,0x000002ec,0x0003003e,0x000002cd, + 0x000002ed,0x000200f9,0x000002c7,0x000200f8,0x000002c7,0x0004003d,0x00000020,0x000002f2, + 0x000002cd,0x00050041,0x000002f3,0x000002f4,0x000002f1,0x000000bb,0x0003003e,0x000002f4, + 0x000002f2,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000042, + 0x00000007,0x0004003d,0x00000006,0x00000041,0x00000009,0x0003003e,0x00000042,0x00000041, + 0x0004003d,0x00000006,0x00000043,0x00000042,0x000200fe,0x00000043,0x00010038,0x00050036, + 0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8, + 0x00000011,0x0004003b,0x0000000d,0x00000047,0x00000007,0x0004003d,0x0000000c,0x00000046, + 0x0000000f,0x0003003e,0x00000047,0x00000046,0x0004003d,0x0000000c,0x00000048,0x00000047, + 0x000200fe,0x00000048,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014, + 0x00030037,0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x0000004c, + 0x00000007,0x0004003d,0x00000012,0x0000004b,0x00000015,0x0003003e,0x0000004c,0x0000004b, + 0x0004003d,0x00000012,0x0000004d,0x0000004c,0x000200fe,0x0000004d,0x00010038,0x00050036, + 0x00000006,0x00000019,0x00000000,0x00000008,0x00030037,0x00000007,0x00000018,0x000200f8, + 0x0000001a,0x0004003d,0x00000006,0x00000050,0x00000018,0x000200fe,0x00000050,0x00010038, + 0x00050036,0x0000000c,0x0000001e,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c, + 0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x0000000d,0x00000053, + 0x00000007,0x0004003d,0x00000006,0x00000054,0x0000001c,0x00050041,0x00000007,0x00000056, + 0x00000053,0x00000055,0x0003003e,0x00000056,0x00000054,0x0004003d,0x00000006,0x00000057, + 0x0000001d,0x00050041,0x00000007,0x00000059,0x00000053,0x00000058,0x0003003e,0x00000059, + 0x00000057,0x0004003d,0x0000000c,0x0000005a,0x00000053,0x000200fe,0x0000005a,0x00010038, + 0x00050036,0x00000022,0x00000025,0x00000000,0x00000023,0x00030037,0x00000021,0x00000024, + 0x000200f8,0x00000026,0x0004003d,0x00000020,0x0000005d,0x00000024,0x0007004f,0x0000000c, + 0x0000005e,0x0000005d,0x0000005d,0x00000000,0x00000001,0x0004003d,0x00000020,0x0000005f, + 0x00000024,0x0007004f,0x0000000c,0x00000060,0x0000005f,0x0000005f,0x00000002,0x00000003, + 0x00050051,0x00000006,0x00000063,0x0000005e,0x00000000,0x00050051,0x00000006,0x00000064, + 0x0000005e,0x00000001,0x00050051,0x00000006,0x00000065,0x00000060,0x00000000,0x00050051, + 0x00000006,0x00000066,0x00000060,0x00000001,0x00050050,0x0000000c,0x00000067,0x00000063, + 0x00000064,0x00050050,0x0000000c,0x00000068,0x00000065,0x00000066,0x00050050,0x00000022, + 0x00000069,0x00000067,0x00000068,0x000200fe,0x00000069,0x00010038,0x00050036,0x00000012, + 0x00000028,0x00000000,0x00000014,0x00030037,0x00000013,0x00000027,0x000200f8,0x00000029, + 0x0004003d,0x00000012,0x0000006c,0x00000027,0x000500c7,0x00000012,0x0000006e,0x0000006c, + 0x0000006d,0x00050082,0x00000012,0x0000006f,0x0000006e,0x00000058,0x000200fe,0x0000006f, + 0x00010038,0x00050036,0x0000002c,0x0000002f,0x00000000,0x0000002d,0x00030037,0x0000002b, + 0x0000002e,0x000200f8,0x00000030,0x0004003d,0x0000002a,0x00000072,0x0000002e,0x000500c7, + 0x0000002a,0x00000074,0x00000072,0x00000073,0x0004003d,0x0000002a,0x00000075,0x0000002e, + 0x000500c3,0x0000002a,0x00000077,0x00000075,0x00000076,0x00050050,0x0000002c,0x00000078, + 0x00000074,0x00000077,0x000200fe,0x00000078,0x00010038,0x00050036,0x00000006,0x00000035, + 0x00000000,0x00000032,0x00030037,0x00000031,0x00000033,0x00030037,0x0000000d,0x00000034, + 0x000200f8,0x00000036,0x0004003b,0x0000000d,0x0000007b,0x00000007,0x0004003d,0x00000022, + 0x0000007c,0x00000033,0x0004003d,0x0000000c,0x0000007d,0x00000034,0x00050091,0x0000000c, + 0x0000007e,0x0000007c,0x0000007d,0x0003003e,0x0000007b,0x0000007e,0x00050041,0x00000007, + 0x0000007f,0x0000007b,0x00000055,0x0004003d,0x00000006,0x00000080,0x0000007f,0x0006000c, + 0x00000006,0x00000081,0x00000001,0x00000004,0x00000080,0x00050041,0x00000007,0x00000082, + 0x0000007b,0x00000058,0x0004003d,0x00000006,0x00000083,0x00000082,0x0006000c,0x00000006, + 0x00000084,0x00000001,0x00000004,0x00000083,0x00050081,0x00000006,0x00000085,0x00000081, + 0x00000084,0x0004003d,0x0000000c,0x00000086,0x0000007b,0x0004003d,0x0000000c,0x00000087, + 0x0000007b,0x00050094,0x00000006,0x00000088,0x00000086,0x00000087,0x00050088,0x00000006, + 0x00000089,0x00000061,0x00000088,0x00050085,0x00000006,0x0000008a,0x00000085,0x00000089, + 0x000200fe,0x0000008a,0x00010038,0x00050036,0x00000037,0x0000003f,0x00000000,0x00000038, + 0x00030037,0x00000021,0x00000039,0x00030037,0x00000021,0x0000003a,0x00030037,0x0000002b, + 0x0000003b,0x00030037,0x00000013,0x0000003c,0x00030037,0x0000000d,0x0000003d,0x00030037, + 0x0000000d,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000002b,0x0000008d,0x00000007, + 0x0004003b,0x00000007,0x00000091,0x00000007,0x0004003b,0x00000007,0x00000094,0x00000007, + 0x0004003b,0x0000002b,0x00000098,0x00000007,0x0004003b,0x0000002b,0x0000009f,0x00000007, + 0x0004003b,0x0000002b,0x000000a5,0x00000007,0x0004003b,0x0000002b,0x000000ab,0x00000007, + 0x0004003b,0x000000b2,0x000000b3,0x00000007,0x0004003b,0x0000002b,0x000000b8,0x00000007, + 0x0004003b,0x00000013,0x000000bd,0x00000007,0x0004003b,0x000000b2,0x000000c0,0x00000007, + 0x0004003b,0x00000013,0x000000c5,0x00000007,0x0004003b,0x0000000d,0x000000cb,0x00000007, + 0x0004003b,0x00000013,0x000000d3,0x00000007,0x0004003b,0x00000031,0x000000d6,0x00000007, + 0x0004003b,0x00000021,0x000000e1,0x00000007,0x0004003b,0x000000b2,0x000000e3,0x00000007, + 0x0004003b,0x0000000d,0x000000e9,0x00000007,0x0004003b,0x00000007,0x000000ed,0x00000007, + 0x0004003b,0x00000013,0x000000f1,0x00000007,0x0004003b,0x000000b2,0x0000010a,0x00000007, + 0x0004003b,0x0000002b,0x0000010c,0x00000007,0x0004003b,0x00000119,0x0000011a,0x00000007, + 0x0004003b,0x0000002b,0x0000012a,0x00000007,0x0004003b,0x00000007,0x00000135,0x00000007, + 0x0004003b,0x0000000d,0x00000139,0x00000007,0x0004003b,0x0000000d,0x00000140,0x00000007, + 0x0004003b,0x00000007,0x0000015d,0x00000007,0x0004003b,0x00000031,0x0000015e,0x00000007, + 0x0004003b,0x0000000d,0x00000160,0x00000007,0x0004003b,0x00000007,0x00000165,0x00000007, + 0x0004003b,0x00000007,0x0000016b,0x00000007,0x0004003b,0x00000007,0x0000016e,0x00000007, + 0x0004003b,0x0000000d,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000179,0x00000007, + 0x0004003b,0x0000000d,0x0000018d,0x00000007,0x0004003b,0x00000013,0x0000018f,0x00000007, + 0x0004003b,0x0000002b,0x00000197,0x00000007,0x0004003b,0x000001a7,0x000001a8,0x00000007, + 0x0004003b,0x0000002b,0x000001ac,0x00000007,0x0004003b,0x000000b2,0x000001ae,0x00000007, + 0x0004003b,0x00000007,0x000001b2,0x00000007,0x0004003b,0x00000007,0x000001b6,0x00000007, + 0x0004003b,0x00000119,0x000001c3,0x00000007,0x0004003b,0x00000119,0x000001c7,0x00000007, + 0x0004003b,0x00000007,0x000001cb,0x00000007,0x0004003b,0x0000000d,0x000001d5,0x00000007, + 0x0004003b,0x00000007,0x000001dc,0x00000007,0x0004003b,0x00000031,0x000001dd,0x00000007, + 0x0004003b,0x0000000d,0x000001df,0x00000007,0x0004003b,0x00000007,0x000001e2,0x00000007, + 0x0004003b,0x00000007,0x000001f5,0x00000007,0x0004003b,0x00000007,0x000001fb,0x00000007, + 0x0004003b,0x00000007,0x00000209,0x00000007,0x0004003b,0x00000007,0x00000214,0x00000007, + 0x0004003b,0x00000007,0x00000218,0x00000007,0x0004003b,0x00000007,0x00000225,0x00000007, + 0x0004003b,0x0000000d,0x0000022e,0x00000007,0x0004003b,0x0000000d,0x00000232,0x00000007, + 0x0004003b,0x0000000d,0x00000246,0x00000007,0x0004003b,0x00000007,0x0000024b,0x00000007, + 0x0004003b,0x00000007,0x00000259,0x00000007,0x0004003b,0x00000007,0x0000025e,0x00000007, + 0x0004003b,0x00000007,0x00000268,0x00000007,0x0004003b,0x0000000d,0x0000026c,0x00000007, + 0x0004003b,0x00000007,0x00000293,0x00000007,0x0004003b,0x00000007,0x00000295,0x00000007, + 0x00050041,0x00000007,0x0000008e,0x00000039,0x00000055,0x0004003d,0x00000006,0x0000008f, + 0x0000008e,0x0004006e,0x0000002a,0x00000090,0x0000008f,0x0003003e,0x0000008d,0x00000090, + 0x00050041,0x00000007,0x00000092,0x00000039,0x00000058,0x0004003d,0x00000006,0x00000093, + 0x00000092,0x0003003e,0x00000091,0x00000093,0x00050041,0x00000007,0x00000096,0x00000039, + 0x00000095,0x0004003d,0x00000006,0x00000097,0x00000096,0x0003003e,0x00000094,0x00000097, + 0x00050041,0x00000007,0x0000009a,0x00000039,0x00000099,0x0004003d,0x00000006,0x0000009b, + 0x0000009a,0x0004007c,0x0000002a,0x0000009c,0x0000009b,0x000500c3,0x0000002a,0x0000009e, + 0x0000009c,0x0000009d,0x0003003e,0x00000098,0x0000009e,0x00050041,0x00000007,0x000000a0, + 0x00000039,0x00000099,0x0004003d,0x00000006,0x000000a1,0x000000a0,0x0004007c,0x0000002a, + 0x000000a2,0x000000a1,0x000500c7,0x0000002a,0x000000a4,0x000000a2,0x000000a3,0x0003003e, + 0x0000009f,0x000000a4,0x0004003d,0x0000002a,0x000000a6,0x0000008d,0x0004003d,0x0000002a, + 0x000000a7,0x00000098,0x00050082,0x0000002a,0x000000a9,0x000000a7,0x000000a8,0x0007000c, + 0x0000002a,0x000000aa,0x00000001,0x00000027,0x000000a6,0x000000a9,0x0003003e,0x000000a5, + 0x000000aa,0x0004003d,0x0000002a,0x000000ac,0x0000003b,0x0004003d,0x0000002a,0x000000ad, + 0x00000098,0x00050084,0x0000002a,0x000000ae,0x000000ac,0x000000ad,0x0004003d,0x0000002a, + 0x000000af,0x000000a5,0x00050080,0x0000002a,0x000000b0,0x000000ae,0x000000af,0x0003003e, + 0x000000ab,0x000000b0,0x0004003d,0x000000b4,0x000000b7,0x000000b6,0x0004003d,0x0000002a, + 0x000000b9,0x000000ab,0x0003003e,0x000000b8,0x000000b9,0x00050039,0x0000002c,0x000000ba, + 0x0000002f,0x000000b8,0x0007005f,0x000000b1,0x000000bc,0x000000b7,0x000000ba,0x00000002, + 0x000000bb,0x0003003e,0x000000b3,0x000000bc,0x00050041,0x00000013,0x000000be,0x000000b3, + 0x00000099,0x0004003d,0x00000012,0x000000bf,0x000000be,0x0003003e,0x000000bd,0x000000bf, + 0x0004003d,0x00000012,0x000000c6,0x000000bd,0x0003003e,0x000000c5,0x000000c6,0x00050039, + 0x00000012,0x000000c7,0x00000028,0x000000c5,0x00060041,0x000000c8,0x000000c9,0x000000c4, + 0x000000bb,0x000000c7,0x0004003d,0x000000b1,0x000000ca,0x000000c9,0x0003003e,0x000000c0, + 0x000000ca,0x0004003d,0x000000b1,0x000000cd,0x000000c0,0x0007004f,0x000000cc,0x000000ce, + 0x000000cd,0x000000cd,0x00000000,0x00000001,0x0004007c,0x0000000c,0x000000cf,0x000000ce, + 0x0003003e,0x000000cb,0x000000cf,0x00050041,0x00000013,0x000000d0,0x000000c0,0x00000095, + 0x0004003d,0x00000012,0x000000d1,0x000000d0,0x000500c7,0x00000012,0x000000d2,0x000000d1, + 0x0000006d,0x0003003e,0x0000003c,0x000000d2,0x00050041,0x00000013,0x000000d4,0x000000c0, + 0x00000099,0x0004003d,0x00000012,0x000000d5,0x000000d4,0x0003003e,0x000000d3,0x000000d5, + 0x0004003d,0x00000012,0x000000db,0x0000003c,0x00050084,0x00000012,0x000000dd,0x000000db, + 0x000000dc,0x00060041,0x000000c8,0x000000de,0x000000da,0x000000bb,0x000000dd,0x0004003d, + 0x000000b1,0x000000df,0x000000de,0x0004007c,0x00000020,0x000000e0,0x000000df,0x0003003e, + 0x000000e1,0x000000e0,0x00050039,0x00000022,0x000000e2,0x00000025,0x000000e1,0x0003003e, + 0x000000d6,0x000000e2,0x0004003d,0x00000012,0x000000e4,0x0000003c,0x00050084,0x00000012, + 0x000000e5,0x000000e4,0x000000dc,0x00050080,0x00000012,0x000000e6,0x000000e5,0x00000058, + 0x00060041,0x000000c8,0x000000e7,0x000000da,0x000000bb,0x000000e6,0x0004003d,0x000000b1, + 0x000000e8,0x000000e7,0x0003003e,0x000000e3,0x000000e8,0x0004003d,0x000000b1,0x000000ea, + 0x000000e3,0x0007004f,0x000000cc,0x000000eb,0x000000ea,0x000000ea,0x00000000,0x00000001, + 0x0004007c,0x0000000c,0x000000ec,0x000000eb,0x0003003e,0x000000e9,0x000000ec,0x00050041, + 0x00000013,0x000000ee,0x000000e3,0x00000095,0x0004003d,0x00000012,0x000000ef,0x000000ee, + 0x0004007c,0x00000006,0x000000f0,0x000000ef,0x0003003e,0x000000ed,0x000000f0,0x0004003d, + 0x00000012,0x000000f2,0x000000bd,0x000500c7,0x00000012,0x000000f4,0x000000f2,0x000000f3, + 0x0003003e,0x000000f1,0x000000f4,0x0004003d,0x00000012,0x000000f5,0x000000f1,0x000500ab, + 0x00000037,0x000000f6,0x000000f5,0x00000055,0x000300f7,0x000000f8,0x00000000,0x000400fa, + 0x000000f6,0x000000f7,0x000000f8,0x000200f8,0x000000f7,0x00050041,0x00000007,0x000000f9, + 0x0000003a,0x00000055,0x0004003d,0x00000006,0x000000fa,0x000000f9,0x0004006e,0x0000002a, + 0x000000fb,0x000000fa,0x0003003e,0x0000008d,0x000000fb,0x00050041,0x00000007,0x000000fc, + 0x0000003a,0x00000058,0x0004003d,0x00000006,0x000000fd,0x000000fc,0x0003003e,0x00000091, + 0x000000fd,0x00050041,0x00000007,0x000000fe,0x0000003a,0x00000095,0x0004003d,0x00000006, + 0x000000ff,0x000000fe,0x0003003e,0x00000094,0x000000ff,0x000200f9,0x000000f8,0x000200f8, + 0x000000f8,0x0004003d,0x0000002a,0x00000100,0x0000008d,0x0004003d,0x0000002a,0x00000101, + 0x000000a5,0x000500ab,0x00000037,0x00000102,0x00000100,0x00000101,0x000300f7,0x00000104, + 0x00000000,0x000400fa,0x00000102,0x00000103,0x00000104,0x000200f8,0x00000103,0x0004003d, + 0x0000002a,0x00000105,0x0000008d,0x0004003d,0x0000002a,0x00000106,0x000000a5,0x00050082, + 0x0000002a,0x00000107,0x00000105,0x00000106,0x0004003d,0x0000002a,0x00000108,0x000000ab, + 0x00050080,0x0000002a,0x00000109,0x00000108,0x00000107,0x0003003e,0x000000ab,0x00000109, + 0x0004003d,0x000000b4,0x0000010b,0x000000b6,0x0004003d,0x0000002a,0x0000010d,0x000000ab, + 0x0003003e,0x0000010c,0x0000010d,0x00050039,0x0000002c,0x0000010e,0x0000002f,0x0000010c, + 0x0007005f,0x000000b1,0x0000010f,0x0000010b,0x0000010e,0x00000002,0x000000bb,0x0003003e, + 0x0000010a,0x0000010f,0x00050041,0x00000013,0x00000110,0x0000010a,0x00000099,0x0004003d, + 0x00000012,0x00000111,0x00000110,0x000500c7,0x00000012,0x00000113,0x00000111,0x00000112, + 0x0004003d,0x00000012,0x00000114,0x000000bd,0x000500c7,0x00000012,0x00000115,0x00000114, + 0x00000112,0x000500ab,0x00000037,0x00000116,0x00000113,0x00000115,0x000300f7,0x00000118, + 0x00000000,0x000400fa,0x00000116,0x00000117,0x0000012d,0x000200f8,0x00000117,0x0004003d, + 0x00000006,0x0000011b,0x000000ed,0x000500b4,0x00000037,0x0000011c,0x0000011b,0x00000062, + 0x000400a8,0x00000037,0x0000011d,0x0000011c,0x000300f7,0x0000011f,0x00000000,0x000400fa, + 0x0000011d,0x0000011e,0x0000011f,0x000200f8,0x0000011e,0x00050041,0x00000007,0x00000120, + 0x000000cb,0x00000055,0x0004003d,0x00000006,0x00000121,0x00000120,0x000500b7,0x00000037, + 0x00000122,0x00000121,0x00000062,0x000200f9,0x0000011f,0x000200f8,0x0000011f,0x000700f5, + 0x00000037,0x00000123,0x0000011c,0x00000117,0x00000122,0x0000011e,0x0003003e,0x0000011a, + 0x00000123,0x0004003d,0x00000037,0x00000124,0x0000011a,0x000300f7,0x00000126,0x00000000, + 0x000400fa,0x00000124,0x00000125,0x00000126,0x000200f8,0x00000125,0x0004003d,0x000000b4, + 0x00000127,0x000000b6,0x0004003d,0x00000012,0x00000128,0x000000d3,0x0004007c,0x0000002a, + 0x00000129,0x00000128,0x0003003e,0x0000012a,0x00000129,0x00050039,0x0000002c,0x0000012b, + 0x0000002f,0x0000012a,0x0007005f,0x000000b1,0x0000012c,0x00000127,0x0000012b,0x00000002, + 0x000000bb,0x0003003e,0x000000b3,0x0000012c,0x000200f9,0x00000126,0x000200f8,0x00000126, + 0x000200f9,0x00000118,0x000200f8,0x0000012d,0x0004003d,0x000000b1,0x0000012e,0x0000010a, + 0x0003003e,0x000000b3,0x0000012e,0x000200f9,0x00000118,0x000200f8,0x00000118,0x00050041, + 0x00000013,0x0000012f,0x000000b3,0x00000099,0x0004003d,0x00000012,0x00000130,0x0000012f, + 0x000500c7,0x00000012,0x00000132,0x00000130,0x00000131,0x0004003d,0x00000012,0x00000133, + 0x000000f1,0x000500c5,0x00000012,0x00000134,0x00000132,0x00000133,0x0003003e,0x000000bd, + 0x00000134,0x000200f9,0x00000104,0x000200f8,0x00000104,0x00050041,0x00000013,0x00000136, + 0x000000b3,0x00000095,0x0004003d,0x00000012,0x00000137,0x00000136,0x0004007c,0x00000006, + 0x00000138,0x00000137,0x0003003e,0x00000135,0x00000138,0x0004003d,0x00000006,0x0000013a, + 0x00000135,0x0006000c,0x00000006,0x0000013b,0x00000001,0x0000000d,0x0000013a,0x0004003d, + 0x00000006,0x0000013c,0x00000135,0x0006000c,0x00000006,0x0000013d,0x00000001,0x0000000e, + 0x0000013c,0x0004007f,0x00000006,0x0000013e,0x0000013d,0x00050050,0x0000000c,0x0000013f, + 0x0000013b,0x0000013e,0x0003003e,0x00000139,0x0000013f,0x0004003d,0x000000b1,0x00000141, + 0x000000b3,0x0007004f,0x000000cc,0x00000142,0x00000141,0x00000141,0x00000000,0x00000001, + 0x0004007c,0x0000000c,0x00000143,0x00000142,0x0003003e,0x00000140,0x00000143,0x0004003d, + 0x00000006,0x00000144,0x000000ed,0x000500b7,0x00000037,0x00000145,0x00000144,0x00000062, + 0x000300f7,0x00000147,0x00000000,0x000400fa,0x00000145,0x00000146,0x00000278,0x000200f8, + 0x00000146,0x0004003d,0x00000022,0x00000148,0x000000d6,0x0006000c,0x00000006,0x00000149, + 0x00000001,0x00000021,0x00000148,0x0006000c,0x00000006,0x0000014a,0x00000001,0x00000006, + 0x00000149,0x0004003d,0x00000006,0x0000014b,0x00000091,0x00050085,0x00000006,0x0000014c, + 0x0000014b,0x0000014a,0x0003003e,0x00000091,0x0000014c,0x0004003d,0x00000012,0x0000014d, + 0x000000bd,0x000500c7,0x00000012,0x0000014f,0x0000014d,0x0000014e,0x000500ab,0x00000037, + 0x00000150,0x0000014f,0x00000055,0x000300f7,0x00000152,0x00000000,0x000400fa,0x00000150, + 0x00000151,0x00000152,0x000200f8,0x00000151,0x0004003d,0x00000006,0x00000153,0x00000091, + 0x0007000c,0x00000006,0x00000154,0x00000001,0x00000025,0x00000153,0x00000062,0x0003003e, + 0x00000091,0x00000154,0x000200f9,0x00000152,0x000200f8,0x00000152,0x0004003d,0x00000012, + 0x00000155,0x000000bd,0x000500c7,0x00000012,0x00000157,0x00000155,0x00000156,0x000500ab, + 0x00000037,0x00000158,0x00000157,0x00000055,0x000300f7,0x0000015a,0x00000000,0x000400fa, + 0x00000158,0x00000159,0x0000015a,0x000200f8,0x00000159,0x0004003d,0x00000006,0x0000015b, + 0x00000091,0x0007000c,0x00000006,0x0000015c,0x00000001,0x00000028,0x0000015b,0x00000062, + 0x0003003e,0x00000091,0x0000015c,0x000200f9,0x0000015a,0x000200f8,0x0000015a,0x0004003d, + 0x00000022,0x0000015f,0x000000d6,0x0003003e,0x0000015e,0x0000015f,0x0004003d,0x0000000c, + 0x00000161,0x00000139,0x0003003e,0x00000160,0x00000161,0x00060039,0x00000006,0x00000162, + 0x00000035,0x0000015e,0x00000160,0x00050085,0x00000006,0x00000164,0x00000162,0x00000163, + 0x0003003e,0x0000015d,0x00000164,0x0003003e,0x00000165,0x00000061,0x0004003d,0x00000006, + 0x00000166,0x0000015d,0x0004003d,0x00000006,0x00000167,0x000000ed,0x000500ba,0x00000037, + 0x00000168,0x00000166,0x00000167,0x000300f7,0x0000016a,0x00000000,0x000400fa,0x00000168, + 0x00000169,0x0000016a,0x000200f8,0x00000169,0x0004003d,0x00000006,0x0000016c,0x000000ed, + 0x0003003e,0x0000016b,0x0000016c,0x00050039,0x00000006,0x0000016d,0x0000000a,0x0000016b, + 0x0004003d,0x00000006,0x0000016f,0x0000015d,0x0003003e,0x0000016e,0x0000016f,0x00050039, + 0x00000006,0x00000170,0x0000000a,0x0000016e,0x00050088,0x00000006,0x00000171,0x0000016d, + 0x00000170,0x0003003e,0x00000165,0x00000171,0x0004003d,0x00000006,0x00000172,0x0000015d, + 0x0003003e,0x000000ed,0x00000172,0x000200f9,0x0000016a,0x000200f8,0x0000016a,0x0004003d, + 0x0000000c,0x00000174,0x00000139,0x0004003d,0x00000006,0x00000175,0x000000ed,0x0004003d, + 0x00000006,0x00000176,0x0000015d,0x00050081,0x00000006,0x00000177,0x00000175,0x00000176, + 0x0005008e,0x0000000c,0x00000178,0x00000174,0x00000177,0x0003003e,0x00000173,0x00000178, + 0x0004003d,0x00000006,0x0000017a,0x00000091,0x0004003d,0x00000006,0x0000017b,0x000000ed, + 0x0004003d,0x00000006,0x0000017c,0x0000015d,0x00050081,0x00000006,0x0000017d,0x0000017b, + 0x0000017c,0x00050085,0x00000006,0x0000017e,0x0000017a,0x0000017d,0x0003003e,0x00000179, + 0x0000017e,0x0004003d,0x00000006,0x0000017f,0x0000015d,0x00050085,0x00000006,0x00000181, + 0x0000017f,0x00000180,0x00050088,0x00000006,0x00000182,0x00000061,0x00000181,0x0004003d, + 0x00000006,0x00000183,0x00000179,0x0004003d,0x00000006,0x00000184,0x00000179,0x0004007f, + 0x00000006,0x00000185,0x00000184,0x00050050,0x0000000c,0x00000186,0x00000183,0x00000185, + 0x0004003d,0x00000006,0x00000187,0x000000ed,0x00050050,0x0000000c,0x00000188,0x00000187, + 0x00000187,0x00050081,0x0000000c,0x00000189,0x00000186,0x00000188,0x0005008e,0x0000000c, + 0x0000018a,0x00000189,0x00000182,0x00050050,0x0000000c,0x0000018b,0x00000163,0x00000163, + 0x00050081,0x0000000c,0x0000018c,0x0000018a,0x0000018b,0x0003003e,0x0000018d,0x0000018c, + 0x00050039,0x0000000c,0x0000018e,0x00000010,0x0000018d,0x0003003e,0x0000003e,0x0000018e, + 0x0004003d,0x00000012,0x00000190,0x000000bd,0x000500c7,0x00000012,0x00000192,0x00000190, + 0x00000191,0x0003003e,0x0000018f,0x00000192,0x0004003d,0x00000012,0x00000193,0x0000018f, + 0x000500ab,0x00000037,0x00000194,0x00000193,0x00000055,0x000300f7,0x00000196,0x00000000, + 0x000400fa,0x00000194,0x00000195,0x00000196,0x000200f8,0x00000195,0x0003003e,0x00000197, + 0x0000009d,0x0004003d,0x00000012,0x00000198,0x000000bd,0x000500c7,0x00000012,0x0000019a, + 0x00000198,0x00000199,0x000500aa,0x00000037,0x0000019b,0x0000019a,0x00000055,0x000300f7, + 0x0000019d,0x00000000,0x000400fa,0x0000019b,0x0000019c,0x0000019d,0x000200f8,0x0000019c, + 0x0004003d,0x0000002a,0x0000019e,0x00000197,0x0004007e,0x0000002a,0x0000019f,0x0000019e, + 0x0003003e,0x00000197,0x0000019f,0x000200f9,0x0000019d,0x000200f8,0x0000019d,0x0004003d, + 0x00000012,0x000001a0,0x000000bd,0x000500c7,0x00000012,0x000001a1,0x000001a0,0x000000f3, + 0x000500ab,0x00000037,0x000001a2,0x000001a1,0x00000055,0x000300f7,0x000001a4,0x00000000, + 0x000400fa,0x000001a2,0x000001a3,0x000001a4,0x000200f8,0x000001a3,0x0004003d,0x0000002a, + 0x000001a5,0x00000197,0x0004007e,0x0000002a,0x000001a6,0x000001a5,0x0003003e,0x00000197, + 0x000001a6,0x000200f9,0x000001a4,0x000200f8,0x000001a4,0x0004003d,0x0000002a,0x000001a9, + 0x000000ab,0x0004003d,0x0000002a,0x000001aa,0x00000197,0x00050080,0x0000002a,0x000001ab, + 0x000001a9,0x000001aa,0x0003003e,0x000001ac,0x000001ab,0x00050039,0x0000002c,0x000001ad, + 0x0000002f,0x000001ac,0x0003003e,0x000001a8,0x000001ad,0x0004003d,0x000000b4,0x000001af, + 0x000000b6,0x0004003d,0x0000002c,0x000001b0,0x000001a8,0x0007005f,0x000000b1,0x000001b1, + 0x000001af,0x000001b0,0x00000002,0x000000bb,0x0003003e,0x000001ae,0x000001b1,0x00050041, + 0x00000013,0x000001b3,0x000001ae,0x00000095,0x0004003d,0x00000012,0x000001b4,0x000001b3, + 0x0004007c,0x00000006,0x000001b5,0x000001b4,0x0003003e,0x000001b2,0x000001b5,0x0004003d, + 0x00000006,0x000001b7,0x000001b2,0x0004003d,0x00000006,0x000001b8,0x00000135,0x00050083, + 0x00000006,0x000001b9,0x000001b7,0x000001b8,0x0006000c,0x00000006,0x000001ba,0x00000001, + 0x00000004,0x000001b9,0x0003003e,0x000001b6,0x000001ba,0x0004003d,0x00000006,0x000001bb, + 0x000001b6,0x000500ba,0x00000037,0x000001bd,0x000001bb,0x000001bc,0x000300f7,0x000001bf, + 0x00000000,0x000400fa,0x000001bd,0x000001be,0x000001bf,0x000200f8,0x000001be,0x0004003d, + 0x00000006,0x000001c1,0x000001b6,0x00050083,0x00000006,0x000001c2,0x000001c0,0x000001c1, + 0x0003003e,0x000001b6,0x000001c2,0x000200f9,0x000001bf,0x000200f8,0x000001bf,0x0004003d, + 0x00000012,0x000001c4,0x000000bd,0x000500c7,0x00000012,0x000001c5,0x000001c4,0x00000199, + 0x000500ab,0x00000037,0x000001c6,0x000001c5,0x00000055,0x0003003e,0x000001c3,0x000001c6, + 0x0004003d,0x00000012,0x000001c8,0x000000bd,0x000500c7,0x00000012,0x000001c9,0x000001c8, + 0x0000014e,0x000500ab,0x00000037,0x000001ca,0x000001c9,0x00000055,0x0003003e,0x000001c7, + 0x000001ca,0x0004003d,0x00000006,0x000001cc,0x000001b6,0x0004003d,0x00000037,0x000001cd, + 0x000001c3,0x0004003d,0x00000037,0x000001ce,0x000001c7,0x000500a4,0x00000037,0x000001cf, + 0x000001cd,0x000001ce,0x000600a9,0x00000006,0x000001d1,0x000001cf,0x000001d0,0x00000163, + 0x00050085,0x00000006,0x000001d2,0x000001cc,0x000001d1,0x0004003d,0x00000006,0x000001d3, + 0x00000135,0x00050081,0x00000006,0x000001d4,0x000001d2,0x000001d3,0x0003003e,0x000001cb, + 0x000001d4,0x0004003d,0x00000006,0x000001d6,0x000001cb,0x0006000c,0x00000006,0x000001d7, + 0x00000001,0x0000000d,0x000001d6,0x0004003d,0x00000006,0x000001d8,0x000001cb,0x0006000c, + 0x00000006,0x000001d9,0x00000001,0x0000000e,0x000001d8,0x0004007f,0x00000006,0x000001da, + 0x000001d9,0x00050050,0x0000000c,0x000001db,0x000001d7,0x000001da,0x0003003e,0x000001d5, + 0x000001db,0x0004003d,0x00000022,0x000001de,0x000000d6,0x0003003e,0x000001dd,0x000001de, + 0x0004003d,0x0000000c,0x000001e0,0x000001d5,0x0003003e,0x000001df,0x000001e0,0x00060039, + 0x00000006,0x000001e1,0x00000035,0x000001dd,0x000001df,0x0003003e,0x000001dc,0x000001e1, + 0x0004003d,0x00000006,0x000001e3,0x000001b6,0x00050085,0x00000006,0x000001e4,0x000001e3, + 0x00000163,0x0006000c,0x00000006,0x000001e5,0x00000001,0x0000000e,0x000001e4,0x0003003e, + 0x000001e2,0x000001e5,0x0004003d,0x00000012,0x000001e6,0x0000018f,0x000500aa,0x00000037, + 0x000001e7,0x000001e6,0x00000191,0x000400a8,0x00000037,0x000001e8,0x000001e7,0x000300f7, + 0x000001ea,0x00000000,0x000400fa,0x000001e8,0x000001e9,0x000001ea,0x000200f8,0x000001e9, + 0x0004003d,0x00000012,0x000001eb,0x0000018f,0x000500aa,0x00000037,0x000001ed,0x000001eb, + 0x000001ec,0x0004003d,0x00000006,0x000001ee,0x000001e2,0x000500be,0x00000037,0x000001f0, + 0x000001ee,0x000001ef,0x000500a7,0x00000037,0x000001f1,0x000001ed,0x000001f0,0x000200f9, + 0x000001ea,0x000200f8,0x000001ea,0x000700f5,0x00000037,0x000001f2,0x000001e7,0x000001bf, + 0x000001f1,0x000001e9,0x000300f7,0x000001f4,0x00000000,0x000400fa,0x000001f2,0x000001f3, + 0x00000202,0x000200f8,0x000001f3,0x0004003d,0x00000012,0x000001f6,0x000000bd,0x000500c7, + 0x00000012,0x000001f8,0x000001f6,0x000001f7,0x000500ab,0x00000037,0x000001f9,0x000001f8, + 0x00000055,0x000600a9,0x00000006,0x000001fa,0x000001f9,0x00000061,0x000001ef,0x0003003e, + 0x000001f5,0x000001fa,0x0004003d,0x00000006,0x000001fc,0x000000ed,0x0004003d,0x00000006, + 0x000001fd,0x000001e2,0x0004003d,0x00000006,0x000001fe,0x000001f5,0x0007000c,0x00000006, + 0x000001ff,0x00000001,0x00000028,0x000001fd,0x000001fe,0x00050088,0x00000006,0x00000200, + 0x00000061,0x000001ff,0x00050085,0x00000006,0x00000201,0x000001fc,0x00000200,0x0003003e, + 0x000001fb,0x00000201,0x000200f9,0x000001f4,0x000200f8,0x00000202,0x0004003d,0x00000006, + 0x00000203,0x000000ed,0x0004003d,0x00000006,0x00000204,0x000001e2,0x00050085,0x00000006, + 0x00000205,0x00000203,0x00000204,0x0004003d,0x00000006,0x00000206,0x000001dc,0x00050085, + 0x00000006,0x00000207,0x00000206,0x00000163,0x00050081,0x00000006,0x00000208,0x00000205, + 0x00000207,0x0003003e,0x000001fb,0x00000208,0x000200f9,0x000001f4,0x000200f8,0x000001f4, + 0x0004003d,0x00000006,0x0000020a,0x000001fb,0x0004003d,0x00000006,0x0000020b,0x000001dc, + 0x00050085,0x00000006,0x0000020c,0x0000020b,0x00000163,0x00050081,0x00000006,0x0000020d, + 0x0000020a,0x0000020c,0x0003003e,0x00000209,0x0000020d,0x0004003d,0x00000012,0x0000020e, + 0x000000bd,0x000500c7,0x00000012,0x00000210,0x0000020e,0x0000020f,0x000500ab,0x00000037, + 0x00000211,0x00000210,0x00000055,0x000300f7,0x00000213,0x00000000,0x000400fa,0x00000211, + 0x00000212,0x00000213,0x000200f8,0x00000212,0x0004003d,0x00000006,0x00000215,0x000000ed, + 0x0004003d,0x00000006,0x00000216,0x0000015d,0x00050081,0x00000006,0x00000217,0x00000215, + 0x00000216,0x0003003e,0x00000214,0x00000217,0x0004003d,0x00000006,0x00000219,0x0000015d, + 0x00050085,0x00000006,0x0000021b,0x00000219,0x0000021a,0x0003003e,0x00000218,0x0000021b, + 0x0004003d,0x00000006,0x0000021c,0x00000214,0x0004003d,0x00000006,0x0000021d,0x00000209, + 0x0004003d,0x00000006,0x0000021e,0x000001e2,0x00050085,0x00000006,0x0000021f,0x0000021d, + 0x0000021e,0x0004003d,0x00000006,0x00000220,0x00000218,0x00050081,0x00000006,0x00000221, + 0x0000021f,0x00000220,0x000500bc,0x00000037,0x00000222,0x0000021c,0x00000221,0x000300f7, + 0x00000224,0x00000000,0x000400fa,0x00000222,0x00000223,0x0000022d,0x000200f8,0x00000223, + 0x0004003d,0x00000006,0x00000226,0x00000214,0x0004003d,0x00000006,0x00000227,0x000001e2, + 0x00050088,0x00000006,0x00000228,0x00000061,0x00000227,0x00050085,0x00000006,0x00000229, + 0x00000226,0x00000228,0x0003003e,0x00000225,0x00000229,0x0004003d,0x0000000c,0x0000022a, + 0x000001d5,0x0004003d,0x00000006,0x0000022b,0x00000225,0x0005008e,0x0000000c,0x0000022c, + 0x0000022a,0x0000022b,0x0003003e,0x00000173,0x0000022c,0x000200f9,0x00000224,0x000200f8, + 0x0000022d,0x0004003d,0x0000000c,0x0000022f,0x000001d5,0x0004003d,0x00000006,0x00000230, + 0x00000209,0x0005008e,0x0000000c,0x00000231,0x0000022f,0x00000230,0x0003003e,0x0000022e, + 0x00000231,0x0004003d,0x0000000c,0x00000233,0x00000173,0x0004003d,0x0000000c,0x00000234, + 0x00000173,0x00050094,0x00000006,0x00000235,0x00000233,0x00000234,0x0004003d,0x0000000c, + 0x00000236,0x0000022e,0x0004003d,0x0000000c,0x00000237,0x0000022e,0x00050094,0x00000006, + 0x00000238,0x00000236,0x00000237,0x00050050,0x0000000c,0x00000239,0x00000235,0x00000238, + 0x0003003e,0x00000232,0x00000239,0x0004003d,0x0000000c,0x0000023a,0x00000232,0x0004003d, + 0x0000000c,0x0000023b,0x00000173,0x0004003d,0x0000000c,0x0000023c,0x0000022e,0x00050051, + 0x00000006,0x0000023d,0x0000023b,0x00000000,0x00050051,0x00000006,0x0000023e,0x0000023b, + 0x00000001,0x00050051,0x00000006,0x0000023f,0x0000023c,0x00000000,0x00050051,0x00000006, + 0x00000240,0x0000023c,0x00000001,0x00050050,0x0000000c,0x00000241,0x0000023d,0x0000023e, + 0x00050050,0x0000000c,0x00000242,0x0000023f,0x00000240,0x00050050,0x00000022,0x00000243, + 0x00000241,0x00000242,0x0006000c,0x00000022,0x00000244,0x00000001,0x00000022,0x00000243, + 0x00050090,0x0000000c,0x00000245,0x0000023a,0x00000244,0x0003003e,0x00000173,0x00000245, + 0x000200f9,0x00000224,0x000200f8,0x00000224,0x000200f9,0x00000213,0x000200f8,0x00000213, + 0x0004003d,0x00000006,0x00000247,0x00000091,0x0006000c,0x00000006,0x00000248,0x00000001, + 0x00000004,0x00000247,0x0004003d,0x0000000c,0x00000249,0x00000173,0x0005008e,0x0000000c, + 0x0000024a,0x00000249,0x00000248,0x0003003e,0x00000246,0x0000024a,0x0004003d,0x00000006, + 0x0000024c,0x00000209,0x0004003d,0x0000000c,0x0000024d,0x00000246,0x0004003d,0x0000000c, + 0x0000024e,0x000001d5,0x00050094,0x00000006,0x0000024f,0x0000024d,0x0000024e,0x00050083, + 0x00000006,0x00000250,0x0000024c,0x0000024f,0x0004003d,0x00000006,0x00000251,0x000001dc, + 0x00050085,0x00000006,0x00000252,0x00000251,0x00000061,0x00050088,0x00000006,0x00000253, + 0x00000250,0x00000252,0x0003003e,0x0000024b,0x00000253,0x0004003d,0x00000012,0x00000254, + 0x000000bd,0x000500c7,0x00000012,0x00000255,0x00000254,0x0000014e,0x000500ab,0x00000037, + 0x00000256,0x00000255,0x00000055,0x000300f7,0x00000258,0x00000000,0x000400fa,0x00000256, + 0x00000257,0x0000025d,0x000200f8,0x00000257,0x0004003d,0x00000006,0x0000025a,0x0000024b, + 0x0003003e,0x00000259,0x0000025a,0x00050039,0x00000006,0x0000025b,0x0000000a,0x00000259, + 0x00050041,0x00000007,0x0000025c,0x0000003e,0x00000058,0x0003003e,0x0000025c,0x0000025b, + 0x000200f9,0x00000258,0x000200f8,0x0000025d,0x0004003d,0x00000006,0x0000025f,0x0000024b, + 0x0003003e,0x0000025e,0x0000025f,0x00050039,0x00000006,0x00000260,0x0000000a,0x0000025e, + 0x00050041,0x00000007,0x00000261,0x0000003e,0x00000055,0x0003003e,0x00000261,0x00000260, + 0x000200f9,0x00000258,0x000200f8,0x00000258,0x000200f9,0x00000196,0x000200f8,0x00000196, + 0x0004003d,0x00000006,0x00000262,0x00000165,0x0004003d,0x0000000c,0x00000263,0x0000003e, + 0x0005008e,0x0000000c,0x00000264,0x00000263,0x00000262,0x0003003e,0x0000003e,0x00000264, + 0x00050041,0x00000007,0x00000265,0x0000003e,0x00000058,0x0004003d,0x00000006,0x00000266, + 0x00000265,0x0003003e,0x00000268,0x00000267,0x00050039,0x00000006,0x00000269,0x00000019, + 0x00000268,0x0007000c,0x00000006,0x0000026a,0x00000001,0x00000028,0x00000266,0x00000269, + 0x00050041,0x00000007,0x0000026b,0x0000003e,0x00000058,0x0003003e,0x0000026b,0x0000026a, + 0x0004003d,0x00000022,0x0000026d,0x000000d6,0x0004003d,0x00000006,0x0000026e,0x00000091, + 0x0004003d,0x0000000c,0x0000026f,0x00000173,0x0005008e,0x0000000c,0x00000270,0x0000026f, + 0x0000026e,0x00050091,0x0000000c,0x00000271,0x0000026d,0x00000270,0x0003003e,0x0000026c, + 0x00000271,0x0004003d,0x0000002a,0x00000272,0x0000009f,0x000500ab,0x00000037,0x00000273, + 0x00000272,0x000000bb,0x000300f7,0x00000275,0x00000000,0x000400fa,0x00000273,0x00000274, + 0x00000275,0x000200f8,0x00000274,0x000200fe,0x00000276,0x000200f8,0x00000275,0x000200f9, + 0x00000147,0x000200f8,0x00000278,0x0004003d,0x0000002a,0x00000279,0x0000009f,0x000500aa, + 0x00000037,0x0000027a,0x00000279,0x0000009d,0x000300f7,0x0000027c,0x00000000,0x000400fa, + 0x0000027a,0x0000027b,0x0000027c,0x000200f8,0x0000027b,0x0004003d,0x0000000c,0x0000027d, + 0x000000cb,0x0003003e,0x00000140,0x0000027d,0x000200f9,0x0000027c,0x000200f8,0x0000027c, + 0x0004003d,0x00000006,0x0000027e,0x00000091,0x0004003d,0x0000000c,0x0000027f,0x00000139, + 0x0005008e,0x0000000c,0x00000280,0x0000027f,0x0000027e,0x0004003d,0x00000022,0x00000281, + 0x000000d6,0x0006000c,0x00000022,0x00000282,0x00000001,0x00000022,0x00000281,0x00050090, + 0x0000000c,0x00000283,0x00000280,0x00000282,0x0006000c,0x0000000c,0x00000284,0x00000001, + 0x00000006,0x00000283,0x0005008e,0x0000000c,0x00000285,0x00000284,0x00000163,0x0003003e, + 0x0000026c,0x00000285,0x0004003d,0x00000012,0x00000286,0x000000bd,0x000500c7,0x00000012, + 0x00000287,0x00000286,0x000000f3,0x000500ab,0x00000037,0x00000288,0x00000287,0x00000055, + 0x0004003d,0x00000012,0x00000289,0x000000bd,0x000500c7,0x00000012,0x0000028b,0x00000289, + 0x0000028a,0x000500ab,0x00000037,0x0000028c,0x0000028b,0x00000055,0x000500a5,0x00000037, + 0x0000028d,0x00000288,0x0000028c,0x000300f7,0x0000028f,0x00000000,0x000400fa,0x0000028d, + 0x0000028e,0x0000028f,0x000200f8,0x0000028e,0x0004003d,0x00000006,0x00000290,0x00000094, + 0x0004007f,0x00000006,0x00000291,0x00000290,0x0003003e,0x00000094,0x00000291,0x000200f9, + 0x0000028f,0x000200f8,0x0000028f,0x0004003d,0x00000006,0x00000294,0x00000094,0x0003003e, + 0x00000293,0x00000294,0x0003003e,0x00000295,0x00000292,0x00060039,0x0000000c,0x00000296, + 0x0000001e,0x00000293,0x00000295,0x0003003e,0x0000003e,0x00000296,0x0004003d,0x00000012, + 0x00000297,0x000000bd,0x000500c7,0x00000012,0x00000299,0x00000297,0x00000298,0x000500ab, + 0x00000037,0x0000029a,0x00000299,0x00000055,0x0004003d,0x0000002a,0x0000029b,0x0000009f, + 0x000500ab,0x00000037,0x0000029c,0x0000029b,0x000000a8,0x000500a7,0x00000037,0x0000029d, + 0x0000029a,0x0000029c,0x000300f7,0x0000029f,0x00000000,0x000400fa,0x0000029d,0x0000029e, + 0x0000029f,0x000200f8,0x0000029e,0x000200fe,0x00000276,0x000200f8,0x0000029f,0x000200f9, + 0x00000147,0x000200f8,0x00000147,0x0004003d,0x00000022,0x000002a1,0x000000d6,0x0004003d, + 0x0000000c,0x000002a2,0x00000140,0x00050091,0x0000000c,0x000002a3,0x000002a1,0x000002a2, + 0x0004003d,0x0000000c,0x000002a4,0x0000026c,0x00050081,0x0000000c,0x000002a5,0x000002a3, + 0x000002a4,0x0004003d,0x0000000c,0x000002a6,0x000000e9,0x00050081,0x0000000c,0x000002a7, + 0x000002a5,0x000002a6,0x0003003e,0x0000003d,0x000002a7,0x000200fe,0x000002a8,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.fixedcolor_frag.h b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.fixedcolor_frag.h new file mode 100644 index 00000000..c9d0fdc8 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.fixedcolor_frag.h @@ -0,0 +1,399 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_resolve_pls_fixedcolor_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000001a7,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000104, + 0x0000019c,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163,0x6f6c665f,0x745f7461,0x61685f6f, + 0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078,0x00090005,0x00000010,0x74736163, + 0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005,0x0000000f, + 0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f,0x6f745f74,0x6873755f,0x2874726f, + 0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005,0x00000019,0x656b616d,0x6c61685f, + 0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078,0x00060005,0x0000001d,0x656b616d, + 0x6c61685f,0x66283266,0x00003b31,0x00030005,0x0000001c,0x00000078,0x00060005,0x00000022, + 0x656b616d,0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000021,0x00000078,0x00070005, + 0x00000028,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000027, + 0x00000078,0x00060005,0x0000002c,0x6d6f7266,0x7869665f,0x75286465,0x00003b31,0x00030005, + 0x0000002b,0x00000078,0x00080005,0x00000032,0x6c707061,0x6c635f79,0x75287069,0x66763b31, + 0x31663b34,0x0000003b,0x00040005,0x0000002f,0x70696c63,0x00004449,0x00050005,0x00000030, + 0x70696c63,0x61746144,0x00000000,0x00050005,0x00000031,0x65766f63,0x65676172,0x00000000, + 0x000a0005,0x0000003c,0x6f736572,0x5f65766c,0x6e696170,0x31752874,0x3b31663b,0x3b346676, + 0x3b326976,0x00000000,0x00040005,0x00000038,0x68746170,0x00004449,0x00060005,0x00000039, + 0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00060005,0x0000003a,0x67617266,0x6f6c6f43, + 0x74754f72,0x00000000,0x00050005,0x0000003b,0x736c705f,0x726f6f43,0x00000064,0x00030005, + 0x00000050,0x00746572,0x00030005,0x0000005a,0x00746572,0x00040005,0x0000007d,0x61726170, + 0x0000006d,0x00040005,0x00000089,0x61726170,0x0000006d,0x00050005,0x00000098,0x6e696170, + 0x74614474,0x00000061,0x00050005,0x0000009a,0x6e696150,0x66754274,0x00726566,0x00050006, + 0x0000009a,0x00000000,0x6c61765f,0x00736575,0x00080005,0x0000009c,0x5058455f,0x4554524f, + 0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005,0x000000a2,0x65766f63,0x65676172, + 0x00000000,0x00060005,0x000000ad,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00040005, + 0x000000c3,0x61726170,0x0000006d,0x00040005,0x000000c5,0x61726170,0x0000006d,0x00060005, + 0x000000c8,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00040005,0x000000cb,0x70696c63, + 0x00004449,0x00060005,0x000000d6,0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00040005, + 0x000000da,0x61726170,0x0000006d,0x00040005,0x000000dc,0x61726170,0x0000006d,0x00040005, + 0x000000dd,0x61726170,0x0000006d,0x00060005,0x000000e1,0x616e456b,0x43656c62,0x5270696c, + 0x00746365,0x00030005,0x000000ed,0x0000004d,0x00060005,0x000000ef,0x6e696150,0x78754174, + 0x66667542,0x00007265,0x00050006,0x000000ef,0x00000000,0x6c61765f,0x00736575,0x00090005, + 0x000000f1,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000, + 0x00040005,0x000000f6,0x61726170,0x0000006d,0x00050005,0x000000fb,0x6e617274,0x74616c73, + 0x00000065,0x00050005,0x00000101,0x70696c63,0x726f6f43,0x00000064,0x00060005,0x00000104, + 0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005,0x0000010b,0x74736964,0x00005958, + 0x00040005,0x00000114,0x61726170,0x0000006d,0x00070005,0x00000116,0x70696c63,0x74636552, + 0x65766f43,0x65676172,0x00000000,0x00050005,0x00000121,0x6e696170,0x70795474,0x00000065, + 0x00040005,0x00000132,0x61726170,0x0000006d,0x00030005,0x00000135,0x0000004d,0x00040005, + 0x00000138,0x61726170,0x0000006d,0x00050005,0x0000013c,0x6e617274,0x74616c73,0x00000065, + 0x00050005,0x00000142,0x6e696170,0x6f6f4374,0x00006472,0x00030005,0x0000014a,0x00000074, + 0x00030005,0x00000158,0x00000078,0x00030005,0x00000160,0x00000079,0x00080005,0x00000166, + 0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065,0x00050005,0x0000016a, + 0x64617267,0x706d6153,0x0072656c,0x00050005,0x00000177,0x736c705f,0x726f6f43,0x00000064, + 0x00070005,0x0000017c,0x7473616c,0x65766f43,0x65676172,0x61746144,0x00000000,0x00080005, + 0x0000017f,0x65766f63,0x65676172,0x6d6f7441,0x75426369,0x72656666,0x00000000,0x00060005, + 0x00000185,0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00040005,0x00000189,0x61726170, + 0x0000006d,0x00050005,0x0000018b,0x7473616c,0x68746150,0x00004449,0x00040005,0x0000018f, + 0x61726170,0x0000006d,0x00060005,0x00000191,0x67617266,0x6f6c6f43,0x74754f72,0x00000000, + 0x00040005,0x00000192,0x61726170,0x0000006d,0x00040005,0x00000194,0x61726170,0x0000006d, + 0x00040005,0x00000196,0x61726170,0x0000006d,0x00040005,0x00000197,0x61726170,0x0000006d, + 0x00050005,0x0000019c,0x6172665f,0x6c6f4367,0x0000726f,0x00080005,0x0000019e,0x616e456b, + 0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00080005,0x0000019f,0x616e456b, + 0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x000001a0,0x616e456b, + 0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x000001a1,0x6f6c436b, + 0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000001a2,0x726f426b,0x65776f72,0x766f4364, + 0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x000001a4,0x5058455f,0x4554524f, + 0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x000001a4,0x00000000,0x64617267, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x000001a4,0x00000001, + 0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x000001a4, + 0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f, + 0x00000000,0x000b0006,0x000001a4,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x000001a4,0x00000004,0x646e6572, + 0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x000001a4,0x00000005,0x646e6572, + 0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x000001a4,0x00000006,0x6f6c6f63, + 0x656c4372,0x61567261,0x0065756c,0x00080006,0x000001a4,0x00000007,0x65766f63,0x65676172, + 0x61656c43,0x6c615672,0x00006575,0x000a0006,0x000001a4,0x00000008,0x646e6572,0x61547265, + 0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x000001a4,0x00000009, + 0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x000001a4, + 0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x000001a4, + 0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x000001a6, + 0x66696e75,0x736d726f,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010, + 0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000019,0x00000000,0x00030047, + 0x00000018,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x0000001c,0x00000000, + 0x00030047,0x00000022,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047,0x0000002c, + 0x00000000,0x00030047,0x00000030,0x00000000,0x00030047,0x00000031,0x00000000,0x00030047, + 0x00000039,0x00000000,0x00030047,0x0000003a,0x00000000,0x00030047,0x0000003f,0x00000000, + 0x00030047,0x00000040,0x00000000,0x00030047,0x00000044,0x00000000,0x00030047,0x00000045, + 0x00000000,0x00030047,0x00000049,0x00000000,0x00030047,0x0000004a,0x00000000,0x00030047, + 0x0000004d,0x00000000,0x00030047,0x00000050,0x00000000,0x00030047,0x00000051,0x00000000, + 0x00030047,0x00000054,0x00000000,0x00030047,0x00000057,0x00000000,0x00030047,0x0000005a, + 0x00000000,0x00030047,0x0000005b,0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047, + 0x0000005f,0x00000000,0x00030047,0x00000062,0x00000000,0x00030047,0x00000065,0x00000000, + 0x00030047,0x0000007e,0x00000000,0x00030047,0x00000081,0x00000000,0x00030047,0x00000082, + 0x00000000,0x00030047,0x00000089,0x00000000,0x00030047,0x0000008a,0x00000000,0x00030047, + 0x00000091,0x00000000,0x00030047,0x00000093,0x00000000,0x00030047,0x00000094,0x00000000, + 0x00040047,0x00000099,0x00000006,0x00000008,0x00040048,0x0000009a,0x00000000,0x00000018, + 0x00050048,0x0000009a,0x00000000,0x00000023,0x00000000,0x00030047,0x0000009a,0x00000003, + 0x00040047,0x0000009c,0x00000022,0x00000000,0x00040047,0x0000009c,0x00000021,0x00000004, + 0x00030047,0x000000a2,0x00000000,0x00030047,0x000000a3,0x00000000,0x00030047,0x000000ab, + 0x00000000,0x00030047,0x000000ac,0x00000000,0x00040047,0x000000ad,0x00000001,0x00000003, + 0x00030047,0x000000b8,0x00000000,0x00030047,0x000000ba,0x00000000,0x00030047,0x000000bb, + 0x00000000,0x00030047,0x000000bd,0x00000000,0x00030047,0x000000bf,0x00000000,0x00030047, + 0x000000c0,0x00000000,0x00030047,0x000000c1,0x00000000,0x00030047,0x000000c2,0x00000000, + 0x00030047,0x000000c3,0x00000000,0x00030047,0x000000c4,0x00000000,0x00030047,0x000000c5, + 0x00000000,0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c7,0x00000000,0x00040047, + 0x000000c8,0x00000001,0x00000000,0x00030047,0x000000d6,0x00000000,0x00040047,0x000000d6, + 0x00000022,0x00000003,0x00040047,0x000000d6,0x00000021,0x00000001,0x00040047,0x000000d6, + 0x0000002b,0x00000001,0x00030047,0x000000d7,0x00000000,0x00030047,0x000000d9,0x00000000, + 0x00030047,0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000,0x00030047,0x000000de, + 0x00000000,0x00040047,0x000000e1,0x00000001,0x00000001,0x00040047,0x000000ee,0x00000006, + 0x00000010,0x00040048,0x000000ef,0x00000000,0x00000018,0x00050048,0x000000ef,0x00000000, + 0x00000023,0x00000000,0x00030047,0x000000ef,0x00000003,0x00040047,0x000000f1,0x00000022, + 0x00000000,0x00040047,0x000000f1,0x00000021,0x00000005,0x00040047,0x00000104,0x0000000b, + 0x0000000f,0x00030047,0x0000010b,0x00000000,0x00030047,0x00000115,0x00000000,0x00030047, + 0x00000116,0x00000000,0x00030047,0x00000118,0x00000000,0x00030047,0x0000011a,0x00000000, + 0x00030047,0x0000011b,0x00000000,0x00030047,0x0000011c,0x00000000,0x00030047,0x0000011d, + 0x00000000,0x00030047,0x0000011e,0x00000000,0x00030047,0x0000011f,0x00000000,0x00030047, + 0x00000120,0x00000000,0x00030047,0x00000132,0x00000000,0x00030047,0x00000133,0x00000000, + 0x00030047,0x00000166,0x00000000,0x00040047,0x00000166,0x00000022,0x00000000,0x00040047, + 0x00000166,0x00000021,0x00000001,0x00030047,0x00000167,0x00000000,0x00030047,0x0000016a, + 0x00000000,0x00040047,0x0000016a,0x00000022,0x00000002,0x00040047,0x0000016a,0x00000021, + 0x00000001,0x00030047,0x0000016b,0x00000000,0x00030047,0x00000171,0x00000000,0x00030047, + 0x00000172,0x00000000,0x00030047,0x00000174,0x00000000,0x00030047,0x00000175,0x00000000, + 0x00040047,0x0000017f,0x00000022,0x00000003,0x00040047,0x0000017f,0x00000021,0x00000003, + 0x00030047,0x0000017f,0x00000017,0x00030047,0x00000185,0x00000000,0x00030047,0x0000018a, + 0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047,0x00000190,0x00000000,0x00030047, + 0x00000191,0x00000000,0x00030047,0x00000193,0x00000000,0x00030047,0x00000194,0x00000000, + 0x00030047,0x00000195,0x00000000,0x00030047,0x00000196,0x00000000,0x00030047,0x0000019c, + 0x00000000,0x00040047,0x0000019c,0x0000001e,0x00000000,0x00030047,0x0000019d,0x00000000, + 0x00040047,0x0000019e,0x00000001,0x00000002,0x00040047,0x0000019f,0x00000001,0x00000004, + 0x00040047,0x000001a0,0x00000001,0x00000005,0x00040047,0x000001a1,0x00000001,0x00000006, + 0x00040047,0x000001a2,0x00000001,0x00000007,0x00050048,0x000001a4,0x00000000,0x00000023, + 0x00000000,0x00050048,0x000001a4,0x00000001,0x00000023,0x00000004,0x00050048,0x000001a4, + 0x00000002,0x00000023,0x00000008,0x00050048,0x000001a4,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x000001a4,0x00000004,0x00000023,0x00000010,0x00050048,0x000001a4,0x00000005, + 0x00000023,0x00000014,0x00050048,0x000001a4,0x00000006,0x00000023,0x00000018,0x00050048, + 0x000001a4,0x00000007,0x00000023,0x0000001c,0x00050048,0x000001a4,0x00000008,0x00000023, + 0x00000020,0x00050048,0x000001a4,0x00000009,0x00000023,0x00000030,0x00050048,0x000001a4, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x000001a4,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x000001a4,0x00000002,0x00040047,0x000001a6,0x00000022,0x00000000,0x00040047, + 0x000001a6,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021, + 0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002,0x00040020, + 0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00040015, + 0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007,0x00000012,0x00040021, + 0x00000014,0x00000012,0x00000013,0x00040021,0x0000001b,0x0000000c,0x00000007,0x00040017, + 0x0000001f,0x00000006,0x00000004,0x00040021,0x00000020,0x0000001f,0x00000007,0x00040020, + 0x00000024,0x00000007,0x0000001f,0x00040018,0x00000025,0x0000000c,0x00000002,0x00040021, + 0x00000026,0x00000025,0x00000024,0x00040021,0x0000002a,0x00000006,0x00000013,0x00060021, + 0x0000002e,0x00000002,0x00000013,0x00000024,0x00000007,0x00040015,0x00000034,0x00000020, + 0x00000001,0x00040017,0x00000035,0x00000034,0x00000002,0x00040020,0x00000036,0x00000007, + 0x00000035,0x00070021,0x00000037,0x00000002,0x00000013,0x00000007,0x00000024,0x00000036, + 0x0004002b,0x00000012,0x00000052,0x00000000,0x0004002b,0x00000012,0x00000055,0x00000001, + 0x0004002b,0x00000012,0x00000060,0x00000002,0x0004002b,0x00000012,0x00000063,0x00000003, + 0x0004002b,0x00000006,0x0000006c,0x3f800000,0x0004002b,0x00000006,0x0000006d,0x00000000, + 0x0004002b,0x00000006,0x00000079,0x3b000000,0x0004002b,0x00000006,0x0000007b,0xc2800000, + 0x0004002b,0x00000006,0x00000088,0x3a808081,0x00020014,0x0000008b,0x00040017,0x0000008c, + 0x0000008b,0x00000002,0x00040017,0x00000096,0x00000012,0x00000002,0x00040020,0x00000097, + 0x00000007,0x00000096,0x0003001d,0x00000099,0x00000096,0x0003001e,0x0000009a,0x00000099, + 0x00040020,0x0000009b,0x00000002,0x0000009a,0x0004003b,0x0000009b,0x0000009c,0x00000002, + 0x0004002b,0x00000034,0x0000009d,0x00000000,0x00040020,0x0000009f,0x00000002,0x00000096, + 0x0004002b,0x00000012,0x000000a6,0x00000300,0x00030031,0x0000008b,0x000000ad,0x0004002b, + 0x00000012,0x000000b2,0x00000200,0x0004002b,0x00000006,0x000000b9,0x3f000000,0x0004002b, + 0x00000006,0x000000bc,0x40000000,0x0004002b,0x00000006,0x000000be,0xbf800000,0x00030031, + 0x0000008b,0x000000c8,0x0004002b,0x00000012,0x000000ce,0x00000010,0x00090019,0x000000d4, + 0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020, + 0x000000d5,0x00000000,0x000000d4,0x0004003b,0x000000d5,0x000000d6,0x00000000,0x0005002c, + 0x00000035,0x000000d8,0x0000009d,0x0000009d,0x00030031,0x0000008b,0x000000e1,0x0004002b, + 0x00000012,0x000000e6,0x00000400,0x00040020,0x000000ec,0x00000007,0x00000025,0x0003001d, + 0x000000ee,0x0000001f,0x0003001e,0x000000ef,0x000000ee,0x00040020,0x000000f0,0x00000002, + 0x000000ef,0x0004003b,0x000000f0,0x000000f1,0x00000002,0x0004002b,0x00000012,0x000000f3, + 0x00000004,0x00040020,0x000000f7,0x00000002,0x0000001f,0x00040020,0x00000103,0x00000001, + 0x0000001f,0x0004003b,0x00000103,0x00000104,0x00000001,0x0004002b,0x00000012,0x00000124, + 0x0000000f,0x00090019,0x00000164,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x00000165,0x00000000,0x00000164,0x0004003b,0x00000165, + 0x00000166,0x00000000,0x0002001a,0x00000168,0x00040020,0x00000169,0x00000000,0x00000168, + 0x0004003b,0x00000169,0x0000016a,0x00000000,0x0003001b,0x0000016c,0x00000164,0x00090019, + 0x0000017d,0x00000012,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000021, + 0x00040020,0x0000017e,0x00000000,0x0000017d,0x0004003b,0x0000017e,0x0000017f,0x00000000, + 0x00040017,0x00000182,0x00000012,0x00000004,0x0004002b,0x00000012,0x00000187,0x0000ffff, + 0x0004002b,0x00000034,0x0000018d,0x00000010,0x00040020,0x0000019b,0x00000003,0x0000001f, + 0x0004003b,0x0000019b,0x0000019c,0x00000003,0x00030031,0x0000008b,0x0000019e,0x00030031, + 0x0000008b,0x0000019f,0x00030031,0x0000008b,0x000001a0,0x00030031,0x0000008b,0x000001a1, + 0x00030031,0x0000008b,0x000001a2,0x00040017,0x000001a3,0x00000034,0x00000004,0x000e001e, + 0x000001a4,0x00000006,0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012, + 0x00000012,0x000001a3,0x00000012,0x00000012,0x00000006,0x00040020,0x000001a5,0x00000002, + 0x000001a4,0x0004003b,0x000001a5,0x000001a6,0x00000002,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000036,0x00000177,0x00000007, + 0x0004003b,0x00000013,0x0000017c,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007, + 0x0004003b,0x00000013,0x00000189,0x00000007,0x0004003b,0x00000013,0x0000018b,0x00000007, + 0x0004003b,0x00000013,0x0000018f,0x00000007,0x0004003b,0x00000024,0x00000191,0x00000007, + 0x0004003b,0x00000013,0x00000192,0x00000007,0x0004003b,0x00000007,0x00000194,0x00000007, + 0x0004003b,0x00000024,0x00000196,0x00000007,0x0004003b,0x00000036,0x00000197,0x00000007, + 0x0004003d,0x0000001f,0x00000178,0x00000104,0x0007004f,0x0000000c,0x00000179,0x00000178, + 0x00000178,0x00000000,0x00000001,0x0006000c,0x0000000c,0x0000017a,0x00000001,0x00000008, + 0x00000179,0x0004006e,0x00000035,0x0000017b,0x0000017a,0x0003003e,0x00000177,0x0000017b, + 0x0004003d,0x0000017d,0x00000180,0x0000017f,0x0004003d,0x00000035,0x00000181,0x00000177, + 0x00050062,0x00000182,0x00000183,0x00000180,0x00000181,0x00050051,0x00000012,0x00000184, + 0x00000183,0x00000000,0x0003003e,0x0000017c,0x00000184,0x0004003d,0x00000012,0x00000186, + 0x0000017c,0x000500c7,0x00000012,0x00000188,0x00000186,0x00000187,0x0003003e,0x00000189, + 0x00000188,0x00050039,0x00000006,0x0000018a,0x0000002c,0x00000189,0x0003003e,0x00000185, + 0x0000018a,0x0004003d,0x00000012,0x0000018c,0x0000017c,0x000500c2,0x00000012,0x0000018e, + 0x0000018c,0x0000018d,0x0003003e,0x0000018f,0x0000018e,0x00050039,0x00000012,0x00000190, + 0x00000016,0x0000018f,0x0003003e,0x0000018b,0x00000190,0x0004003d,0x00000012,0x00000193, + 0x0000018b,0x0003003e,0x00000192,0x00000193,0x0004003d,0x00000006,0x00000195,0x00000185, + 0x0003003e,0x00000194,0x00000195,0x0004003d,0x00000035,0x00000198,0x00000177,0x0003003e, + 0x00000197,0x00000198,0x00080039,0x00000002,0x00000199,0x0000003c,0x00000192,0x00000194, + 0x00000196,0x00000197,0x0004003d,0x0000001f,0x0000019a,0x00000196,0x0003003e,0x00000191, + 0x0000019a,0x0004003d,0x0000001f,0x0000019d,0x00000191,0x0003003e,0x0000019c,0x0000019d, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,0x0000003f,0x00000007, + 0x0004003d,0x00000006,0x0000003e,0x00000009,0x0003003e,0x0000003f,0x0000003e,0x0004003d, + 0x00000006,0x00000040,0x0000003f,0x000200fe,0x00000040,0x00010038,0x00050036,0x0000000c, + 0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011, + 0x0004003b,0x0000000d,0x00000044,0x00000007,0x0004003d,0x0000000c,0x00000043,0x0000000f, + 0x0003003e,0x00000044,0x00000043,0x0004003d,0x0000000c,0x00000045,0x00000044,0x000200fe, + 0x00000045,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b,0x00000013,0x00000049,0x00000007, + 0x0004003d,0x00000012,0x00000048,0x00000015,0x0003003e,0x00000049,0x00000048,0x0004003d, + 0x00000012,0x0000004a,0x00000049,0x000200fe,0x0000004a,0x00010038,0x00050036,0x00000006, + 0x00000019,0x00000000,0x00000008,0x00030037,0x00000007,0x00000018,0x000200f8,0x0000001a, + 0x0004003d,0x00000006,0x0000004d,0x00000018,0x000200fe,0x0000004d,0x00010038,0x00050036, + 0x0000000c,0x0000001d,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c,0x000200f8, + 0x0000001e,0x0004003b,0x0000000d,0x00000050,0x00000007,0x0004003d,0x00000006,0x00000051, + 0x0000001c,0x00050041,0x00000007,0x00000053,0x00000050,0x00000052,0x0003003e,0x00000053, + 0x00000051,0x0004003d,0x00000006,0x00000054,0x0000001c,0x00050041,0x00000007,0x00000056, + 0x00000050,0x00000055,0x0003003e,0x00000056,0x00000054,0x0004003d,0x0000000c,0x00000057, + 0x00000050,0x000200fe,0x00000057,0x00010038,0x00050036,0x0000001f,0x00000022,0x00000000, + 0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x0004003b,0x00000024, + 0x0000005a,0x00000007,0x0004003d,0x00000006,0x0000005b,0x00000021,0x00050041,0x00000007, + 0x0000005c,0x0000005a,0x00000052,0x0003003e,0x0000005c,0x0000005b,0x0004003d,0x00000006, + 0x0000005d,0x00000021,0x00050041,0x00000007,0x0000005e,0x0000005a,0x00000055,0x0003003e, + 0x0000005e,0x0000005d,0x0004003d,0x00000006,0x0000005f,0x00000021,0x00050041,0x00000007, + 0x00000061,0x0000005a,0x00000060,0x0003003e,0x00000061,0x0000005f,0x0004003d,0x00000006, + 0x00000062,0x00000021,0x00050041,0x00000007,0x00000064,0x0000005a,0x00000063,0x0003003e, + 0x00000064,0x00000062,0x0004003d,0x0000001f,0x00000065,0x0000005a,0x000200fe,0x00000065, + 0x00010038,0x00050036,0x00000025,0x00000028,0x00000000,0x00000026,0x00030037,0x00000024, + 0x00000027,0x000200f8,0x00000029,0x0004003d,0x0000001f,0x00000068,0x00000027,0x0007004f, + 0x0000000c,0x00000069,0x00000068,0x00000068,0x00000000,0x00000001,0x0004003d,0x0000001f, + 0x0000006a,0x00000027,0x0007004f,0x0000000c,0x0000006b,0x0000006a,0x0000006a,0x00000002, + 0x00000003,0x00050051,0x00000006,0x0000006e,0x00000069,0x00000000,0x00050051,0x00000006, + 0x0000006f,0x00000069,0x00000001,0x00050051,0x00000006,0x00000070,0x0000006b,0x00000000, + 0x00050051,0x00000006,0x00000071,0x0000006b,0x00000001,0x00050050,0x0000000c,0x00000072, + 0x0000006e,0x0000006f,0x00050050,0x0000000c,0x00000073,0x00000070,0x00000071,0x00050050, + 0x00000025,0x00000074,0x00000072,0x00000073,0x000200fe,0x00000074,0x00010038,0x00050036, + 0x00000006,0x0000002c,0x00000000,0x0000002a,0x00030037,0x00000013,0x0000002b,0x000200f8, + 0x0000002d,0x0004003b,0x00000007,0x0000007d,0x00000007,0x0004003d,0x00000012,0x00000077, + 0x0000002b,0x00040070,0x00000006,0x00000078,0x00000077,0x00050085,0x00000006,0x0000007a, + 0x00000078,0x00000079,0x00050081,0x00000006,0x0000007c,0x0000007a,0x0000007b,0x0003003e, + 0x0000007d,0x0000007c,0x00050039,0x00000006,0x0000007e,0x0000000a,0x0000007d,0x000200fe, + 0x0000007e,0x00010038,0x00050036,0x00000002,0x00000032,0x00000000,0x0000002e,0x00030037, + 0x00000013,0x0000002f,0x00030037,0x00000024,0x00000030,0x00030037,0x00000007,0x00000031, + 0x000200f8,0x00000033,0x0004003b,0x00000007,0x00000089,0x00000007,0x0004003d,0x0000001f, + 0x00000081,0x00000030,0x0007004f,0x0000000c,0x00000082,0x00000081,0x00000081,0x00000000, + 0x00000001,0x0004003d,0x00000012,0x00000083,0x0000002f,0x0006000c,0x0000001f,0x00000084, + 0x00000001,0x00000040,0x00000083,0x0007004f,0x0000000c,0x00000085,0x00000084,0x00000084, + 0x00000000,0x00000001,0x00050083,0x0000000c,0x00000086,0x00000082,0x00000085,0x0006000c, + 0x0000000c,0x00000087,0x00000001,0x00000004,0x00000086,0x0003003e,0x00000089,0x00000088, + 0x00050039,0x0000000c,0x0000008a,0x0000001d,0x00000089,0x000500b8,0x0000008c,0x0000008d, + 0x00000087,0x0000008a,0x0004009b,0x0000008b,0x0000008e,0x0000008d,0x000300f7,0x00000090, + 0x00000000,0x000400fa,0x0000008e,0x0000008f,0x00000095,0x000200f8,0x0000008f,0x0004003d, + 0x00000006,0x00000091,0x00000031,0x00050041,0x00000007,0x00000092,0x00000030,0x00000060, + 0x0004003d,0x00000006,0x00000093,0x00000092,0x0007000c,0x00000006,0x00000094,0x00000001, + 0x00000025,0x00000091,0x00000093,0x0003003e,0x00000031,0x00000094,0x000200f9,0x00000090, + 0x000200f8,0x00000095,0x0003003e,0x00000031,0x0000006d,0x000200f9,0x00000090,0x000200f8, + 0x00000090,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000003c,0x00000000,0x00000037, + 0x00030037,0x00000013,0x00000038,0x00030037,0x00000007,0x00000039,0x00030037,0x00000024, + 0x0000003a,0x00030037,0x00000036,0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000097, + 0x00000098,0x00000007,0x0004003b,0x00000007,0x000000a2,0x00000007,0x0004003b,0x00000007, + 0x000000c3,0x00000007,0x0004003b,0x00000007,0x000000c5,0x00000007,0x0004003b,0x00000013, + 0x000000cb,0x00000007,0x0004003b,0x00000013,0x000000da,0x00000007,0x0004003b,0x00000024, + 0x000000dc,0x00000007,0x0004003b,0x00000007,0x000000dd,0x00000007,0x0004003b,0x000000ec, + 0x000000ed,0x00000007,0x0004003b,0x00000024,0x000000f6,0x00000007,0x0004003b,0x00000024, + 0x000000fb,0x00000007,0x0004003b,0x0000000d,0x00000101,0x00000007,0x0004003b,0x0000000d, + 0x0000010b,0x00000007,0x0004003b,0x0000000d,0x00000114,0x00000007,0x0004003b,0x00000007, + 0x00000116,0x00000007,0x0004003b,0x00000013,0x00000121,0x00000007,0x0004003b,0x00000007, + 0x00000132,0x00000007,0x0004003b,0x000000ec,0x00000135,0x00000007,0x0004003b,0x00000024, + 0x00000138,0x00000007,0x0004003b,0x00000024,0x0000013c,0x00000007,0x0004003b,0x0000000d, + 0x00000142,0x00000007,0x0004003b,0x00000007,0x0000014a,0x00000007,0x0004003b,0x00000007, + 0x0000014d,0x00000007,0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007, + 0x00000160,0x00000007,0x0004003d,0x00000012,0x0000009e,0x00000038,0x00060041,0x0000009f, + 0x000000a0,0x0000009c,0x0000009d,0x0000009e,0x0004003d,0x00000096,0x000000a1,0x000000a0, + 0x0003003e,0x00000098,0x000000a1,0x0004003d,0x00000006,0x000000a3,0x00000039,0x0003003e, + 0x000000a2,0x000000a3,0x00050041,0x00000013,0x000000a4,0x00000098,0x00000052,0x0004003d, + 0x00000012,0x000000a5,0x000000a4,0x000500c7,0x00000012,0x000000a7,0x000000a5,0x000000a6, + 0x000500ab,0x0000008b,0x000000a8,0x000000a7,0x00000052,0x000300f7,0x000000aa,0x00000000, + 0x000400fa,0x000000a8,0x000000a9,0x000000aa,0x000200f8,0x000000a9,0x0004003d,0x00000006, + 0x000000ab,0x000000a2,0x0006000c,0x00000006,0x000000ac,0x00000001,0x00000004,0x000000ab, + 0x0003003e,0x000000a2,0x000000ac,0x000300f7,0x000000af,0x00000000,0x000400fa,0x000000ad, + 0x000000ae,0x000000af,0x000200f8,0x000000ae,0x00050041,0x00000013,0x000000b0,0x00000098, + 0x00000052,0x0004003d,0x00000012,0x000000b1,0x000000b0,0x000500c7,0x00000012,0x000000b3, + 0x000000b1,0x000000b2,0x000500ab,0x0000008b,0x000000b4,0x000000b3,0x00000052,0x000200f9, + 0x000000af,0x000200f8,0x000000af,0x000700f5,0x0000008b,0x000000b5,0x000000ad,0x000000a9, + 0x000000b4,0x000000ae,0x000300f7,0x000000b7,0x00000000,0x000400fa,0x000000b5,0x000000b6, + 0x000000b7,0x000200f8,0x000000b6,0x0004003d,0x00000006,0x000000b8,0x000000a2,0x00050085, + 0x00000006,0x000000ba,0x000000b8,0x000000b9,0x0006000c,0x00000006,0x000000bb,0x00000001, + 0x0000000a,0x000000ba,0x00050085,0x00000006,0x000000bd,0x000000bb,0x000000bc,0x00050081, + 0x00000006,0x000000bf,0x000000bd,0x000000be,0x0006000c,0x00000006,0x000000c0,0x00000001, + 0x00000004,0x000000bf,0x00050083,0x00000006,0x000000c1,0x0000006c,0x000000c0,0x0003003e, + 0x000000a2,0x000000c1,0x000200f9,0x000000b7,0x000200f8,0x000000b7,0x000200f9,0x000000aa, + 0x000200f8,0x000000aa,0x0004003d,0x00000006,0x000000c2,0x000000a2,0x0003003e,0x000000c3, + 0x0000006d,0x00050039,0x00000006,0x000000c4,0x00000019,0x000000c3,0x0003003e,0x000000c5, + 0x0000006c,0x00050039,0x00000006,0x000000c6,0x00000019,0x000000c5,0x0008000c,0x00000006, + 0x000000c7,0x00000001,0x0000002b,0x000000c2,0x000000c4,0x000000c6,0x0003003e,0x000000a2, + 0x000000c7,0x000300f7,0x000000ca,0x00000000,0x000400fa,0x000000c8,0x000000c9,0x000000ca, + 0x000200f8,0x000000c9,0x00050041,0x00000013,0x000000cc,0x00000098,0x00000052,0x0004003d, + 0x00000012,0x000000cd,0x000000cc,0x000500c2,0x00000012,0x000000cf,0x000000cd,0x000000ce, + 0x0003003e,0x000000cb,0x000000cf,0x0004003d,0x00000012,0x000000d0,0x000000cb,0x000500ab, + 0x0000008b,0x000000d1,0x000000d0,0x00000052,0x000300f7,0x000000d3,0x00000000,0x000400fa, + 0x000000d1,0x000000d2,0x000000d3,0x000200f8,0x000000d2,0x0004003d,0x000000d4,0x000000d7, + 0x000000d6,0x00050062,0x0000001f,0x000000d9,0x000000d7,0x000000d8,0x0004003d,0x00000012, + 0x000000db,0x000000cb,0x0003003e,0x000000da,0x000000db,0x0003003e,0x000000dc,0x000000d9, + 0x0004003d,0x00000006,0x000000de,0x000000a2,0x0003003e,0x000000dd,0x000000de,0x00070039, + 0x00000002,0x000000df,0x00000032,0x000000da,0x000000dc,0x000000dd,0x0004003d,0x00000006, + 0x000000e0,0x000000dd,0x0003003e,0x000000a2,0x000000e0,0x000200f9,0x000000d3,0x000200f8, + 0x000000d3,0x000200f9,0x000000ca,0x000200f8,0x000000ca,0x000300f7,0x000000e3,0x00000000, + 0x000400fa,0x000000e1,0x000000e2,0x000000e3,0x000200f8,0x000000e2,0x00050041,0x00000013, + 0x000000e4,0x00000098,0x00000052,0x0004003d,0x00000012,0x000000e5,0x000000e4,0x000500c7, + 0x00000012,0x000000e7,0x000000e5,0x000000e6,0x000500ab,0x0000008b,0x000000e8,0x000000e7, + 0x00000052,0x000200f9,0x000000e3,0x000200f8,0x000000e3,0x000700f5,0x0000008b,0x000000e9, + 0x000000e1,0x000000ca,0x000000e8,0x000000e2,0x000300f7,0x000000eb,0x00000000,0x000400fa, + 0x000000e9,0x000000ea,0x000000eb,0x000200f8,0x000000ea,0x0004003d,0x00000012,0x000000f2, + 0x00000038,0x00050084,0x00000012,0x000000f4,0x000000f2,0x000000f3,0x00050080,0x00000012, + 0x000000f5,0x000000f4,0x00000060,0x00060041,0x000000f7,0x000000f8,0x000000f1,0x0000009d, + 0x000000f5,0x0004003d,0x0000001f,0x000000f9,0x000000f8,0x0003003e,0x000000f6,0x000000f9, + 0x00050039,0x00000025,0x000000fa,0x00000028,0x000000f6,0x0003003e,0x000000ed,0x000000fa, + 0x0004003d,0x00000012,0x000000fc,0x00000038,0x00050084,0x00000012,0x000000fd,0x000000fc, + 0x000000f3,0x00050080,0x00000012,0x000000fe,0x000000fd,0x00000063,0x00060041,0x000000f7, + 0x000000ff,0x000000f1,0x0000009d,0x000000fe,0x0004003d,0x0000001f,0x00000100,0x000000ff, + 0x0003003e,0x000000fb,0x00000100,0x0004003d,0x00000025,0x00000102,0x000000ed,0x0004003d, + 0x0000001f,0x00000105,0x00000104,0x0007004f,0x0000000c,0x00000106,0x00000105,0x00000105, + 0x00000000,0x00000001,0x00050091,0x0000000c,0x00000107,0x00000102,0x00000106,0x0004003d, + 0x0000001f,0x00000108,0x000000fb,0x0007004f,0x0000000c,0x00000109,0x00000108,0x00000108, + 0x00000000,0x00000001,0x00050081,0x0000000c,0x0000010a,0x00000107,0x00000109,0x0003003e, + 0x00000101,0x0000010a,0x0004003d,0x0000000c,0x0000010c,0x00000101,0x0006000c,0x0000000c, + 0x0000010d,0x00000001,0x00000004,0x0000010c,0x0004003d,0x0000001f,0x0000010e,0x000000fb, + 0x0007004f,0x0000000c,0x0000010f,0x0000010e,0x0000010e,0x00000002,0x00000003,0x00050085, + 0x0000000c,0x00000110,0x0000010d,0x0000010f,0x0004003d,0x0000001f,0x00000111,0x000000fb, + 0x0007004f,0x0000000c,0x00000112,0x00000111,0x00000111,0x00000002,0x00000003,0x00050083, + 0x0000000c,0x00000113,0x00000110,0x00000112,0x0003003e,0x00000114,0x00000113,0x00050039, + 0x0000000c,0x00000115,0x00000010,0x00000114,0x0003003e,0x0000010b,0x00000115,0x00050041, + 0x00000007,0x00000117,0x0000010b,0x00000052,0x0004003d,0x00000006,0x00000118,0x00000117, + 0x00050041,0x00000007,0x00000119,0x0000010b,0x00000055,0x0004003d,0x00000006,0x0000011a, + 0x00000119,0x0007000c,0x00000006,0x0000011b,0x00000001,0x00000025,0x00000118,0x0000011a, + 0x00050081,0x00000006,0x0000011c,0x0000011b,0x000000b9,0x0008000c,0x00000006,0x0000011d, + 0x00000001,0x0000002b,0x0000011c,0x0000006d,0x0000006c,0x0003003e,0x00000116,0x0000011d, + 0x0004003d,0x00000006,0x0000011e,0x000000a2,0x0004003d,0x00000006,0x0000011f,0x00000116, + 0x0007000c,0x00000006,0x00000120,0x00000001,0x00000025,0x0000011e,0x0000011f,0x0003003e, + 0x000000a2,0x00000120,0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x00050041,0x00000013, + 0x00000122,0x00000098,0x00000052,0x0004003d,0x00000012,0x00000123,0x00000122,0x000500c7, + 0x00000012,0x00000125,0x00000123,0x00000124,0x0003003e,0x00000121,0x00000125,0x0004003d, + 0x00000012,0x00000126,0x00000121,0x000500b2,0x0000008b,0x00000127,0x00000126,0x00000055, + 0x000300f7,0x00000129,0x00000000,0x000400fa,0x00000127,0x00000128,0x00000134,0x000200f8, + 0x00000128,0x00050041,0x00000013,0x0000012a,0x00000098,0x00000055,0x0004003d,0x00000012, + 0x0000012b,0x0000012a,0x0006000c,0x0000001f,0x0000012c,0x00000001,0x00000040,0x0000012b, + 0x0003003e,0x0000003a,0x0000012c,0x0004003d,0x00000012,0x0000012d,0x00000121,0x000500aa, + 0x0000008b,0x0000012e,0x0000012d,0x00000052,0x000500a7,0x0000008b,0x0000012f,0x000000c8, + 0x0000012e,0x000300f7,0x00000131,0x00000000,0x000400fa,0x0000012f,0x00000130,0x00000131, + 0x000200f8,0x00000130,0x0003003e,0x00000132,0x0000006d,0x00050039,0x0000001f,0x00000133, + 0x00000022,0x00000132,0x0003003e,0x0000003a,0x00000133,0x000200f9,0x00000131,0x000200f8, + 0x00000131,0x000200f9,0x00000129,0x000200f8,0x00000134,0x0004003d,0x00000012,0x00000136, + 0x00000038,0x00050084,0x00000012,0x00000137,0x00000136,0x000000f3,0x00060041,0x000000f7, + 0x00000139,0x000000f1,0x0000009d,0x00000137,0x0004003d,0x0000001f,0x0000013a,0x00000139, + 0x0003003e,0x00000138,0x0000013a,0x00050039,0x00000025,0x0000013b,0x00000028,0x00000138, + 0x0003003e,0x00000135,0x0000013b,0x0004003d,0x00000012,0x0000013d,0x00000038,0x00050084, + 0x00000012,0x0000013e,0x0000013d,0x000000f3,0x00050080,0x00000012,0x0000013f,0x0000013e, + 0x00000055,0x00060041,0x000000f7,0x00000140,0x000000f1,0x0000009d,0x0000013f,0x0004003d, + 0x0000001f,0x00000141,0x00000140,0x0003003e,0x0000013c,0x00000141,0x0004003d,0x00000025, + 0x00000143,0x00000135,0x0004003d,0x0000001f,0x00000144,0x00000104,0x0007004f,0x0000000c, + 0x00000145,0x00000144,0x00000144,0x00000000,0x00000001,0x00050091,0x0000000c,0x00000146, + 0x00000143,0x00000145,0x0004003d,0x0000001f,0x00000147,0x0000013c,0x0007004f,0x0000000c, + 0x00000148,0x00000147,0x00000147,0x00000000,0x00000001,0x00050081,0x0000000c,0x00000149, + 0x00000146,0x00000148,0x0003003e,0x00000142,0x00000149,0x0004003d,0x00000012,0x0000014b, + 0x00000121,0x000500aa,0x0000008b,0x0000014c,0x0000014b,0x00000060,0x000300f7,0x0000014f, + 0x00000000,0x000400fa,0x0000014c,0x0000014e,0x00000152,0x000200f8,0x0000014e,0x00050041, + 0x00000007,0x00000150,0x00000142,0x00000052,0x0004003d,0x00000006,0x00000151,0x00000150, + 0x0003003e,0x0000014d,0x00000151,0x000200f9,0x0000014f,0x000200f8,0x00000152,0x0004003d, + 0x0000000c,0x00000153,0x00000142,0x0006000c,0x00000006,0x00000154,0x00000001,0x00000042, + 0x00000153,0x0003003e,0x0000014d,0x00000154,0x000200f9,0x0000014f,0x000200f8,0x0000014f, + 0x0004003d,0x00000006,0x00000155,0x0000014d,0x0003003e,0x0000014a,0x00000155,0x0004003d, + 0x00000006,0x00000156,0x0000014a,0x0008000c,0x00000006,0x00000157,0x00000001,0x0000002b, + 0x00000156,0x0000006d,0x0000006c,0x0003003e,0x0000014a,0x00000157,0x0004003d,0x00000006, + 0x00000159,0x0000014a,0x00050041,0x00000007,0x0000015a,0x0000013c,0x00000060,0x0004003d, + 0x00000006,0x0000015b,0x0000015a,0x00050085,0x00000006,0x0000015c,0x00000159,0x0000015b, + 0x00050041,0x00000007,0x0000015d,0x0000013c,0x00000063,0x0004003d,0x00000006,0x0000015e, + 0x0000015d,0x00050081,0x00000006,0x0000015f,0x0000015c,0x0000015e,0x0003003e,0x00000158, + 0x0000015f,0x00050041,0x00000013,0x00000161,0x00000098,0x00000055,0x0004003d,0x00000012, + 0x00000162,0x00000161,0x0004007c,0x00000006,0x00000163,0x00000162,0x0003003e,0x00000160, + 0x00000163,0x0004003d,0x00000164,0x00000167,0x00000166,0x0004003d,0x00000168,0x0000016b, + 0x0000016a,0x00050056,0x0000016c,0x0000016d,0x00000167,0x0000016b,0x0004003d,0x00000006, + 0x0000016e,0x00000158,0x0004003d,0x00000006,0x0000016f,0x00000160,0x00050050,0x0000000c, + 0x00000170,0x0000016e,0x0000016f,0x00070058,0x0000001f,0x00000171,0x0000016d,0x00000170, + 0x00000002,0x0000006d,0x0003003e,0x0000003a,0x00000171,0x000200f9,0x00000129,0x000200f8, + 0x00000129,0x0004003d,0x00000006,0x00000172,0x000000a2,0x00050041,0x00000007,0x00000173, + 0x0000003a,0x00000063,0x0004003d,0x00000006,0x00000174,0x00000173,0x00050085,0x00000006, + 0x00000175,0x00000174,0x00000172,0x00050041,0x00000007,0x00000176,0x0000003a,0x00000063, + 0x0003003e,0x00000176,0x00000175,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.frag.h b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.frag.h new file mode 100644 index 00000000..766abfef --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.frag.h @@ -0,0 +1,1054 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_resolve_pls_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000468,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000399, + 0x00000436,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163,0x6f6c665f,0x745f7461,0x61685f6f, + 0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078,0x00090005,0x00000010,0x74736163, + 0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b,0x00030005,0x0000000f, + 0x00007978,0x00080005,0x00000016,0x74736163,0x6e69755f,0x6f745f74,0x6873755f,0x2874726f, + 0x003b3175,0x00030005,0x00000015,0x00000078,0x00060005,0x00000019,0x656b616d,0x6c61685f, + 0x31662866,0x0000003b,0x00030005,0x00000018,0x00000078,0x00070005,0x0000001e,0x656b616d, + 0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x0000001c,0x00000078,0x00030005, + 0x0000001d,0x00000079,0x00060005,0x00000022,0x656b616d,0x6c61685f,0x66283266,0x00003b31, + 0x00030005,0x00000021,0x00000078,0x00080005,0x00000029,0x656b616d,0x6c61685f,0x66283366, + 0x31663b31,0x3b31663b,0x00000000,0x00030005,0x00000026,0x00000078,0x00030005,0x00000027, + 0x00000079,0x00030005,0x00000028,0x0000007a,0x00060005,0x0000002d,0x656b616d,0x6c61685f, + 0x66283366,0x00003b31,0x00030005,0x0000002c,0x00000078,0x00060005,0x00000032,0x656b616d, + 0x6c61685f,0x66283466,0x00003b31,0x00030005,0x00000031,0x00000078,0x00080005,0x00000039, + 0x656b616d,0x6c61685f,0x33783266,0x33667628,0x3366763b,0x0000003b,0x00030005,0x00000037, + 0x00000061,0x00030005,0x00000038,0x00000062,0x00070005,0x0000003f,0x656b616d,0x6f6c665f, + 0x78327461,0x66762832,0x00003b34,0x00030005,0x0000003e,0x00000078,0x00060005,0x00000043, + 0x756d6e75,0x7069746c,0x7628796c,0x003b3466,0x00040005,0x00000042,0x6f6c6f63,0x00000072, + 0x00050005,0x00000047,0x766e696d,0x66762833,0x00003b33,0x00030005,0x00000046,0x00000063, + 0x00050005,0x0000004a,0x7678616d,0x66762833,0x00003b33,0x00030005,0x00000049,0x00000063, + 0x00050005,0x0000004d,0x766d756c,0x66762833,0x00003b33,0x00030005,0x0000004c,0x00000063, + 0x00050005,0x00000050,0x76746173,0x66762833,0x00003b33,0x00030005,0x0000004f,0x00000063, + 0x00060005,0x00000054,0x70696c63,0x6c6f635f,0x7628726f,0x003b3366,0x00040005,0x00000053, + 0x6f6c6f63,0x00000072,0x00070005,0x00000059,0x5f746573,0x286d756c,0x3b336676,0x3b336676, + 0x00000000,0x00040005,0x00000057,0x73616263,0x00000065,0x00040005,0x00000058,0x6d756c63, + 0x00000000,0x00090005,0x0000005f,0x5f746573,0x5f6d756c,0x28746173,0x3b336676,0x3b336676, + 0x3b336676,0x00000000,0x00040005,0x0000005c,0x73616263,0x00000065,0x00040005,0x0000005d, + 0x74617363,0x00000000,0x00040005,0x0000005e,0x6d756c63,0x00000000,0x000b0005,0x00000065, + 0x61766461,0x6465636e,0x656c625f,0x635f646e,0x6666656f,0x66762873,0x66763b33,0x31753b33, + 0x0000003b,0x00030005,0x00000062,0x00637273,0x00030005,0x00000063,0x00747364,0x00040005, + 0x00000064,0x65646f6d,0x00000000,0x000e0005,0x0000006b,0x61766461,0x6465636e,0x6c6f635f, + 0x625f726f,0x646e656c,0x6572705f,0x6372735f,0x65766f5f,0x66762872,0x66763b33,0x31753b34, + 0x0000003b,0x00030005,0x00000068,0x00637273,0x00030005,0x00000069,0x00747364,0x00040005, + 0x0000006a,0x65646f6d,0x00000000,0x00060005,0x0000006f,0x6d6f7266,0x7869665f,0x75286465, + 0x00003b31,0x00030005,0x0000006e,0x00000078,0x00080005,0x00000075,0x6c707061,0x6c635f79, + 0x75287069,0x66763b31,0x31663b34,0x0000003b,0x00040005,0x00000072,0x70696c63,0x00004449, + 0x00050005,0x00000073,0x70696c63,0x61746144,0x00000000,0x00050005,0x00000074,0x65766f63, + 0x65676172,0x00000000,0x000a0005,0x0000007f,0x6f736572,0x5f65766c,0x6e696170,0x31752874, + 0x3b31663b,0x3b346676,0x3b326976,0x00000000,0x00040005,0x0000007b,0x68746170,0x00004449, + 0x00060005,0x0000007c,0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00060005,0x0000007d, + 0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005,0x0000007e,0x736c705f,0x726f6f43, + 0x00000064,0x00080005,0x00000084,0x74696d65,0x736c705f,0x6c6f635f,0x7628726f,0x763b3466, + 0x003b3269,0x00060005,0x00000082,0x67617266,0x6f6c6f43,0x74754f72,0x00000000,0x00050005, + 0x00000083,0x736c705f,0x726f6f43,0x00000064,0x00030005,0x00000098,0x00746572,0x00030005, + 0x000000a2,0x00746572,0x00030005,0x000000aa,0x00746572,0x00030005,0x000000b5,0x00746572, + 0x00030005,0x000000bf,0x00746572,0x00030005,0x000000cd,0x00746572,0x00040005,0x00000100, + 0x61726170,0x0000006d,0x00040005,0x00000105,0x61726170,0x0000006d,0x00040005,0x0000012b, + 0x61726170,0x0000006d,0x00040005,0x0000012c,0x61726170,0x0000006d,0x00040005,0x0000012d, + 0x61726170,0x0000006d,0x00040005,0x00000132,0x61726170,0x0000006d,0x00040005,0x00000135, + 0x61726170,0x0000006d,0x00030005,0x0000013b,0x006d756c,0x00040005,0x0000013c,0x61726170, + 0x0000006d,0x00040005,0x0000013f,0x636e696d,0x00006c6f,0x00040005,0x00000140,0x61726170, + 0x0000006d,0x00040005,0x00000143,0x6378616d,0x00006c6f,0x00040005,0x00000144,0x61726170, + 0x0000006d,0x00040005,0x0000016f,0x7361626c,0x00000065,0x00040005,0x00000170,0x61726170, + 0x0000006d,0x00040005,0x00000173,0x6d756c6c,0x00000000,0x00040005,0x00000174,0x61726170, + 0x0000006d,0x00040005,0x00000177,0x6669646c,0x00000066,0x00040005,0x0000017b,0x6f6c6f63, + 0x00000072,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005,0x00000181,0x61726170, + 0x0000006d,0x00040005,0x00000186,0x626e696d,0x00657361,0x00040005,0x00000187,0x61726170, + 0x0000006d,0x00040005,0x0000018a,0x73616273,0x00000065,0x00040005,0x0000018b,0x61726170, + 0x0000006d,0x00040005,0x0000018e,0x74617373,0x00000000,0x00040005,0x0000018f,0x61726170, + 0x0000006d,0x00040005,0x00000196,0x6f6c6f63,0x00000072,0x00040005,0x000001a1,0x61726170, + 0x0000006d,0x00040005,0x000001a3,0x61726170,0x0000006d,0x00040005,0x000001a5,0x61726170, + 0x0000006d,0x00040005,0x000001bb,0x66656f63,0x00007366,0x00030005,0x000001c9,0x00000069, + 0x00040005,0x00000202,0x61726170,0x0000006d,0x00040005,0x00000205,0x61726170,0x0000006d, + 0x00040005,0x00000208,0x61726170,0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d, + 0x00040005,0x00000219,0x61726170,0x0000006d,0x00030005,0x0000021e,0x00000069,0x00030005, + 0x00000247,0x00000069,0x00080005,0x000002b4,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65, + 0x7365646f,0x00000000,0x00040005,0x000002b8,0x61726170,0x0000006d,0x00040005,0x000002ba, + 0x61726170,0x0000006d,0x00040005,0x000002bd,0x61726170,0x0000006d,0x00040005,0x000002bf, + 0x61726170,0x0000006d,0x00040005,0x000002c1,0x61726170,0x0000006d,0x00040005,0x000002c8, + 0x61726170,0x0000006d,0x00040005,0x000002ca,0x61726170,0x0000006d,0x00040005,0x000002cd, + 0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170,0x0000006d,0x00040005,0x000002d1, + 0x61726170,0x0000006d,0x00040005,0x000002d8,0x61726170,0x0000006d,0x00040005,0x000002da, + 0x61726170,0x0000006d,0x00040005,0x000002dd,0x61726170,0x0000006d,0x00040005,0x000002df, + 0x61726170,0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005,0x000002e8, + 0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005,0x000002ed, + 0x61726170,0x0000006d,0x00040005,0x000002f5,0x66656f63,0x00007366,0x00040005,0x000002f6, + 0x61726170,0x0000006d,0x00040005,0x000002f8,0x61726170,0x0000006d,0x00040005,0x000002fb, + 0x61726170,0x0000006d,0x00030005,0x000002fe,0x00000070,0x00040005,0x00000302,0x61726170, + 0x0000006d,0x00040005,0x00000305,0x61726170,0x0000006d,0x00040005,0x00000307,0x61726170, + 0x0000006d,0x00040005,0x00000309,0x61726170,0x0000006d,0x00040005,0x00000316,0x61726170, + 0x0000006d,0x00040005,0x00000322,0x61726170,0x0000006d,0x00050005,0x00000330,0x6e696170, + 0x74614474,0x00000061,0x00050005,0x00000332,0x6e696150,0x66754274,0x00726566,0x00050006, + 0x00000332,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000334,0x5058455f,0x4554524f, + 0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005,0x00000339,0x65766f63,0x65676172, + 0x00000000,0x00060005,0x00000344,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00040005, + 0x00000358,0x61726170,0x0000006d,0x00040005,0x0000035a,0x61726170,0x0000006d,0x00060005, + 0x0000035d,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00040005,0x00000360,0x70696c63, + 0x00004449,0x00060005,0x0000036b,0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00040005, + 0x0000036f,0x61726170,0x0000006d,0x00040005,0x00000371,0x61726170,0x0000006d,0x00040005, + 0x00000372,0x61726170,0x0000006d,0x00060005,0x00000376,0x616e456b,0x43656c62,0x5270696c, + 0x00746365,0x00030005,0x00000382,0x0000004d,0x00060005,0x00000384,0x6e696150,0x78754174, + 0x66667542,0x00007265,0x00050006,0x00000384,0x00000000,0x6c61765f,0x00736575,0x00090005, + 0x00000386,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000, + 0x00040005,0x0000038b,0x61726170,0x0000006d,0x00050005,0x00000390,0x6e617274,0x74616c73, + 0x00000065,0x00050005,0x00000396,0x70696c63,0x726f6f43,0x00000064,0x00060005,0x00000399, + 0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00040005,0x000003a0,0x74736964,0x00005958, + 0x00040005,0x000003a9,0x61726170,0x0000006d,0x00070005,0x000003ab,0x70696c63,0x74636552, + 0x65766f43,0x65676172,0x00000000,0x00050005,0x000003b6,0x6e696170,0x70795474,0x00000065, + 0x00040005,0x000003c7,0x61726170,0x0000006d,0x00030005,0x000003ca,0x0000004d,0x00040005, + 0x000003cd,0x61726170,0x0000006d,0x00050005,0x000003d1,0x6e617274,0x74616c73,0x00000065, + 0x00050005,0x000003d7,0x6e696170,0x6f6f4374,0x00006472,0x00030005,0x000003df,0x00000074, + 0x00030005,0x000003ed,0x00000078,0x00030005,0x000003f5,0x00000079,0x00080005,0x000003fb, + 0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065,0x00050005,0x000003ff, + 0x64617267,0x706d6153,0x0072656c,0x00080005,0x0000040c,0x616e456b,0x41656c62,0x6e617664, + 0x42646563,0x646e656c,0x00000000,0x00050005,0x00000415,0x6e656c62,0x646f4d64,0x00000065, + 0x00040005,0x0000041b,0x61726170,0x0000006d,0x00050005,0x00000421,0x43747364,0x726f6c6f, + 0x00000000,0x00060005,0x00000422,0x5f6e695f,0x6f6c6f63,0x66754272,0x00726566,0x00040005, + 0x00000425,0x61726170,0x0000006d,0x00040005,0x00000428,0x61726170,0x0000006d,0x00040005, + 0x0000042b,0x61726170,0x0000006d,0x00040005,0x0000042c,0x61726170,0x0000006d,0x00050005, + 0x00000436,0x6f6c6f63,0x66754272,0x00726566,0x00050005,0x00000438,0x736c705f,0x726f6f43, + 0x00000064,0x00070005,0x0000043d,0x7473616c,0x65766f43,0x65676172,0x61746144,0x00000000, + 0x00080005,0x00000440,0x65766f63,0x65676172,0x6d6f7441,0x75426369,0x72656666,0x00000000, + 0x00060005,0x00000446,0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00040005,0x0000044a, + 0x61726170,0x0000006d,0x00050005,0x0000044c,0x7473616c,0x68746150,0x00004449,0x00040005, + 0x00000450,0x61726170,0x0000006d,0x00060005,0x00000452,0x67617266,0x6f6c6f43,0x74754f72, + 0x00000000,0x00040005,0x00000453,0x61726170,0x0000006d,0x00040005,0x00000455,0x61726170, + 0x0000006d,0x00040005,0x00000457,0x61726170,0x0000006d,0x00040005,0x00000458,0x61726170, + 0x0000006d,0x00040005,0x0000045c,0x61726170,0x0000006d,0x00040005,0x0000045e,0x61726170, + 0x0000006d,0x00080005,0x00000461,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070, + 0x00000067,0x00060005,0x00000462,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005, + 0x00000463,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000, + 0x00080005,0x00000465,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72, + 0x00090006,0x00000465,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00090006,0x00000465,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x000b0006,0x00000465,0x00000002,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x00000465,0x00000003, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00080006,0x00000465,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068, + 0x00080006,0x00000465,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468, + 0x00070006,0x00000465,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006, + 0x00000465,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006, + 0x00000465,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75, + 0x00000000,0x00090006,0x00000465,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265, + 0x78696665,0x00000000,0x00080006,0x00000465,0x0000000a,0x68746170,0x72474449,0x6c756e61, + 0x74697261,0x00000079,0x00080006,0x00000465,0x0000000b,0x74726576,0x69447865,0x72616373, + 0x6c615664,0x00006575,0x00050005,0x00000467,0x66696e75,0x736d726f,0x00000000,0x00030047, + 0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000,0x00030047,0x00000016,0x00000000, + 0x00030047,0x00000019,0x00000000,0x00030047,0x00000018,0x00000000,0x00030047,0x0000001e, + 0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047, + 0x00000022,0x00000000,0x00030047,0x00000021,0x00000000,0x00030047,0x00000029,0x00000000, + 0x00030047,0x00000026,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047,0x00000028, + 0x00000000,0x00030047,0x0000002d,0x00000000,0x00030047,0x0000002c,0x00000000,0x00030047, + 0x00000032,0x00000000,0x00030047,0x00000031,0x00000000,0x00030047,0x00000039,0x00000000, + 0x00030047,0x00000037,0x00000000,0x00030047,0x00000038,0x00000000,0x00030047,0x00000043, + 0x00000000,0x00030047,0x00000042,0x00000000,0x00030047,0x00000047,0x00000000,0x00030047, + 0x00000046,0x00000000,0x00030047,0x0000004a,0x00000000,0x00030047,0x00000049,0x00000000, + 0x00030047,0x0000004d,0x00000000,0x00030047,0x0000004c,0x00000000,0x00030047,0x00000050, + 0x00000000,0x00030047,0x0000004f,0x00000000,0x00030047,0x00000054,0x00000000,0x00030047, + 0x00000053,0x00000000,0x00030047,0x00000059,0x00000000,0x00030047,0x00000057,0x00000000, + 0x00030047,0x00000058,0x00000000,0x00030047,0x0000005f,0x00000000,0x00030047,0x0000005c, + 0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047,0x0000005e,0x00000000,0x00030047, + 0x00000065,0x00000000,0x00030047,0x00000062,0x00000000,0x00030047,0x00000063,0x00000000, + 0x00030047,0x00000064,0x00000000,0x00030047,0x0000006b,0x00000000,0x00030047,0x00000068, + 0x00000000,0x00030047,0x00000069,0x00000000,0x00030047,0x0000006a,0x00000000,0x00030047, + 0x0000006f,0x00000000,0x00030047,0x00000073,0x00000000,0x00030047,0x00000074,0x00000000, + 0x00030047,0x0000007c,0x00000000,0x00030047,0x0000007d,0x00000000,0x00030047,0x00000082, + 0x00000000,0x00030047,0x00000087,0x00000000,0x00030047,0x00000088,0x00000000,0x00030047, + 0x0000008c,0x00000000,0x00030047,0x0000008d,0x00000000,0x00030047,0x00000091,0x00000000, + 0x00030047,0x00000092,0x00000000,0x00030047,0x00000095,0x00000000,0x00030047,0x00000098, + 0x00000000,0x00030047,0x00000099,0x00000000,0x00030047,0x0000009c,0x00000000,0x00030047, + 0x0000009f,0x00000000,0x00030047,0x000000a2,0x00000000,0x00030047,0x000000a3,0x00000000, + 0x00030047,0x000000a5,0x00000000,0x00030047,0x000000a7,0x00000000,0x00030047,0x000000aa, + 0x00000000,0x00030047,0x000000ab,0x00000000,0x00030047,0x000000ad,0x00000000,0x00030047, + 0x000000af,0x00000000,0x00030047,0x000000b2,0x00000000,0x00030047,0x000000b5,0x00000000, + 0x00030047,0x000000b6,0x00000000,0x00030047,0x000000b8,0x00000000,0x00030047,0x000000ba, + 0x00000000,0x00030047,0x000000bc,0x00000000,0x00030047,0x000000bf,0x00000000,0x00030047, + 0x000000c0,0x00000000,0x00030047,0x000000c2,0x00000000,0x00030047,0x000000c4,0x00000000, + 0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c9,0x00000000,0x00030047,0x000000cd, + 0x00000000,0x00030047,0x000000cf,0x00000000,0x00030047,0x000000d2,0x00000000,0x00030047, + 0x000000d4,0x00000000,0x00030047,0x000000e8,0x00000000,0x00030047,0x000000ed,0x00000000, + 0x00030047,0x000000f3,0x00000000,0x00030047,0x000000f4,0x00000000,0x00030047,0x000000f5, + 0x00000000,0x00030047,0x000000f6,0x00000000,0x00030047,0x000000f7,0x00000000,0x00030047, + 0x000000fe,0x00000000,0x00030047,0x000000ff,0x00000000,0x00030047,0x00000100,0x00000000, + 0x00030047,0x00000101,0x00000000,0x00030047,0x00000102,0x00000000,0x00030047,0x00000103, + 0x00000000,0x00030047,0x00000105,0x00000000,0x00030047,0x00000106,0x00000000,0x00030047, + 0x00000108,0x00000000,0x00030047,0x00000109,0x00000000,0x00030047,0x00000110,0x00000000, + 0x00030047,0x00000114,0x00000000,0x00030047,0x00000116,0x00000000,0x00030047,0x00000117, + 0x00000000,0x00030047,0x00000119,0x00000000,0x00030047,0x0000011a,0x00000000,0x00030047, + 0x0000011e,0x00000000,0x00030047,0x00000120,0x00000000,0x00030047,0x00000121,0x00000000, + 0x00030047,0x00000123,0x00000000,0x00030047,0x00000124,0x00000000,0x00030047,0x00000127, + 0x00000000,0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012c,0x00000000,0x00030047, + 0x0000012d,0x00000000,0x00030047,0x0000012e,0x00000000,0x00030047,0x0000012f,0x00000000, + 0x00030047,0x00000132,0x00000000,0x00030047,0x00000133,0x00000000,0x00030047,0x00000134, + 0x00000000,0x00030047,0x00000135,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047, + 0x00000137,0x00000000,0x00030047,0x00000138,0x00000000,0x00030047,0x0000013b,0x00000000, + 0x00030047,0x0000013c,0x00000000,0x00030047,0x0000013d,0x00000000,0x00030047,0x0000013e, + 0x00000000,0x00030047,0x0000013f,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047, + 0x00000141,0x00000000,0x00030047,0x00000142,0x00000000,0x00030047,0x00000143,0x00000000, + 0x00030047,0x00000144,0x00000000,0x00030047,0x00000145,0x00000000,0x00030047,0x00000146, + 0x00000000,0x00030047,0x00000147,0x00000000,0x00030047,0x0000014b,0x00000000,0x00030047, + 0x0000014c,0x00000000,0x00030047,0x0000014d,0x00000000,0x00030047,0x0000014e,0x00000000, + 0x00030047,0x0000014f,0x00000000,0x00030047,0x00000150,0x00000000,0x00030047,0x00000151, + 0x00000000,0x00030047,0x00000152,0x00000000,0x00030047,0x00000153,0x00000000,0x00030047, + 0x00000154,0x00000000,0x00030047,0x00000155,0x00000000,0x00030047,0x00000156,0x00000000, + 0x00030047,0x00000157,0x00000000,0x00030047,0x00000158,0x00000000,0x00030047,0x00000159, + 0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e,0x00000000,0x00030047, + 0x0000015f,0x00000000,0x00030047,0x00000160,0x00000000,0x00030047,0x00000161,0x00000000, + 0x00030047,0x00000162,0x00000000,0x00030047,0x00000163,0x00000000,0x00030047,0x00000164, + 0x00000000,0x00030047,0x00000165,0x00000000,0x00030047,0x00000166,0x00000000,0x00030047, + 0x00000167,0x00000000,0x00030047,0x00000168,0x00000000,0x00030047,0x00000169,0x00000000, + 0x00030047,0x0000016a,0x00000000,0x00030047,0x0000016b,0x00000000,0x00030047,0x0000016c, + 0x00000000,0x00030047,0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047, + 0x00000171,0x00000000,0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000, + 0x00030047,0x00000174,0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176, + 0x00000000,0x00030047,0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047, + 0x00000179,0x00000000,0x00030047,0x0000017a,0x00000000,0x00030047,0x0000017b,0x00000000, + 0x00030047,0x0000017c,0x00000000,0x00030047,0x0000017d,0x00000000,0x00030047,0x0000017e, + 0x00000000,0x00030047,0x0000017f,0x00000000,0x00030047,0x00000180,0x00000000,0x00030047, + 0x00000181,0x00000000,0x00030047,0x00000182,0x00000000,0x00030047,0x00000183,0x00000000, + 0x00030047,0x00000186,0x00000000,0x00030047,0x00000187,0x00000000,0x00030047,0x00000188, + 0x00000000,0x00030047,0x00000189,0x00000000,0x00030047,0x0000018a,0x00000000,0x00030047, + 0x0000018b,0x00000000,0x00030047,0x0000018c,0x00000000,0x00030047,0x0000018d,0x00000000, + 0x00030047,0x0000018e,0x00000000,0x00030047,0x0000018f,0x00000000,0x00030047,0x00000190, + 0x00000000,0x00030047,0x00000191,0x00000000,0x00030047,0x00000192,0x00000000,0x00030047, + 0x00000196,0x00000000,0x00030047,0x00000197,0x00000000,0x00030047,0x00000198,0x00000000, + 0x00030047,0x00000199,0x00000000,0x00030047,0x0000019a,0x00000000,0x00030047,0x0000019b, + 0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047,0x0000019d,0x00000000,0x00030047, + 0x0000019e,0x00000000,0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a1,0x00000000, + 0x00030047,0x000001a2,0x00000000,0x00030047,0x000001a3,0x00000000,0x00030047,0x000001a4, + 0x00000000,0x00030047,0x000001a5,0x00000000,0x00030047,0x000001a6,0x00000000,0x00030047, + 0x000001a7,0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047,0x000001bb,0x00000000, + 0x00030047,0x000001bc,0x00000000,0x00030047,0x000001bd,0x00000000,0x00030047,0x000001be, + 0x00000000,0x00030047,0x000001c0,0x00000000,0x00030047,0x000001c1,0x00000000,0x00030047, + 0x000001c2,0x00000000,0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4,0x00000000, + 0x00030047,0x000001c5,0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047,0x000001d4, + 0x00000000,0x00030047,0x000001dd,0x00000000,0x00030047,0x000001de,0x00000000,0x00030047, + 0x000001e1,0x00000000,0x00030047,0x000001e2,0x00000000,0x00030047,0x000001e8,0x00000000, + 0x00030047,0x000001e9,0x00000000,0x00030047,0x000001ea,0x00000000,0x00030047,0x000001ed, + 0x00000000,0x00030047,0x000001ee,0x00000000,0x00030047,0x000001ef,0x00000000,0x00030047, + 0x000001f0,0x00000000,0x00030047,0x000001f5,0x00000000,0x00030047,0x000001f6,0x00000000, + 0x00030047,0x000001f7,0x00000000,0x00030047,0x000001f9,0x00000000,0x00030047,0x000001fa, + 0x00000000,0x00030047,0x000001fb,0x00000000,0x00030047,0x000001fd,0x00000000,0x00030047, + 0x000001fe,0x00000000,0x00030047,0x000001ff,0x00000000,0x00030047,0x00000200,0x00000000, + 0x00030047,0x00000201,0x00000000,0x00030047,0x00000202,0x00000000,0x00030047,0x00000203, + 0x00000000,0x00030047,0x00000204,0x00000000,0x00030047,0x00000205,0x00000000,0x00030047, + 0x00000206,0x00000000,0x00030047,0x00000207,0x00000000,0x00030047,0x00000208,0x00000000, + 0x00030047,0x00000209,0x00000000,0x00030047,0x0000020a,0x00000000,0x00030047,0x0000020b, + 0x00000000,0x00030047,0x0000020d,0x00000000,0x00030047,0x0000020e,0x00000000,0x00030047, + 0x0000020f,0x00000000,0x00030047,0x00000210,0x00000000,0x00030047,0x00000211,0x00000000, + 0x00030047,0x00000212,0x00000000,0x00030047,0x00000213,0x00000000,0x00030047,0x00000214, + 0x00000000,0x00030047,0x00000215,0x00000000,0x00030047,0x00000216,0x00000000,0x00030047, + 0x00000217,0x00000000,0x00030047,0x00000218,0x00000000,0x00030047,0x00000219,0x00000000, + 0x00030047,0x0000021a,0x00000000,0x00030047,0x0000021b,0x00000000,0x00030047,0x0000021c, + 0x00000000,0x00030047,0x00000228,0x00000000,0x00030047,0x0000022f,0x00000000,0x00030047, + 0x00000230,0x00000000,0x00030047,0x00000233,0x00000000,0x00030047,0x00000234,0x00000000, + 0x00030047,0x0000023a,0x00000000,0x00030047,0x0000023b,0x00000000,0x00030047,0x0000023c, + 0x00000000,0x00030047,0x0000023f,0x00000000,0x00030047,0x00000240,0x00000000,0x00030047, + 0x00000241,0x00000000,0x00030047,0x00000242,0x00000000,0x00030047,0x00000251,0x00000000, + 0x00030047,0x00000258,0x00000000,0x00030047,0x0000025b,0x00000000,0x00030047,0x0000025c, + 0x00000000,0x00030047,0x0000025d,0x00000000,0x00030047,0x00000260,0x00000000,0x00030047, + 0x00000261,0x00000000,0x00030047,0x00000264,0x00000000,0x00030047,0x00000265,0x00000000, + 0x00030047,0x00000266,0x00000000,0x00030047,0x00000267,0x00000000,0x00030047,0x0000026c, + 0x00000000,0x00030047,0x00000274,0x00000000,0x00030047,0x00000277,0x00000000,0x00030047, + 0x00000278,0x00000000,0x00030047,0x00000279,0x00000000,0x00030047,0x0000027c,0x00000000, + 0x00030047,0x0000027d,0x00000000,0x00030047,0x00000281,0x00000000,0x00030047,0x00000282, + 0x00000000,0x00030047,0x00000284,0x00000000,0x00030047,0x00000287,0x00000000,0x00030047, + 0x00000288,0x00000000,0x00030047,0x0000028a,0x00000000,0x00030047,0x0000028b,0x00000000, + 0x00030047,0x0000028c,0x00000000,0x00030047,0x00000292,0x00000000,0x00030047,0x00000295, + 0x00000000,0x00030047,0x00000296,0x00000000,0x00030047,0x00000297,0x00000000,0x00030047, + 0x0000029a,0x00000000,0x00030047,0x0000029b,0x00000000,0x00030047,0x0000029e,0x00000000, + 0x00030047,0x0000029f,0x00000000,0x00030047,0x000002a0,0x00000000,0x00030047,0x000002a1, + 0x00000000,0x00030047,0x000002a6,0x00000000,0x00030047,0x000002a7,0x00000000,0x00030047, + 0x000002a8,0x00000000,0x00030047,0x000002a9,0x00000000,0x00030047,0x000002ab,0x00000000, + 0x00030047,0x000002ac,0x00000000,0x00030047,0x000002ad,0x00000000,0x00030047,0x000002ae, + 0x00000000,0x00030047,0x000002af,0x00000000,0x00030047,0x000002b0,0x00000000,0x00030047, + 0x000002b1,0x00000000,0x00030047,0x000002b2,0x00000000,0x00040047,0x000002b4,0x00000001, + 0x00000005,0x00030047,0x000002b7,0x00000000,0x00030047,0x000002b8,0x00000000,0x00030047, + 0x000002b9,0x00000000,0x00030047,0x000002ba,0x00000000,0x00030047,0x000002bb,0x00000000, + 0x00030047,0x000002bc,0x00000000,0x00030047,0x000002bd,0x00000000,0x00030047,0x000002be, + 0x00000000,0x00030047,0x000002bf,0x00000000,0x00030047,0x000002c0,0x00000000,0x00030047, + 0x000002c1,0x00000000,0x00030047,0x000002c2,0x00000000,0x00030047,0x000002c3,0x00000000, + 0x00030047,0x000002c7,0x00000000,0x00030047,0x000002c8,0x00000000,0x00030047,0x000002c9, + 0x00000000,0x00030047,0x000002ca,0x00000000,0x00030047,0x000002cb,0x00000000,0x00030047, + 0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000,0x00030047,0x000002ce,0x00000000, + 0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0,0x00000000,0x00030047,0x000002d1, + 0x00000000,0x00030047,0x000002d2,0x00000000,0x00030047,0x000002d3,0x00000000,0x00030047, + 0x000002d7,0x00000000,0x00030047,0x000002d8,0x00000000,0x00030047,0x000002d9,0x00000000, + 0x00030047,0x000002da,0x00000000,0x00030047,0x000002db,0x00000000,0x00030047,0x000002dc, + 0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047,0x000002de,0x00000000,0x00030047, + 0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000,0x00030047,0x000002e1,0x00000000, + 0x00030047,0x000002e5,0x00000000,0x00030047,0x000002e6,0x00000000,0x00030047,0x000002e7, + 0x00000000,0x00030047,0x000002e8,0x00000000,0x00030047,0x000002e9,0x00000000,0x00030047, + 0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000,0x00030047,0x000002ec,0x00000000, + 0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee,0x00000000,0x00030047,0x000002ef, + 0x00000000,0x00030047,0x000002f2,0x00000000,0x00030047,0x000002f5,0x00000000,0x00030047, + 0x000002f6,0x00000000,0x00030047,0x000002f7,0x00000000,0x00030047,0x000002f8,0x00000000, + 0x00030047,0x000002f9,0x00000000,0x00030047,0x000002fa,0x00000000,0x00030047,0x000002fb, + 0x00000000,0x00030047,0x000002fc,0x00000000,0x00030047,0x000002fd,0x00000000,0x00030047, + 0x000002fe,0x00000000,0x00030047,0x00000300,0x00000000,0x00030047,0x00000301,0x00000000, + 0x00030047,0x00000302,0x00000000,0x00030047,0x00000304,0x00000000,0x00030047,0x00000305, + 0x00000000,0x00030047,0x00000306,0x00000000,0x00030047,0x00000307,0x00000000,0x00030047, + 0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047,0x0000030a,0x00000000, + 0x00030047,0x0000030b,0x00000000,0x00030047,0x0000030c,0x00000000,0x00030047,0x0000030d, + 0x00000000,0x00030047,0x00000317,0x00000000,0x00030047,0x0000031a,0x00000000,0x00030047, + 0x0000031b,0x00000000,0x00030047,0x00000322,0x00000000,0x00030047,0x00000323,0x00000000, + 0x00030047,0x00000329,0x00000000,0x00030047,0x0000032b,0x00000000,0x00030047,0x0000032c, + 0x00000000,0x00040047,0x00000331,0x00000006,0x00000008,0x00040048,0x00000332,0x00000000, + 0x00000018,0x00050048,0x00000332,0x00000000,0x00000023,0x00000000,0x00030047,0x00000332, + 0x00000003,0x00040047,0x00000334,0x00000022,0x00000000,0x00040047,0x00000334,0x00000021, + 0x00000004,0x00030047,0x00000339,0x00000000,0x00030047,0x0000033a,0x00000000,0x00030047, + 0x00000342,0x00000000,0x00030047,0x00000343,0x00000000,0x00040047,0x00000344,0x00000001, + 0x00000003,0x00030047,0x0000034f,0x00000000,0x00030047,0x00000350,0x00000000,0x00030047, + 0x00000351,0x00000000,0x00030047,0x00000352,0x00000000,0x00030047,0x00000354,0x00000000, + 0x00030047,0x00000355,0x00000000,0x00030047,0x00000356,0x00000000,0x00030047,0x00000357, + 0x00000000,0x00030047,0x00000358,0x00000000,0x00030047,0x00000359,0x00000000,0x00030047, + 0x0000035a,0x00000000,0x00030047,0x0000035b,0x00000000,0x00030047,0x0000035c,0x00000000, + 0x00040047,0x0000035d,0x00000001,0x00000000,0x00030047,0x0000036b,0x00000000,0x00040047, + 0x0000036b,0x00000022,0x00000003,0x00040047,0x0000036b,0x00000021,0x00000001,0x00040047, + 0x0000036b,0x0000002b,0x00000001,0x00030047,0x0000036c,0x00000000,0x00030047,0x0000036e, + 0x00000000,0x00030047,0x00000371,0x00000000,0x00030047,0x00000372,0x00000000,0x00030047, + 0x00000373,0x00000000,0x00040047,0x00000376,0x00000001,0x00000001,0x00040047,0x00000383, + 0x00000006,0x00000010,0x00040048,0x00000384,0x00000000,0x00000018,0x00050048,0x00000384, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000384,0x00000003,0x00040047,0x00000386, + 0x00000022,0x00000000,0x00040047,0x00000386,0x00000021,0x00000005,0x00040047,0x00000399, + 0x0000000b,0x0000000f,0x00030047,0x000003a0,0x00000000,0x00030047,0x000003aa,0x00000000, + 0x00030047,0x000003ab,0x00000000,0x00030047,0x000003ad,0x00000000,0x00030047,0x000003af, + 0x00000000,0x00030047,0x000003b0,0x00000000,0x00030047,0x000003b1,0x00000000,0x00030047, + 0x000003b2,0x00000000,0x00030047,0x000003b3,0x00000000,0x00030047,0x000003b4,0x00000000, + 0x00030047,0x000003b5,0x00000000,0x00030047,0x000003c7,0x00000000,0x00030047,0x000003c8, + 0x00000000,0x00030047,0x000003fb,0x00000000,0x00040047,0x000003fb,0x00000022,0x00000000, + 0x00040047,0x000003fb,0x00000021,0x00000001,0x00030047,0x000003fc,0x00000000,0x00030047, + 0x000003ff,0x00000000,0x00040047,0x000003ff,0x00000022,0x00000002,0x00040047,0x000003ff, + 0x00000021,0x00000001,0x00030047,0x00000400,0x00000000,0x00030047,0x00000406,0x00000000, + 0x00030047,0x00000407,0x00000000,0x00030047,0x00000409,0x00000000,0x00030047,0x0000040a, + 0x00000000,0x00040047,0x0000040c,0x00000001,0x00000002,0x00030047,0x00000410,0x00000000, + 0x00030047,0x00000415,0x00000000,0x00030047,0x0000041c,0x00000000,0x00030047,0x00000421, + 0x00000000,0x00030047,0x00000422,0x00000000,0x00040047,0x00000422,0x00000022,0x00000003, + 0x00040047,0x00000422,0x00000021,0x00000000,0x00040047,0x00000422,0x0000002b,0x00000000, + 0x00030047,0x00000423,0x00000000,0x00030047,0x00000424,0x00000000,0x00030047,0x00000425, + 0x00000000,0x00030047,0x00000426,0x00000000,0x00030047,0x00000427,0x00000000,0x00030047, + 0x00000428,0x00000000,0x00030047,0x00000429,0x00000000,0x00030047,0x0000042a,0x00000000, + 0x00030047,0x0000042b,0x00000000,0x00030047,0x0000042c,0x00000000,0x00030047,0x0000042d, + 0x00000000,0x00030047,0x0000042e,0x00000000,0x00030047,0x00000436,0x00000000,0x00040047, + 0x00000436,0x0000001e,0x00000000,0x00030047,0x00000437,0x00000000,0x00040047,0x00000440, + 0x00000022,0x00000003,0x00040047,0x00000440,0x00000021,0x00000003,0x00030047,0x00000440, + 0x00000017,0x00030047,0x00000446,0x00000000,0x00030047,0x0000044b,0x00000000,0x00030047, + 0x0000044c,0x00000000,0x00030047,0x00000451,0x00000000,0x00030047,0x00000452,0x00000000, + 0x00030047,0x00000454,0x00000000,0x00030047,0x00000455,0x00000000,0x00030047,0x00000456, + 0x00000000,0x00030047,0x00000457,0x00000000,0x00030047,0x0000045c,0x00000000,0x00030047, + 0x0000045d,0x00000000,0x00040047,0x00000461,0x00000001,0x00000004,0x00040047,0x00000462, + 0x00000001,0x00000006,0x00040047,0x00000463,0x00000001,0x00000007,0x00050048,0x00000465, + 0x00000000,0x00000023,0x00000000,0x00050048,0x00000465,0x00000001,0x00000023,0x00000004, + 0x00050048,0x00000465,0x00000002,0x00000023,0x00000008,0x00050048,0x00000465,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x00000465,0x00000004,0x00000023,0x00000010,0x00050048, + 0x00000465,0x00000005,0x00000023,0x00000014,0x00050048,0x00000465,0x00000006,0x00000023, + 0x00000018,0x00050048,0x00000465,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000465, + 0x00000008,0x00000023,0x00000020,0x00050048,0x00000465,0x00000009,0x00000023,0x00000030, + 0x00050048,0x00000465,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000465,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x00000465,0x00000002,0x00040047,0x00000467,0x00000022, + 0x00000000,0x00040047,0x00000467,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006, + 0x00000002,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c, + 0x0000000d,0x00040015,0x00000012,0x00000020,0x00000000,0x00040020,0x00000013,0x00000007, + 0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00050021,0x0000001b,0x0000000c, + 0x00000007,0x00000007,0x00040021,0x00000020,0x0000000c,0x00000007,0x00040017,0x00000024, + 0x00000006,0x00000003,0x00060021,0x00000025,0x00000024,0x00000007,0x00000007,0x00000007, + 0x00040021,0x0000002b,0x00000024,0x00000007,0x00040017,0x0000002f,0x00000006,0x00000004, + 0x00040021,0x00000030,0x0000002f,0x00000007,0x00040020,0x00000034,0x00000007,0x00000024, + 0x00040018,0x00000035,0x00000024,0x00000002,0x00050021,0x00000036,0x00000035,0x00000034, + 0x00000034,0x00040020,0x0000003b,0x00000007,0x0000002f,0x00040018,0x0000003c,0x0000000c, + 0x00000002,0x00040021,0x0000003d,0x0000003c,0x0000003b,0x00040021,0x00000041,0x0000002f, + 0x0000003b,0x00040021,0x00000045,0x00000006,0x00000034,0x00040021,0x00000052,0x00000024, + 0x00000034,0x00050021,0x00000056,0x00000024,0x00000034,0x00000034,0x00060021,0x0000005b, + 0x00000024,0x00000034,0x00000034,0x00000034,0x00060021,0x00000061,0x00000024,0x00000034, + 0x00000034,0x00000013,0x00060021,0x00000067,0x00000024,0x00000034,0x0000003b,0x00000013, + 0x00040021,0x0000006d,0x00000006,0x00000013,0x00060021,0x00000071,0x00000002,0x00000013, + 0x0000003b,0x00000007,0x00040015,0x00000077,0x00000020,0x00000001,0x00040017,0x00000078, + 0x00000077,0x00000002,0x00040020,0x00000079,0x00000007,0x00000078,0x00070021,0x0000007a, + 0x00000002,0x00000013,0x00000007,0x0000003b,0x00000079,0x00050021,0x00000081,0x00000002, + 0x0000003b,0x00000079,0x0004002b,0x00000012,0x0000009a,0x00000000,0x0004002b,0x00000012, + 0x0000009d,0x00000001,0x0004002b,0x00000012,0x000000b0,0x00000002,0x0004002b,0x00000012, + 0x000000c7,0x00000003,0x00040020,0x000000cc,0x00000007,0x00000035,0x0004002b,0x00000077, + 0x000000ce,0x00000000,0x0004002b,0x00000077,0x000000d1,0x00000001,0x0004002b,0x00000006, + 0x000000db,0x3f800000,0x0004002b,0x00000006,0x000000dc,0x00000000,0x00020014,0x000000e6, + 0x0004002b,0x00000006,0x00000104,0x3f7f7f7f,0x00040017,0x00000107,0x000000e6,0x00000003, + 0x0004002b,0x00000006,0x00000128,0x3e99999a,0x0004002b,0x00000006,0x00000129,0x3f170a3d, + 0x0004002b,0x00000006,0x0000012a,0x3de147ae,0x00040020,0x000001c8,0x00000007,0x00000077, + 0x0004002b,0x00000077,0x000001d0,0x00000003,0x0004002b,0x00000006,0x000001d5,0x3f000000, + 0x0004002b,0x00000006,0x000001da,0x40000000,0x0004002b,0x00000006,0x0000026d,0x3e800000, + 0x0004002b,0x00000006,0x0000027e,0x41800000,0x0004002b,0x00000006,0x00000283,0x41400000, + 0x0004002b,0x00000006,0x00000289,0x40400000,0x00030031,0x000000e6,0x000002b4,0x0004002b, + 0x00000006,0x00000312,0x3b000000,0x0004002b,0x00000006,0x00000314,0xc2800000,0x0004002b, + 0x00000006,0x00000321,0x3a808081,0x00040017,0x00000324,0x000000e6,0x00000002,0x00040017, + 0x0000032e,0x00000012,0x00000002,0x00040020,0x0000032f,0x00000007,0x0000032e,0x0003001d, + 0x00000331,0x0000032e,0x0003001e,0x00000332,0x00000331,0x00040020,0x00000333,0x00000002, + 0x00000332,0x0004003b,0x00000333,0x00000334,0x00000002,0x00040020,0x00000336,0x00000002, + 0x0000032e,0x0004002b,0x00000012,0x0000033d,0x00000300,0x00030031,0x000000e6,0x00000344, + 0x0004002b,0x00000012,0x00000349,0x00000200,0x0004002b,0x00000006,0x00000353,0xbf800000, + 0x00030031,0x000000e6,0x0000035d,0x0004002b,0x00000012,0x00000363,0x00000010,0x00090019, + 0x00000369,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000, + 0x00040020,0x0000036a,0x00000000,0x00000369,0x0004003b,0x0000036a,0x0000036b,0x00000000, + 0x0005002c,0x00000078,0x0000036d,0x000000ce,0x000000ce,0x00030031,0x000000e6,0x00000376, + 0x0004002b,0x00000012,0x0000037b,0x00000400,0x00040020,0x00000381,0x00000007,0x0000003c, + 0x0003001d,0x00000383,0x0000002f,0x0003001e,0x00000384,0x00000383,0x00040020,0x00000385, + 0x00000002,0x00000384,0x0004003b,0x00000385,0x00000386,0x00000002,0x0004002b,0x00000012, + 0x00000388,0x00000004,0x00040020,0x0000038c,0x00000002,0x0000002f,0x00040020,0x00000398, + 0x00000001,0x0000002f,0x0004003b,0x00000398,0x00000399,0x00000001,0x0004002b,0x00000012, + 0x000003b9,0x0000000f,0x00090019,0x000003f9,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000003fa,0x00000000,0x000003f9,0x0004003b, + 0x000003fa,0x000003fb,0x00000000,0x0002001a,0x000003fd,0x00040020,0x000003fe,0x00000000, + 0x000003fd,0x0004003b,0x000003fe,0x000003ff,0x00000000,0x0003001b,0x00000401,0x000003f9, + 0x00030031,0x000000e6,0x0000040c,0x0004002b,0x00000077,0x00000418,0x00000004,0x0004003b, + 0x0000036a,0x00000422,0x00000000,0x00040020,0x00000435,0x00000003,0x0000002f,0x0004003b, + 0x00000435,0x00000436,0x00000003,0x00090019,0x0000043e,0x00000012,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x0000043f,0x00000000,0x0000043e, + 0x0004003b,0x0000043f,0x00000440,0x00000000,0x00040017,0x00000443,0x00000012,0x00000004, + 0x0004002b,0x00000012,0x00000448,0x0000ffff,0x0004002b,0x00000077,0x0000044e,0x00000010, + 0x00030031,0x000000e6,0x00000461,0x00030031,0x000000e6,0x00000462,0x00030031,0x000000e6, + 0x00000463,0x00040017,0x00000464,0x00000077,0x00000004,0x000e001e,0x00000465,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000012,0x00000012,0x00000012,0x00000012,0x00000464, + 0x00000012,0x00000012,0x00000006,0x00040020,0x00000466,0x00000002,0x00000465,0x0004003b, + 0x00000466,0x00000467,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x00000079,0x00000438,0x00000007,0x0004003b,0x00000013, + 0x0000043d,0x00000007,0x0004003b,0x00000007,0x00000446,0x00000007,0x0004003b,0x00000013, + 0x0000044a,0x00000007,0x0004003b,0x00000013,0x0000044c,0x00000007,0x0004003b,0x00000013, + 0x00000450,0x00000007,0x0004003b,0x0000003b,0x00000452,0x00000007,0x0004003b,0x00000013, + 0x00000453,0x00000007,0x0004003b,0x00000007,0x00000455,0x00000007,0x0004003b,0x0000003b, + 0x00000457,0x00000007,0x0004003b,0x00000079,0x00000458,0x00000007,0x0004003b,0x0000003b, + 0x0000045c,0x00000007,0x0004003b,0x00000079,0x0000045e,0x00000007,0x0004003d,0x0000002f, + 0x00000439,0x00000399,0x0007004f,0x0000000c,0x0000043a,0x00000439,0x00000439,0x00000000, + 0x00000001,0x0006000c,0x0000000c,0x0000043b,0x00000001,0x00000008,0x0000043a,0x0004006e, + 0x00000078,0x0000043c,0x0000043b,0x0003003e,0x00000438,0x0000043c,0x0004003d,0x0000043e, + 0x00000441,0x00000440,0x0004003d,0x00000078,0x00000442,0x00000438,0x00050062,0x00000443, + 0x00000444,0x00000441,0x00000442,0x00050051,0x00000012,0x00000445,0x00000444,0x00000000, + 0x0003003e,0x0000043d,0x00000445,0x0004003d,0x00000012,0x00000447,0x0000043d,0x000500c7, + 0x00000012,0x00000449,0x00000447,0x00000448,0x0003003e,0x0000044a,0x00000449,0x00050039, + 0x00000006,0x0000044b,0x0000006f,0x0000044a,0x0003003e,0x00000446,0x0000044b,0x0004003d, + 0x00000012,0x0000044d,0x0000043d,0x000500c2,0x00000012,0x0000044f,0x0000044d,0x0000044e, + 0x0003003e,0x00000450,0x0000044f,0x00050039,0x00000012,0x00000451,0x00000016,0x00000450, + 0x0003003e,0x0000044c,0x00000451,0x0004003d,0x00000012,0x00000454,0x0000044c,0x0003003e, + 0x00000453,0x00000454,0x0004003d,0x00000006,0x00000456,0x00000446,0x0003003e,0x00000455, + 0x00000456,0x0004003d,0x00000078,0x00000459,0x00000438,0x0003003e,0x00000458,0x00000459, + 0x00080039,0x00000002,0x0000045a,0x0000007f,0x00000453,0x00000455,0x00000457,0x00000458, + 0x0004003d,0x0000002f,0x0000045b,0x00000457,0x0003003e,0x00000452,0x0000045b,0x0004003d, + 0x0000002f,0x0000045d,0x00000452,0x0003003e,0x0000045c,0x0000045d,0x0004003d,0x00000078, + 0x0000045f,0x00000438,0x0003003e,0x0000045e,0x0000045f,0x00060039,0x00000002,0x00000460, + 0x00000084,0x0000045c,0x0000045e,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b, + 0x00000007,0x00000087,0x00000007,0x0004003d,0x00000006,0x00000086,0x00000009,0x0003003e, + 0x00000087,0x00000086,0x0004003d,0x00000006,0x00000088,0x00000087,0x000200fe,0x00000088, + 0x00010038,0x00050036,0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x0000000f,0x000200f8,0x00000011,0x0004003b,0x0000000d,0x0000008c,0x00000007,0x0004003d, + 0x0000000c,0x0000008b,0x0000000f,0x0003003e,0x0000008c,0x0000008b,0x0004003d,0x0000000c, + 0x0000008d,0x0000008c,0x000200fe,0x0000008d,0x00010038,0x00050036,0x00000012,0x00000016, + 0x00000000,0x00000014,0x00030037,0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003b, + 0x00000013,0x00000091,0x00000007,0x0004003d,0x00000012,0x00000090,0x00000015,0x0003003e, + 0x00000091,0x00000090,0x0004003d,0x00000012,0x00000092,0x00000091,0x000200fe,0x00000092, + 0x00010038,0x00050036,0x00000006,0x00000019,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000018,0x000200f8,0x0000001a,0x0004003d,0x00000006,0x00000095,0x00000018,0x000200fe, + 0x00000095,0x00010038,0x00050036,0x0000000c,0x0000001e,0x00000000,0x0000001b,0x00030037, + 0x00000007,0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f,0x0004003b, + 0x0000000d,0x00000098,0x00000007,0x0004003d,0x00000006,0x00000099,0x0000001c,0x00050041, + 0x00000007,0x0000009b,0x00000098,0x0000009a,0x0003003e,0x0000009b,0x00000099,0x0004003d, + 0x00000006,0x0000009c,0x0000001d,0x00050041,0x00000007,0x0000009e,0x00000098,0x0000009d, + 0x0003003e,0x0000009e,0x0000009c,0x0004003d,0x0000000c,0x0000009f,0x00000098,0x000200fe, + 0x0000009f,0x00010038,0x00050036,0x0000000c,0x00000022,0x00000000,0x00000020,0x00030037, + 0x00000007,0x00000021,0x000200f8,0x00000023,0x0004003b,0x0000000d,0x000000a2,0x00000007, + 0x0004003d,0x00000006,0x000000a3,0x00000021,0x00050041,0x00000007,0x000000a4,0x000000a2, + 0x0000009a,0x0003003e,0x000000a4,0x000000a3,0x0004003d,0x00000006,0x000000a5,0x00000021, + 0x00050041,0x00000007,0x000000a6,0x000000a2,0x0000009d,0x0003003e,0x000000a6,0x000000a5, + 0x0004003d,0x0000000c,0x000000a7,0x000000a2,0x000200fe,0x000000a7,0x00010038,0x00050036, + 0x00000024,0x00000029,0x00000000,0x00000025,0x00030037,0x00000007,0x00000026,0x00030037, + 0x00000007,0x00000027,0x00030037,0x00000007,0x00000028,0x000200f8,0x0000002a,0x0004003b, + 0x00000034,0x000000aa,0x00000007,0x0004003d,0x00000006,0x000000ab,0x00000026,0x00050041, + 0x00000007,0x000000ac,0x000000aa,0x0000009a,0x0003003e,0x000000ac,0x000000ab,0x0004003d, + 0x00000006,0x000000ad,0x00000027,0x00050041,0x00000007,0x000000ae,0x000000aa,0x0000009d, + 0x0003003e,0x000000ae,0x000000ad,0x0004003d,0x00000006,0x000000af,0x00000028,0x00050041, + 0x00000007,0x000000b1,0x000000aa,0x000000b0,0x0003003e,0x000000b1,0x000000af,0x0004003d, + 0x00000024,0x000000b2,0x000000aa,0x000200fe,0x000000b2,0x00010038,0x00050036,0x00000024, + 0x0000002d,0x00000000,0x0000002b,0x00030037,0x00000007,0x0000002c,0x000200f8,0x0000002e, + 0x0004003b,0x00000034,0x000000b5,0x00000007,0x0004003d,0x00000006,0x000000b6,0x0000002c, + 0x00050041,0x00000007,0x000000b7,0x000000b5,0x0000009a,0x0003003e,0x000000b7,0x000000b6, + 0x0004003d,0x00000006,0x000000b8,0x0000002c,0x00050041,0x00000007,0x000000b9,0x000000b5, + 0x0000009d,0x0003003e,0x000000b9,0x000000b8,0x0004003d,0x00000006,0x000000ba,0x0000002c, + 0x00050041,0x00000007,0x000000bb,0x000000b5,0x000000b0,0x0003003e,0x000000bb,0x000000ba, + 0x0004003d,0x00000024,0x000000bc,0x000000b5,0x000200fe,0x000000bc,0x00010038,0x00050036, + 0x0000002f,0x00000032,0x00000000,0x00000030,0x00030037,0x00000007,0x00000031,0x000200f8, + 0x00000033,0x0004003b,0x0000003b,0x000000bf,0x00000007,0x0004003d,0x00000006,0x000000c0, + 0x00000031,0x00050041,0x00000007,0x000000c1,0x000000bf,0x0000009a,0x0003003e,0x000000c1, + 0x000000c0,0x0004003d,0x00000006,0x000000c2,0x00000031,0x00050041,0x00000007,0x000000c3, + 0x000000bf,0x0000009d,0x0003003e,0x000000c3,0x000000c2,0x0004003d,0x00000006,0x000000c4, + 0x00000031,0x00050041,0x00000007,0x000000c5,0x000000bf,0x000000b0,0x0003003e,0x000000c5, + 0x000000c4,0x0004003d,0x00000006,0x000000c6,0x00000031,0x00050041,0x00000007,0x000000c8, + 0x000000bf,0x000000c7,0x0003003e,0x000000c8,0x000000c6,0x0004003d,0x0000002f,0x000000c9, + 0x000000bf,0x000200fe,0x000000c9,0x00010038,0x00050036,0x00000035,0x00000039,0x00000000, + 0x00000036,0x00030037,0x00000034,0x00000037,0x00030037,0x00000034,0x00000038,0x000200f8, + 0x0000003a,0x0004003b,0x000000cc,0x000000cd,0x00000007,0x0004003d,0x00000024,0x000000cf, + 0x00000037,0x00050041,0x00000034,0x000000d0,0x000000cd,0x000000ce,0x0003003e,0x000000d0, + 0x000000cf,0x0004003d,0x00000024,0x000000d2,0x00000038,0x00050041,0x00000034,0x000000d3, + 0x000000cd,0x000000d1,0x0003003e,0x000000d3,0x000000d2,0x0004003d,0x00000035,0x000000d4, + 0x000000cd,0x000200fe,0x000000d4,0x00010038,0x00050036,0x0000003c,0x0000003f,0x00000000, + 0x0000003d,0x00030037,0x0000003b,0x0000003e,0x000200f8,0x00000040,0x0004003d,0x0000002f, + 0x000000d7,0x0000003e,0x0007004f,0x0000000c,0x000000d8,0x000000d7,0x000000d7,0x00000000, + 0x00000001,0x0004003d,0x0000002f,0x000000d9,0x0000003e,0x0007004f,0x0000000c,0x000000da, + 0x000000d9,0x000000d9,0x00000002,0x00000003,0x00050051,0x00000006,0x000000dd,0x000000d8, + 0x00000000,0x00050051,0x00000006,0x000000de,0x000000d8,0x00000001,0x00050051,0x00000006, + 0x000000df,0x000000da,0x00000000,0x00050051,0x00000006,0x000000e0,0x000000da,0x00000001, + 0x00050050,0x0000000c,0x000000e1,0x000000dd,0x000000de,0x00050050,0x0000000c,0x000000e2, + 0x000000df,0x000000e0,0x00050050,0x0000003c,0x000000e3,0x000000e1,0x000000e2,0x000200fe, + 0x000000e3,0x00010038,0x00050036,0x0000002f,0x00000043,0x00000000,0x00000041,0x00030037, + 0x0000003b,0x00000042,0x000200f8,0x00000044,0x0004003b,0x00000007,0x00000100,0x00000007, + 0x0004003b,0x00000007,0x00000105,0x00000007,0x00050041,0x00000007,0x000000e7,0x00000042, + 0x000000c7,0x0004003d,0x00000006,0x000000e8,0x000000e7,0x000500b8,0x000000e6,0x000000e9, + 0x000000dc,0x000000e8,0x000300f7,0x000000eb,0x00000000,0x000400fa,0x000000e9,0x000000ea, + 0x000000eb,0x000200f8,0x000000ea,0x00050041,0x00000007,0x000000ec,0x00000042,0x000000c7, + 0x0004003d,0x00000006,0x000000ed,0x000000ec,0x000500b8,0x000000e6,0x000000ee,0x000000ed, + 0x000000db,0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x000700f5,0x000000e6,0x000000ef, + 0x000000e9,0x00000044,0x000000ee,0x000000ea,0x000300f7,0x000000f1,0x00000000,0x000400fa, + 0x000000ef,0x000000f0,0x000000f1,0x000200f8,0x000000f0,0x00050041,0x00000007,0x000000f2, + 0x00000042,0x000000c7,0x0004003d,0x00000006,0x000000f3,0x000000f2,0x00050088,0x00000006, + 0x000000f4,0x000000db,0x000000f3,0x0004003d,0x0000002f,0x000000f5,0x00000042,0x0008004f, + 0x00000024,0x000000f6,0x000000f5,0x000000f5,0x00000000,0x00000001,0x00000002,0x0005008e, + 0x00000024,0x000000f7,0x000000f6,0x000000f4,0x00050041,0x00000007,0x000000f8,0x00000042, + 0x0000009a,0x00050051,0x00000006,0x000000f9,0x000000f7,0x00000000,0x0003003e,0x000000f8, + 0x000000f9,0x00050041,0x00000007,0x000000fa,0x00000042,0x0000009d,0x00050051,0x00000006, + 0x000000fb,0x000000f7,0x00000001,0x0003003e,0x000000fa,0x000000fb,0x00050041,0x00000007, + 0x000000fc,0x00000042,0x000000b0,0x00050051,0x00000006,0x000000fd,0x000000f7,0x00000002, + 0x0003003e,0x000000fc,0x000000fd,0x0004003d,0x0000002f,0x000000fe,0x00000042,0x0008004f, + 0x00000024,0x000000ff,0x000000fe,0x000000fe,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x00000100,0x000000db,0x00050039,0x00000024,0x00000101,0x0000002d,0x00000100,0x0004003d, + 0x0000002f,0x00000102,0x00000042,0x0008004f,0x00000024,0x00000103,0x00000102,0x00000102, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000105,0x00000104,0x00050039,0x00000024, + 0x00000106,0x0000002d,0x00000105,0x000500ba,0x00000107,0x00000108,0x00000103,0x00000106, + 0x000600a9,0x00000024,0x00000109,0x00000108,0x00000101,0x000000ff,0x00050041,0x00000007, + 0x0000010a,0x00000042,0x0000009a,0x00050051,0x00000006,0x0000010b,0x00000109,0x00000000, + 0x0003003e,0x0000010a,0x0000010b,0x00050041,0x00000007,0x0000010c,0x00000042,0x0000009d, + 0x00050051,0x00000006,0x0000010d,0x00000109,0x00000001,0x0003003e,0x0000010c,0x0000010d, + 0x00050041,0x00000007,0x0000010e,0x00000042,0x000000b0,0x00050051,0x00000006,0x0000010f, + 0x00000109,0x00000002,0x0003003e,0x0000010e,0x0000010f,0x000200f9,0x000000f1,0x000200f8, + 0x000000f1,0x0004003d,0x0000002f,0x00000110,0x00000042,0x000200fe,0x00000110,0x00010038, + 0x00050036,0x00000006,0x00000047,0x00000000,0x00000045,0x00030037,0x00000034,0x00000046, + 0x000200f8,0x00000048,0x00050041,0x00000007,0x00000113,0x00000046,0x0000009a,0x0004003d, + 0x00000006,0x00000114,0x00000113,0x00050041,0x00000007,0x00000115,0x00000046,0x0000009d, + 0x0004003d,0x00000006,0x00000116,0x00000115,0x0007000c,0x00000006,0x00000117,0x00000001, + 0x00000025,0x00000114,0x00000116,0x00050041,0x00000007,0x00000118,0x00000046,0x000000b0, + 0x0004003d,0x00000006,0x00000119,0x00000118,0x0007000c,0x00000006,0x0000011a,0x00000001, + 0x00000025,0x00000117,0x00000119,0x000200fe,0x0000011a,0x00010038,0x00050036,0x00000006, + 0x0000004a,0x00000000,0x00000045,0x00030037,0x00000034,0x00000049,0x000200f8,0x0000004b, + 0x00050041,0x00000007,0x0000011d,0x00000049,0x0000009a,0x0004003d,0x00000006,0x0000011e, + 0x0000011d,0x00050041,0x00000007,0x0000011f,0x00000049,0x0000009d,0x0004003d,0x00000006, + 0x00000120,0x0000011f,0x0007000c,0x00000006,0x00000121,0x00000001,0x00000028,0x0000011e, + 0x00000120,0x00050041,0x00000007,0x00000122,0x00000049,0x000000b0,0x0004003d,0x00000006, + 0x00000123,0x00000122,0x0007000c,0x00000006,0x00000124,0x00000001,0x00000028,0x00000121, + 0x00000123,0x000200fe,0x00000124,0x00010038,0x00050036,0x00000006,0x0000004d,0x00000000, + 0x00000045,0x00030037,0x00000034,0x0000004c,0x000200f8,0x0000004e,0x0004003b,0x00000007, + 0x0000012b,0x00000007,0x0004003b,0x00000007,0x0000012c,0x00000007,0x0004003b,0x00000007, + 0x0000012d,0x00000007,0x0004003d,0x00000024,0x00000127,0x0000004c,0x0003003e,0x0000012b, + 0x00000128,0x0003003e,0x0000012c,0x00000129,0x0003003e,0x0000012d,0x0000012a,0x00070039, + 0x00000024,0x0000012e,0x00000029,0x0000012b,0x0000012c,0x0000012d,0x00050094,0x00000006, + 0x0000012f,0x00000127,0x0000012e,0x000200fe,0x0000012f,0x00010038,0x00050036,0x00000006, + 0x00000050,0x00000000,0x00000045,0x00030037,0x00000034,0x0000004f,0x000200f8,0x00000051, + 0x0004003b,0x00000034,0x00000132,0x00000007,0x0004003b,0x00000034,0x00000135,0x00000007, + 0x0004003d,0x00000024,0x00000133,0x0000004f,0x0003003e,0x00000132,0x00000133,0x00050039, + 0x00000006,0x00000134,0x0000004a,0x00000132,0x0004003d,0x00000024,0x00000136,0x0000004f, + 0x0003003e,0x00000135,0x00000136,0x00050039,0x00000006,0x00000137,0x00000047,0x00000135, + 0x00050083,0x00000006,0x00000138,0x00000134,0x00000137,0x000200fe,0x00000138,0x00010038, + 0x00050036,0x00000024,0x00000054,0x00000000,0x00000052,0x00030037,0x00000034,0x00000053, + 0x000200f8,0x00000055,0x0004003b,0x00000007,0x0000013b,0x00000007,0x0004003b,0x00000034, + 0x0000013c,0x00000007,0x0004003b,0x00000007,0x0000013f,0x00000007,0x0004003b,0x00000034, + 0x00000140,0x00000007,0x0004003b,0x00000007,0x00000143,0x00000007,0x0004003b,0x00000034, + 0x00000144,0x00000007,0x0004003d,0x00000024,0x0000013d,0x00000053,0x0003003e,0x0000013c, + 0x0000013d,0x00050039,0x00000006,0x0000013e,0x0000004d,0x0000013c,0x0003003e,0x0000013b, + 0x0000013e,0x0004003d,0x00000024,0x00000141,0x00000053,0x0003003e,0x00000140,0x00000141, + 0x00050039,0x00000006,0x00000142,0x00000047,0x00000140,0x0003003e,0x0000013f,0x00000142, + 0x0004003d,0x00000024,0x00000145,0x00000053,0x0003003e,0x00000144,0x00000145,0x00050039, + 0x00000006,0x00000146,0x0000004a,0x00000144,0x0003003e,0x00000143,0x00000146,0x0004003d, + 0x00000006,0x00000147,0x0000013f,0x000500b8,0x000000e6,0x00000148,0x00000147,0x000000dc, + 0x000300f7,0x0000014a,0x00000000,0x000400fa,0x00000148,0x00000149,0x0000014a,0x000200f8, + 0x00000149,0x0004003d,0x00000006,0x0000014b,0x0000013b,0x0004003d,0x00000024,0x0000014c, + 0x00000053,0x0004003d,0x00000006,0x0000014d,0x0000013b,0x00060050,0x00000024,0x0000014e, + 0x0000014d,0x0000014d,0x0000014d,0x00050083,0x00000024,0x0000014f,0x0000014c,0x0000014e, + 0x0004003d,0x00000006,0x00000150,0x0000013b,0x0005008e,0x00000024,0x00000151,0x0000014f, + 0x00000150,0x0004003d,0x00000006,0x00000152,0x0000013b,0x0004003d,0x00000006,0x00000153, + 0x0000013f,0x00050083,0x00000006,0x00000154,0x00000152,0x00000153,0x00060050,0x00000024, + 0x00000155,0x00000154,0x00000154,0x00000154,0x00050088,0x00000024,0x00000156,0x00000151, + 0x00000155,0x00060050,0x00000024,0x00000157,0x0000014b,0x0000014b,0x0000014b,0x00050081, + 0x00000024,0x00000158,0x00000157,0x00000156,0x0003003e,0x00000053,0x00000158,0x000200f9, + 0x0000014a,0x000200f8,0x0000014a,0x0004003d,0x00000006,0x00000159,0x00000143,0x000500ba, + 0x000000e6,0x0000015a,0x00000159,0x000000db,0x000300f7,0x0000015c,0x00000000,0x000400fa, + 0x0000015a,0x0000015b,0x0000015c,0x000200f8,0x0000015b,0x0004003d,0x00000006,0x0000015d, + 0x0000013b,0x0004003d,0x00000024,0x0000015e,0x00000053,0x0004003d,0x00000006,0x0000015f, + 0x0000013b,0x00060050,0x00000024,0x00000160,0x0000015f,0x0000015f,0x0000015f,0x00050083, + 0x00000024,0x00000161,0x0000015e,0x00000160,0x0004003d,0x00000006,0x00000162,0x0000013b, + 0x00050083,0x00000006,0x00000163,0x000000db,0x00000162,0x0005008e,0x00000024,0x00000164, + 0x00000161,0x00000163,0x0004003d,0x00000006,0x00000165,0x00000143,0x0004003d,0x00000006, + 0x00000166,0x0000013b,0x00050083,0x00000006,0x00000167,0x00000165,0x00000166,0x00060050, + 0x00000024,0x00000168,0x00000167,0x00000167,0x00000167,0x00050088,0x00000024,0x00000169, + 0x00000164,0x00000168,0x00060050,0x00000024,0x0000016a,0x0000015d,0x0000015d,0x0000015d, + 0x00050081,0x00000024,0x0000016b,0x0000016a,0x00000169,0x0003003e,0x00000053,0x0000016b, + 0x000200f9,0x0000015c,0x000200f8,0x0000015c,0x0004003d,0x00000024,0x0000016c,0x00000053, + 0x000200fe,0x0000016c,0x00010038,0x00050036,0x00000024,0x00000059,0x00000000,0x00000056, + 0x00030037,0x00000034,0x00000057,0x00030037,0x00000034,0x00000058,0x000200f8,0x0000005a, + 0x0004003b,0x00000007,0x0000016f,0x00000007,0x0004003b,0x00000034,0x00000170,0x00000007, + 0x0004003b,0x00000007,0x00000173,0x00000007,0x0004003b,0x00000034,0x00000174,0x00000007, + 0x0004003b,0x00000007,0x00000177,0x00000007,0x0004003b,0x00000034,0x0000017b,0x00000007, + 0x0004003b,0x00000007,0x0000017d,0x00000007,0x0004003b,0x00000034,0x00000181,0x00000007, + 0x0004003d,0x00000024,0x00000171,0x00000057,0x0003003e,0x00000170,0x00000171,0x00050039, + 0x00000006,0x00000172,0x0000004d,0x00000170,0x0003003e,0x0000016f,0x00000172,0x0004003d, + 0x00000024,0x00000175,0x00000058,0x0003003e,0x00000174,0x00000175,0x00050039,0x00000006, + 0x00000176,0x0000004d,0x00000174,0x0003003e,0x00000173,0x00000176,0x0004003d,0x00000006, + 0x00000178,0x00000173,0x0004003d,0x00000006,0x00000179,0x0000016f,0x00050083,0x00000006, + 0x0000017a,0x00000178,0x00000179,0x0003003e,0x00000177,0x0000017a,0x0004003d,0x00000024, + 0x0000017c,0x00000057,0x0004003d,0x00000006,0x0000017e,0x00000177,0x0003003e,0x0000017d, + 0x0000017e,0x00050039,0x00000024,0x0000017f,0x0000002d,0x0000017d,0x00050081,0x00000024, + 0x00000180,0x0000017c,0x0000017f,0x0003003e,0x0000017b,0x00000180,0x0004003d,0x00000024, + 0x00000182,0x0000017b,0x0003003e,0x00000181,0x00000182,0x00050039,0x00000024,0x00000183, + 0x00000054,0x00000181,0x000200fe,0x00000183,0x00010038,0x00050036,0x00000024,0x0000005f, + 0x00000000,0x0000005b,0x00030037,0x00000034,0x0000005c,0x00030037,0x00000034,0x0000005d, + 0x00030037,0x00000034,0x0000005e,0x000200f8,0x00000060,0x0004003b,0x00000007,0x00000186, + 0x00000007,0x0004003b,0x00000034,0x00000187,0x00000007,0x0004003b,0x00000007,0x0000018a, + 0x00000007,0x0004003b,0x00000034,0x0000018b,0x00000007,0x0004003b,0x00000007,0x0000018e, + 0x00000007,0x0004003b,0x00000034,0x0000018f,0x00000007,0x0004003b,0x00000034,0x00000196, + 0x00000007,0x0004003b,0x00000007,0x000001a1,0x00000007,0x0004003b,0x00000034,0x000001a3, + 0x00000007,0x0004003b,0x00000034,0x000001a5,0x00000007,0x0004003d,0x00000024,0x00000188, + 0x0000005c,0x0003003e,0x00000187,0x00000188,0x00050039,0x00000006,0x00000189,0x00000047, + 0x00000187,0x0003003e,0x00000186,0x00000189,0x0004003d,0x00000024,0x0000018c,0x0000005c, + 0x0003003e,0x0000018b,0x0000018c,0x00050039,0x00000006,0x0000018d,0x00000050,0x0000018b, + 0x0003003e,0x0000018a,0x0000018d,0x0004003d,0x00000024,0x00000190,0x0000005d,0x0003003e, + 0x0000018f,0x00000190,0x00050039,0x00000006,0x00000191,0x00000050,0x0000018f,0x0003003e, + 0x0000018e,0x00000191,0x0004003d,0x00000006,0x00000192,0x0000018a,0x000500ba,0x000000e6, + 0x00000193,0x00000192,0x000000dc,0x000300f7,0x00000195,0x00000000,0x000400fa,0x00000193, + 0x00000194,0x000001a0,0x000200f8,0x00000194,0x0004003d,0x00000024,0x00000197,0x0000005c, + 0x0004003d,0x00000006,0x00000198,0x00000186,0x00060050,0x00000024,0x00000199,0x00000198, + 0x00000198,0x00000198,0x00050083,0x00000024,0x0000019a,0x00000197,0x00000199,0x0004003d, + 0x00000006,0x0000019b,0x0000018e,0x0005008e,0x00000024,0x0000019c,0x0000019a,0x0000019b, + 0x0004003d,0x00000006,0x0000019d,0x0000018a,0x00060050,0x00000024,0x0000019e,0x0000019d, + 0x0000019d,0x0000019d,0x00050088,0x00000024,0x0000019f,0x0000019c,0x0000019e,0x0003003e, + 0x00000196,0x0000019f,0x000200f9,0x00000195,0x000200f8,0x000001a0,0x0003003e,0x000001a1, + 0x000000dc,0x00050039,0x00000024,0x000001a2,0x0000002d,0x000001a1,0x0003003e,0x00000196, + 0x000001a2,0x000200f9,0x00000195,0x000200f8,0x00000195,0x0004003d,0x00000024,0x000001a4, + 0x00000196,0x0003003e,0x000001a3,0x000001a4,0x0004003d,0x00000024,0x000001a6,0x0000005e, + 0x0003003e,0x000001a5,0x000001a6,0x00060039,0x00000024,0x000001a7,0x00000059,0x000001a3, + 0x000001a5,0x000200fe,0x000001a7,0x00010038,0x00050036,0x00000024,0x00000065,0x00000000, + 0x00000061,0x00030037,0x00000034,0x00000062,0x00030037,0x00000034,0x00000063,0x00030037, + 0x00000013,0x00000064,0x000200f8,0x00000066,0x0004003b,0x00000034,0x000001bb,0x00000007, + 0x0004003b,0x000001c8,0x000001c9,0x00000007,0x0004003b,0x00000007,0x00000202,0x00000007, + 0x0004003b,0x00000007,0x00000205,0x00000007,0x0004003b,0x00000007,0x00000208,0x00000007, + 0x0004003b,0x00000007,0x00000216,0x00000007,0x0004003b,0x00000007,0x00000219,0x00000007, + 0x0004003b,0x000001c8,0x0000021e,0x00000007,0x0004003b,0x000001c8,0x00000247,0x00000007, + 0x0004003b,0x00000007,0x000002b8,0x00000007,0x0004003b,0x00000007,0x000002ba,0x00000007, + 0x0004003b,0x00000034,0x000002bd,0x00000007,0x0004003b,0x00000034,0x000002bf,0x00000007, + 0x0004003b,0x00000034,0x000002c1,0x00000007,0x0004003b,0x00000007,0x000002c8,0x00000007, + 0x0004003b,0x00000007,0x000002ca,0x00000007,0x0004003b,0x00000034,0x000002cd,0x00000007, + 0x0004003b,0x00000034,0x000002cf,0x00000007,0x0004003b,0x00000034,0x000002d1,0x00000007, + 0x0004003b,0x00000007,0x000002d8,0x00000007,0x0004003b,0x00000007,0x000002da,0x00000007, + 0x0004003b,0x00000034,0x000002dd,0x00000007,0x0004003b,0x00000034,0x000002df,0x00000007, + 0x0004003b,0x00000007,0x000002e6,0x00000007,0x0004003b,0x00000007,0x000002e8,0x00000007, + 0x0004003b,0x00000034,0x000002eb,0x00000007,0x0004003b,0x00000034,0x000002ed,0x00000007, + 0x0004003d,0x00000012,0x000001aa,0x00000064,0x000300f7,0x000001ba,0x00000000,0x002100fb, + 0x000001aa,0x000001ba,0x0000000b,0x000001ab,0x00000001,0x000001ac,0x00000002,0x000001ad, + 0x00000003,0x000001ae,0x00000004,0x000001af,0x00000005,0x000001b0,0x00000006,0x000001b1, + 0x00000007,0x000001b2,0x00000008,0x000001b3,0x00000009,0x000001b4,0x0000000a,0x000001b5, + 0x0000000c,0x000001b6,0x0000000d,0x000001b7,0x0000000e,0x000001b8,0x0000000f,0x000001b9, + 0x000200f8,0x000001ab,0x0004003d,0x00000024,0x000001bc,0x00000062,0x0004003d,0x00000024, + 0x000001bd,0x00000063,0x00050085,0x00000024,0x000001be,0x000001bc,0x000001bd,0x0003003e, + 0x000001bb,0x000001be,0x000200f9,0x000001ba,0x000200f8,0x000001ac,0x0004003d,0x00000024, + 0x000001c0,0x00000062,0x0004003d,0x00000024,0x000001c1,0x00000063,0x00050081,0x00000024, + 0x000001c2,0x000001c0,0x000001c1,0x0004003d,0x00000024,0x000001c3,0x00000062,0x0004003d, + 0x00000024,0x000001c4,0x00000063,0x00050085,0x00000024,0x000001c5,0x000001c3,0x000001c4, + 0x00050083,0x00000024,0x000001c6,0x000001c2,0x000001c5,0x0003003e,0x000001bb,0x000001c6, + 0x000200f9,0x000001ba,0x000200f8,0x000001ad,0x0003003e,0x000001c9,0x000000ce,0x000200f9, + 0x000001ca,0x000200f8,0x000001ca,0x000400f6,0x000001cc,0x000001cd,0x00000000,0x000200f9, + 0x000001ce,0x000200f8,0x000001ce,0x0004003d,0x00000077,0x000001cf,0x000001c9,0x000500b1, + 0x000000e6,0x000001d1,0x000001cf,0x000001d0,0x000400fa,0x000001d1,0x000001cb,0x000001cc, + 0x000200f8,0x000001cb,0x0004003d,0x00000077,0x000001d2,0x000001c9,0x00050041,0x00000007, + 0x000001d3,0x00000063,0x000001d2,0x0004003d,0x00000006,0x000001d4,0x000001d3,0x000500bc, + 0x000000e6,0x000001d6,0x000001d4,0x000001d5,0x000300f7,0x000001d8,0x00000000,0x000400fa, + 0x000001d6,0x000001d7,0x000001e4,0x000200f8,0x000001d7,0x0004003d,0x00000077,0x000001d9, + 0x000001c9,0x0004003d,0x00000077,0x000001db,0x000001c9,0x00050041,0x00000007,0x000001dc, + 0x00000062,0x000001db,0x0004003d,0x00000006,0x000001dd,0x000001dc,0x00050085,0x00000006, + 0x000001de,0x000001da,0x000001dd,0x0004003d,0x00000077,0x000001df,0x000001c9,0x00050041, + 0x00000007,0x000001e0,0x00000063,0x000001df,0x0004003d,0x00000006,0x000001e1,0x000001e0, + 0x00050085,0x00000006,0x000001e2,0x000001de,0x000001e1,0x00050041,0x00000007,0x000001e3, + 0x000001bb,0x000001d9,0x0003003e,0x000001e3,0x000001e2,0x000200f9,0x000001d8,0x000200f8, + 0x000001e4,0x0004003d,0x00000077,0x000001e5,0x000001c9,0x0004003d,0x00000077,0x000001e6, + 0x000001c9,0x00050041,0x00000007,0x000001e7,0x00000062,0x000001e6,0x0004003d,0x00000006, + 0x000001e8,0x000001e7,0x00050083,0x00000006,0x000001e9,0x000000db,0x000001e8,0x00050085, + 0x00000006,0x000001ea,0x000001da,0x000001e9,0x0004003d,0x00000077,0x000001eb,0x000001c9, + 0x00050041,0x00000007,0x000001ec,0x00000063,0x000001eb,0x0004003d,0x00000006,0x000001ed, + 0x000001ec,0x00050083,0x00000006,0x000001ee,0x000000db,0x000001ed,0x00050085,0x00000006, + 0x000001ef,0x000001ea,0x000001ee,0x00050083,0x00000006,0x000001f0,0x000000db,0x000001ef, + 0x00050041,0x00000007,0x000001f1,0x000001bb,0x000001e5,0x0003003e,0x000001f1,0x000001f0, + 0x000200f9,0x000001d8,0x000200f8,0x000001d8,0x000200f9,0x000001cd,0x000200f8,0x000001cd, + 0x0004003d,0x00000077,0x000001f2,0x000001c9,0x00050080,0x00000077,0x000001f3,0x000001f2, + 0x000000d1,0x0003003e,0x000001c9,0x000001f3,0x000200f9,0x000001ca,0x000200f8,0x000001cc, + 0x000200f9,0x000001ba,0x000200f8,0x000001ae,0x0004003d,0x00000024,0x000001f5,0x00000062, + 0x0004003d,0x00000024,0x000001f6,0x00000063,0x0007000c,0x00000024,0x000001f7,0x00000001, + 0x00000025,0x000001f5,0x000001f6,0x0003003e,0x000001bb,0x000001f7,0x000200f9,0x000001ba, + 0x000200f8,0x000001af,0x0004003d,0x00000024,0x000001f9,0x00000062,0x0004003d,0x00000024, + 0x000001fa,0x00000063,0x0007000c,0x00000024,0x000001fb,0x00000001,0x00000028,0x000001f9, + 0x000001fa,0x0003003e,0x000001bb,0x000001fb,0x000200f9,0x000001ba,0x000200f8,0x000001b0, + 0x0004003d,0x00000024,0x000001fd,0x00000063,0x0004003d,0x00000024,0x000001fe,0x00000062, + 0x00060050,0x00000024,0x000001ff,0x000000db,0x000000db,0x000000db,0x00050083,0x00000024, + 0x00000200,0x000001ff,0x000001fe,0x00050088,0x00000024,0x00000201,0x000001fd,0x00000200, + 0x0003003e,0x00000202,0x000000db,0x00050039,0x00000024,0x00000203,0x0000002d,0x00000202, + 0x0007000c,0x00000024,0x00000204,0x00000001,0x00000025,0x00000201,0x00000203,0x0003003e, + 0x00000205,0x000000dc,0x00050039,0x00000024,0x00000206,0x0000002d,0x00000205,0x0004003d, + 0x00000024,0x00000207,0x00000063,0x0003003e,0x00000208,0x000000dc,0x00050039,0x00000024, + 0x00000209,0x0000002d,0x00000208,0x000500bc,0x00000107,0x0000020a,0x00000207,0x00000209, + 0x000600a9,0x00000024,0x0000020b,0x0000020a,0x00000206,0x00000204,0x0003003e,0x000001bb, + 0x0000020b,0x000200f9,0x000001ba,0x000200f8,0x000001b1,0x0004003d,0x00000024,0x0000020d, + 0x00000063,0x00060050,0x00000024,0x0000020e,0x000000db,0x000000db,0x000000db,0x00050083, + 0x00000024,0x0000020f,0x0000020e,0x0000020d,0x0004003d,0x00000024,0x00000210,0x00000062, + 0x00050088,0x00000024,0x00000211,0x0000020f,0x00000210,0x00060050,0x00000024,0x00000212, + 0x000000db,0x000000db,0x000000db,0x0007000c,0x00000024,0x00000213,0x00000001,0x00000025, + 0x00000211,0x00000212,0x00060050,0x00000024,0x00000214,0x000000db,0x000000db,0x000000db, + 0x00050083,0x00000024,0x00000215,0x00000214,0x00000213,0x0003003e,0x00000216,0x000000db, + 0x00050039,0x00000024,0x00000217,0x0000002d,0x00000216,0x0004003d,0x00000024,0x00000218, + 0x00000063,0x0003003e,0x00000219,0x000000db,0x00050039,0x00000024,0x0000021a,0x0000002d, + 0x00000219,0x000500be,0x00000107,0x0000021b,0x00000218,0x0000021a,0x000600a9,0x00000024, + 0x0000021c,0x0000021b,0x00000217,0x00000215,0x0003003e,0x000001bb,0x0000021c,0x000200f9, + 0x000001ba,0x000200f8,0x000001b2,0x0003003e,0x0000021e,0x000000ce,0x000200f9,0x0000021f, + 0x000200f8,0x0000021f,0x000400f6,0x00000221,0x00000222,0x00000000,0x000200f9,0x00000223, + 0x000200f8,0x00000223,0x0004003d,0x00000077,0x00000224,0x0000021e,0x000500b1,0x000000e6, + 0x00000225,0x00000224,0x000001d0,0x000400fa,0x00000225,0x00000220,0x00000221,0x000200f8, + 0x00000220,0x0004003d,0x00000077,0x00000226,0x0000021e,0x00050041,0x00000007,0x00000227, + 0x00000062,0x00000226,0x0004003d,0x00000006,0x00000228,0x00000227,0x000500bc,0x000000e6, + 0x00000229,0x00000228,0x000001d5,0x000300f7,0x0000022b,0x00000000,0x000400fa,0x00000229, + 0x0000022a,0x00000236,0x000200f8,0x0000022a,0x0004003d,0x00000077,0x0000022c,0x0000021e, + 0x0004003d,0x00000077,0x0000022d,0x0000021e,0x00050041,0x00000007,0x0000022e,0x00000062, + 0x0000022d,0x0004003d,0x00000006,0x0000022f,0x0000022e,0x00050085,0x00000006,0x00000230, + 0x000001da,0x0000022f,0x0004003d,0x00000077,0x00000231,0x0000021e,0x00050041,0x00000007, + 0x00000232,0x00000063,0x00000231,0x0004003d,0x00000006,0x00000233,0x00000232,0x00050085, + 0x00000006,0x00000234,0x00000230,0x00000233,0x00050041,0x00000007,0x00000235,0x000001bb, + 0x0000022c,0x0003003e,0x00000235,0x00000234,0x000200f9,0x0000022b,0x000200f8,0x00000236, + 0x0004003d,0x00000077,0x00000237,0x0000021e,0x0004003d,0x00000077,0x00000238,0x0000021e, + 0x00050041,0x00000007,0x00000239,0x00000062,0x00000238,0x0004003d,0x00000006,0x0000023a, + 0x00000239,0x00050083,0x00000006,0x0000023b,0x000000db,0x0000023a,0x00050085,0x00000006, + 0x0000023c,0x000001da,0x0000023b,0x0004003d,0x00000077,0x0000023d,0x0000021e,0x00050041, + 0x00000007,0x0000023e,0x00000063,0x0000023d,0x0004003d,0x00000006,0x0000023f,0x0000023e, + 0x00050083,0x00000006,0x00000240,0x000000db,0x0000023f,0x00050085,0x00000006,0x00000241, + 0x0000023c,0x00000240,0x00050083,0x00000006,0x00000242,0x000000db,0x00000241,0x00050041, + 0x00000007,0x00000243,0x000001bb,0x00000237,0x0003003e,0x00000243,0x00000242,0x000200f9, + 0x0000022b,0x000200f8,0x0000022b,0x000200f9,0x00000222,0x000200f8,0x00000222,0x0004003d, + 0x00000077,0x00000244,0x0000021e,0x00050080,0x00000077,0x00000245,0x00000244,0x000000d1, + 0x0003003e,0x0000021e,0x00000245,0x000200f9,0x0000021f,0x000200f8,0x00000221,0x000200f9, + 0x000001ba,0x000200f8,0x000001b3,0x0003003e,0x00000247,0x000000ce,0x000200f9,0x00000248, + 0x000200f8,0x00000248,0x000400f6,0x0000024a,0x0000024b,0x00000000,0x000200f9,0x0000024c, + 0x000200f8,0x0000024c,0x0004003d,0x00000077,0x0000024d,0x00000247,0x000500b1,0x000000e6, + 0x0000024e,0x0000024d,0x000001d0,0x000400fa,0x0000024e,0x00000249,0x0000024a,0x000200f8, + 0x00000249,0x0004003d,0x00000077,0x0000024f,0x00000247,0x00050041,0x00000007,0x00000250, + 0x00000062,0x0000024f,0x0004003d,0x00000006,0x00000251,0x00000250,0x000500bc,0x000000e6, + 0x00000252,0x00000251,0x000001d5,0x000300f7,0x00000254,0x00000000,0x000400fa,0x00000252, + 0x00000253,0x00000269,0x000200f8,0x00000253,0x0004003d,0x00000077,0x00000255,0x00000247, + 0x0004003d,0x00000077,0x00000256,0x00000247,0x00050041,0x00000007,0x00000257,0x00000063, + 0x00000256,0x0004003d,0x00000006,0x00000258,0x00000257,0x0004003d,0x00000077,0x00000259, + 0x00000247,0x00050041,0x00000007,0x0000025a,0x00000062,0x00000259,0x0004003d,0x00000006, + 0x0000025b,0x0000025a,0x00050085,0x00000006,0x0000025c,0x000001da,0x0000025b,0x00050083, + 0x00000006,0x0000025d,0x000000db,0x0000025c,0x0004003d,0x00000077,0x0000025e,0x00000247, + 0x00050041,0x00000007,0x0000025f,0x00000063,0x0000025e,0x0004003d,0x00000006,0x00000260, + 0x0000025f,0x00050085,0x00000006,0x00000261,0x0000025d,0x00000260,0x0004003d,0x00000077, + 0x00000262,0x00000247,0x00050041,0x00000007,0x00000263,0x00000063,0x00000262,0x0004003d, + 0x00000006,0x00000264,0x00000263,0x00050083,0x00000006,0x00000265,0x000000db,0x00000264, + 0x00050085,0x00000006,0x00000266,0x00000261,0x00000265,0x00050083,0x00000006,0x00000267, + 0x00000258,0x00000266,0x00050041,0x00000007,0x00000268,0x000001bb,0x00000255,0x0003003e, + 0x00000268,0x00000267,0x000200f9,0x00000254,0x000200f8,0x00000269,0x0004003d,0x00000077, + 0x0000026a,0x00000247,0x00050041,0x00000007,0x0000026b,0x00000063,0x0000026a,0x0004003d, + 0x00000006,0x0000026c,0x0000026b,0x000500bc,0x000000e6,0x0000026e,0x0000026c,0x0000026d, + 0x000300f7,0x00000270,0x00000000,0x000400fa,0x0000026e,0x0000026f,0x0000028e,0x000200f8, + 0x0000026f,0x0004003d,0x00000077,0x00000271,0x00000247,0x0004003d,0x00000077,0x00000272, + 0x00000247,0x00050041,0x00000007,0x00000273,0x00000063,0x00000272,0x0004003d,0x00000006, + 0x00000274,0x00000273,0x0004003d,0x00000077,0x00000275,0x00000247,0x00050041,0x00000007, + 0x00000276,0x00000062,0x00000275,0x0004003d,0x00000006,0x00000277,0x00000276,0x00050085, + 0x00000006,0x00000278,0x000001da,0x00000277,0x00050083,0x00000006,0x00000279,0x00000278, + 0x000000db,0x0004003d,0x00000077,0x0000027a,0x00000247,0x00050041,0x00000007,0x0000027b, + 0x00000063,0x0000027a,0x0004003d,0x00000006,0x0000027c,0x0000027b,0x00050085,0x00000006, + 0x0000027d,0x00000279,0x0000027c,0x0004003d,0x00000077,0x0000027f,0x00000247,0x00050041, + 0x00000007,0x00000280,0x00000063,0x0000027f,0x0004003d,0x00000006,0x00000281,0x00000280, + 0x00050085,0x00000006,0x00000282,0x0000027e,0x00000281,0x00050083,0x00000006,0x00000284, + 0x00000282,0x00000283,0x0004003d,0x00000077,0x00000285,0x00000247,0x00050041,0x00000007, + 0x00000286,0x00000063,0x00000285,0x0004003d,0x00000006,0x00000287,0x00000286,0x00050085, + 0x00000006,0x00000288,0x00000284,0x00000287,0x00050081,0x00000006,0x0000028a,0x00000288, + 0x00000289,0x00050085,0x00000006,0x0000028b,0x0000027d,0x0000028a,0x00050081,0x00000006, + 0x0000028c,0x00000274,0x0000028b,0x00050041,0x00000007,0x0000028d,0x000001bb,0x00000271, + 0x0003003e,0x0000028d,0x0000028c,0x000200f9,0x00000270,0x000200f8,0x0000028e,0x0004003d, + 0x00000077,0x0000028f,0x00000247,0x0004003d,0x00000077,0x00000290,0x00000247,0x00050041, + 0x00000007,0x00000291,0x00000063,0x00000290,0x0004003d,0x00000006,0x00000292,0x00000291, + 0x0004003d,0x00000077,0x00000293,0x00000247,0x00050041,0x00000007,0x00000294,0x00000062, + 0x00000293,0x0004003d,0x00000006,0x00000295,0x00000294,0x00050085,0x00000006,0x00000296, + 0x000001da,0x00000295,0x00050083,0x00000006,0x00000297,0x00000296,0x000000db,0x0004003d, + 0x00000077,0x00000298,0x00000247,0x00050041,0x00000007,0x00000299,0x00000063,0x00000298, + 0x0004003d,0x00000006,0x0000029a,0x00000299,0x0006000c,0x00000006,0x0000029b,0x00000001, + 0x0000001f,0x0000029a,0x0004003d,0x00000077,0x0000029c,0x00000247,0x00050041,0x00000007, + 0x0000029d,0x00000063,0x0000029c,0x0004003d,0x00000006,0x0000029e,0x0000029d,0x00050083, + 0x00000006,0x0000029f,0x0000029b,0x0000029e,0x00050085,0x00000006,0x000002a0,0x00000297, + 0x0000029f,0x00050081,0x00000006,0x000002a1,0x00000292,0x000002a0,0x00050041,0x00000007, + 0x000002a2,0x000001bb,0x0000028f,0x0003003e,0x000002a2,0x000002a1,0x000200f9,0x00000270, + 0x000200f8,0x00000270,0x000200f9,0x00000254,0x000200f8,0x00000254,0x000200f9,0x0000024b, + 0x000200f8,0x0000024b,0x0004003d,0x00000077,0x000002a3,0x00000247,0x00050080,0x00000077, + 0x000002a4,0x000002a3,0x000000d1,0x0003003e,0x00000247,0x000002a4,0x000200f9,0x00000248, + 0x000200f8,0x0000024a,0x000200f9,0x000001ba,0x000200f8,0x000001b4,0x0004003d,0x00000024, + 0x000002a6,0x00000063,0x0004003d,0x00000024,0x000002a7,0x00000062,0x00050083,0x00000024, + 0x000002a8,0x000002a6,0x000002a7,0x0006000c,0x00000024,0x000002a9,0x00000001,0x00000004, + 0x000002a8,0x0003003e,0x000001bb,0x000002a9,0x000200f9,0x000001ba,0x000200f8,0x000001b5, + 0x0004003d,0x00000024,0x000002ab,0x00000062,0x0004003d,0x00000024,0x000002ac,0x00000063, + 0x00050081,0x00000024,0x000002ad,0x000002ab,0x000002ac,0x0004003d,0x00000024,0x000002ae, + 0x00000062,0x0005008e,0x00000024,0x000002af,0x000002ae,0x000001da,0x0004003d,0x00000024, + 0x000002b0,0x00000063,0x00050085,0x00000024,0x000002b1,0x000002af,0x000002b0,0x00050083, + 0x00000024,0x000002b2,0x000002ad,0x000002b1,0x0003003e,0x000001bb,0x000002b2,0x000200f9, + 0x000001ba,0x000200f8,0x000001b6,0x000300f7,0x000002b6,0x00000000,0x000400fa,0x000002b4, + 0x000002b5,0x000002b6,0x000200f8,0x000002b5,0x0004003d,0x00000024,0x000002b7,0x00000062, + 0x0003003e,0x000002b8,0x000000dc,0x00050039,0x00000024,0x000002b9,0x0000002d,0x000002b8, + 0x0003003e,0x000002ba,0x000000db,0x00050039,0x00000024,0x000002bb,0x0000002d,0x000002ba, + 0x0008000c,0x00000024,0x000002bc,0x00000001,0x0000002b,0x000002b7,0x000002b9,0x000002bb, + 0x0003003e,0x00000062,0x000002bc,0x0004003d,0x00000024,0x000002be,0x00000062,0x0003003e, + 0x000002bd,0x000002be,0x0004003d,0x00000024,0x000002c0,0x00000063,0x0003003e,0x000002bf, + 0x000002c0,0x0004003d,0x00000024,0x000002c2,0x00000063,0x0003003e,0x000002c1,0x000002c2, + 0x00070039,0x00000024,0x000002c3,0x0000005f,0x000002bd,0x000002bf,0x000002c1,0x0003003e, + 0x000001bb,0x000002c3,0x000200f9,0x000001ba,0x000200f8,0x000002b6,0x000200f9,0x000001b7, + 0x000200f8,0x000001b7,0x000300f7,0x000002c6,0x00000000,0x000400fa,0x000002b4,0x000002c5, + 0x000002c6,0x000200f8,0x000002c5,0x0004003d,0x00000024,0x000002c7,0x00000062,0x0003003e, + 0x000002c8,0x000000dc,0x00050039,0x00000024,0x000002c9,0x0000002d,0x000002c8,0x0003003e, + 0x000002ca,0x000000db,0x00050039,0x00000024,0x000002cb,0x0000002d,0x000002ca,0x0008000c, + 0x00000024,0x000002cc,0x00000001,0x0000002b,0x000002c7,0x000002c9,0x000002cb,0x0003003e, + 0x00000062,0x000002cc,0x0004003d,0x00000024,0x000002ce,0x00000063,0x0003003e,0x000002cd, + 0x000002ce,0x0004003d,0x00000024,0x000002d0,0x00000062,0x0003003e,0x000002cf,0x000002d0, + 0x0004003d,0x00000024,0x000002d2,0x00000063,0x0003003e,0x000002d1,0x000002d2,0x00070039, + 0x00000024,0x000002d3,0x0000005f,0x000002cd,0x000002cf,0x000002d1,0x0003003e,0x000001bb, + 0x000002d3,0x000200f9,0x000001ba,0x000200f8,0x000002c6,0x000200f9,0x000001b8,0x000200f8, + 0x000001b8,0x000300f7,0x000002d6,0x00000000,0x000400fa,0x000002b4,0x000002d5,0x000002d6, + 0x000200f8,0x000002d5,0x0004003d,0x00000024,0x000002d7,0x00000062,0x0003003e,0x000002d8, + 0x000000dc,0x00050039,0x00000024,0x000002d9,0x0000002d,0x000002d8,0x0003003e,0x000002da, + 0x000000db,0x00050039,0x00000024,0x000002db,0x0000002d,0x000002da,0x0008000c,0x00000024, + 0x000002dc,0x00000001,0x0000002b,0x000002d7,0x000002d9,0x000002db,0x0003003e,0x00000062, + 0x000002dc,0x0004003d,0x00000024,0x000002de,0x00000062,0x0003003e,0x000002dd,0x000002de, + 0x0004003d,0x00000024,0x000002e0,0x00000063,0x0003003e,0x000002df,0x000002e0,0x00060039, + 0x00000024,0x000002e1,0x00000059,0x000002dd,0x000002df,0x0003003e,0x000001bb,0x000002e1, + 0x000200f9,0x000001ba,0x000200f8,0x000002d6,0x000200f9,0x000001b9,0x000200f8,0x000001b9, + 0x000300f7,0x000002e4,0x00000000,0x000400fa,0x000002b4,0x000002e3,0x000002e4,0x000200f8, + 0x000002e3,0x0004003d,0x00000024,0x000002e5,0x00000062,0x0003003e,0x000002e6,0x000000dc, + 0x00050039,0x00000024,0x000002e7,0x0000002d,0x000002e6,0x0003003e,0x000002e8,0x000000db, + 0x00050039,0x00000024,0x000002e9,0x0000002d,0x000002e8,0x0008000c,0x00000024,0x000002ea, + 0x00000001,0x0000002b,0x000002e5,0x000002e7,0x000002e9,0x0003003e,0x00000062,0x000002ea, + 0x0004003d,0x00000024,0x000002ec,0x00000063,0x0003003e,0x000002eb,0x000002ec,0x0004003d, + 0x00000024,0x000002ee,0x00000062,0x0003003e,0x000002ed,0x000002ee,0x00060039,0x00000024, + 0x000002ef,0x00000059,0x000002eb,0x000002ed,0x0003003e,0x000001bb,0x000002ef,0x000200f9, + 0x000001ba,0x000200f8,0x000002e4,0x000200f9,0x000001ba,0x000200f8,0x000001ba,0x0004003d, + 0x00000024,0x000002f2,0x000001bb,0x000200fe,0x000002f2,0x00010038,0x00050036,0x00000024, + 0x0000006b,0x00000000,0x00000067,0x00030037,0x00000034,0x00000068,0x00030037,0x0000003b, + 0x00000069,0x00030037,0x00000013,0x0000006a,0x000200f8,0x0000006c,0x0004003b,0x00000034, + 0x000002f5,0x00000007,0x0004003b,0x00000034,0x000002f6,0x00000007,0x0004003b,0x00000034, + 0x000002f8,0x00000007,0x0004003b,0x00000013,0x000002fb,0x00000007,0x0004003b,0x0000000d, + 0x000002fe,0x00000007,0x0004003b,0x00000007,0x00000302,0x00000007,0x0004003b,0x00000007, + 0x00000305,0x00000007,0x0004003b,0x00000034,0x00000307,0x00000007,0x0004003b,0x00000034, + 0x00000309,0x00000007,0x0004003d,0x00000024,0x000002f7,0x00000068,0x0003003e,0x000002f6, + 0x000002f7,0x0004003d,0x0000002f,0x000002f9,0x00000069,0x0008004f,0x00000024,0x000002fa, + 0x000002f9,0x000002f9,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002f8,0x000002fa, + 0x0004003d,0x00000012,0x000002fc,0x0000006a,0x0003003e,0x000002fb,0x000002fc,0x00070039, + 0x00000024,0x000002fd,0x00000065,0x000002f6,0x000002f8,0x000002fb,0x0003003e,0x000002f5, + 0x000002fd,0x00050041,0x00000007,0x000002ff,0x00000069,0x000000c7,0x0004003d,0x00000006, + 0x00000300,0x000002ff,0x00050083,0x00000006,0x00000301,0x000000db,0x00000300,0x00050041, + 0x00000007,0x00000303,0x00000069,0x000000c7,0x0004003d,0x00000006,0x00000304,0x00000303, + 0x0003003e,0x00000302,0x00000304,0x0003003e,0x00000305,0x00000301,0x00060039,0x0000000c, + 0x00000306,0x0000001e,0x00000302,0x00000305,0x0003003e,0x000002fe,0x00000306,0x0004003d, + 0x00000024,0x00000308,0x000002f5,0x0003003e,0x00000307,0x00000308,0x0004003d,0x00000024, + 0x0000030a,0x00000068,0x0003003e,0x00000309,0x0000030a,0x00060039,0x00000035,0x0000030b, + 0x00000039,0x00000307,0x00000309,0x0004003d,0x0000000c,0x0000030c,0x000002fe,0x00050091, + 0x00000024,0x0000030d,0x0000030b,0x0000030c,0x000200fe,0x0000030d,0x00010038,0x00050036, + 0x00000006,0x0000006f,0x00000000,0x0000006d,0x00030037,0x00000013,0x0000006e,0x000200f8, + 0x00000070,0x0004003b,0x00000007,0x00000316,0x00000007,0x0004003d,0x00000012,0x00000310, + 0x0000006e,0x00040070,0x00000006,0x00000311,0x00000310,0x00050085,0x00000006,0x00000313, + 0x00000311,0x00000312,0x00050081,0x00000006,0x00000315,0x00000313,0x00000314,0x0003003e, + 0x00000316,0x00000315,0x00050039,0x00000006,0x00000317,0x0000000a,0x00000316,0x000200fe, + 0x00000317,0x00010038,0x00050036,0x00000002,0x00000075,0x00000000,0x00000071,0x00030037, + 0x00000013,0x00000072,0x00030037,0x0000003b,0x00000073,0x00030037,0x00000007,0x00000074, + 0x000200f8,0x00000076,0x0004003b,0x00000007,0x00000322,0x00000007,0x0004003d,0x0000002f, + 0x0000031a,0x00000073,0x0007004f,0x0000000c,0x0000031b,0x0000031a,0x0000031a,0x00000000, + 0x00000001,0x0004003d,0x00000012,0x0000031c,0x00000072,0x0006000c,0x0000002f,0x0000031d, + 0x00000001,0x00000040,0x0000031c,0x0007004f,0x0000000c,0x0000031e,0x0000031d,0x0000031d, + 0x00000000,0x00000001,0x00050083,0x0000000c,0x0000031f,0x0000031b,0x0000031e,0x0006000c, + 0x0000000c,0x00000320,0x00000001,0x00000004,0x0000031f,0x0003003e,0x00000322,0x00000321, + 0x00050039,0x0000000c,0x00000323,0x00000022,0x00000322,0x000500b8,0x00000324,0x00000325, + 0x00000320,0x00000323,0x0004009b,0x000000e6,0x00000326,0x00000325,0x000300f7,0x00000328, + 0x00000000,0x000400fa,0x00000326,0x00000327,0x0000032d,0x000200f8,0x00000327,0x0004003d, + 0x00000006,0x00000329,0x00000074,0x00050041,0x00000007,0x0000032a,0x00000073,0x000000b0, + 0x0004003d,0x00000006,0x0000032b,0x0000032a,0x0007000c,0x00000006,0x0000032c,0x00000001, + 0x00000025,0x00000329,0x0000032b,0x0003003e,0x00000074,0x0000032c,0x000200f9,0x00000328, + 0x000200f8,0x0000032d,0x0003003e,0x00000074,0x000000dc,0x000200f9,0x00000328,0x000200f8, + 0x00000328,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000007f,0x00000000,0x0000007a, + 0x00030037,0x00000013,0x0000007b,0x00030037,0x00000007,0x0000007c,0x00030037,0x0000003b, + 0x0000007d,0x00030037,0x00000079,0x0000007e,0x000200f8,0x00000080,0x0004003b,0x0000032f, + 0x00000330,0x00000007,0x0004003b,0x00000007,0x00000339,0x00000007,0x0004003b,0x00000007, + 0x00000358,0x00000007,0x0004003b,0x00000007,0x0000035a,0x00000007,0x0004003b,0x00000013, + 0x00000360,0x00000007,0x0004003b,0x00000013,0x0000036f,0x00000007,0x0004003b,0x0000003b, + 0x00000371,0x00000007,0x0004003b,0x00000007,0x00000372,0x00000007,0x0004003b,0x00000381, + 0x00000382,0x00000007,0x0004003b,0x0000003b,0x0000038b,0x00000007,0x0004003b,0x0000003b, + 0x00000390,0x00000007,0x0004003b,0x0000000d,0x00000396,0x00000007,0x0004003b,0x0000000d, + 0x000003a0,0x00000007,0x0004003b,0x0000000d,0x000003a9,0x00000007,0x0004003b,0x00000007, + 0x000003ab,0x00000007,0x0004003b,0x00000013,0x000003b6,0x00000007,0x0004003b,0x00000007, + 0x000003c7,0x00000007,0x0004003b,0x00000381,0x000003ca,0x00000007,0x0004003b,0x0000003b, + 0x000003cd,0x00000007,0x0004003b,0x0000003b,0x000003d1,0x00000007,0x0004003b,0x0000000d, + 0x000003d7,0x00000007,0x0004003b,0x00000007,0x000003df,0x00000007,0x0004003b,0x00000007, + 0x000003e2,0x00000007,0x0004003b,0x00000007,0x000003ed,0x00000007,0x0004003b,0x00000007, + 0x000003f5,0x00000007,0x0004003b,0x00000013,0x00000415,0x00000007,0x0004003b,0x00000013, + 0x0000041b,0x00000007,0x0004003b,0x0000003b,0x00000421,0x00000007,0x0004003b,0x0000003b, + 0x00000425,0x00000007,0x0004003b,0x00000034,0x00000428,0x00000007,0x0004003b,0x0000003b, + 0x0000042b,0x00000007,0x0004003b,0x00000013,0x0000042c,0x00000007,0x0004003d,0x00000012, + 0x00000335,0x0000007b,0x00060041,0x00000336,0x00000337,0x00000334,0x000000ce,0x00000335, + 0x0004003d,0x0000032e,0x00000338,0x00000337,0x0003003e,0x00000330,0x00000338,0x0004003d, + 0x00000006,0x0000033a,0x0000007c,0x0003003e,0x00000339,0x0000033a,0x00050041,0x00000013, + 0x0000033b,0x00000330,0x0000009a,0x0004003d,0x00000012,0x0000033c,0x0000033b,0x000500c7, + 0x00000012,0x0000033e,0x0000033c,0x0000033d,0x000500ab,0x000000e6,0x0000033f,0x0000033e, + 0x0000009a,0x000300f7,0x00000341,0x00000000,0x000400fa,0x0000033f,0x00000340,0x00000341, + 0x000200f8,0x00000340,0x0004003d,0x00000006,0x00000342,0x00000339,0x0006000c,0x00000006, + 0x00000343,0x00000001,0x00000004,0x00000342,0x0003003e,0x00000339,0x00000343,0x000300f7, + 0x00000346,0x00000000,0x000400fa,0x00000344,0x00000345,0x00000346,0x000200f8,0x00000345, + 0x00050041,0x00000013,0x00000347,0x00000330,0x0000009a,0x0004003d,0x00000012,0x00000348, + 0x00000347,0x000500c7,0x00000012,0x0000034a,0x00000348,0x00000349,0x000500ab,0x000000e6, + 0x0000034b,0x0000034a,0x0000009a,0x000200f9,0x00000346,0x000200f8,0x00000346,0x000700f5, + 0x000000e6,0x0000034c,0x00000344,0x00000340,0x0000034b,0x00000345,0x000300f7,0x0000034e, + 0x00000000,0x000400fa,0x0000034c,0x0000034d,0x0000034e,0x000200f8,0x0000034d,0x0004003d, + 0x00000006,0x0000034f,0x00000339,0x00050085,0x00000006,0x00000350,0x0000034f,0x000001d5, + 0x0006000c,0x00000006,0x00000351,0x00000001,0x0000000a,0x00000350,0x00050085,0x00000006, + 0x00000352,0x00000351,0x000001da,0x00050081,0x00000006,0x00000354,0x00000352,0x00000353, + 0x0006000c,0x00000006,0x00000355,0x00000001,0x00000004,0x00000354,0x00050083,0x00000006, + 0x00000356,0x000000db,0x00000355,0x0003003e,0x00000339,0x00000356,0x000200f9,0x0000034e, + 0x000200f8,0x0000034e,0x000200f9,0x00000341,0x000200f8,0x00000341,0x0004003d,0x00000006, + 0x00000357,0x00000339,0x0003003e,0x00000358,0x000000dc,0x00050039,0x00000006,0x00000359, + 0x00000019,0x00000358,0x0003003e,0x0000035a,0x000000db,0x00050039,0x00000006,0x0000035b, + 0x00000019,0x0000035a,0x0008000c,0x00000006,0x0000035c,0x00000001,0x0000002b,0x00000357, + 0x00000359,0x0000035b,0x0003003e,0x00000339,0x0000035c,0x000300f7,0x0000035f,0x00000000, + 0x000400fa,0x0000035d,0x0000035e,0x0000035f,0x000200f8,0x0000035e,0x00050041,0x00000013, + 0x00000361,0x00000330,0x0000009a,0x0004003d,0x00000012,0x00000362,0x00000361,0x000500c2, + 0x00000012,0x00000364,0x00000362,0x00000363,0x0003003e,0x00000360,0x00000364,0x0004003d, + 0x00000012,0x00000365,0x00000360,0x000500ab,0x000000e6,0x00000366,0x00000365,0x0000009a, + 0x000300f7,0x00000368,0x00000000,0x000400fa,0x00000366,0x00000367,0x00000368,0x000200f8, + 0x00000367,0x0004003d,0x00000369,0x0000036c,0x0000036b,0x00050062,0x0000002f,0x0000036e, + 0x0000036c,0x0000036d,0x0004003d,0x00000012,0x00000370,0x00000360,0x0003003e,0x0000036f, + 0x00000370,0x0003003e,0x00000371,0x0000036e,0x0004003d,0x00000006,0x00000373,0x00000339, + 0x0003003e,0x00000372,0x00000373,0x00070039,0x00000002,0x00000374,0x00000075,0x0000036f, + 0x00000371,0x00000372,0x0004003d,0x00000006,0x00000375,0x00000372,0x0003003e,0x00000339, + 0x00000375,0x000200f9,0x00000368,0x000200f8,0x00000368,0x000200f9,0x0000035f,0x000200f8, + 0x0000035f,0x000300f7,0x00000378,0x00000000,0x000400fa,0x00000376,0x00000377,0x00000378, + 0x000200f8,0x00000377,0x00050041,0x00000013,0x00000379,0x00000330,0x0000009a,0x0004003d, + 0x00000012,0x0000037a,0x00000379,0x000500c7,0x00000012,0x0000037c,0x0000037a,0x0000037b, + 0x000500ab,0x000000e6,0x0000037d,0x0000037c,0x0000009a,0x000200f9,0x00000378,0x000200f8, + 0x00000378,0x000700f5,0x000000e6,0x0000037e,0x00000376,0x0000035f,0x0000037d,0x00000377, + 0x000300f7,0x00000380,0x00000000,0x000400fa,0x0000037e,0x0000037f,0x00000380,0x000200f8, + 0x0000037f,0x0004003d,0x00000012,0x00000387,0x0000007b,0x00050084,0x00000012,0x00000389, + 0x00000387,0x00000388,0x00050080,0x00000012,0x0000038a,0x00000389,0x000000b0,0x00060041, + 0x0000038c,0x0000038d,0x00000386,0x000000ce,0x0000038a,0x0004003d,0x0000002f,0x0000038e, + 0x0000038d,0x0003003e,0x0000038b,0x0000038e,0x00050039,0x0000003c,0x0000038f,0x0000003f, + 0x0000038b,0x0003003e,0x00000382,0x0000038f,0x0004003d,0x00000012,0x00000391,0x0000007b, + 0x00050084,0x00000012,0x00000392,0x00000391,0x00000388,0x00050080,0x00000012,0x00000393, + 0x00000392,0x000000c7,0x00060041,0x0000038c,0x00000394,0x00000386,0x000000ce,0x00000393, + 0x0004003d,0x0000002f,0x00000395,0x00000394,0x0003003e,0x00000390,0x00000395,0x0004003d, + 0x0000003c,0x00000397,0x00000382,0x0004003d,0x0000002f,0x0000039a,0x00000399,0x0007004f, + 0x0000000c,0x0000039b,0x0000039a,0x0000039a,0x00000000,0x00000001,0x00050091,0x0000000c, + 0x0000039c,0x00000397,0x0000039b,0x0004003d,0x0000002f,0x0000039d,0x00000390,0x0007004f, + 0x0000000c,0x0000039e,0x0000039d,0x0000039d,0x00000000,0x00000001,0x00050081,0x0000000c, + 0x0000039f,0x0000039c,0x0000039e,0x0003003e,0x00000396,0x0000039f,0x0004003d,0x0000000c, + 0x000003a1,0x00000396,0x0006000c,0x0000000c,0x000003a2,0x00000001,0x00000004,0x000003a1, + 0x0004003d,0x0000002f,0x000003a3,0x00000390,0x0007004f,0x0000000c,0x000003a4,0x000003a3, + 0x000003a3,0x00000002,0x00000003,0x00050085,0x0000000c,0x000003a5,0x000003a2,0x000003a4, + 0x0004003d,0x0000002f,0x000003a6,0x00000390,0x0007004f,0x0000000c,0x000003a7,0x000003a6, + 0x000003a6,0x00000002,0x00000003,0x00050083,0x0000000c,0x000003a8,0x000003a5,0x000003a7, + 0x0003003e,0x000003a9,0x000003a8,0x00050039,0x0000000c,0x000003aa,0x00000010,0x000003a9, + 0x0003003e,0x000003a0,0x000003aa,0x00050041,0x00000007,0x000003ac,0x000003a0,0x0000009a, + 0x0004003d,0x00000006,0x000003ad,0x000003ac,0x00050041,0x00000007,0x000003ae,0x000003a0, + 0x0000009d,0x0004003d,0x00000006,0x000003af,0x000003ae,0x0007000c,0x00000006,0x000003b0, + 0x00000001,0x00000025,0x000003ad,0x000003af,0x00050081,0x00000006,0x000003b1,0x000003b0, + 0x000001d5,0x0008000c,0x00000006,0x000003b2,0x00000001,0x0000002b,0x000003b1,0x000000dc, + 0x000000db,0x0003003e,0x000003ab,0x000003b2,0x0004003d,0x00000006,0x000003b3,0x00000339, + 0x0004003d,0x00000006,0x000003b4,0x000003ab,0x0007000c,0x00000006,0x000003b5,0x00000001, + 0x00000025,0x000003b3,0x000003b4,0x0003003e,0x00000339,0x000003b5,0x000200f9,0x00000380, + 0x000200f8,0x00000380,0x00050041,0x00000013,0x000003b7,0x00000330,0x0000009a,0x0004003d, + 0x00000012,0x000003b8,0x000003b7,0x000500c7,0x00000012,0x000003ba,0x000003b8,0x000003b9, + 0x0003003e,0x000003b6,0x000003ba,0x0004003d,0x00000012,0x000003bb,0x000003b6,0x000500b2, + 0x000000e6,0x000003bc,0x000003bb,0x0000009d,0x000300f7,0x000003be,0x00000000,0x000400fa, + 0x000003bc,0x000003bd,0x000003c9,0x000200f8,0x000003bd,0x00050041,0x00000013,0x000003bf, + 0x00000330,0x0000009d,0x0004003d,0x00000012,0x000003c0,0x000003bf,0x0006000c,0x0000002f, + 0x000003c1,0x00000001,0x00000040,0x000003c0,0x0003003e,0x0000007d,0x000003c1,0x0004003d, + 0x00000012,0x000003c2,0x000003b6,0x000500aa,0x000000e6,0x000003c3,0x000003c2,0x0000009a, + 0x000500a7,0x000000e6,0x000003c4,0x0000035d,0x000003c3,0x000300f7,0x000003c6,0x00000000, + 0x000400fa,0x000003c4,0x000003c5,0x000003c6,0x000200f8,0x000003c5,0x0003003e,0x000003c7, + 0x000000dc,0x00050039,0x0000002f,0x000003c8,0x00000032,0x000003c7,0x0003003e,0x0000007d, + 0x000003c8,0x000200f9,0x000003c6,0x000200f8,0x000003c6,0x000200f9,0x000003be,0x000200f8, + 0x000003c9,0x0004003d,0x00000012,0x000003cb,0x0000007b,0x00050084,0x00000012,0x000003cc, + 0x000003cb,0x00000388,0x00060041,0x0000038c,0x000003ce,0x00000386,0x000000ce,0x000003cc, + 0x0004003d,0x0000002f,0x000003cf,0x000003ce,0x0003003e,0x000003cd,0x000003cf,0x00050039, + 0x0000003c,0x000003d0,0x0000003f,0x000003cd,0x0003003e,0x000003ca,0x000003d0,0x0004003d, + 0x00000012,0x000003d2,0x0000007b,0x00050084,0x00000012,0x000003d3,0x000003d2,0x00000388, + 0x00050080,0x00000012,0x000003d4,0x000003d3,0x0000009d,0x00060041,0x0000038c,0x000003d5, + 0x00000386,0x000000ce,0x000003d4,0x0004003d,0x0000002f,0x000003d6,0x000003d5,0x0003003e, + 0x000003d1,0x000003d6,0x0004003d,0x0000003c,0x000003d8,0x000003ca,0x0004003d,0x0000002f, + 0x000003d9,0x00000399,0x0007004f,0x0000000c,0x000003da,0x000003d9,0x000003d9,0x00000000, + 0x00000001,0x00050091,0x0000000c,0x000003db,0x000003d8,0x000003da,0x0004003d,0x0000002f, + 0x000003dc,0x000003d1,0x0007004f,0x0000000c,0x000003dd,0x000003dc,0x000003dc,0x00000000, + 0x00000001,0x00050081,0x0000000c,0x000003de,0x000003db,0x000003dd,0x0003003e,0x000003d7, + 0x000003de,0x0004003d,0x00000012,0x000003e0,0x000003b6,0x000500aa,0x000000e6,0x000003e1, + 0x000003e0,0x000000b0,0x000300f7,0x000003e4,0x00000000,0x000400fa,0x000003e1,0x000003e3, + 0x000003e7,0x000200f8,0x000003e3,0x00050041,0x00000007,0x000003e5,0x000003d7,0x0000009a, + 0x0004003d,0x00000006,0x000003e6,0x000003e5,0x0003003e,0x000003e2,0x000003e6,0x000200f9, + 0x000003e4,0x000200f8,0x000003e7,0x0004003d,0x0000000c,0x000003e8,0x000003d7,0x0006000c, + 0x00000006,0x000003e9,0x00000001,0x00000042,0x000003e8,0x0003003e,0x000003e2,0x000003e9, + 0x000200f9,0x000003e4,0x000200f8,0x000003e4,0x0004003d,0x00000006,0x000003ea,0x000003e2, + 0x0003003e,0x000003df,0x000003ea,0x0004003d,0x00000006,0x000003eb,0x000003df,0x0008000c, + 0x00000006,0x000003ec,0x00000001,0x0000002b,0x000003eb,0x000000dc,0x000000db,0x0003003e, + 0x000003df,0x000003ec,0x0004003d,0x00000006,0x000003ee,0x000003df,0x00050041,0x00000007, + 0x000003ef,0x000003d1,0x000000b0,0x0004003d,0x00000006,0x000003f0,0x000003ef,0x00050085, + 0x00000006,0x000003f1,0x000003ee,0x000003f0,0x00050041,0x00000007,0x000003f2,0x000003d1, + 0x000000c7,0x0004003d,0x00000006,0x000003f3,0x000003f2,0x00050081,0x00000006,0x000003f4, + 0x000003f1,0x000003f3,0x0003003e,0x000003ed,0x000003f4,0x00050041,0x00000013,0x000003f6, + 0x00000330,0x0000009d,0x0004003d,0x00000012,0x000003f7,0x000003f6,0x0004007c,0x00000006, + 0x000003f8,0x000003f7,0x0003003e,0x000003f5,0x000003f8,0x0004003d,0x000003f9,0x000003fc, + 0x000003fb,0x0004003d,0x000003fd,0x00000400,0x000003ff,0x00050056,0x00000401,0x00000402, + 0x000003fc,0x00000400,0x0004003d,0x00000006,0x00000403,0x000003ed,0x0004003d,0x00000006, + 0x00000404,0x000003f5,0x00050050,0x0000000c,0x00000405,0x00000403,0x00000404,0x00070058, + 0x0000002f,0x00000406,0x00000402,0x00000405,0x00000002,0x000000dc,0x0003003e,0x0000007d, + 0x00000406,0x000200f9,0x000003be,0x000200f8,0x000003be,0x0004003d,0x00000006,0x00000407, + 0x00000339,0x00050041,0x00000007,0x00000408,0x0000007d,0x000000c7,0x0004003d,0x00000006, + 0x00000409,0x00000408,0x00050085,0x00000006,0x0000040a,0x00000409,0x00000407,0x00050041, + 0x00000007,0x0000040b,0x0000007d,0x000000c7,0x0003003e,0x0000040b,0x0000040a,0x000300f7, + 0x0000040e,0x00000000,0x000400fa,0x0000040c,0x0000040d,0x0000040e,0x000200f8,0x0000040d, + 0x00050041,0x00000007,0x0000040f,0x0000007d,0x000000c7,0x0004003d,0x00000006,0x00000410, + 0x0000040f,0x000500b7,0x000000e6,0x00000411,0x00000410,0x000000dc,0x000200f9,0x0000040e, + 0x000200f8,0x0000040e,0x000700f5,0x000000e6,0x00000412,0x0000040c,0x000003be,0x00000411, + 0x0000040d,0x000300f7,0x00000414,0x00000000,0x000400fa,0x00000412,0x00000413,0x00000414, + 0x000200f8,0x00000413,0x00050041,0x00000013,0x00000416,0x00000330,0x0000009a,0x0004003d, + 0x00000012,0x00000417,0x00000416,0x000500c2,0x00000012,0x00000419,0x00000417,0x00000418, + 0x000500c7,0x00000012,0x0000041a,0x00000419,0x000003b9,0x0003003e,0x0000041b,0x0000041a, + 0x00050039,0x00000012,0x0000041c,0x00000016,0x0000041b,0x0003003e,0x00000415,0x0000041c, + 0x000500ab,0x000000e6,0x0000041d,0x0000041c,0x0000009a,0x000200f9,0x00000414,0x000200f8, + 0x00000414,0x000700f5,0x000000e6,0x0000041e,0x00000412,0x0000040e,0x0000041d,0x00000413, + 0x000300f7,0x00000420,0x00000000,0x000400fa,0x0000041e,0x0000041f,0x00000420,0x000200f8, + 0x0000041f,0x0004003d,0x00000369,0x00000423,0x00000422,0x00050062,0x0000002f,0x00000424, + 0x00000423,0x0000036d,0x0003003e,0x00000421,0x00000424,0x0004003d,0x0000002f,0x00000426, + 0x00000421,0x0003003e,0x00000425,0x00000426,0x00050039,0x0000002f,0x00000427,0x00000043, + 0x00000425,0x0004003d,0x0000002f,0x00000429,0x0000007d,0x0008004f,0x00000024,0x0000042a, + 0x00000429,0x00000429,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000428,0x0000042a, + 0x0003003e,0x0000042b,0x00000427,0x0004003d,0x00000012,0x0000042d,0x00000415,0x0003003e, + 0x0000042c,0x0000042d,0x00070039,0x00000024,0x0000042e,0x0000006b,0x00000428,0x0000042b, + 0x0000042c,0x00050041,0x00000007,0x0000042f,0x0000007d,0x0000009a,0x00050051,0x00000006, + 0x00000430,0x0000042e,0x00000000,0x0003003e,0x0000042f,0x00000430,0x00050041,0x00000007, + 0x00000431,0x0000007d,0x0000009d,0x00050051,0x00000006,0x00000432,0x0000042e,0x00000001, + 0x0003003e,0x00000431,0x00000432,0x00050041,0x00000007,0x00000433,0x0000007d,0x000000b0, + 0x00050051,0x00000006,0x00000434,0x0000042e,0x00000002,0x0003003e,0x00000433,0x00000434, + 0x000200f9,0x00000420,0x000200f8,0x00000420,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000084,0x00000000,0x00000081,0x00030037,0x0000003b,0x00000082,0x00030037,0x00000079, + 0x00000083,0x000200f8,0x00000085,0x0004003d,0x0000002f,0x00000437,0x00000082,0x0003003e, + 0x00000436,0x00000437,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.vert.h b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.vert.h new file mode 100644 index 00000000..a1ab6e4c --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/atomic_resolve_pls.vert.h @@ -0,0 +1,152 @@ + // 1114.3.0 + #pragma once +const uint32_t atomic_resolve_pls_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x0000007b,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0008000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000a,0x0000000d,0x0000005a, + 0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72, + 0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008, + 0x7265765f,0x49786574,0x00000044,0x00060005,0x0000000a,0x565f6c67,0x65747265,0x646e4978, + 0x00007865,0x00050005,0x0000000c,0x736e695f,0x636e6174,0x00444965,0x00070005,0x0000000d, + 0x495f6c67,0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00040005,0x00000011,0x726f6f63, + 0x00000064,0x00080005,0x0000001e,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e, + 0x00736d72,0x00090006,0x0000001e,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00090006,0x0000001e,0x00000001,0x73736574,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x000b0006,0x0000001e,0x00000002,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x0000001e, + 0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00080006,0x0000001e,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957, + 0x00000068,0x00080006,0x0000001e,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548, + 0x00007468,0x00070006,0x0000001e,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c, + 0x00080006,0x0000001e,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575, + 0x000a0006,0x0000001e,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574, + 0x73646e75,0x00000000,0x00090006,0x0000001e,0x00000009,0x65766f63,0x65676172,0x66667542, + 0x72507265,0x78696665,0x00000000,0x00080006,0x0000001e,0x0000000a,0x68746170,0x72474449, + 0x6c756e61,0x74697261,0x00000079,0x00080006,0x0000001e,0x0000000b,0x74726576,0x69447865, + 0x72616373,0x6c615664,0x00006575,0x00050005,0x00000020,0x66696e75,0x736d726f,0x00000000, + 0x00030005,0x0000003e,0x00736f70,0x00060005,0x00000058,0x505f6c67,0x65567265,0x78657472, + 0x00000000,0x00060006,0x00000058,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006, + 0x00000058,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x00000058, + 0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x00000058,0x00000003, + 0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x0000005a,0x00000000,0x00060005, + 0x0000005e,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00060005,0x0000005f,0x616e456b, + 0x43656c62,0x5270696c,0x00746365,0x00080005,0x00000060,0x616e456b,0x41656c62,0x6e617664, + 0x42646563,0x646e656c,0x00000000,0x00060005,0x00000061,0x616e456b,0x45656c62,0x4f6e6576, + 0x00006464,0x00080005,0x00000062,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070, + 0x00000067,0x00080005,0x00000063,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f, + 0x00000000,0x00060005,0x00000064,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005, + 0x00000065,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000, + 0x00090005,0x00000068,0x5058455f,0x4554524f,0x65745f44,0x65567373,0x78657472,0x74786554, + 0x00657275,0x00050005,0x0000006b,0x68746150,0x66667542,0x00007265,0x00050006,0x0000006b, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x0000006d,0x5058455f,0x4554524f,0x61705f44, + 0x75426874,0x72656666,0x00000000,0x00050005,0x00000070,0x6e696150,0x66754274,0x00726566, + 0x00050006,0x00000070,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000072,0x5058455f, + 0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00060005,0x00000074,0x6e696150, + 0x78754174,0x66667542,0x00007265,0x00050006,0x00000074,0x00000000,0x6c61765f,0x00736575, + 0x00090005,0x00000076,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666, + 0x00000000,0x00060005,0x00000078,0x746e6f43,0x4272756f,0x65666675,0x00000072,0x00050006, + 0x00000078,0x00000000,0x6c61765f,0x00736575,0x00080005,0x0000007a,0x5058455f,0x4554524f, + 0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00040047,0x0000000a,0x0000000b,0x0000002a, + 0x00040047,0x0000000d,0x0000000b,0x0000002b,0x00050048,0x0000001e,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000001e,0x00000001,0x00000023,0x00000004,0x00050048,0x0000001e, + 0x00000002,0x00000023,0x00000008,0x00050048,0x0000001e,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x0000001e,0x00000004,0x00000023,0x00000010,0x00050048,0x0000001e,0x00000005, + 0x00000023,0x00000014,0x00050048,0x0000001e,0x00000006,0x00000023,0x00000018,0x00050048, + 0x0000001e,0x00000007,0x00000023,0x0000001c,0x00050048,0x0000001e,0x00000008,0x00000023, + 0x00000020,0x00050048,0x0000001e,0x00000009,0x00000023,0x00000030,0x00050048,0x0000001e, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x0000001e,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x0000001e,0x00000002,0x00040047,0x00000020,0x00000022,0x00000000,0x00040047, + 0x00000020,0x00000021,0x00000007,0x00050048,0x00000058,0x00000000,0x0000000b,0x00000000, + 0x00050048,0x00000058,0x00000001,0x0000000b,0x00000001,0x00050048,0x00000058,0x00000002, + 0x0000000b,0x00000003,0x00050048,0x00000058,0x00000003,0x0000000b,0x00000004,0x00030047, + 0x00000058,0x00000002,0x00040047,0x0000005e,0x00000001,0x00000000,0x00040047,0x0000005f, + 0x00000001,0x00000001,0x00040047,0x00000060,0x00000001,0x00000002,0x00040047,0x00000061, + 0x00000001,0x00000003,0x00040047,0x00000062,0x00000001,0x00000004,0x00040047,0x00000063, + 0x00000001,0x00000005,0x00040047,0x00000064,0x00000001,0x00000006,0x00040047,0x00000065, + 0x00000001,0x00000007,0x00040047,0x00000068,0x00000022,0x00000000,0x00040047,0x00000068, + 0x00000021,0x00000000,0x00040047,0x0000006a,0x00000006,0x00000010,0x00040048,0x0000006b, + 0x00000000,0x00000018,0x00050048,0x0000006b,0x00000000,0x00000023,0x00000000,0x00030047, + 0x0000006b,0x00000003,0x00040047,0x0000006d,0x00000022,0x00000000,0x00040047,0x0000006d, + 0x00000021,0x00000003,0x00040047,0x0000006f,0x00000006,0x00000008,0x00040048,0x00000070, + 0x00000000,0x00000018,0x00050048,0x00000070,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000070,0x00000003,0x00040047,0x00000072,0x00000022,0x00000000,0x00040047,0x00000072, + 0x00000021,0x00000004,0x00040047,0x00000073,0x00000006,0x00000010,0x00040048,0x00000074, + 0x00000000,0x00000018,0x00050048,0x00000074,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000074,0x00000003,0x00040047,0x00000076,0x00000022,0x00000000,0x00040047,0x00000076, + 0x00000021,0x00000005,0x00040047,0x00000077,0x00000006,0x00000010,0x00040048,0x00000078, + 0x00000000,0x00000018,0x00050048,0x00000078,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000078,0x00000003,0x00040047,0x0000007a,0x00000022,0x00000000,0x00040047,0x0000007a, + 0x00000021,0x00000006,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015, + 0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00040020, + 0x00000009,0x00000001,0x00000006,0x0004003b,0x00000009,0x0000000a,0x00000001,0x0004003b, + 0x00000009,0x0000000d,0x00000001,0x00040017,0x0000000f,0x00000006,0x00000002,0x00040020, + 0x00000010,0x00000007,0x0000000f,0x0004002b,0x00000006,0x00000013,0x00000001,0x0004002b, + 0x00000006,0x00000015,0x00000000,0x00020014,0x00000016,0x00030016,0x0000001b,0x00000020, + 0x00040015,0x0000001c,0x00000020,0x00000000,0x00040017,0x0000001d,0x00000006,0x00000004, + 0x000e001e,0x0000001e,0x0000001b,0x0000001b,0x0000001b,0x0000001b,0x0000001c,0x0000001c, + 0x0000001c,0x0000001c,0x0000001d,0x0000001c,0x0000001c,0x0000001b,0x00040020,0x0000001f, + 0x00000002,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000002,0x0004002b,0x00000006, + 0x00000021,0x00000008,0x0004002b,0x0000001c,0x00000022,0x00000000,0x00040020,0x00000023, + 0x00000002,0x00000006,0x0004002b,0x0000001c,0x00000027,0x00000002,0x0004002b,0x00000006, + 0x0000002d,0x00000002,0x0004002b,0x0000001c,0x00000033,0x00000001,0x0004002b,0x0000001c, + 0x00000037,0x00000003,0x00040017,0x0000003c,0x0000001b,0x00000004,0x00040020,0x0000003d, + 0x00000007,0x0000003c,0x00040017,0x00000040,0x0000001b,0x00000002,0x00040020,0x00000043, + 0x00000002,0x0000001b,0x0004002b,0x0000001b,0x00000047,0x3f800000,0x0004002b,0x00000006, + 0x0000004c,0x00000003,0x0004002b,0x0000001b,0x00000055,0x00000000,0x0004001c,0x00000057, + 0x0000001b,0x00000033,0x0006001e,0x00000058,0x0000003c,0x0000001b,0x00000057,0x00000057, + 0x00040020,0x00000059,0x00000003,0x00000058,0x0004003b,0x00000059,0x0000005a,0x00000003, + 0x00040020,0x0000005c,0x00000003,0x0000003c,0x00030031,0x00000016,0x0000005e,0x00030031, + 0x00000016,0x0000005f,0x00030031,0x00000016,0x00000060,0x00030031,0x00000016,0x00000061, + 0x00030031,0x00000016,0x00000062,0x00030031,0x00000016,0x00000063,0x00030031,0x00000016, + 0x00000064,0x00030031,0x00000016,0x00000065,0x00090019,0x00000066,0x0000001c,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000067,0x00000000, + 0x00000066,0x0004003b,0x00000067,0x00000068,0x00000000,0x00040017,0x00000069,0x0000001c, + 0x00000004,0x0003001d,0x0000006a,0x00000069,0x0003001e,0x0000006b,0x0000006a,0x00040020, + 0x0000006c,0x00000002,0x0000006b,0x0004003b,0x0000006c,0x0000006d,0x00000002,0x00040017, + 0x0000006e,0x0000001c,0x00000002,0x0003001d,0x0000006f,0x0000006e,0x0003001e,0x00000070, + 0x0000006f,0x00040020,0x00000071,0x00000002,0x00000070,0x0004003b,0x00000071,0x00000072, + 0x00000002,0x0003001d,0x00000073,0x0000003c,0x0003001e,0x00000074,0x00000073,0x00040020, + 0x00000075,0x00000002,0x00000074,0x0004003b,0x00000075,0x00000076,0x00000002,0x0003001d, + 0x00000077,0x00000069,0x0003001e,0x00000078,0x00000077,0x00040020,0x00000079,0x00000002, + 0x00000078,0x0004003b,0x00000079,0x0000007a,0x00000002,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007, + 0x0004003b,0x00000007,0x0000000c,0x00000007,0x0004003b,0x00000010,0x00000011,0x00000007, + 0x0004003b,0x00000007,0x00000018,0x00000007,0x0004003b,0x00000007,0x00000030,0x00000007, + 0x0004003b,0x0000003d,0x0000003e,0x00000007,0x0004003d,0x00000006,0x0000000b,0x0000000a, + 0x0003003e,0x00000008,0x0000000b,0x0004003d,0x00000006,0x0000000e,0x0000000d,0x0003003e, + 0x0000000c,0x0000000e,0x0004003d,0x00000006,0x00000012,0x00000008,0x000500c7,0x00000006, + 0x00000014,0x00000012,0x00000013,0x000500aa,0x00000016,0x00000017,0x00000014,0x00000015, + 0x000300f7,0x0000001a,0x00000000,0x000400fa,0x00000017,0x00000019,0x00000026,0x000200f8, + 0x00000019,0x00060041,0x00000023,0x00000024,0x00000020,0x00000021,0x00000022,0x0004003d, + 0x00000006,0x00000025,0x00000024,0x0003003e,0x00000018,0x00000025,0x000200f9,0x0000001a, + 0x000200f8,0x00000026,0x00060041,0x00000023,0x00000028,0x00000020,0x00000021,0x00000027, + 0x0004003d,0x00000006,0x00000029,0x00000028,0x0003003e,0x00000018,0x00000029,0x000200f9, + 0x0000001a,0x000200f8,0x0000001a,0x0004003d,0x00000006,0x0000002a,0x00000018,0x00050041, + 0x00000007,0x0000002b,0x00000011,0x00000022,0x0003003e,0x0000002b,0x0000002a,0x0004003d, + 0x00000006,0x0000002c,0x00000008,0x000500c7,0x00000006,0x0000002e,0x0000002c,0x0000002d, + 0x000500aa,0x00000016,0x0000002f,0x0000002e,0x00000015,0x000300f7,0x00000032,0x00000000, + 0x000400fa,0x0000002f,0x00000031,0x00000036,0x000200f8,0x00000031,0x00060041,0x00000023, + 0x00000034,0x00000020,0x00000021,0x00000033,0x0004003d,0x00000006,0x00000035,0x00000034, + 0x0003003e,0x00000030,0x00000035,0x000200f9,0x00000032,0x000200f8,0x00000036,0x00060041, + 0x00000023,0x00000038,0x00000020,0x00000021,0x00000037,0x0004003d,0x00000006,0x00000039, + 0x00000038,0x0003003e,0x00000030,0x00000039,0x000200f9,0x00000032,0x000200f8,0x00000032, + 0x0004003d,0x00000006,0x0000003a,0x00000030,0x00050041,0x00000007,0x0000003b,0x00000011, + 0x00000033,0x0003003e,0x0000003b,0x0000003a,0x0004003d,0x0000000f,0x0000003f,0x00000011, + 0x0004006f,0x00000040,0x00000041,0x0000003f,0x00050051,0x0000001b,0x00000042,0x00000041, + 0x00000000,0x00050041,0x00000043,0x00000044,0x00000020,0x0000002d,0x0004003d,0x0000001b, + 0x00000045,0x00000044,0x00050085,0x0000001b,0x00000046,0x00000042,0x00000045,0x00050083, + 0x0000001b,0x00000048,0x00000046,0x00000047,0x0004003d,0x0000000f,0x00000049,0x00000011, + 0x0004006f,0x00000040,0x0000004a,0x00000049,0x00050051,0x0000001b,0x0000004b,0x0000004a, + 0x00000001,0x00050041,0x00000043,0x0000004d,0x00000020,0x0000004c,0x0004003d,0x0000001b, + 0x0000004e,0x0000004d,0x0004007f,0x0000001b,0x0000004f,0x0000004e,0x00050085,0x0000001b, + 0x00000050,0x0000004b,0x0000004f,0x00050041,0x00000043,0x00000051,0x00000020,0x0000004c, + 0x0004003d,0x0000001b,0x00000052,0x00000051,0x0006000c,0x0000001b,0x00000053,0x00000001, + 0x00000006,0x00000052,0x00050081,0x0000001b,0x00000054,0x00000050,0x00000053,0x00070050, + 0x0000003c,0x00000056,0x00000048,0x00000054,0x00000055,0x00000047,0x0003003e,0x0000003e, + 0x00000056,0x0004003d,0x0000003c,0x0000005b,0x0000003e,0x00050041,0x0000005c,0x0000005d, + 0x0000005a,0x00000015,0x0003003e,0x0000005d,0x0000005b,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/color_ramp.frag.h b/defold-rive/include/generated/shaders/spirv/color_ramp.frag.h new file mode 100644 index 00000000..406e6fea --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/color_ramp.frag.h @@ -0,0 +1,47 @@ + // 1114.3.0 + #pragma once +const uint32_t color_ramp_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000013,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000009,0x0000000b,0x00030010, + 0x00000004,0x00000007,0x00030003,0x00000001,0x00000136,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000009,0x0064665f,0x00050005,0x0000000b, + 0x61725f76,0x6f43706d,0x00726f6c,0x00080005,0x00000010,0x5058455f,0x4554524f,0x6c465f44, + 0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000010,0x00000000,0x64617267,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000010,0x00000001,0x73736574, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x00000010,0x00000002, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000, + 0x000b0006,0x00000010,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00080006,0x00000010,0x00000004,0x646e6572,0x61547265, + 0x74656772,0x74646957,0x00000068,0x00080006,0x00000010,0x00000005,0x646e6572,0x61547265, + 0x74656772,0x67696548,0x00007468,0x00070006,0x00000010,0x00000006,0x6f6c6f63,0x656c4372, + 0x61567261,0x0065756c,0x00080006,0x00000010,0x00000007,0x65766f63,0x65676172,0x61656c43, + 0x6c615672,0x00006575,0x000a0006,0x00000010,0x00000008,0x646e6572,0x61547265,0x74656772, + 0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000010,0x00000009,0x65766f63, + 0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x00000010,0x0000000a, + 0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x00000010,0x0000000b, + 0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x00000012,0x66696e75, + 0x736d726f,0x00000000,0x00030047,0x00000009,0x00000000,0x00040047,0x00000009,0x0000001e, + 0x00000000,0x00030047,0x0000000b,0x00000000,0x00040047,0x0000000b,0x0000001e,0x00000000, + 0x00030047,0x0000000c,0x00000000,0x00050048,0x00000010,0x00000000,0x00000023,0x00000000, + 0x00050048,0x00000010,0x00000001,0x00000023,0x00000004,0x00050048,0x00000010,0x00000002, + 0x00000023,0x00000008,0x00050048,0x00000010,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x00000010,0x00000004,0x00000023,0x00000010,0x00050048,0x00000010,0x00000005,0x00000023, + 0x00000014,0x00050048,0x00000010,0x00000006,0x00000023,0x00000018,0x00050048,0x00000010, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x00000010,0x00000008,0x00000023,0x00000020, + 0x00050048,0x00000010,0x00000009,0x00000023,0x00000030,0x00050048,0x00000010,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x00000010,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x00000010,0x00000002,0x00040047,0x00000012,0x00000022,0x00000000,0x00040047,0x00000012, + 0x00000021,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008, + 0x00000003,0x00000007,0x0004003b,0x00000008,0x00000009,0x00000003,0x00040020,0x0000000a, + 0x00000001,0x00000007,0x0004003b,0x0000000a,0x0000000b,0x00000001,0x00040015,0x0000000d, + 0x00000020,0x00000000,0x00040015,0x0000000e,0x00000020,0x00000001,0x00040017,0x0000000f, + 0x0000000e,0x00000004,0x000e001e,0x00000010,0x00000006,0x00000006,0x00000006,0x00000006, + 0x0000000d,0x0000000d,0x0000000d,0x0000000d,0x0000000f,0x0000000d,0x0000000d,0x00000006, + 0x00040020,0x00000011,0x00000002,0x00000010,0x0004003b,0x00000011,0x00000012,0x00000002, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d, + 0x00000007,0x0000000c,0x0000000b,0x0003003e,0x00000009,0x0000000c,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/color_ramp.vert.h b/defold-rive/include/generated/shaders/spirv/color_ramp.vert.h new file mode 100644 index 00000000..66498da9 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/color_ramp.vert.h @@ -0,0 +1,170 @@ + // 1114.3.0 + #pragma once +const uint32_t color_ramp_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000000bf,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0009000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x00000031,0x00000042,0x00000095, + 0x000000bc,0x00030003,0x00000001,0x00000136,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00090005,0x0000000d,0x74736163,0x6e69755f,0x745f3474,0x61685f6f, + 0x2834666c,0x3b347576,0x00000000,0x00040005,0x0000000c,0x777a7978,0x00000000,0x00070005, + 0x00000012,0x61706e75,0x6f436b63,0x49726f6c,0x7528746e,0x00003b31,0x00040005,0x00000011, + 0x6f6c6f63,0x00000072,0x00040005,0x00000026,0x61726170,0x0000006d,0x00050005,0x0000002f, + 0x7265765f,0x49786574,0x00000044,0x00060005,0x00000031,0x565f6c67,0x65747265,0x646e4978, + 0x00007865,0x00050005,0x00000033,0x736e695f,0x636e6174,0x00444965,0x00070005,0x00000035, + 0x756c6f63,0x69576e6d,0x6e696874,0x6e617053,0x00000000,0x00030005,0x0000003a,0x00000078, + 0x00070005,0x00000042,0x5058455f,0x4554524f,0x5f615f44,0x6e617073,0x00000000,0x00040005, + 0x00000051,0x7366666f,0x00597465,0x00080005,0x00000059,0x5058455f,0x4554524f,0x6c465f44, + 0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000059,0x00000000,0x64617267,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000059,0x00000001,0x73736574, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x00000059,0x00000002, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000, + 0x000b0006,0x00000059,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00080006,0x00000059,0x00000004,0x646e6572,0x61547265, + 0x74656772,0x74646957,0x00000068,0x00080006,0x00000059,0x00000005,0x646e6572,0x61547265, + 0x74656772,0x67696548,0x00007468,0x00070006,0x00000059,0x00000006,0x6f6c6f63,0x656c4372, + 0x61567261,0x0065756c,0x00080006,0x00000059,0x00000007,0x65766f63,0x65676172,0x61656c43, + 0x6c615672,0x00006575,0x000a0006,0x00000059,0x00000008,0x646e6572,0x61547265,0x74656772, + 0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000059,0x00000009,0x65766f63, + 0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x00000059,0x0000000a, + 0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x00000059,0x0000000b, + 0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x0000005b,0x66696e75, + 0x736d726f,0x00000000,0x00050005,0x00000064,0x74695779,0x616c4668,0x00007367,0x00030005, + 0x00000068,0x00000079,0x00050005,0x00000095,0x61725f76,0x6f43706d,0x00726f6c,0x00040005, + 0x000000a2,0x61726170,0x0000006d,0x00030005,0x000000a5,0x00736f70,0x00060005,0x000000ba, + 0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x000000ba,0x00000000,0x505f6c67, + 0x7469736f,0x006e6f69,0x00070006,0x000000ba,0x00000001,0x505f6c67,0x746e696f,0x657a6953, + 0x00000000,0x00030005,0x000000bc,0x00000000,0x00030047,0x0000000d,0x00000000,0x00030047, + 0x00000012,0x00000000,0x00030047,0x00000017,0x00000000,0x00030047,0x00000018,0x00000000, + 0x00030047,0x00000027,0x00000000,0x00030047,0x00000029,0x00000000,0x00030047,0x0000002a, + 0x00000000,0x00040047,0x00000031,0x0000000b,0x0000002a,0x00040047,0x00000042,0x0000001e, + 0x00000000,0x00050048,0x00000059,0x00000000,0x00000023,0x00000000,0x00050048,0x00000059, + 0x00000001,0x00000023,0x00000004,0x00050048,0x00000059,0x00000002,0x00000023,0x00000008, + 0x00050048,0x00000059,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000059,0x00000004, + 0x00000023,0x00000010,0x00050048,0x00000059,0x00000005,0x00000023,0x00000014,0x00050048, + 0x00000059,0x00000006,0x00000023,0x00000018,0x00050048,0x00000059,0x00000007,0x00000023, + 0x0000001c,0x00050048,0x00000059,0x00000008,0x00000023,0x00000020,0x00050048,0x00000059, + 0x00000009,0x00000023,0x00000030,0x00050048,0x00000059,0x0000000a,0x00000023,0x00000034, + 0x00050048,0x00000059,0x0000000b,0x00000023,0x00000038,0x00030047,0x00000059,0x00000002, + 0x00040047,0x0000005b,0x00000022,0x00000000,0x00040047,0x0000005b,0x00000021,0x00000007, + 0x00030047,0x00000095,0x00000000,0x00040047,0x00000095,0x0000001e,0x00000000,0x00030047, + 0x000000a4,0x00000000,0x00050048,0x000000ba,0x00000000,0x0000000b,0x00000000,0x00050048, + 0x000000ba,0x00000001,0x0000000b,0x00000001,0x00030047,0x000000ba,0x00000002,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000007,0x00000007, + 0x00030016,0x00000009,0x00000020,0x00040017,0x0000000a,0x00000009,0x00000004,0x00040021, + 0x0000000b,0x0000000a,0x00000008,0x00040020,0x0000000f,0x00000007,0x00000006,0x00040021, + 0x00000010,0x0000000a,0x0000000f,0x00040020,0x00000016,0x00000007,0x0000000a,0x0004002b, + 0x00000006,0x0000001d,0x00000010,0x0004002b,0x00000006,0x0000001e,0x00000008,0x0004002b, + 0x00000006,0x0000001f,0x00000000,0x0004002b,0x00000006,0x00000020,0x00000018,0x0007002c, + 0x00000007,0x00000021,0x0000001d,0x0000001e,0x0000001f,0x00000020,0x0004002b,0x00000006, + 0x00000023,0x000000ff,0x0004002b,0x00000009,0x00000028,0x437f0000,0x00040015,0x0000002d, + 0x00000020,0x00000001,0x00040020,0x0000002e,0x00000007,0x0000002d,0x00040020,0x00000030, + 0x00000001,0x0000002d,0x0004003b,0x00000030,0x00000031,0x00000001,0x0004002b,0x0000002d, + 0x00000034,0x00000000,0x0004002b,0x0000002d,0x00000037,0x00000001,0x00040020,0x00000039, + 0x00000007,0x00000009,0x00020014,0x0000003c,0x00040020,0x00000041,0x00000001,0x00000007, + 0x0004003b,0x00000041,0x00000042,0x00000001,0x00040020,0x00000043,0x00000001,0x00000006, + 0x0004002b,0x00000006,0x00000046,0x0000ffff,0x0004002b,0x0000002d,0x0000004b,0x00000010, + 0x0004002b,0x00000009,0x0000004f,0x47800000,0x0004002b,0x00000009,0x00000055,0x00000000, + 0x0004002b,0x00000009,0x00000056,0x3f800000,0x00040017,0x00000058,0x0000002d,0x00000004, + 0x000e001e,0x00000059,0x00000009,0x00000009,0x00000009,0x00000009,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000058,0x00000006,0x00000006,0x00000009,0x00040020,0x0000005a, + 0x00000002,0x00000059,0x0004003b,0x0000005a,0x0000005b,0x00000002,0x00040020,0x0000005c, + 0x00000002,0x00000009,0x0004002b,0x00000006,0x00000065,0x00000001,0x0004002b,0x00000006, + 0x0000006a,0x1fffffff,0x0004002b,0x00000006,0x00000070,0x80000000,0x0004002b,0x00000006, + 0x00000079,0x20000000,0x0004002b,0x00000009,0x0000007f,0x3b000000,0x0004002b,0x00000006, + 0x00000083,0x40000000,0x0004002b,0x0000002d,0x00000087,0x00000003,0x00040020,0x00000094, + 0x00000003,0x0000000a,0x0004003b,0x00000094,0x00000095,0x00000003,0x0004002b,0x00000006, + 0x0000009b,0x00000002,0x0004002b,0x00000006,0x0000009f,0x00000003,0x0004002b,0x00000009, + 0x000000a7,0x40000000,0x00040017,0x000000b4,0x00000009,0x00000002,0x0005002c,0x000000b4, + 0x000000b5,0x00000055,0x00000056,0x0004001e,0x000000ba,0x0000000a,0x00000009,0x00040020, + 0x000000bb,0x00000003,0x000000ba,0x0004003b,0x000000bb,0x000000bc,0x00000003,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000002e, + 0x0000002f,0x00000007,0x0004003b,0x0000002e,0x00000033,0x00000007,0x0004003b,0x0000002e, + 0x00000035,0x00000007,0x0004003b,0x00000039,0x0000003a,0x00000007,0x0004003b,0x0000000f, + 0x0000003e,0x00000007,0x0004003b,0x00000039,0x00000051,0x00000007,0x0004003b,0x0000000f, + 0x00000064,0x00000007,0x0004003b,0x00000039,0x00000068,0x00000007,0x0004003b,0x0000000f, + 0x00000098,0x00000007,0x0004003b,0x0000000f,0x000000a2,0x00000007,0x0004003b,0x00000016, + 0x000000a5,0x00000007,0x0004003d,0x0000002d,0x00000032,0x00000031,0x0003003e,0x0000002f, + 0x00000032,0x0003003e,0x00000033,0x00000034,0x0004003d,0x0000002d,0x00000036,0x0000002f, + 0x000500c3,0x0000002d,0x00000038,0x00000036,0x00000037,0x0003003e,0x00000035,0x00000038, + 0x0004003d,0x0000002d,0x0000003b,0x00000035,0x000500b3,0x0000003c,0x0000003d,0x0000003b, + 0x00000037,0x000300f7,0x00000040,0x00000000,0x000400fa,0x0000003d,0x0000003f,0x00000048, + 0x000200f8,0x0000003f,0x00050041,0x00000043,0x00000044,0x00000042,0x0000001f,0x0004003d, + 0x00000006,0x00000045,0x00000044,0x000500c7,0x00000006,0x00000047,0x00000045,0x00000046, + 0x0003003e,0x0000003e,0x00000047,0x000200f9,0x00000040,0x000200f8,0x00000048,0x00050041, + 0x00000043,0x00000049,0x00000042,0x0000001f,0x0004003d,0x00000006,0x0000004a,0x00000049, + 0x000500c2,0x00000006,0x0000004c,0x0000004a,0x0000004b,0x0003003e,0x0000003e,0x0000004c, + 0x000200f9,0x00000040,0x000200f8,0x00000040,0x0004003d,0x00000006,0x0000004d,0x0000003e, + 0x00040070,0x00000009,0x0000004e,0x0000004d,0x00050088,0x00000009,0x00000050,0x0000004e, + 0x0000004f,0x0003003e,0x0000003a,0x00000050,0x0004003d,0x0000002d,0x00000052,0x0000002f, + 0x000500c7,0x0000002d,0x00000053,0x00000052,0x00000037,0x000500aa,0x0000003c,0x00000054, + 0x00000053,0x00000034,0x000600a9,0x00000009,0x00000057,0x00000054,0x00000055,0x00000056, + 0x0003003e,0x00000051,0x00000057,0x00050041,0x0000005c,0x0000005d,0x0000005b,0x00000034, + 0x0004003d,0x00000009,0x0000005e,0x0000005d,0x000500b8,0x0000003c,0x0000005f,0x0000005e, + 0x00000055,0x000300f7,0x00000061,0x00000000,0x000400fa,0x0000005f,0x00000060,0x00000061, + 0x000200f8,0x00000060,0x0004003d,0x00000009,0x00000062,0x00000051,0x00050083,0x00000009, + 0x00000063,0x00000056,0x00000062,0x0003003e,0x00000051,0x00000063,0x000200f9,0x00000061, + 0x000200f8,0x00000061,0x00050041,0x00000043,0x00000066,0x00000042,0x00000065,0x0004003d, + 0x00000006,0x00000067,0x00000066,0x0003003e,0x00000064,0x00000067,0x0004003d,0x00000006, + 0x00000069,0x00000064,0x000500c7,0x00000006,0x0000006b,0x00000069,0x0000006a,0x00040070, + 0x00000009,0x0000006c,0x0000006b,0x0004003d,0x00000009,0x0000006d,0x00000051,0x00050081, + 0x00000009,0x0000006e,0x0000006c,0x0000006d,0x0003003e,0x00000068,0x0000006e,0x0004003d, + 0x00000006,0x0000006f,0x00000064,0x000500c7,0x00000006,0x00000071,0x0000006f,0x00000070, + 0x000500ab,0x0000003c,0x00000072,0x00000071,0x0000001f,0x0004003d,0x0000002d,0x00000073, + 0x00000035,0x000500aa,0x0000003c,0x00000074,0x00000073,0x00000034,0x000500a7,0x0000003c, + 0x00000075,0x00000072,0x00000074,0x000300f7,0x00000077,0x00000000,0x000400fa,0x00000075, + 0x00000076,0x00000077,0x000200f8,0x00000076,0x0004003d,0x00000006,0x00000078,0x00000064, + 0x000500c7,0x00000006,0x0000007a,0x00000078,0x00000079,0x000500ab,0x0000003c,0x0000007b, + 0x0000007a,0x0000001f,0x000300f7,0x0000007d,0x00000000,0x000400fa,0x0000007b,0x0000007c, + 0x0000007e,0x000200f8,0x0000007c,0x0003003e,0x0000003a,0x00000055,0x000200f9,0x0000007d, + 0x000200f8,0x0000007e,0x0004003d,0x00000009,0x00000080,0x0000003a,0x00050083,0x00000009, + 0x00000081,0x00000080,0x0000007f,0x0003003e,0x0000003a,0x00000081,0x000200f9,0x0000007d, + 0x000200f8,0x0000007d,0x000200f9,0x00000077,0x000200f8,0x00000077,0x0004003d,0x00000006, + 0x00000082,0x00000064,0x000500c7,0x00000006,0x00000084,0x00000082,0x00000083,0x000500ab, + 0x0000003c,0x00000085,0x00000084,0x0000001f,0x0004003d,0x0000002d,0x00000086,0x00000035, + 0x000500aa,0x0000003c,0x00000088,0x00000086,0x00000087,0x000500a7,0x0000003c,0x00000089, + 0x00000085,0x00000088,0x000300f7,0x0000008b,0x00000000,0x000400fa,0x00000089,0x0000008a, + 0x0000008b,0x000200f8,0x0000008a,0x0004003d,0x00000006,0x0000008c,0x00000064,0x000500c7, + 0x00000006,0x0000008d,0x0000008c,0x00000079,0x000500ab,0x0000003c,0x0000008e,0x0000008d, + 0x0000001f,0x000300f7,0x00000090,0x00000000,0x000400fa,0x0000008e,0x0000008f,0x00000091, + 0x000200f8,0x0000008f,0x0003003e,0x0000003a,0x00000056,0x000200f9,0x00000090,0x000200f8, + 0x00000091,0x0004003d,0x00000009,0x00000092,0x0000003a,0x00050081,0x00000009,0x00000093, + 0x00000092,0x0000007f,0x0003003e,0x0000003a,0x00000093,0x000200f9,0x00000090,0x000200f8, + 0x00000090,0x000200f9,0x0000008b,0x000200f8,0x0000008b,0x0004003d,0x0000002d,0x00000096, + 0x00000035,0x000500b3,0x0000003c,0x00000097,0x00000096,0x00000037,0x000300f7,0x0000009a, + 0x00000000,0x000400fa,0x00000097,0x00000099,0x0000009e,0x000200f8,0x00000099,0x00050041, + 0x00000043,0x0000009c,0x00000042,0x0000009b,0x0004003d,0x00000006,0x0000009d,0x0000009c, + 0x0003003e,0x00000098,0x0000009d,0x000200f9,0x0000009a,0x000200f8,0x0000009e,0x00050041, + 0x00000043,0x000000a0,0x00000042,0x0000009f,0x0004003d,0x00000006,0x000000a1,0x000000a0, + 0x0003003e,0x00000098,0x000000a1,0x000200f9,0x0000009a,0x000200f8,0x0000009a,0x0004003d, + 0x00000006,0x000000a3,0x00000098,0x0003003e,0x000000a2,0x000000a3,0x00050039,0x0000000a, + 0x000000a4,0x00000012,0x000000a2,0x0003003e,0x00000095,0x000000a4,0x0004003d,0x00000009, + 0x000000a6,0x0000003a,0x00050085,0x00000009,0x000000a8,0x000000a6,0x000000a7,0x00050083, + 0x00000009,0x000000a9,0x000000a8,0x00000056,0x00050041,0x00000039,0x000000aa,0x000000a5, + 0x0000001f,0x0003003e,0x000000aa,0x000000a9,0x0004003d,0x00000009,0x000000ab,0x00000068, + 0x00050041,0x0000005c,0x000000ac,0x0000005b,0x00000034,0x0004003d,0x00000009,0x000000ad, + 0x000000ac,0x00050085,0x00000009,0x000000ae,0x000000ab,0x000000ad,0x00050041,0x0000005c, + 0x000000af,0x0000005b,0x00000034,0x0004003d,0x00000009,0x000000b0,0x000000af,0x0006000c, + 0x00000009,0x000000b1,0x00000001,0x00000006,0x000000b0,0x00050083,0x00000009,0x000000b2, + 0x000000ae,0x000000b1,0x00050041,0x00000039,0x000000b3,0x000000a5,0x00000065,0x0003003e, + 0x000000b3,0x000000b2,0x00050041,0x00000039,0x000000b6,0x000000a5,0x0000009b,0x00050051, + 0x00000009,0x000000b7,0x000000b5,0x00000000,0x0003003e,0x000000b6,0x000000b7,0x00050041, + 0x00000039,0x000000b8,0x000000a5,0x0000009f,0x00050051,0x00000009,0x000000b9,0x000000b5, + 0x00000001,0x0003003e,0x000000b8,0x000000b9,0x0004003d,0x0000000a,0x000000bd,0x000000a5, + 0x00050041,0x00000094,0x000000be,0x000000bc,0x00000034,0x0003003e,0x000000be,0x000000bd, + 0x000100fd,0x00010038,0x00050036,0x0000000a,0x0000000d,0x00000000,0x0000000b,0x00030037, + 0x00000008,0x0000000c,0x000200f8,0x0000000e,0x0004003b,0x00000016,0x00000017,0x00000007, + 0x0004003d,0x00000007,0x00000014,0x0000000c,0x00040070,0x0000000a,0x00000015,0x00000014, + 0x0003003e,0x00000017,0x00000015,0x0004003d,0x0000000a,0x00000018,0x00000017,0x000200fe, + 0x00000018,0x00010038,0x00050036,0x0000000a,0x00000012,0x00000000,0x00000010,0x00030037, + 0x0000000f,0x00000011,0x000200f8,0x00000013,0x0004003b,0x00000008,0x00000026,0x00000007, + 0x0004003d,0x00000006,0x0000001b,0x00000011,0x00070050,0x00000007,0x0000001c,0x0000001b, + 0x0000001b,0x0000001b,0x0000001b,0x000500c2,0x00000007,0x00000022,0x0000001c,0x00000021, + 0x00070050,0x00000007,0x00000024,0x00000023,0x00000023,0x00000023,0x00000023,0x000500c7, + 0x00000007,0x00000025,0x00000022,0x00000024,0x0003003e,0x00000026,0x00000025,0x00050039, + 0x0000000a,0x00000027,0x0000000d,0x00000026,0x00070050,0x0000000a,0x00000029,0x00000028, + 0x00000028,0x00000028,0x00000028,0x00050088,0x0000000a,0x0000002a,0x00000027,0x00000029, + 0x000200fe,0x0000002a,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.frag.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.frag.h new file mode 100644 index 00000000..51b7b8fa --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.frag.h @@ -0,0 +1,104 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_image_mesh_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000038,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000016,0x00000029,0x00030010, + 0x00000004,0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252, + 0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000, + 0x00050005,0x00000009,0x6873656d,0x6f6c6f43,0x00000072,0x00080005,0x0000000c,0x5058455f, + 0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x00000010,0x67616d69, + 0x6d615365,0x72656c70,0x00000000,0x00050005,0x00000016,0x65745f76,0x6f6f4378,0x00006472, + 0x00090005,0x0000001a,0x5058455f,0x4554524f,0x6d495f44,0x44656761,0x55776172,0x6f66696e, + 0x00736d72,0x00060006,0x0000001a,0x00000000,0x77656976,0x7274614d,0x00007869,0x00060006, + 0x0000001a,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006,0x0000001a,0x00000002, + 0x6361706f,0x00797469,0x00050006,0x0000001a,0x00000003,0x64646170,0x00676e69,0x00090006, + 0x0000001a,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078, + 0x000a0006,0x0000001a,0x00000005,0x70696c63,0x74636552,0x65766e49,0x54657372,0x736e6172, + 0x6574616c,0x00000000,0x00050006,0x0000001a,0x00000006,0x70696c63,0x00004449,0x00060006, + 0x0000001a,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006,0x0000001a,0x00000008, + 0x646e497a,0x00007865,0x00070005,0x0000001c,0x67616d69,0x61724465,0x696e5577,0x6d726f66, + 0x00000073,0x00030005,0x00000029,0x0064665f,0x00060005,0x0000002c,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00060005,0x0000002d,0x616e456b,0x43656c62,0x5270696c,0x00746365, + 0x00080005,0x0000002e,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00060005,0x0000002f,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x00000030, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000031, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000032, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000033,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x00000035,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000035,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000035, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x00000035,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x00000035,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000035,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000035,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000035,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000035,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000035,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000035, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x00000035,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x00000035,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x00000037,0x66696e75,0x736d726f,0x00000000,0x00030047,0x00000009,0x00000000,0x00030047, + 0x0000000c,0x00000000,0x00040047,0x0000000c,0x00000022,0x00000001,0x00040047,0x0000000c, + 0x00000021,0x00000002,0x00030047,0x0000000d,0x00000000,0x00030047,0x00000010,0x00000000, + 0x00040047,0x00000010,0x00000022,0x00000002,0x00040047,0x00000010,0x00000021,0x00000002, + 0x00030047,0x00000011,0x00000000,0x00040047,0x00000016,0x0000001e,0x00000000,0x00030047, + 0x00000018,0x00000000,0x00050048,0x0000001a,0x00000000,0x00000023,0x00000000,0x00050048, + 0x0000001a,0x00000001,0x00000023,0x00000010,0x00050048,0x0000001a,0x00000002,0x00000023, + 0x00000018,0x00050048,0x0000001a,0x00000003,0x00000023,0x0000001c,0x00050048,0x0000001a, + 0x00000004,0x00000023,0x00000020,0x00050048,0x0000001a,0x00000005,0x00000023,0x00000030, + 0x00050048,0x0000001a,0x00000006,0x00000023,0x00000038,0x00050048,0x0000001a,0x00000007, + 0x00000023,0x0000003c,0x00050048,0x0000001a,0x00000008,0x00000023,0x00000040,0x00030047, + 0x0000001a,0x00000002,0x00040047,0x0000001c,0x00000022,0x00000000,0x00040047,0x0000001c, + 0x00000021,0x00000009,0x00030047,0x00000025,0x00000000,0x00030047,0x00000029,0x00000000, + 0x00040047,0x00000029,0x0000001e,0x00000000,0x00030047,0x0000002a,0x00000000,0x00040047, + 0x0000002c,0x00000001,0x00000000,0x00040047,0x0000002d,0x00000001,0x00000001,0x00040047, + 0x0000002e,0x00000001,0x00000002,0x00040047,0x0000002f,0x00000001,0x00000003,0x00040047, + 0x00000030,0x00000001,0x00000004,0x00040047,0x00000031,0x00000001,0x00000005,0x00040047, + 0x00000032,0x00000001,0x00000006,0x00040047,0x00000033,0x00000001,0x00000007,0x00050048, + 0x00000035,0x00000000,0x00000023,0x00000000,0x00050048,0x00000035,0x00000001,0x00000023, + 0x00000004,0x00050048,0x00000035,0x00000002,0x00000023,0x00000008,0x00050048,0x00000035, + 0x00000003,0x00000023,0x0000000c,0x00050048,0x00000035,0x00000004,0x00000023,0x00000010, + 0x00050048,0x00000035,0x00000005,0x00000023,0x00000014,0x00050048,0x00000035,0x00000006, + 0x00000023,0x00000018,0x00050048,0x00000035,0x00000007,0x00000023,0x0000001c,0x00050048, + 0x00000035,0x00000008,0x00000023,0x00000020,0x00050048,0x00000035,0x00000009,0x00000023, + 0x00000030,0x00050048,0x00000035,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000035, + 0x0000000b,0x00000023,0x00000038,0x00030047,0x00000035,0x00000002,0x00040047,0x00000037, + 0x00000022,0x00000000,0x00040047,0x00000037,0x00000021,0x00000007,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007, + 0x00000006,0x00000004,0x00040020,0x00000008,0x00000007,0x00000007,0x00090019,0x0000000a, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000000b,0x00000000,0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000000,0x0002001a, + 0x0000000e,0x00040020,0x0000000f,0x00000000,0x0000000e,0x0004003b,0x0000000f,0x00000010, + 0x00000000,0x0003001b,0x00000012,0x0000000a,0x00040017,0x00000014,0x00000006,0x00000002, + 0x00040020,0x00000015,0x00000001,0x00000014,0x0004003b,0x00000015,0x00000016,0x00000001, + 0x00040015,0x00000019,0x00000020,0x00000000,0x000b001e,0x0000001a,0x00000007,0x00000014, + 0x00000006,0x00000006,0x00000007,0x00000014,0x00000019,0x00000019,0x00000019,0x00040020, + 0x0000001b,0x00000002,0x0000001a,0x0004003b,0x0000001b,0x0000001c,0x00000002,0x00040015, + 0x0000001d,0x00000020,0x00000001,0x0004002b,0x0000001d,0x0000001e,0x00000002,0x00040020, + 0x0000001f,0x00000002,0x00000006,0x0004002b,0x00000019,0x00000022,0x00000003,0x00040020, + 0x00000023,0x00000007,0x00000006,0x00040020,0x00000028,0x00000003,0x00000007,0x0004003b, + 0x00000028,0x00000029,0x00000003,0x00020014,0x0000002b,0x00030031,0x0000002b,0x0000002c, + 0x00030031,0x0000002b,0x0000002d,0x00030031,0x0000002b,0x0000002e,0x00030031,0x0000002b, + 0x0000002f,0x00030031,0x0000002b,0x00000030,0x00030031,0x0000002b,0x00000031,0x00030031, + 0x0000002b,0x00000032,0x00030031,0x0000002b,0x00000033,0x00040017,0x00000034,0x0000001d, + 0x00000004,0x000e001e,0x00000035,0x00000006,0x00000006,0x00000006,0x00000006,0x00000019, + 0x00000019,0x00000019,0x00000019,0x00000034,0x00000019,0x00000019,0x00000006,0x00040020, + 0x00000036,0x00000002,0x00000035,0x0004003b,0x00000036,0x00000037,0x00000002,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008, + 0x00000009,0x00000007,0x0004003d,0x0000000a,0x0000000d,0x0000000c,0x0004003d,0x0000000e, + 0x00000011,0x00000010,0x00050056,0x00000012,0x00000013,0x0000000d,0x00000011,0x0004003d, + 0x00000014,0x00000017,0x00000016,0x00050057,0x00000007,0x00000018,0x00000013,0x00000017, + 0x0003003e,0x00000009,0x00000018,0x00050041,0x0000001f,0x00000020,0x0000001c,0x0000001e, + 0x0004003d,0x00000006,0x00000021,0x00000020,0x00050041,0x00000023,0x00000024,0x00000009, + 0x00000022,0x0004003d,0x00000006,0x00000025,0x00000024,0x00050085,0x00000006,0x00000026, + 0x00000025,0x00000021,0x00050041,0x00000023,0x00000027,0x00000009,0x00000022,0x0003003e, + 0x00000027,0x00000026,0x0004003d,0x00000007,0x0000002a,0x00000009,0x0003003e,0x00000029, + 0x0000002a,0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.vert.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.vert.h new file mode 100644 index 00000000..09c59517 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_image_mesh.vert.h @@ -0,0 +1,142 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_image_mesh_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x0000006c,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000b000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x00000022,0x00000025,0x00000034, + 0x0000003d,0x0000003e,0x0000005f,0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47, + 0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365, + 0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572, + 0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00070005,0x0000000d,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34, + 0x00030005,0x0000000c,0x00000078,0x00050005,0x00000020,0x7265765f,0x49786574,0x00000044, + 0x00060005,0x00000022,0x565f6c67,0x65747265,0x646e4978,0x00007865,0x00050005,0x00000024, + 0x736e695f,0x636e6174,0x00444965,0x00070005,0x00000025,0x495f6c67,0x6174736e,0x4965636e, + 0x7865646e,0x00000000,0x00060005,0x00000028,0x74726576,0x6f507865,0x69746973,0x00006e6f, + 0x00090005,0x0000002a,0x5058455f,0x4554524f,0x6d495f44,0x44656761,0x55776172,0x6f66696e, + 0x00736d72,0x00060006,0x0000002a,0x00000000,0x77656976,0x7274614d,0x00007869,0x00060006, + 0x0000002a,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006,0x0000002a,0x00000002, + 0x6361706f,0x00797469,0x00050006,0x0000002a,0x00000003,0x64646170,0x00676e69,0x00090006, + 0x0000002a,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078, + 0x000a0006,0x0000002a,0x00000005,0x70696c63,0x74636552,0x65766e49,0x54657372,0x736e6172, + 0x6574616c,0x00000000,0x00050006,0x0000002a,0x00000006,0x70696c63,0x00004449,0x00060006, + 0x0000002a,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006,0x0000002a,0x00000008, + 0x646e497a,0x00007865,0x00070005,0x0000002c,0x67616d69,0x61724465,0x696e5577,0x6d726f66, + 0x00000073,0x00040005,0x0000002e,0x61726170,0x0000006d,0x00080005,0x00000034,0x5058455f, + 0x4554524f,0x5f615f44,0x69736f70,0x6e6f6974,0x00000000,0x00050005,0x0000003d,0x65745f76, + 0x6f6f4378,0x00006472,0x00080005,0x0000003e,0x5058455f,0x4554524f,0x5f615f44,0x43786574, + 0x64726f6f,0x00000000,0x00030005,0x00000040,0x00736f70,0x00080005,0x00000046,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000046,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000046, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x00000046,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x00000046,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000046,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000046,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000046,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000046,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000046,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000046, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x00000046,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x00000046,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x00000048,0x66696e75,0x736d726f,0x00000000,0x00060005,0x0000005d,0x505f6c67,0x65567265, + 0x78657472,0x00000000,0x00060006,0x0000005d,0x00000000,0x505f6c67,0x7469736f,0x006e6f69, + 0x00070006,0x0000005d,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006, + 0x0000005d,0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x0000005d, + 0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x0000005f,0x00000000, + 0x00060005,0x00000064,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00060005,0x00000065, + 0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00080005,0x00000066,0x616e456b,0x41656c62, + 0x6e617664,0x42646563,0x646e656c,0x00000000,0x00060005,0x00000067,0x616e456b,0x45656c62, + 0x4f6e6576,0x00006464,0x00080005,0x00000068,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00080005,0x00000069,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65, + 0x7365646f,0x00000000,0x00060005,0x0000006a,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00090005,0x0000006b,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170, + 0x00000000,0x00040047,0x00000022,0x0000000b,0x0000002a,0x00040047,0x00000025,0x0000000b, + 0x0000002b,0x00050048,0x0000002a,0x00000000,0x00000023,0x00000000,0x00050048,0x0000002a, + 0x00000001,0x00000023,0x00000010,0x00050048,0x0000002a,0x00000002,0x00000023,0x00000018, + 0x00050048,0x0000002a,0x00000003,0x00000023,0x0000001c,0x00050048,0x0000002a,0x00000004, + 0x00000023,0x00000020,0x00050048,0x0000002a,0x00000005,0x00000023,0x00000030,0x00050048, + 0x0000002a,0x00000006,0x00000023,0x00000038,0x00050048,0x0000002a,0x00000007,0x00000023, + 0x0000003c,0x00050048,0x0000002a,0x00000008,0x00000023,0x00000040,0x00030047,0x0000002a, + 0x00000002,0x00040047,0x0000002c,0x00000022,0x00000000,0x00040047,0x0000002c,0x00000021, + 0x00000009,0x00040047,0x00000034,0x0000001e,0x00000000,0x00040047,0x0000003d,0x0000001e, + 0x00000000,0x00040047,0x0000003e,0x0000001e,0x00000001,0x00050048,0x00000046,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000046,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000046,0x00000002,0x00000023,0x00000008,0x00050048,0x00000046,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x00000046,0x00000004,0x00000023,0x00000010,0x00050048,0x00000046, + 0x00000005,0x00000023,0x00000014,0x00050048,0x00000046,0x00000006,0x00000023,0x00000018, + 0x00050048,0x00000046,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000046,0x00000008, + 0x00000023,0x00000020,0x00050048,0x00000046,0x00000009,0x00000023,0x00000030,0x00050048, + 0x00000046,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000046,0x0000000b,0x00000023, + 0x00000038,0x00030047,0x00000046,0x00000002,0x00040047,0x00000048,0x00000022,0x00000000, + 0x00040047,0x00000048,0x00000021,0x00000007,0x00050048,0x0000005d,0x00000000,0x0000000b, + 0x00000000,0x00050048,0x0000005d,0x00000001,0x0000000b,0x00000001,0x00050048,0x0000005d, + 0x00000002,0x0000000b,0x00000003,0x00050048,0x0000005d,0x00000003,0x0000000b,0x00000004, + 0x00030047,0x0000005d,0x00000002,0x00040047,0x00000064,0x00000001,0x00000000,0x00040047, + 0x00000065,0x00000001,0x00000001,0x00040047,0x00000066,0x00000001,0x00000002,0x00040047, + 0x00000067,0x00000001,0x00000003,0x00040047,0x00000068,0x00000001,0x00000004,0x00040047, + 0x00000069,0x00000001,0x00000005,0x00040047,0x0000006a,0x00000001,0x00000006,0x00040047, + 0x0000006b,0x00000001,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020, + 0x00000008,0x00000007,0x00000007,0x00040017,0x00000009,0x00000006,0x00000002,0x00040018, + 0x0000000a,0x00000009,0x00000002,0x00040021,0x0000000b,0x0000000a,0x00000008,0x0004002b, + 0x00000006,0x00000013,0x3f800000,0x0004002b,0x00000006,0x00000014,0x00000000,0x00040015, + 0x0000001e,0x00000020,0x00000001,0x00040020,0x0000001f,0x00000007,0x0000001e,0x00040020, + 0x00000021,0x00000001,0x0000001e,0x0004003b,0x00000021,0x00000022,0x00000001,0x0004003b, + 0x00000021,0x00000025,0x00000001,0x00040020,0x00000027,0x00000007,0x00000009,0x00040015, + 0x00000029,0x00000020,0x00000000,0x000b001e,0x0000002a,0x00000007,0x00000009,0x00000006, + 0x00000006,0x00000007,0x00000009,0x00000029,0x00000029,0x00000029,0x00040020,0x0000002b, + 0x00000002,0x0000002a,0x0004003b,0x0000002b,0x0000002c,0x00000002,0x0004002b,0x0000001e, + 0x0000002d,0x00000000,0x00040020,0x0000002f,0x00000002,0x00000007,0x00040020,0x00000033, + 0x00000001,0x00000009,0x0004003b,0x00000033,0x00000034,0x00000001,0x0004002b,0x0000001e, + 0x00000037,0x00000001,0x00040020,0x00000038,0x00000002,0x00000009,0x00040020,0x0000003c, + 0x00000003,0x00000009,0x0004003b,0x0000003c,0x0000003d,0x00000003,0x0004003b,0x00000033, + 0x0000003e,0x00000001,0x0004002b,0x00000029,0x00000041,0x00000000,0x00040020,0x00000042, + 0x00000007,0x00000006,0x00040017,0x00000045,0x0000001e,0x00000004,0x000e001e,0x00000046, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000029,0x00000029,0x00000029,0x00000029, + 0x00000045,0x00000029,0x00000029,0x00000006,0x00040020,0x00000047,0x00000002,0x00000046, + 0x0004003b,0x00000047,0x00000048,0x00000002,0x0004002b,0x0000001e,0x00000049,0x00000002, + 0x00040020,0x0000004a,0x00000002,0x00000006,0x0004002b,0x00000029,0x0000004f,0x00000001, + 0x0004002b,0x0000001e,0x00000052,0x00000003,0x0004001c,0x0000005c,0x00000006,0x0000004f, + 0x0006001e,0x0000005d,0x00000007,0x00000006,0x0000005c,0x0000005c,0x00040020,0x0000005e, + 0x00000003,0x0000005d,0x0004003b,0x0000005e,0x0000005f,0x00000003,0x00040020,0x00000061, + 0x00000003,0x00000007,0x00020014,0x00000063,0x00030031,0x00000063,0x00000064,0x00030031, + 0x00000063,0x00000065,0x00030031,0x00000063,0x00000066,0x00030031,0x00000063,0x00000067, + 0x00030031,0x00000063,0x00000068,0x00030031,0x00000063,0x00000069,0x00030031,0x00000063, + 0x0000006a,0x00030031,0x00000063,0x0000006b,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000001f,0x00000020,0x00000007,0x0004003b, + 0x0000001f,0x00000024,0x00000007,0x0004003b,0x00000027,0x00000028,0x00000007,0x0004003b, + 0x00000008,0x0000002e,0x00000007,0x0004003b,0x00000008,0x00000040,0x00000007,0x0004003d, + 0x0000001e,0x00000023,0x00000022,0x0003003e,0x00000020,0x00000023,0x0004003d,0x0000001e, + 0x00000026,0x00000025,0x0003003e,0x00000024,0x00000026,0x00050041,0x0000002f,0x00000030, + 0x0000002c,0x0000002d,0x0004003d,0x00000007,0x00000031,0x00000030,0x0003003e,0x0000002e, + 0x00000031,0x00050039,0x0000000a,0x00000032,0x0000000d,0x0000002e,0x0004003d,0x00000009, + 0x00000035,0x00000034,0x00050091,0x00000009,0x00000036,0x00000032,0x00000035,0x00050041, + 0x00000038,0x00000039,0x0000002c,0x00000037,0x0004003d,0x00000009,0x0000003a,0x00000039, + 0x00050081,0x00000009,0x0000003b,0x00000036,0x0000003a,0x0003003e,0x00000028,0x0000003b, + 0x0004003d,0x00000009,0x0000003f,0x0000003e,0x0003003e,0x0000003d,0x0000003f,0x00050041, + 0x00000042,0x00000043,0x00000028,0x00000041,0x0004003d,0x00000006,0x00000044,0x00000043, + 0x00050041,0x0000004a,0x0000004b,0x00000048,0x00000049,0x0004003d,0x00000006,0x0000004c, + 0x0000004b,0x00050085,0x00000006,0x0000004d,0x00000044,0x0000004c,0x00050083,0x00000006, + 0x0000004e,0x0000004d,0x00000013,0x00050041,0x00000042,0x00000050,0x00000028,0x0000004f, + 0x0004003d,0x00000006,0x00000051,0x00000050,0x00050041,0x0000004a,0x00000053,0x00000048, + 0x00000052,0x0004003d,0x00000006,0x00000054,0x00000053,0x0004007f,0x00000006,0x00000055, + 0x00000054,0x00050085,0x00000006,0x00000056,0x00000051,0x00000055,0x00050041,0x0000004a, + 0x00000057,0x00000048,0x00000052,0x0004003d,0x00000006,0x00000058,0x00000057,0x0006000c, + 0x00000006,0x00000059,0x00000001,0x00000006,0x00000058,0x00050081,0x00000006,0x0000005a, + 0x00000056,0x00000059,0x00070050,0x00000007,0x0000005b,0x0000004e,0x0000005a,0x00000014, + 0x00000013,0x0003003e,0x00000040,0x0000005b,0x0004003d,0x00000007,0x00000060,0x00000040, + 0x00050041,0x00000061,0x00000062,0x0000005f,0x0000002d,0x0003003e,0x00000062,0x00000060, + 0x000100fd,0x00010038,0x00050036,0x0000000a,0x0000000d,0x00000000,0x0000000b,0x00030037, + 0x00000008,0x0000000c,0x000200f8,0x0000000e,0x0004003d,0x00000007,0x0000000f,0x0000000c, + 0x0007004f,0x00000009,0x00000010,0x0000000f,0x0000000f,0x00000000,0x00000001,0x0004003d, + 0x00000007,0x00000011,0x0000000c,0x0007004f,0x00000009,0x00000012,0x00000011,0x00000011, + 0x00000002,0x00000003,0x00050051,0x00000006,0x00000015,0x00000010,0x00000000,0x00050051, + 0x00000006,0x00000016,0x00000010,0x00000001,0x00050051,0x00000006,0x00000017,0x00000012, + 0x00000000,0x00050051,0x00000006,0x00000018,0x00000012,0x00000001,0x00050050,0x00000009, + 0x00000019,0x00000015,0x00000016,0x00050050,0x00000009,0x0000001a,0x00000017,0x00000018, + 0x00050050,0x0000000a,0x0000001b,0x00000019,0x0000001a,0x000200fe,0x0000001b,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.frag.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.frag.h new file mode 100644 index 00000000..cf932ede --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.frag.h @@ -0,0 +1,439 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_interior_triangles_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000001e1,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000b000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000102,0x00000135,0x00000187, + 0x0000018f,0x000001c2,0x000001d8,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002, + 0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65, + 0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47, + 0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576, + 0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669, + 0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x6e69755f, + 0x6f745f74,0x6c61685f,0x31752866,0x0000003b,0x00030005,0x0000000a,0x00000078,0x00080005, + 0x00000011,0x74736163,0x746e695f,0x5f6f745f,0x666c6168,0x3b316928,0x00000000,0x00030005, + 0x00000010,0x00000078,0x00070005,0x00000019,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x00000018,0x00000078,0x000a0005,0x0000001f,0x6c707061,0x6f625f79, + 0x776f7272,0x635f6465,0x7265766f,0x28656761,0x753b3166,0x00003b31,0x00070005,0x0000001d, + 0x72726f62,0x6465776f,0x65766f43,0x65676172,0x00000000,0x00060005,0x0000001e,0x65766f63, + 0x65676172,0x65646e49,0x00000078,0x000a0005,0x00000025,0x6c707061,0x69665f79,0x635f6c6c, + 0x7265766f,0x28656761,0x663b3166,0x31753b31,0x0000003b,0x00050005,0x00000022,0x6e696170, + 0x706c4174,0x00006168,0x00080005,0x00000023,0x67617266,0x65766f43,0x65676172,0x616d6552, + 0x6e696e69,0x00000067,0x00060005,0x00000024,0x65766f63,0x65676172,0x65646e49,0x00000078, + 0x00080005,0x00000042,0x72726f62,0x6465776f,0x65766f43,0x65676172,0x65786946,0x00000064, + 0x00070005,0x00000048,0x67726174,0x6f437465,0x61726576,0x61566567,0x0065756c,0x00080005, + 0x0000004a,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006, + 0x0000004a,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00090006,0x0000004a,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x000b0006,0x0000004a,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x0000004a,0x00000003,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006, + 0x0000004a,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006, + 0x0000004a,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006, + 0x0000004a,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x0000004a, + 0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x0000004a, + 0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000, + 0x00090006,0x0000004a,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665, + 0x00000000,0x00080006,0x0000004a,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261, + 0x00000079,0x00080006,0x0000004a,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664, + 0x00006575,0x00050005,0x0000004c,0x66696e75,0x736d726f,0x00000000,0x00070005,0x00000055, + 0x65766f63,0x65676172,0x6f666542,0x614d6572,0x00000078,0x00060005,0x00000057,0x65766f43, + 0x65676172,0x66667542,0x00007265,0x00050006,0x00000057,0x00000000,0x6c61765f,0x00736575, + 0x00060005,0x00000059,0x65766f63,0x65676172,0x66667542,0x00007265,0x00060005,0x00000068, + 0x6f646e75,0x6d6f7441,0x614d6369,0x00000078,0x00080005,0x00000074,0x65766f63,0x65676172, + 0x74696e49,0x566c6169,0x65756c61,0x00000000,0x00030005,0x0000008f,0x00000058,0x00090005, + 0x00000090,0x67617266,0x65766f43,0x65676172,0x616d6552,0x6e696e69,0x78694667,0x00006465, + 0x00060005,0x0000009b,0x67726174,0x6f437465,0x61726576,0x00006567,0x00070005,0x000000a1, + 0x65766f63,0x65676172,0x6f666542,0x614d6572,0x00000078,0x00040005,0x000000b5,0x69463163, + 0x00646578,0x00030005,0x000000ba,0x00003163,0x00040005,0x000000bb,0x61726170,0x0000006d, + 0x00030005,0x000000c0,0x00003263,0x00070005,0x000000d2,0x65766f63,0x65676172,0x6f666542, + 0x64416572,0x00000064,0x00030005,0x000000d7,0x00003163,0x00040005,0x000000dc,0x61726170, + 0x0000006d,0x00030005,0x000000df,0x00003263,0x00060005,0x000000e7,0x5f656e6f,0x756e696d, + 0x31635f73,0x00000061,0x00040005,0x00000100,0x68746170,0x00004449,0x00050005,0x00000102, + 0x61705f76,0x44496874,0x00000000,0x00050005,0x00000106,0x6e696170,0x74614474,0x00000061, + 0x00050005,0x00000108,0x6e696150,0x66754274,0x00726566,0x00050006,0x00000108,0x00000000, + 0x6c61765f,0x00736575,0x00080005,0x0000010a,0x5058455f,0x4554524f,0x61705f44,0x42746e69, + 0x65666675,0x00000072,0x00050005,0x0000010f,0x6e696170,0x70795474,0x00000065,0x00050005, + 0x00000118,0x6e696170,0x6c6f4374,0x0000726f,0x00030005,0x0000011e,0x0000004d,0x00060005, + 0x00000120,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000120,0x00000000, + 0x6c61765f,0x00736575,0x00090005,0x00000122,0x5058455f,0x4554524f,0x61705f44,0x41746e69, + 0x75427875,0x72656666,0x00000000,0x00040005,0x00000126,0x61726170,0x0000006d,0x00050005, + 0x0000012b,0x6e617274,0x74616c73,0x00000065,0x00050005,0x00000132,0x6e696170,0x6f6f4374, + 0x00006472,0x00060005,0x00000135,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00030005, + 0x00000140,0x00000074,0x00030005,0x0000014f,0x00000078,0x00030005,0x00000158,0x00000079, + 0x00080005,0x0000015e,0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065, + 0x00050005,0x00000162,0x64617267,0x706d6153,0x0072656c,0x00040005,0x0000016b,0x6361706f, + 0x00797469,0x00030005,0x0000016f,0x00646f6c,0x00080005,0x00000172,0x5058455f,0x4554524f, + 0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x00000174,0x67616d69,0x6d615365, + 0x72656c70,0x00000000,0x00060005,0x00000185,0x65766f63,0x65676172,0x65646e49,0x00000078, + 0x00070005,0x00000187,0x6f635f76,0x61726576,0x6c506567,0x6d656361,0x00746e65,0x00060005, + 0x0000018a,0x65766f63,0x65676172,0x63746950,0x00000068,0x00060005,0x0000018d,0x65766f63, + 0x65676172,0x726f6f43,0x00000064,0x00060005,0x0000018f,0x6f635f76,0x61726576,0x6f436567, + 0x0064726f,0x00090005,0x000001bd,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065, + 0x73736170,0x00000000,0x00070005,0x000001c0,0x72726f62,0x6465776f,0x65766f43,0x65676172, + 0x00000000,0x00060005,0x000001c2,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00040005, + 0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001c7,0x61726170,0x0000006d,0x00060005, + 0x000001cb,0x67617266,0x65766f43,0x65676172,0x00000000,0x00040005,0x000001cd,0x61726170, + 0x0000006d,0x00040005,0x000001d0,0x61726170,0x0000006d,0x00040005,0x000001d2,0x61726170, + 0x0000006d,0x00030005,0x000001d8,0x0064665f,0x00060005,0x000001da,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00060005,0x000001db,0x616e456b,0x43656c62,0x5270696c,0x00746365, + 0x00080005,0x000001dc,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00060005,0x000001dd,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x000001de, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x000001df, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x000001e0, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00030047,0x0000000b,0x00000000,0x00030047, + 0x00000011,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x00000023,0x00000000, + 0x00030047,0x00000029,0x00000000,0x00030047,0x0000002a,0x00000000,0x00030047,0x0000002f, + 0x00000000,0x00030047,0x00000030,0x00000000,0x00030047,0x00000043,0x00000000,0x00030047, + 0x00000044,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047,0x00000047,0x00000000, + 0x00050048,0x0000004a,0x00000000,0x00000023,0x00000000,0x00050048,0x0000004a,0x00000001, + 0x00000023,0x00000004,0x00050048,0x0000004a,0x00000002,0x00000023,0x00000008,0x00050048, + 0x0000004a,0x00000003,0x00000023,0x0000000c,0x00050048,0x0000004a,0x00000004,0x00000023, + 0x00000010,0x00050048,0x0000004a,0x00000005,0x00000023,0x00000014,0x00050048,0x0000004a, + 0x00000006,0x00000023,0x00000018,0x00050048,0x0000004a,0x00000007,0x00000023,0x0000001c, + 0x00050048,0x0000004a,0x00000008,0x00000023,0x00000020,0x00050048,0x0000004a,0x00000009, + 0x00000023,0x00000030,0x00050048,0x0000004a,0x0000000a,0x00000023,0x00000034,0x00050048, + 0x0000004a,0x0000000b,0x00000023,0x00000038,0x00030047,0x0000004a,0x00000002,0x00040047, + 0x0000004c,0x00000022,0x00000000,0x00040047,0x0000004c,0x00000021,0x00000007,0x00040047, + 0x00000056,0x00000006,0x00000004,0x00050048,0x00000057,0x00000000,0x00000023,0x00000000, + 0x00030047,0x00000057,0x00000003,0x00040047,0x00000059,0x00000022,0x00000000,0x00040047, + 0x00000059,0x00000021,0x0000000a,0x00030047,0x00000079,0x00000000,0x00030047,0x0000008f, + 0x00000000,0x00030047,0x00000091,0x00000000,0x00030047,0x00000092,0x00000000,0x00030047, + 0x00000093,0x00000000,0x00030047,0x00000094,0x00000000,0x00030047,0x000000ac,0x00000000, + 0x00030047,0x000000ad,0x00000000,0x00030047,0x000000ae,0x00000000,0x00030047,0x000000ba, + 0x00000000,0x00030047,0x000000bd,0x00000000,0x00030047,0x000000bf,0x00000000,0x00030047, + 0x000000c0,0x00000000,0x00030047,0x000000c1,0x00000000,0x00030047,0x000000c2,0x00000000, + 0x00030047,0x000000c3,0x00000000,0x00030047,0x000000c4,0x00000000,0x00030047,0x000000c5, + 0x00000000,0x00030047,0x000000c6,0x00000000,0x00030047,0x000000c7,0x00000000,0x00030047, + 0x000000cd,0x00000000,0x00030047,0x000000ce,0x00000000,0x00030047,0x000000d7,0x00000000, + 0x00030047,0x000000dd,0x00000000,0x00030047,0x000000de,0x00000000,0x00030047,0x000000df, + 0x00000000,0x00030047,0x000000e0,0x00000000,0x00030047,0x000000e1,0x00000000,0x00030047, + 0x000000e2,0x00000000,0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e4,0x00000000, + 0x00030047,0x000000e5,0x00000000,0x00030047,0x000000e6,0x00000000,0x00030047,0x000000e7, + 0x00000000,0x00030047,0x000000e8,0x00000000,0x00030047,0x000000ec,0x00000000,0x00030047, + 0x000000f1,0x00000000,0x00030047,0x000000f5,0x00000000,0x00030047,0x000000f6,0x00000000, + 0x00030047,0x000000f7,0x00000000,0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fb, + 0x00000000,0x00030047,0x000000fd,0x00000000,0x00030047,0x00000102,0x00000000,0x00030047, + 0x00000102,0x0000000e,0x00040047,0x00000102,0x0000001e,0x00000001,0x00030047,0x00000103, + 0x00000000,0x00040047,0x00000107,0x00000006,0x00000008,0x00040048,0x00000108,0x00000000, + 0x00000018,0x00050048,0x00000108,0x00000000,0x00000023,0x00000000,0x00030047,0x00000108, + 0x00000003,0x00040047,0x0000010a,0x00000022,0x00000000,0x00040047,0x0000010a,0x00000021, + 0x00000004,0x00030047,0x00000118,0x00000000,0x00040047,0x0000011f,0x00000006,0x00000010, + 0x00040048,0x00000120,0x00000000,0x00000018,0x00050048,0x00000120,0x00000000,0x00000023, + 0x00000000,0x00030047,0x00000120,0x00000003,0x00040047,0x00000122,0x00000022,0x00000000, + 0x00040047,0x00000122,0x00000021,0x00000005,0x00040047,0x00000135,0x0000000b,0x0000000f, + 0x00030047,0x0000015e,0x00000000,0x00040047,0x0000015e,0x00000022,0x00000000,0x00040047, + 0x0000015e,0x00000021,0x00000001,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000162, + 0x00000000,0x00040047,0x00000162,0x00000022,0x00000002,0x00040047,0x00000162,0x00000021, + 0x00000001,0x00030047,0x00000163,0x00000000,0x00030047,0x00000169,0x00000000,0x00030047, + 0x00000172,0x00000000,0x00040047,0x00000172,0x00000022,0x00000001,0x00040047,0x00000172, + 0x00000021,0x00000002,0x00030047,0x00000173,0x00000000,0x00030047,0x00000174,0x00000000, + 0x00040047,0x00000174,0x00000022,0x00000002,0x00040047,0x00000174,0x00000021,0x00000002, + 0x00030047,0x00000175,0x00000000,0x00030047,0x00000179,0x00000000,0x00030047,0x0000017c, + 0x00000000,0x00030047,0x00000180,0x00000000,0x00030047,0x00000187,0x0000000e,0x00040047, + 0x00000187,0x0000001e,0x00000002,0x00040047,0x0000018f,0x0000001e,0x00000003,0x00040047, + 0x000001bd,0x00000001,0x00000007,0x00030047,0x000001c0,0x00000000,0x00030047,0x000001c2, + 0x00000000,0x00030047,0x000001c2,0x0000000e,0x00040047,0x000001c2,0x0000001e,0x00000000, + 0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4,0x00000000,0x00030047,0x000001c5, + 0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047,0x000001cb,0x00000000,0x00030047, + 0x000001cc,0x00000000,0x00030047,0x000001cf,0x00000000,0x00030047,0x000001d0,0x00000000, + 0x00030047,0x000001d1,0x00000000,0x00030047,0x000001d8,0x00000000,0x00040047,0x000001d8, + 0x0000001e,0x00000000,0x00030047,0x000001d9,0x00000000,0x00040047,0x000001da,0x00000001, + 0x00000000,0x00040047,0x000001db,0x00000001,0x00000001,0x00040047,0x000001dc,0x00000001, + 0x00000002,0x00040047,0x000001dd,0x00000001,0x00000003,0x00040047,0x000001de,0x00000001, + 0x00000004,0x00040047,0x000001df,0x00000001,0x00000005,0x00040047,0x000001e0,0x00000001, + 0x00000006,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008, + 0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040015,0x0000000d,0x00000020, + 0x00000001,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f,0x00000008, + 0x0000000e,0x00040017,0x00000013,0x00000008,0x00000004,0x00040020,0x00000014,0x00000007, + 0x00000013,0x00040017,0x00000015,0x00000008,0x00000002,0x00040018,0x00000016,0x00000015, + 0x00000002,0x00040021,0x00000017,0x00000016,0x00000014,0x00040020,0x0000001b,0x00000007, + 0x00000008,0x00050021,0x0000001c,0x00000002,0x0000001b,0x00000007,0x00060021,0x00000021, + 0x00000002,0x0000001b,0x0000001b,0x00000007,0x0004002b,0x00000008,0x00000037,0x3f800000, + 0x0004002b,0x00000008,0x00000038,0x00000000,0x0004002b,0x00000008,0x00000045,0x437f0000, + 0x00040017,0x00000049,0x0000000d,0x00000004,0x000e001e,0x0000004a,0x00000008,0x00000008, + 0x00000008,0x00000008,0x00000006,0x00000006,0x00000006,0x00000006,0x00000049,0x00000006, + 0x00000006,0x00000008,0x00040020,0x0000004b,0x00000002,0x0000004a,0x0004003b,0x0000004b, + 0x0000004c,0x00000002,0x0004002b,0x0000000d,0x0000004d,0x00000009,0x00040020,0x0000004e, + 0x00000002,0x00000006,0x0004002b,0x00000006,0x00000051,0x00004000,0x0003001d,0x00000056, + 0x00000006,0x0003001e,0x00000057,0x00000056,0x00040020,0x00000058,0x00000002,0x00000057, + 0x0004003b,0x00000058,0x00000059,0x00000002,0x0004002b,0x0000000d,0x0000005a,0x00000000, + 0x0004002b,0x00000006,0x0000005e,0x00000001,0x0004002b,0x00000006,0x0000005f,0x00000000, + 0x00020014,0x00000064,0x0004002b,0x00000006,0x000000b7,0x00007fff,0x0004002b,0x00000008, + 0x000000be,0x3b808081,0x00040020,0x00000101,0x00000001,0x00000006,0x0004003b,0x00000101, + 0x00000102,0x00000001,0x00040017,0x00000104,0x00000006,0x00000002,0x00040020,0x00000105, + 0x00000007,0x00000104,0x0003001d,0x00000107,0x00000104,0x0003001e,0x00000108,0x00000107, + 0x00040020,0x00000109,0x00000002,0x00000108,0x0004003b,0x00000109,0x0000010a,0x00000002, + 0x00040020,0x0000010c,0x00000002,0x00000104,0x0004002b,0x00000006,0x00000112,0x0000000f, + 0x00040020,0x0000011d,0x00000007,0x00000016,0x0003001d,0x0000011f,0x00000013,0x0003001e, + 0x00000120,0x0000011f,0x00040020,0x00000121,0x00000002,0x00000120,0x0004003b,0x00000121, + 0x00000122,0x00000002,0x0004002b,0x00000006,0x00000124,0x00000004,0x00040020,0x00000127, + 0x00000002,0x00000013,0x00040020,0x00000131,0x00000007,0x00000015,0x00040020,0x00000134, + 0x00000001,0x00000013,0x0004003b,0x00000134,0x00000135,0x00000001,0x0004002b,0x00000006, + 0x00000142,0x00000002,0x0004002b,0x00000006,0x00000154,0x00000003,0x00090019,0x0000015c, + 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000015d,0x00000000,0x0000015c,0x0004003b,0x0000015d,0x0000015e,0x00000000,0x0002001a, + 0x00000160,0x00040020,0x00000161,0x00000000,0x00000160,0x0004003b,0x00000161,0x00000162, + 0x00000000,0x0003001b,0x00000164,0x0000015c,0x0004003b,0x0000015d,0x00000172,0x00000000, + 0x0004003b,0x00000161,0x00000174,0x00000000,0x00040020,0x00000186,0x00000001,0x00000104, + 0x0004003b,0x00000186,0x00000187,0x00000001,0x00040020,0x0000018e,0x00000001,0x00000015, + 0x0004003b,0x0000018e,0x0000018f,0x00000001,0x0004002b,0x0000000d,0x00000195,0x00000005, + 0x0004002b,0x00000006,0x0000019d,0x00000400,0x0004002b,0x00000006,0x000001a4,0x0000001f, + 0x0004002b,0x0000000d,0x000001a6,0x00000002,0x0004002b,0x00000006,0x000001a8,0x00000080, + 0x0004002b,0x00000006,0x000001ae,0x00000010,0x00030031,0x00000064,0x000001bd,0x00040020, + 0x000001c1,0x00000001,0x00000008,0x0004003b,0x000001c1,0x000001c2,0x00000001,0x00040020, + 0x000001d7,0x00000003,0x00000013,0x0004003b,0x000001d7,0x000001d8,0x00000003,0x00030031, + 0x00000064,0x000001da,0x00030031,0x00000064,0x000001db,0x00030031,0x00000064,0x000001dc, + 0x00030031,0x00000064,0x000001dd,0x00030031,0x00000064,0x000001de,0x00030031,0x00000064, + 0x000001df,0x00030031,0x00000064,0x000001e0,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000100,0x00000007,0x0004003b, + 0x00000105,0x00000106,0x00000007,0x0004003b,0x00000007,0x0000010f,0x00000007,0x0004003b, + 0x00000014,0x00000118,0x00000007,0x0004003b,0x0000011d,0x0000011e,0x00000007,0x0004003b, + 0x00000014,0x00000126,0x00000007,0x0004003b,0x00000014,0x0000012b,0x00000007,0x0004003b, + 0x00000131,0x00000132,0x00000007,0x0004003b,0x0000001b,0x00000140,0x00000007,0x0004003b, + 0x0000001b,0x00000144,0x00000007,0x0004003b,0x0000001b,0x0000014f,0x00000007,0x0004003b, + 0x0000001b,0x00000158,0x00000007,0x0004003b,0x0000001b,0x0000016b,0x00000007,0x0004003b, + 0x0000001b,0x0000016f,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007,0x0004003b, + 0x00000007,0x0000018a,0x00000007,0x0004003b,0x00000105,0x0000018d,0x00000007,0x0004003b, + 0x0000001b,0x000001c0,0x00000007,0x0004003b,0x0000001b,0x000001c5,0x00000007,0x0004003b, + 0x00000007,0x000001c7,0x00000007,0x0004003b,0x0000001b,0x000001cb,0x00000007,0x0004003b, + 0x0000001b,0x000001cd,0x00000007,0x0004003b,0x0000001b,0x000001d0,0x00000007,0x0004003b, + 0x00000007,0x000001d2,0x00000007,0x0004003d,0x00000006,0x00000103,0x00000102,0x0003003e, + 0x00000100,0x00000103,0x0004003d,0x00000006,0x0000010b,0x00000100,0x00060041,0x0000010c, + 0x0000010d,0x0000010a,0x0000005a,0x0000010b,0x0004003d,0x00000104,0x0000010e,0x0000010d, + 0x0003003e,0x00000106,0x0000010e,0x00050041,0x00000007,0x00000110,0x00000106,0x0000005f, + 0x0004003d,0x00000006,0x00000111,0x00000110,0x000500c7,0x00000006,0x00000113,0x00000111, + 0x00000112,0x0003003e,0x0000010f,0x00000113,0x0004003d,0x00000006,0x00000114,0x0000010f, + 0x000500b2,0x00000064,0x00000115,0x00000114,0x0000005e,0x000300f7,0x00000117,0x00000000, + 0x000400fa,0x00000115,0x00000116,0x0000011c,0x000200f8,0x00000116,0x00050041,0x00000007, + 0x00000119,0x00000106,0x0000005e,0x0004003d,0x00000006,0x0000011a,0x00000119,0x0006000c, + 0x00000013,0x0000011b,0x00000001,0x00000040,0x0000011a,0x0003003e,0x00000118,0x0000011b, + 0x000200f9,0x00000117,0x000200f8,0x0000011c,0x0004003d,0x00000006,0x00000123,0x00000100, + 0x00050084,0x00000006,0x00000125,0x00000123,0x00000124,0x00060041,0x00000127,0x00000128, + 0x00000122,0x0000005a,0x00000125,0x0004003d,0x00000013,0x00000129,0x00000128,0x0003003e, + 0x00000126,0x00000129,0x00050039,0x00000016,0x0000012a,0x00000019,0x00000126,0x0003003e, + 0x0000011e,0x0000012a,0x0004003d,0x00000006,0x0000012c,0x00000100,0x00050084,0x00000006, + 0x0000012d,0x0000012c,0x00000124,0x00050080,0x00000006,0x0000012e,0x0000012d,0x0000005e, + 0x00060041,0x00000127,0x0000012f,0x00000122,0x0000005a,0x0000012e,0x0004003d,0x00000013, + 0x00000130,0x0000012f,0x0003003e,0x0000012b,0x00000130,0x0004003d,0x00000016,0x00000133, + 0x0000011e,0x0004003d,0x00000013,0x00000136,0x00000135,0x0007004f,0x00000015,0x00000137, + 0x00000136,0x00000136,0x00000000,0x00000001,0x00050091,0x00000015,0x00000138,0x00000133, + 0x00000137,0x0004003d,0x00000013,0x00000139,0x0000012b,0x0007004f,0x00000015,0x0000013a, + 0x00000139,0x00000139,0x00000000,0x00000001,0x00050081,0x00000015,0x0000013b,0x00000138, + 0x0000013a,0x0003003e,0x00000132,0x0000013b,0x0004003d,0x00000006,0x0000013c,0x0000010f, + 0x000500ab,0x00000064,0x0000013d,0x0000013c,0x00000124,0x000300f7,0x0000013f,0x00000000, + 0x000400fa,0x0000013d,0x0000013e,0x0000016a,0x000200f8,0x0000013e,0x0004003d,0x00000006, + 0x00000141,0x0000010f,0x000500aa,0x00000064,0x00000143,0x00000141,0x00000142,0x000300f7, + 0x00000146,0x00000000,0x000400fa,0x00000143,0x00000145,0x00000149,0x000200f8,0x00000145, + 0x00050041,0x0000001b,0x00000147,0x00000132,0x0000005f,0x0004003d,0x00000008,0x00000148, + 0x00000147,0x0003003e,0x00000144,0x00000148,0x000200f9,0x00000146,0x000200f8,0x00000149, + 0x0004003d,0x00000015,0x0000014a,0x00000132,0x0006000c,0x00000008,0x0000014b,0x00000001, + 0x00000042,0x0000014a,0x0003003e,0x00000144,0x0000014b,0x000200f9,0x00000146,0x000200f8, + 0x00000146,0x0004003d,0x00000008,0x0000014c,0x00000144,0x0003003e,0x00000140,0x0000014c, + 0x0004003d,0x00000008,0x0000014d,0x00000140,0x0008000c,0x00000008,0x0000014e,0x00000001, + 0x0000002b,0x0000014d,0x00000038,0x00000037,0x0003003e,0x00000140,0x0000014e,0x0004003d, + 0x00000008,0x00000150,0x00000140,0x00050041,0x0000001b,0x00000151,0x0000012b,0x00000142, + 0x0004003d,0x00000008,0x00000152,0x00000151,0x00050085,0x00000008,0x00000153,0x00000150, + 0x00000152,0x00050041,0x0000001b,0x00000155,0x0000012b,0x00000154,0x0004003d,0x00000008, + 0x00000156,0x00000155,0x00050081,0x00000008,0x00000157,0x00000153,0x00000156,0x0003003e, + 0x0000014f,0x00000157,0x00050041,0x00000007,0x00000159,0x00000106,0x0000005e,0x0004003d, + 0x00000006,0x0000015a,0x00000159,0x0004007c,0x00000008,0x0000015b,0x0000015a,0x0003003e, + 0x00000158,0x0000015b,0x0004003d,0x0000015c,0x0000015f,0x0000015e,0x0004003d,0x00000160, + 0x00000163,0x00000162,0x00050056,0x00000164,0x00000165,0x0000015f,0x00000163,0x0004003d, + 0x00000008,0x00000166,0x0000014f,0x0004003d,0x00000008,0x00000167,0x00000158,0x00050050, + 0x00000015,0x00000168,0x00000166,0x00000167,0x00070058,0x00000013,0x00000169,0x00000165, + 0x00000168,0x00000002,0x00000038,0x0003003e,0x00000118,0x00000169,0x000200f9,0x0000013f, + 0x000200f8,0x0000016a,0x00050041,0x00000007,0x0000016c,0x00000106,0x0000005e,0x0004003d, + 0x00000006,0x0000016d,0x0000016c,0x0004007c,0x00000008,0x0000016e,0x0000016d,0x0003003e, + 0x0000016b,0x0000016e,0x00050041,0x0000001b,0x00000170,0x0000012b,0x00000142,0x0004003d, + 0x00000008,0x00000171,0x00000170,0x0003003e,0x0000016f,0x00000171,0x0004003d,0x0000015c, + 0x00000173,0x00000172,0x0004003d,0x00000160,0x00000175,0x00000174,0x00050056,0x00000164, + 0x00000176,0x00000173,0x00000175,0x0004003d,0x00000015,0x00000177,0x00000132,0x0004003d, + 0x00000008,0x00000178,0x0000016f,0x00070058,0x00000013,0x00000179,0x00000176,0x00000177, + 0x00000002,0x00000178,0x0003003e,0x00000118,0x00000179,0x0004003d,0x00000008,0x0000017a, + 0x0000016b,0x00050041,0x0000001b,0x0000017b,0x00000118,0x00000154,0x0004003d,0x00000008, + 0x0000017c,0x0000017b,0x00050085,0x00000008,0x0000017d,0x0000017c,0x0000017a,0x00050041, + 0x0000001b,0x0000017e,0x00000118,0x00000154,0x0003003e,0x0000017e,0x0000017d,0x000200f9, + 0x0000013f,0x000200f8,0x0000013f,0x000200f9,0x00000117,0x000200f8,0x00000117,0x00050041, + 0x0000001b,0x0000017f,0x00000118,0x00000154,0x0004003d,0x00000008,0x00000180,0x0000017f, + 0x000500b4,0x00000064,0x00000181,0x00000180,0x00000038,0x000300f7,0x00000183,0x00000000, + 0x000400fa,0x00000181,0x00000182,0x00000183,0x000200f8,0x00000182,0x000100fc,0x000200f8, + 0x00000183,0x00050041,0x00000101,0x00000188,0x00000187,0x0000005f,0x0004003d,0x00000006, + 0x00000189,0x00000188,0x0003003e,0x00000185,0x00000189,0x00050041,0x00000101,0x0000018b, + 0x00000187,0x0000005e,0x0004003d,0x00000006,0x0000018c,0x0000018b,0x0003003e,0x0000018a, + 0x0000018c,0x0004003d,0x00000015,0x00000190,0x0000018f,0x0006000c,0x00000015,0x00000191, + 0x00000001,0x00000008,0x00000190,0x0004006d,0x00000104,0x00000192,0x00000191,0x0003003e, + 0x0000018d,0x00000192,0x00050041,0x00000007,0x00000193,0x0000018d,0x0000005e,0x0004003d, + 0x00000006,0x00000194,0x00000193,0x000500c2,0x00000006,0x00000196,0x00000194,0x00000195, + 0x0004003d,0x00000006,0x00000197,0x0000018a,0x000500c4,0x00000006,0x00000198,0x00000197, + 0x00000195,0x00050084,0x00000006,0x00000199,0x00000196,0x00000198,0x00050041,0x00000007, + 0x0000019a,0x0000018d,0x0000005f,0x0004003d,0x00000006,0x0000019b,0x0000019a,0x000500c2, + 0x00000006,0x0000019c,0x0000019b,0x00000195,0x00050084,0x00000006,0x0000019e,0x0000019c, + 0x0000019d,0x00050080,0x00000006,0x0000019f,0x00000199,0x0000019e,0x0004003d,0x00000006, + 0x000001a0,0x00000185,0x00050080,0x00000006,0x000001a1,0x000001a0,0x0000019f,0x0003003e, + 0x00000185,0x000001a1,0x00050041,0x00000007,0x000001a2,0x0000018d,0x0000005f,0x0004003d, + 0x00000006,0x000001a3,0x000001a2,0x000500c7,0x00000006,0x000001a5,0x000001a3,0x000001a4, + 0x000500c2,0x00000006,0x000001a7,0x000001a5,0x000001a6,0x00050084,0x00000006,0x000001a9, + 0x000001a7,0x000001a8,0x00050041,0x00000007,0x000001aa,0x0000018d,0x0000005e,0x0004003d, + 0x00000006,0x000001ab,0x000001aa,0x000500c7,0x00000006,0x000001ac,0x000001ab,0x000001a4, + 0x000500c2,0x00000006,0x000001ad,0x000001ac,0x000001a6,0x00050084,0x00000006,0x000001af, + 0x000001ad,0x000001ae,0x00050080,0x00000006,0x000001b0,0x000001a9,0x000001af,0x0004003d, + 0x00000006,0x000001b1,0x00000185,0x00050080,0x00000006,0x000001b2,0x000001b1,0x000001b0, + 0x0003003e,0x00000185,0x000001b2,0x00050041,0x00000007,0x000001b3,0x0000018d,0x0000005e, + 0x0004003d,0x00000006,0x000001b4,0x000001b3,0x000500c7,0x00000006,0x000001b5,0x000001b4, + 0x00000154,0x00050084,0x00000006,0x000001b6,0x000001b5,0x00000124,0x00050041,0x00000007, + 0x000001b7,0x0000018d,0x0000005f,0x0004003d,0x00000006,0x000001b8,0x000001b7,0x000500c7, + 0x00000006,0x000001b9,0x000001b8,0x00000154,0x00050080,0x00000006,0x000001ba,0x000001b6, + 0x000001b9,0x0004003d,0x00000006,0x000001bb,0x00000185,0x00050080,0x00000006,0x000001bc, + 0x000001bb,0x000001ba,0x0003003e,0x00000185,0x000001bc,0x000300f7,0x000001bf,0x00000000, + 0x000400fa,0x000001bd,0x000001be,0x000001bf,0x000200f8,0x000001be,0x0004003d,0x00000008, + 0x000001c3,0x000001c2,0x0004007f,0x00000008,0x000001c4,0x000001c3,0x0003003e,0x000001c0, + 0x000001c4,0x0004003d,0x00000008,0x000001c6,0x000001c0,0x0003003e,0x000001c5,0x000001c6, + 0x0004003d,0x00000006,0x000001c8,0x00000185,0x0003003e,0x000001c7,0x000001c8,0x00060039, + 0x00000002,0x000001c9,0x0000001f,0x000001c5,0x000001c7,0x000100fc,0x000200f8,0x000001bf, + 0x0004003d,0x00000008,0x000001cc,0x000001c2,0x0003003e,0x000001cb,0x000001cc,0x00050041, + 0x0000001b,0x000001ce,0x00000118,0x00000154,0x0004003d,0x00000008,0x000001cf,0x000001ce, + 0x0003003e,0x000001cd,0x000001cf,0x0004003d,0x00000008,0x000001d1,0x000001cb,0x0003003e, + 0x000001d0,0x000001d1,0x0004003d,0x00000006,0x000001d3,0x00000185,0x0003003e,0x000001d2, + 0x000001d3,0x00070039,0x00000002,0x000001d4,0x00000025,0x000001cd,0x000001d0,0x000001d2, + 0x0004003d,0x00000008,0x000001d5,0x000001cd,0x00050041,0x0000001b,0x000001d6,0x00000118, + 0x00000154,0x0003003e,0x000001d6,0x000001d5,0x0004003d,0x00000013,0x000001d9,0x00000118, + 0x0003003e,0x000001d8,0x000001d9,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b, + 0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003b, + 0x0000001b,0x00000029,0x00000007,0x0004003d,0x00000006,0x00000027,0x0000000a,0x00040070, + 0x00000008,0x00000028,0x00000027,0x0003003e,0x00000029,0x00000028,0x0004003d,0x00000008, + 0x0000002a,0x00000029,0x000200fe,0x0000002a,0x00010038,0x00050036,0x00000008,0x00000011, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012,0x0004003b, + 0x0000001b,0x0000002f,0x00000007,0x0004003d,0x0000000d,0x0000002d,0x00000010,0x0004006f, + 0x00000008,0x0000002e,0x0000002d,0x0003003e,0x0000002f,0x0000002e,0x0004003d,0x00000008, + 0x00000030,0x0000002f,0x000200fe,0x00000030,0x00010038,0x00050036,0x00000016,0x00000019, + 0x00000000,0x00000017,0x00030037,0x00000014,0x00000018,0x000200f8,0x0000001a,0x0004003d, + 0x00000013,0x00000033,0x00000018,0x0007004f,0x00000015,0x00000034,0x00000033,0x00000033, + 0x00000000,0x00000001,0x0004003d,0x00000013,0x00000035,0x00000018,0x0007004f,0x00000015, + 0x00000036,0x00000035,0x00000035,0x00000002,0x00000003,0x00050051,0x00000008,0x00000039, + 0x00000034,0x00000000,0x00050051,0x00000008,0x0000003a,0x00000034,0x00000001,0x00050051, + 0x00000008,0x0000003b,0x00000036,0x00000000,0x00050051,0x00000008,0x0000003c,0x00000036, + 0x00000001,0x00050050,0x00000015,0x0000003d,0x00000039,0x0000003a,0x00050050,0x00000015, + 0x0000003e,0x0000003b,0x0000003c,0x00050050,0x00000016,0x0000003f,0x0000003d,0x0000003e, + 0x000200fe,0x0000003f,0x00010038,0x00050036,0x00000002,0x0000001f,0x00000000,0x0000001c, + 0x00030037,0x0000001b,0x0000001d,0x00030037,0x00000007,0x0000001e,0x000200f8,0x00000020, + 0x0004003b,0x00000007,0x00000042,0x00000007,0x0004003b,0x00000007,0x00000048,0x00000007, + 0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,0x00000007,0x00000068,0x00000007, + 0x0004003d,0x00000008,0x00000043,0x0000001d,0x0006000c,0x00000008,0x00000044,0x00000001, + 0x00000004,0x00000043,0x00050085,0x00000008,0x00000046,0x00000044,0x00000045,0x0004006d, + 0x00000006,0x00000047,0x00000046,0x0003003e,0x00000042,0x00000047,0x00050041,0x0000004e, + 0x0000004f,0x0000004c,0x0000004d,0x0004003d,0x00000006,0x00000050,0x0000004f,0x0004003d, + 0x00000006,0x00000052,0x00000042,0x00050082,0x00000006,0x00000053,0x00000051,0x00000052, + 0x000500c5,0x00000006,0x00000054,0x00000050,0x00000053,0x0003003e,0x00000048,0x00000054, + 0x0004003d,0x00000006,0x0000005b,0x0000001e,0x00060041,0x0000004e,0x0000005c,0x00000059, + 0x0000005a,0x0000005b,0x0004003d,0x00000006,0x0000005d,0x00000048,0x000700ef,0x00000006, + 0x00000060,0x0000005c,0x0000005e,0x0000005f,0x0000005d,0x0003003e,0x00000055,0x00000060, + 0x0004003d,0x00000006,0x00000061,0x00000055,0x00050041,0x0000004e,0x00000062,0x0000004c, + 0x0000004d,0x0004003d,0x00000006,0x00000063,0x00000062,0x000500ae,0x00000064,0x00000065, + 0x00000061,0x00000063,0x000300f7,0x00000067,0x00000000,0x000400fa,0x00000065,0x00000066, + 0x00000067,0x000200f8,0x00000066,0x0004003d,0x00000006,0x00000069,0x00000055,0x0004003d, + 0x00000006,0x0000006a,0x00000055,0x0004003d,0x00000006,0x0000006b,0x00000048,0x0007000c, + 0x00000006,0x0000006c,0x00000001,0x00000029,0x0000006a,0x0000006b,0x00050082,0x00000006, + 0x0000006d,0x00000069,0x0000006c,0x0003003e,0x00000068,0x0000006d,0x0004003d,0x00000006, + 0x0000006e,0x0000001e,0x00060041,0x0000004e,0x0000006f,0x00000059,0x0000005a,0x0000006e, + 0x0004003d,0x00000006,0x00000070,0x00000068,0x0004003d,0x00000006,0x00000071,0x00000042, + 0x00050082,0x00000006,0x00000072,0x00000070,0x00000071,0x000700ea,0x00000006,0x00000073, + 0x0000006f,0x0000005e,0x0000005f,0x00000072,0x000200f9,0x00000067,0x000200f8,0x00000067, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000025,0x00000000,0x00000021,0x00030037, + 0x0000001b,0x00000022,0x00030037,0x0000001b,0x00000023,0x00030037,0x00000007,0x00000024, + 0x000200f8,0x00000026,0x0004003b,0x00000007,0x00000074,0x00000007,0x0004003b,0x0000001b, + 0x0000008f,0x00000007,0x0004003b,0x00000007,0x00000090,0x00000007,0x0004003b,0x00000007, + 0x0000009b,0x00000007,0x0004003b,0x00000007,0x000000a1,0x00000007,0x0004003b,0x00000007, + 0x000000b5,0x00000007,0x0004003b,0x0000001b,0x000000ba,0x00000007,0x0004003b,0x00000007, + 0x000000bb,0x00000007,0x0004003b,0x0000001b,0x000000c0,0x00000007,0x0004003b,0x00000007, + 0x000000d2,0x00000007,0x0004003b,0x0000001b,0x000000d7,0x00000007,0x0004003b,0x0000000e, + 0x000000dc,0x00000007,0x0004003b,0x0000001b,0x000000df,0x00000007,0x0004003b,0x0000001b, + 0x000000e7,0x00000007,0x0004003d,0x00000006,0x00000075,0x00000024,0x00060041,0x0000004e, + 0x00000076,0x00000059,0x0000005a,0x00000075,0x0004003d,0x00000006,0x00000077,0x00000076, + 0x0003003e,0x00000074,0x00000077,0x0004003d,0x00000008,0x00000078,0x00000022,0x0004003d, + 0x00000008,0x00000079,0x00000023,0x0007000c,0x00000008,0x0000007a,0x00000001,0x00000025, + 0x00000078,0x00000079,0x000500be,0x00000064,0x0000007b,0x0000007a,0x00000037,0x000300f7, + 0x0000007d,0x00000000,0x000400fa,0x0000007b,0x0000007c,0x0000007d,0x000200f8,0x0000007c, + 0x0004003d,0x00000006,0x0000007e,0x00000074,0x00050041,0x0000004e,0x0000007f,0x0000004c, + 0x0000004d,0x0004003d,0x00000006,0x00000080,0x0000007f,0x000500b0,0x00000064,0x00000081, + 0x0000007e,0x00000080,0x000400a8,0x00000064,0x00000082,0x00000081,0x000300f7,0x00000084, + 0x00000000,0x000400fa,0x00000082,0x00000083,0x00000084,0x000200f8,0x00000083,0x0004003d, + 0x00000006,0x00000085,0x00000074,0x00050041,0x0000004e,0x00000086,0x0000004c,0x0000004d, + 0x0004003d,0x00000006,0x00000087,0x00000086,0x000500c5,0x00000006,0x00000088,0x00000087, + 0x00000051,0x000500ae,0x00000064,0x00000089,0x00000085,0x00000088,0x000200f9,0x00000084, + 0x000200f8,0x00000084,0x000700f5,0x00000064,0x0000008a,0x00000081,0x0000007c,0x00000089, + 0x00000083,0x000200f9,0x0000007d,0x000200f8,0x0000007d,0x000700f5,0x00000064,0x0000008b, + 0x0000007b,0x00000026,0x0000008a,0x00000084,0x000300f7,0x0000008d,0x00000000,0x000400fa, + 0x0000008b,0x0000008c,0x0000008d,0x000200f8,0x0000008c,0x000100fd,0x000200f8,0x0000008d, + 0x0003003e,0x0000008f,0x00000038,0x0004003d,0x00000008,0x00000091,0x00000023,0x0006000c, + 0x00000008,0x00000092,0x00000001,0x00000004,0x00000091,0x00050085,0x00000008,0x00000093, + 0x00000092,0x00000045,0x0004006d,0x00000006,0x00000094,0x00000093,0x0003003e,0x00000090, + 0x00000094,0x0004003d,0x00000006,0x00000095,0x00000074,0x00050041,0x0000004e,0x00000096, + 0x0000004c,0x0000004d,0x0004003d,0x00000006,0x00000097,0x00000096,0x000500b0,0x00000064, + 0x00000098,0x00000095,0x00000097,0x000300f7,0x0000009a,0x00000000,0x000400fa,0x00000098, + 0x00000099,0x0000009a,0x000200f8,0x00000099,0x00050041,0x0000004e,0x0000009c,0x0000004c, + 0x0000004d,0x0004003d,0x00000006,0x0000009d,0x0000009c,0x0004003d,0x00000006,0x0000009e, + 0x00000090,0x00050080,0x00000006,0x0000009f,0x00000051,0x0000009e,0x000500c5,0x00000006, + 0x000000a0,0x0000009d,0x0000009f,0x0003003e,0x0000009b,0x000000a0,0x0004003d,0x00000006, + 0x000000a2,0x00000024,0x00060041,0x0000004e,0x000000a3,0x00000059,0x0000005a,0x000000a2, + 0x0004003d,0x00000006,0x000000a4,0x0000009b,0x000700ef,0x00000006,0x000000a5,0x000000a3, + 0x0000005e,0x0000005f,0x000000a4,0x0003003e,0x000000a1,0x000000a5,0x0004003d,0x00000006, + 0x000000a6,0x000000a1,0x00050041,0x0000004e,0x000000a7,0x0000004c,0x0000004d,0x0004003d, + 0x00000006,0x000000a8,0x000000a7,0x000500b2,0x00000064,0x000000a9,0x000000a6,0x000000a8, + 0x000300f7,0x000000ab,0x00000000,0x000400fa,0x000000a9,0x000000aa,0x000000af,0x000200f8, + 0x000000aa,0x0004003d,0x00000008,0x000000ac,0x00000023,0x0003003e,0x0000008f,0x000000ac, + 0x0004003d,0x00000008,0x000000ad,0x0000008f,0x0007000c,0x00000008,0x000000ae,0x00000001, + 0x00000025,0x000000ad,0x00000037,0x0003003e,0x0000008f,0x000000ae,0x0003003e,0x00000023, + 0x00000038,0x000200f9,0x000000ab,0x000200f8,0x000000af,0x0004003d,0x00000006,0x000000b0, + 0x000000a1,0x0004003d,0x00000006,0x000000b1,0x0000009b,0x000500b0,0x00000064,0x000000b2, + 0x000000b0,0x000000b1,0x000300f7,0x000000b4,0x00000000,0x000400fa,0x000000b2,0x000000b3, + 0x000000b4,0x000200f8,0x000000b3,0x0004003d,0x00000006,0x000000b6,0x000000a1,0x000500c7, + 0x00000006,0x000000b8,0x000000b6,0x000000b7,0x00050082,0x00000006,0x000000b9,0x000000b8, + 0x00000051,0x0003003e,0x000000b5,0x000000b9,0x0004003d,0x00000006,0x000000bc,0x000000b5, + 0x0003003e,0x000000bb,0x000000bc,0x00050039,0x00000008,0x000000bd,0x0000000b,0x000000bb, + 0x00050085,0x00000008,0x000000bf,0x000000bd,0x000000be,0x0003003e,0x000000ba,0x000000bf, + 0x0004003d,0x00000008,0x000000c1,0x00000023,0x0003003e,0x000000c0,0x000000c1,0x0004003d, + 0x00000008,0x000000c2,0x000000c0,0x0007000c,0x00000008,0x000000c3,0x00000001,0x00000025, + 0x000000c2,0x00000037,0x0003003e,0x000000c0,0x000000c3,0x0004003d,0x00000008,0x000000c4, + 0x000000c0,0x0004003d,0x00000008,0x000000c5,0x000000ba,0x00050083,0x00000008,0x000000c6, + 0x000000c4,0x000000c5,0x0004003d,0x00000008,0x000000c7,0x000000ba,0x0004003d,0x00000008, + 0x000000c8,0x00000022,0x00050085,0x00000008,0x000000c9,0x000000c7,0x000000c8,0x00050083, + 0x00000008,0x000000ca,0x00000037,0x000000c9,0x00050088,0x00000008,0x000000cb,0x000000c6, + 0x000000ca,0x0003003e,0x0000008f,0x000000cb,0x0004003d,0x00000006,0x000000cc,0x000000b5, + 0x0003003e,0x00000090,0x000000cc,0x0004003d,0x00000008,0x000000cd,0x000000ba,0x0003003e, + 0x00000023,0x000000cd,0x000200f9,0x000000b4,0x000200f8,0x000000b4,0x000200f9,0x000000ab, + 0x000200f8,0x000000ab,0x000200f9,0x0000009a,0x000200f8,0x0000009a,0x0004003d,0x00000008, + 0x000000ce,0x00000023,0x000500ba,0x00000064,0x000000cf,0x000000ce,0x00000038,0x000300f7, + 0x000000d1,0x00000000,0x000400fa,0x000000cf,0x000000d0,0x000000d1,0x000200f8,0x000000d0, + 0x0004003d,0x00000006,0x000000d3,0x00000024,0x00060041,0x0000004e,0x000000d4,0x00000059, + 0x0000005a,0x000000d3,0x0004003d,0x00000006,0x000000d5,0x00000090,0x000700ea,0x00000006, + 0x000000d6,0x000000d4,0x0000005e,0x0000005f,0x000000d5,0x0003003e,0x000000d2,0x000000d6, + 0x0004003d,0x00000006,0x000000d8,0x000000d2,0x000500c7,0x00000006,0x000000d9,0x000000d8, + 0x000000b7,0x00050082,0x00000006,0x000000da,0x000000d9,0x00000051,0x0004007c,0x0000000d, + 0x000000db,0x000000da,0x0003003e,0x000000dc,0x000000db,0x00050039,0x00000008,0x000000dd, + 0x00000011,0x000000dc,0x00050085,0x00000008,0x000000de,0x000000dd,0x000000be,0x0003003e, + 0x000000d7,0x000000de,0x0004003d,0x00000008,0x000000e0,0x000000d7,0x0004003d,0x00000008, + 0x000000e1,0x00000023,0x00050081,0x00000008,0x000000e2,0x000000e0,0x000000e1,0x0003003e, + 0x000000df,0x000000e2,0x0004003d,0x00000008,0x000000e3,0x000000d7,0x0008000c,0x00000008, + 0x000000e4,0x00000001,0x0000002b,0x000000e3,0x00000038,0x00000037,0x0003003e,0x000000d7, + 0x000000e4,0x0004003d,0x00000008,0x000000e5,0x000000df,0x0008000c,0x00000008,0x000000e6, + 0x00000001,0x0000002b,0x000000e5,0x00000038,0x00000037,0x0003003e,0x000000df,0x000000e6, + 0x0004003d,0x00000008,0x000000e8,0x000000d7,0x0004003d,0x00000008,0x000000e9,0x00000022, + 0x00050085,0x00000008,0x000000ea,0x000000e8,0x000000e9,0x00050083,0x00000008,0x000000eb, + 0x00000037,0x000000ea,0x0003003e,0x000000e7,0x000000eb,0x0004003d,0x00000008,0x000000ec, + 0x000000e7,0x000500bc,0x00000064,0x000000ed,0x000000ec,0x00000038,0x000300f7,0x000000ef, + 0x00000000,0x000400fa,0x000000ed,0x000000ee,0x000000ef,0x000200f8,0x000000ee,0x000100fc, + 0x000200f8,0x000000ef,0x0004003d,0x00000008,0x000000f1,0x0000008f,0x0004003d,0x00000008, + 0x000000f2,0x00000022,0x00050085,0x00000008,0x000000f3,0x000000f1,0x000000f2,0x00050083, + 0x00000008,0x000000f4,0x00000037,0x000000f3,0x0004003d,0x00000008,0x000000f5,0x000000df, + 0x0004003d,0x00000008,0x000000f6,0x000000d7,0x00050083,0x00000008,0x000000f7,0x000000f5, + 0x000000f6,0x00050085,0x00000008,0x000000f8,0x000000f4,0x000000f7,0x0004003d,0x00000008, + 0x000000f9,0x000000e7,0x00050088,0x00000008,0x000000fa,0x000000f8,0x000000f9,0x0004003d, + 0x00000008,0x000000fb,0x0000008f,0x00050081,0x00000008,0x000000fc,0x000000fb,0x000000fa, + 0x0003003e,0x0000008f,0x000000fc,0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x0004003d, + 0x00000008,0x000000fd,0x0000008f,0x0004003d,0x00000008,0x000000fe,0x00000022,0x00050085, + 0x00000008,0x000000ff,0x000000fe,0x000000fd,0x0003003e,0x00000022,0x000000ff,0x000100fd, + 0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.vert.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.vert.h new file mode 100644 index 00000000..be9c2090 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_interior_triangles.vert.h @@ -0,0 +1,217 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_interior_triangles_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000000c8,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000c000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000006b,0x00000070,0x00000073, + 0x00000082,0x00000085,0x00000089,0x000000ac,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x746e695f,0x5f6f745f,0x666c6168, + 0x3b316928,0x00000000,0x00030005,0x0000000a,0x00000078,0x00070005,0x00000013,0x656b616d, + 0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000012,0x00000078,0x000d0005, + 0x0000001e,0x61706e75,0x695f6b63,0x7265746e,0x5f726f69,0x61697274,0x656c676e,0x7265765f, + 0x28786574,0x3b336676,0x663b3175,0x00003b31,0x00060005,0x0000001b,0x61697274,0x656c676e, + 0x74726556,0x00007865,0x00050005,0x0000001c,0x5074756f,0x49687461,0x00000044,0x00070005, + 0x0000001d,0x5774756f,0x69646e69,0x6557676e,0x74686769,0x00000000,0x00030005,0x0000003c, + 0x0000004d,0x00050005,0x0000003f,0x68746150,0x66667542,0x00007265,0x00050006,0x0000003f, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000041,0x5058455f,0x4554524f,0x61705f44, + 0x75426874,0x72656666,0x00000000,0x00040005,0x0000004a,0x61726170,0x0000006d,0x00050005, + 0x0000004d,0x68746170,0x61746144,0x00000000,0x00050005,0x00000055,0x6e617274,0x74616c73, + 0x00000065,0x00040005,0x0000005f,0x61726170,0x0000006d,0x00050005,0x00000069,0x7265765f, + 0x49786574,0x00000044,0x00060005,0x0000006b,0x565f6c67,0x65747265,0x646e4978,0x00007865, + 0x00050005,0x0000006d,0x736e695f,0x636e6174,0x00444965,0x00060005,0x0000006e,0x74726576, + 0x6f507865,0x69746973,0x00006e6f,0x00090005,0x00000070,0x5058455f,0x4554524f,0x5f615f44, + 0x61697274,0x656c676e,0x74726556,0x00007865,0x00040005,0x00000071,0x68746170,0x00004449, + 0x00060005,0x00000073,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00040005,0x00000074, + 0x61726170,0x0000006d,0x00040005,0x00000076,0x61726170,0x0000006d,0x00040005,0x00000077, + 0x61726170,0x0000006d,0x00060005,0x0000007b,0x65766f63,0x65676172,0x61746144,0x00000000, + 0x00050005,0x00000082,0x61705f76,0x44496874,0x00000000,0x00070005,0x00000085,0x6f635f76, + 0x61726576,0x6c506567,0x6d656361,0x00746e65,0x00060005,0x00000089,0x6f635f76,0x61726576, + 0x6f436567,0x0064726f,0x00030005,0x0000008f,0x00736f70,0x00080005,0x00000094,0x5058455f, + 0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000094,0x00000000, + 0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000094, + 0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006, + 0x00000094,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5874726f,0x00000000,0x000b0006,0x00000094,0x00000003,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000094,0x00000004, + 0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000094,0x00000005, + 0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000094,0x00000006, + 0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000094,0x00000007,0x65766f63, + 0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000094,0x00000008,0x646e6572, + 0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000094, + 0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006, + 0x00000094,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006, + 0x00000094,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005, + 0x00000096,0x66696e75,0x736d726f,0x00000000,0x00060005,0x000000aa,0x505f6c67,0x65567265, + 0x78657472,0x00000000,0x00060006,0x000000aa,0x00000000,0x505f6c67,0x7469736f,0x006e6f69, + 0x00070006,0x000000aa,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006, + 0x000000aa,0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x000000aa, + 0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x000000ac,0x00000000, + 0x00060005,0x000000b1,0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00060005,0x000000b2, + 0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00080005,0x000000b3,0x616e456b,0x41656c62, + 0x6e617664,0x42646563,0x646e656c,0x00000000,0x00060005,0x000000b4,0x616e456b,0x45656c62, + 0x4f6e6576,0x00006464,0x00080005,0x000000b5,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00080005,0x000000b6,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65, + 0x7365646f,0x00000000,0x00060005,0x000000b7,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00090005,0x000000b8,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170, + 0x00000000,0x00090005,0x000000bb,0x5058455f,0x4554524f,0x65745f44,0x65567373,0x78657472, + 0x74786554,0x00657275,0x00050005,0x000000bd,0x6e696150,0x66754274,0x00726566,0x00050006, + 0x000000bd,0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000bf,0x5058455f,0x4554524f, + 0x61705f44,0x42746e69,0x65666675,0x00000072,0x00060005,0x000000c1,0x6e696150,0x78754174, + 0x66667542,0x00007265,0x00050006,0x000000c1,0x00000000,0x6c61765f,0x00736575,0x00090005, + 0x000000c3,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000, + 0x00060005,0x000000c5,0x746e6f43,0x4272756f,0x65666675,0x00000072,0x00050006,0x000000c5, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000c7,0x5058455f,0x4554524f,0x6f635f44, + 0x756f746e,0x66754272,0x00726566,0x00030047,0x0000000b,0x00000000,0x00030047,0x0000001d, + 0x00000000,0x00030047,0x00000022,0x00000000,0x00030047,0x00000023,0x00000000,0x00040047, + 0x0000003e,0x00000006,0x00000010,0x00040048,0x0000003f,0x00000000,0x00000018,0x00050048, + 0x0000003f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000003f,0x00000003,0x00040047, + 0x00000041,0x00000022,0x00000000,0x00040047,0x00000041,0x00000021,0x00000003,0x00030047, + 0x00000060,0x00000000,0x00040047,0x0000006b,0x0000000b,0x0000002a,0x00040047,0x00000070, + 0x0000001e,0x00000000,0x00030047,0x00000073,0x00000000,0x00030047,0x00000073,0x0000000e, + 0x00040047,0x00000073,0x0000001e,0x00000000,0x00030047,0x00000077,0x00000000,0x00030047, + 0x00000082,0x00000000,0x00030047,0x00000082,0x0000000e,0x00040047,0x00000082,0x0000001e, + 0x00000001,0x00030047,0x00000085,0x0000000e,0x00040047,0x00000085,0x0000001e,0x00000002, + 0x00040047,0x00000089,0x0000001e,0x00000003,0x00050048,0x00000094,0x00000000,0x00000023, + 0x00000000,0x00050048,0x00000094,0x00000001,0x00000023,0x00000004,0x00050048,0x00000094, + 0x00000002,0x00000023,0x00000008,0x00050048,0x00000094,0x00000003,0x00000023,0x0000000c, + 0x00050048,0x00000094,0x00000004,0x00000023,0x00000010,0x00050048,0x00000094,0x00000005, + 0x00000023,0x00000014,0x00050048,0x00000094,0x00000006,0x00000023,0x00000018,0x00050048, + 0x00000094,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000094,0x00000008,0x00000023, + 0x00000020,0x00050048,0x00000094,0x00000009,0x00000023,0x00000030,0x00050048,0x00000094, + 0x0000000a,0x00000023,0x00000034,0x00050048,0x00000094,0x0000000b,0x00000023,0x00000038, + 0x00030047,0x00000094,0x00000002,0x00040047,0x00000096,0x00000022,0x00000000,0x00040047, + 0x00000096,0x00000021,0x00000007,0x00050048,0x000000aa,0x00000000,0x0000000b,0x00000000, + 0x00050048,0x000000aa,0x00000001,0x0000000b,0x00000001,0x00050048,0x000000aa,0x00000002, + 0x0000000b,0x00000003,0x00050048,0x000000aa,0x00000003,0x0000000b,0x00000004,0x00030047, + 0x000000aa,0x00000002,0x00040047,0x000000b1,0x00000001,0x00000000,0x00040047,0x000000b2, + 0x00000001,0x00000001,0x00040047,0x000000b3,0x00000001,0x00000002,0x00040047,0x000000b4, + 0x00000001,0x00000003,0x00040047,0x000000b5,0x00000001,0x00000004,0x00040047,0x000000b6, + 0x00000001,0x00000005,0x00040047,0x000000b7,0x00000001,0x00000006,0x00040047,0x000000b8, + 0x00000001,0x00000007,0x00040047,0x000000bb,0x00000022,0x00000000,0x00040047,0x000000bb, + 0x00000021,0x00000000,0x00040047,0x000000bc,0x00000006,0x00000008,0x00040048,0x000000bd, + 0x00000000,0x00000018,0x00050048,0x000000bd,0x00000000,0x00000023,0x00000000,0x00030047, + 0x000000bd,0x00000003,0x00040047,0x000000bf,0x00000022,0x00000000,0x00040047,0x000000bf, + 0x00000021,0x00000004,0x00040047,0x000000c0,0x00000006,0x00000010,0x00040048,0x000000c1, + 0x00000000,0x00000018,0x00050048,0x000000c1,0x00000000,0x00000023,0x00000000,0x00030047, + 0x000000c1,0x00000003,0x00040047,0x000000c3,0x00000022,0x00000000,0x00040047,0x000000c3, + 0x00000021,0x00000005,0x00040047,0x000000c4,0x00000006,0x00000010,0x00040048,0x000000c5, + 0x00000000,0x00000018,0x00050048,0x000000c5,0x00000000,0x00000023,0x00000000,0x00030047, + 0x000000c5,0x00000003,0x00040047,0x000000c7,0x00000022,0x00000000,0x00040047,0x000000c7, + 0x00000021,0x00000006,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015, + 0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016, + 0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d, + 0x00000008,0x00000004,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040017,0x0000000f, + 0x00000008,0x00000002,0x00040018,0x00000010,0x0000000f,0x00000002,0x00040021,0x00000011, + 0x00000010,0x0000000e,0x00040017,0x00000015,0x00000008,0x00000003,0x00040020,0x00000016, + 0x00000007,0x00000015,0x00040015,0x00000017,0x00000020,0x00000000,0x00040020,0x00000018, + 0x00000007,0x00000017,0x00040020,0x00000019,0x00000007,0x00000008,0x00060021,0x0000001a, + 0x0000000f,0x00000016,0x00000018,0x00000019,0x0004002b,0x00000008,0x0000002a,0x3f800000, + 0x0004002b,0x00000008,0x0000002b,0x00000000,0x0004002b,0x00000017,0x00000035,0x00000002, + 0x0004002b,0x00000017,0x00000039,0x0000ffff,0x00040020,0x0000003b,0x00000007,0x00000010, + 0x00040017,0x0000003d,0x00000017,0x00000004,0x0003001d,0x0000003e,0x0000003d,0x0003001e, + 0x0000003f,0x0000003e,0x00040020,0x00000040,0x00000002,0x0000003f,0x0004003b,0x00000040, + 0x00000041,0x00000002,0x0004002b,0x00000006,0x00000042,0x00000000,0x0004002b,0x00000017, + 0x00000044,0x00000004,0x00040020,0x00000046,0x00000002,0x0000003d,0x00040020,0x0000004c, + 0x00000007,0x0000003d,0x0004002b,0x00000017,0x00000050,0x00000001,0x00040020,0x00000054, + 0x00000007,0x0000000f,0x00040017,0x00000056,0x00000017,0x00000002,0x0004002b,0x00000006, + 0x0000005d,0x00000010,0x00040020,0x0000006a,0x00000001,0x00000006,0x0004003b,0x0000006a, + 0x0000006b,0x00000001,0x00040020,0x0000006f,0x00000001,0x00000015,0x0004003b,0x0000006f, + 0x00000070,0x00000001,0x00040020,0x00000072,0x00000003,0x00000008,0x0004003b,0x00000072, + 0x00000073,0x00000003,0x00040020,0x00000081,0x00000003,0x00000017,0x0004003b,0x00000081, + 0x00000082,0x00000003,0x00040020,0x00000084,0x00000003,0x00000056,0x0004003b,0x00000084, + 0x00000085,0x00000003,0x00040020,0x00000088,0x00000003,0x0000000f,0x0004003b,0x00000088, + 0x00000089,0x00000003,0x0004002b,0x00000017,0x00000090,0x00000000,0x00040017,0x00000093, + 0x00000006,0x00000004,0x000e001e,0x00000094,0x00000008,0x00000008,0x00000008,0x00000008, + 0x00000017,0x00000017,0x00000017,0x00000017,0x00000093,0x00000017,0x00000017,0x00000008, + 0x00040020,0x00000095,0x00000002,0x00000094,0x0004003b,0x00000095,0x00000096,0x00000002, + 0x0004002b,0x00000006,0x00000097,0x00000002,0x00040020,0x00000098,0x00000002,0x00000008, + 0x0004002b,0x00000006,0x0000009f,0x00000003,0x0004001c,0x000000a9,0x00000008,0x00000050, + 0x0006001e,0x000000aa,0x0000000d,0x00000008,0x000000a9,0x000000a9,0x00040020,0x000000ab, + 0x00000003,0x000000aa,0x0004003b,0x000000ab,0x000000ac,0x00000003,0x00040020,0x000000ae, + 0x00000003,0x0000000d,0x00020014,0x000000b0,0x00030031,0x000000b0,0x000000b1,0x00030031, + 0x000000b0,0x000000b2,0x00030031,0x000000b0,0x000000b3,0x00030031,0x000000b0,0x000000b4, + 0x00030031,0x000000b0,0x000000b5,0x00030031,0x000000b0,0x000000b6,0x00030031,0x000000b0, + 0x000000b7,0x00030031,0x000000b0,0x000000b8,0x00090019,0x000000b9,0x00000017,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000ba,0x00000000, + 0x000000b9,0x0004003b,0x000000ba,0x000000bb,0x00000000,0x0003001d,0x000000bc,0x00000056, + 0x0003001e,0x000000bd,0x000000bc,0x00040020,0x000000be,0x00000002,0x000000bd,0x0004003b, + 0x000000be,0x000000bf,0x00000002,0x0003001d,0x000000c0,0x0000000d,0x0003001e,0x000000c1, + 0x000000c0,0x00040020,0x000000c2,0x00000002,0x000000c1,0x0004003b,0x000000c2,0x000000c3, + 0x00000002,0x0003001d,0x000000c4,0x0000003d,0x0003001e,0x000000c5,0x000000c4,0x00040020, + 0x000000c6,0x00000002,0x000000c5,0x0004003b,0x000000c6,0x000000c7,0x00000002,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007, + 0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006d,0x00000007,0x0004003b,0x00000054, + 0x0000006e,0x00000007,0x0004003b,0x00000018,0x00000071,0x00000007,0x0004003b,0x00000016, + 0x00000074,0x00000007,0x0004003b,0x00000018,0x00000076,0x00000007,0x0004003b,0x00000019, + 0x00000077,0x00000007,0x0004003b,0x0000004c,0x0000007b,0x00000007,0x0004003b,0x0000000e, + 0x0000008f,0x00000007,0x0004003d,0x00000006,0x0000006c,0x0000006b,0x0003003e,0x00000069, + 0x0000006c,0x0003003e,0x0000006d,0x00000042,0x0004003d,0x00000015,0x00000075,0x00000070, + 0x0003003e,0x00000074,0x00000075,0x00070039,0x0000000f,0x00000078,0x0000001e,0x00000074, + 0x00000076,0x00000077,0x0004003d,0x00000017,0x00000079,0x00000076,0x0003003e,0x00000071, + 0x00000079,0x0004003d,0x00000008,0x0000007a,0x00000077,0x0003003e,0x00000073,0x0000007a, + 0x0003003e,0x0000006e,0x00000078,0x0004003d,0x00000017,0x0000007c,0x00000071,0x00050084, + 0x00000017,0x0000007d,0x0000007c,0x00000044,0x00050080,0x00000017,0x0000007e,0x0000007d, + 0x00000035,0x00060041,0x00000046,0x0000007f,0x00000041,0x00000042,0x0000007e,0x0004003d, + 0x0000003d,0x00000080,0x0000007f,0x0003003e,0x0000007b,0x00000080,0x0004003d,0x00000017, + 0x00000083,0x00000071,0x0003003e,0x00000082,0x00000083,0x0004003d,0x0000003d,0x00000086, + 0x0000007b,0x0007004f,0x00000056,0x00000087,0x00000086,0x00000086,0x00000000,0x00000001, + 0x0003003e,0x00000085,0x00000087,0x0004003d,0x0000000f,0x0000008a,0x0000006e,0x0004003d, + 0x0000003d,0x0000008b,0x0000007b,0x0007004f,0x00000056,0x0000008c,0x0000008b,0x0000008b, + 0x00000002,0x00000003,0x0004007c,0x0000000f,0x0000008d,0x0000008c,0x00050081,0x0000000f, + 0x0000008e,0x0000008a,0x0000008d,0x0003003e,0x00000089,0x0000008e,0x00050041,0x00000019, + 0x00000091,0x0000006e,0x00000090,0x0004003d,0x00000008,0x00000092,0x00000091,0x00050041, + 0x00000098,0x00000099,0x00000096,0x00000097,0x0004003d,0x00000008,0x0000009a,0x00000099, + 0x00050085,0x00000008,0x0000009b,0x00000092,0x0000009a,0x00050083,0x00000008,0x0000009c, + 0x0000009b,0x0000002a,0x00050041,0x00000019,0x0000009d,0x0000006e,0x00000050,0x0004003d, + 0x00000008,0x0000009e,0x0000009d,0x00050041,0x00000098,0x000000a0,0x00000096,0x0000009f, + 0x0004003d,0x00000008,0x000000a1,0x000000a0,0x0004007f,0x00000008,0x000000a2,0x000000a1, + 0x00050085,0x00000008,0x000000a3,0x0000009e,0x000000a2,0x00050041,0x00000098,0x000000a4, + 0x00000096,0x0000009f,0x0004003d,0x00000008,0x000000a5,0x000000a4,0x0006000c,0x00000008, + 0x000000a6,0x00000001,0x00000006,0x000000a5,0x00050081,0x00000008,0x000000a7,0x000000a3, + 0x000000a6,0x00070050,0x0000000d,0x000000a8,0x0000009c,0x000000a7,0x0000002b,0x0000002a, + 0x0003003e,0x0000008f,0x000000a8,0x0004003d,0x0000000d,0x000000ad,0x0000008f,0x00050041, + 0x000000ae,0x000000af,0x000000ac,0x00000042,0x0003003e,0x000000af,0x000000ad,0x000100fd, + 0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007, + 0x0000000a,0x000200f8,0x0000000c,0x0004003b,0x00000019,0x00000022,0x00000007,0x0004003d, + 0x00000006,0x00000020,0x0000000a,0x0004006f,0x00000008,0x00000021,0x00000020,0x0003003e, + 0x00000022,0x00000021,0x0004003d,0x00000008,0x00000023,0x00000022,0x000200fe,0x00000023, + 0x00010038,0x00050036,0x00000010,0x00000013,0x00000000,0x00000011,0x00030037,0x0000000e, + 0x00000012,0x000200f8,0x00000014,0x0004003d,0x0000000d,0x00000026,0x00000012,0x0007004f, + 0x0000000f,0x00000027,0x00000026,0x00000026,0x00000000,0x00000001,0x0004003d,0x0000000d, + 0x00000028,0x00000012,0x0007004f,0x0000000f,0x00000029,0x00000028,0x00000028,0x00000002, + 0x00000003,0x00050051,0x00000008,0x0000002c,0x00000027,0x00000000,0x00050051,0x00000008, + 0x0000002d,0x00000027,0x00000001,0x00050051,0x00000008,0x0000002e,0x00000029,0x00000000, + 0x00050051,0x00000008,0x0000002f,0x00000029,0x00000001,0x00050050,0x0000000f,0x00000030, + 0x0000002c,0x0000002d,0x00050050,0x0000000f,0x00000031,0x0000002e,0x0000002f,0x00050050, + 0x00000010,0x00000032,0x00000030,0x00000031,0x000200fe,0x00000032,0x00010038,0x00050036, + 0x0000000f,0x0000001e,0x00000000,0x0000001a,0x00030037,0x00000016,0x0000001b,0x00030037, + 0x00000018,0x0000001c,0x00030037,0x00000019,0x0000001d,0x000200f8,0x0000001f,0x0004003b, + 0x0000003b,0x0000003c,0x00000007,0x0004003b,0x0000000e,0x0000004a,0x00000007,0x0004003b, + 0x0000004c,0x0000004d,0x00000007,0x0004003b,0x00000054,0x00000055,0x00000007,0x0004003b, + 0x00000007,0x0000005f,0x00000007,0x00050041,0x00000019,0x00000036,0x0000001b,0x00000035, + 0x0004003d,0x00000008,0x00000037,0x00000036,0x0004007c,0x00000017,0x00000038,0x00000037, + 0x000500c7,0x00000017,0x0000003a,0x00000038,0x00000039,0x0003003e,0x0000001c,0x0000003a, + 0x0004003d,0x00000017,0x00000043,0x0000001c,0x00050084,0x00000017,0x00000045,0x00000043, + 0x00000044,0x00060041,0x00000046,0x00000047,0x00000041,0x00000042,0x00000045,0x0004003d, + 0x0000003d,0x00000048,0x00000047,0x0004007c,0x0000000d,0x00000049,0x00000048,0x0003003e, + 0x0000004a,0x00000049,0x00050039,0x00000010,0x0000004b,0x00000013,0x0000004a,0x0003003e, + 0x0000003c,0x0000004b,0x0004003d,0x00000017,0x0000004e,0x0000001c,0x00050084,0x00000017, + 0x0000004f,0x0000004e,0x00000044,0x00050080,0x00000017,0x00000051,0x0000004f,0x00000050, + 0x00060041,0x00000046,0x00000052,0x00000041,0x00000042,0x00000051,0x0004003d,0x0000003d, + 0x00000053,0x00000052,0x0003003e,0x0000004d,0x00000053,0x0004003d,0x0000003d,0x00000057, + 0x0000004d,0x0007004f,0x00000056,0x00000058,0x00000057,0x00000057,0x00000000,0x00000001, + 0x0004007c,0x0000000f,0x00000059,0x00000058,0x0003003e,0x00000055,0x00000059,0x00050041, + 0x00000019,0x0000005a,0x0000001b,0x00000035,0x0004003d,0x00000008,0x0000005b,0x0000005a, + 0x0004007c,0x00000006,0x0000005c,0x0000005b,0x000500c3,0x00000006,0x0000005e,0x0000005c, + 0x0000005d,0x0003003e,0x0000005f,0x0000005e,0x00050039,0x00000008,0x00000060,0x0000000b, + 0x0000005f,0x0003003e,0x0000001d,0x00000060,0x0004003d,0x00000010,0x00000061,0x0000003c, + 0x0004003d,0x00000015,0x00000062,0x0000001b,0x0007004f,0x0000000f,0x00000063,0x00000062, + 0x00000062,0x00000000,0x00000001,0x00050091,0x0000000f,0x00000064,0x00000061,0x00000063, + 0x0004003d,0x0000000f,0x00000065,0x00000055,0x00050081,0x0000000f,0x00000066,0x00000064, + 0x00000065,0x000200fe,0x00000066,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.frag.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.frag.h new file mode 100644 index 00000000..63849785 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.frag.h @@ -0,0 +1,508 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_path_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000230,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000b000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000136,0x00000169,0x000001bb, + 0x000001c3,0x000001f5,0x00000227,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002, + 0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65, + 0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47, + 0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576, + 0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669, + 0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x6e69755f, + 0x6f745f74,0x6c61685f,0x31752866,0x0000003b,0x00030005,0x0000000a,0x00000078,0x00080005, + 0x00000011,0x74736163,0x746e695f,0x5f6f745f,0x666c6168,0x3b316928,0x00000000,0x00030005, + 0x00000010,0x00000078,0x00070005,0x00000019,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x00000018,0x00000078,0x000a0005,0x0000001f,0x6c707061,0x6f625f79, + 0x776f7272,0x635f6465,0x7265766f,0x28656761,0x753b3166,0x00003b31,0x00070005,0x0000001d, + 0x72726f62,0x6465776f,0x65766f43,0x65676172,0x00000000,0x00060005,0x0000001e,0x65766f63, + 0x65676172,0x65646e49,0x00000078,0x000a0005,0x00000025,0x6c707061,0x74735f79,0x656b6f72, + 0x766f635f,0x67617265,0x31662865,0x3b31663b,0x003b3175,0x00050005,0x00000022,0x6e696170, + 0x706c4174,0x00006168,0x00060005,0x00000023,0x67617266,0x65766f43,0x65676172,0x00000000, + 0x00060005,0x00000024,0x65766f63,0x65676172,0x65646e49,0x00000078,0x000a0005,0x0000002a, + 0x6c707061,0x69665f79,0x635f6c6c,0x7265766f,0x28656761,0x663b3166,0x31753b31,0x0000003b, + 0x00050005,0x00000027,0x6e696170,0x706c4174,0x00006168,0x00080005,0x00000028,0x67617266, + 0x65766f43,0x65676172,0x616d6552,0x6e696e69,0x00000067,0x00060005,0x00000029,0x65766f63, + 0x65676172,0x65646e49,0x00000078,0x00080005,0x00000047,0x72726f62,0x6465776f,0x65766f43, + 0x65676172,0x65786946,0x00000064,0x00070005,0x0000004d,0x67726174,0x6f437465,0x61726576, + 0x61566567,0x0065756c,0x00080005,0x0000004f,0x5058455f,0x4554524f,0x6c465f44,0x55687375, + 0x6f66696e,0x00736d72,0x00090006,0x0000004f,0x00000000,0x64617267,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00090006,0x0000004f,0x00000001,0x73736574,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x0000004f,0x00000002,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006, + 0x0000004f,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00080006,0x0000004f,0x00000004,0x646e6572,0x61547265,0x74656772, + 0x74646957,0x00000068,0x00080006,0x0000004f,0x00000005,0x646e6572,0x61547265,0x74656772, + 0x67696548,0x00007468,0x00070006,0x0000004f,0x00000006,0x6f6c6f63,0x656c4372,0x61567261, + 0x0065756c,0x00080006,0x0000004f,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672, + 0x00006575,0x000a0006,0x0000004f,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055, + 0x6f426574,0x73646e75,0x00000000,0x00090006,0x0000004f,0x00000009,0x65766f63,0x65676172, + 0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x0000004f,0x0000000a,0x68746170, + 0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x0000004f,0x0000000b,0x74726576, + 0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x00000051,0x66696e75,0x736d726f, + 0x00000000,0x00070005,0x0000005a,0x65766f63,0x65676172,0x6f666542,0x614d6572,0x00000078, + 0x00060005,0x0000005c,0x65766f43,0x65676172,0x66667542,0x00007265,0x00050006,0x0000005c, + 0x00000000,0x6c61765f,0x00736575,0x00060005,0x0000005e,0x65766f63,0x65676172,0x66667542, + 0x00007265,0x00060005,0x0000006d,0x6f646e75,0x6d6f7441,0x614d6369,0x00000078,0x00070005, + 0x00000080,0x67617266,0x65766f43,0x65676172,0x65786946,0x00000064,0x00070005,0x00000085, + 0x65766f63,0x65676172,0x6f666542,0x614d6572,0x00000078,0x00030005,0x00000093,0x00000058, + 0x00030005,0x00000096,0x00003163,0x00040005,0x0000009a,0x61726170,0x0000006d,0x00030005, + 0x0000009e,0x00003263,0x00080005,0x000000ad,0x65766f63,0x65676172,0x74696e49,0x566c6169, + 0x65756c61,0x00000000,0x00030005,0x000000c8,0x00000058,0x00090005,0x000000c9,0x67617266, + 0x65766f43,0x65676172,0x616d6552,0x6e696e69,0x78694667,0x00006465,0x00060005,0x000000d4, + 0x67726174,0x6f437465,0x61726576,0x00006567,0x00070005,0x000000da,0x65766f63,0x65676172, + 0x6f666542,0x614d6572,0x00000078,0x00040005,0x000000ec,0x69463163,0x00646578,0x00030005, + 0x000000f1,0x00003163,0x00040005,0x000000f2,0x61726170,0x0000006d,0x00030005,0x000000f6, + 0x00003263,0x00070005,0x00000106,0x65766f63,0x65676172,0x6f666542,0x64416572,0x00000064, + 0x00030005,0x0000010b,0x00003163,0x00040005,0x00000110,0x61726170,0x0000006d,0x00030005, + 0x00000113,0x00003263,0x00060005,0x0000011b,0x5f656e6f,0x756e696d,0x31635f73,0x00000061, + 0x00040005,0x00000134,0x68746170,0x00004449,0x00050005,0x00000136,0x61705f76,0x44496874, + 0x00000000,0x00050005,0x0000013a,0x6e696170,0x74614474,0x00000061,0x00050005,0x0000013c, + 0x6e696150,0x66754274,0x00726566,0x00050006,0x0000013c,0x00000000,0x6c61765f,0x00736575, + 0x00080005,0x0000013e,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072, + 0x00050005,0x00000143,0x6e696170,0x70795474,0x00000065,0x00050005,0x0000014c,0x6e696170, + 0x6c6f4374,0x0000726f,0x00030005,0x00000152,0x0000004d,0x00060005,0x00000154,0x6e696150, + 0x78754174,0x66667542,0x00007265,0x00050006,0x00000154,0x00000000,0x6c61765f,0x00736575, + 0x00090005,0x00000156,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666, + 0x00000000,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00050005,0x0000015f,0x6e617274, + 0x74616c73,0x00000065,0x00050005,0x00000166,0x6e696170,0x6f6f4374,0x00006472,0x00060005, + 0x00000169,0x465f6c67,0x43676172,0x64726f6f,0x00000000,0x00030005,0x00000174,0x00000074, + 0x00030005,0x00000183,0x00000078,0x00030005,0x0000018c,0x00000079,0x00080005,0x00000192, + 0x5058455f,0x4554524f,0x72675f44,0x65546461,0x72757478,0x00000065,0x00050005,0x00000196, + 0x64617267,0x706d6153,0x0072656c,0x00040005,0x0000019f,0x6361706f,0x00797469,0x00030005, + 0x000001a3,0x00646f6c,0x00080005,0x000001a6,0x5058455f,0x4554524f,0x6d695f44,0x54656761, + 0x75747865,0x00006572,0x00060005,0x000001a8,0x67616d69,0x6d615365,0x72656c70,0x00000000, + 0x00060005,0x000001b9,0x65766f63,0x65676172,0x65646e49,0x00000078,0x00070005,0x000001bb, + 0x6f635f76,0x61726576,0x6c506567,0x6d656361,0x00746e65,0x00060005,0x000001be,0x65766f63, + 0x65676172,0x63746950,0x00000068,0x00060005,0x000001c1,0x65766f63,0x65676172,0x726f6f43, + 0x00000064,0x00060005,0x000001c3,0x6f635f76,0x61726576,0x6f436567,0x0064726f,0x00090005, + 0x000001f1,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000, + 0x00070005,0x000001f4,0x72726f62,0x6465776f,0x65766f43,0x65676172,0x00000000,0x00060005, + 0x000001f5,0x64655f76,0x69446567,0x6e617473,0x00006563,0x00040005,0x000001fb,0x61726170, + 0x0000006d,0x00040005,0x000001fd,0x61726170,0x0000006d,0x00060005,0x00000206,0x67617266, + 0x65766f43,0x65676172,0x00000000,0x00040005,0x0000020d,0x61726170,0x0000006d,0x00040005, + 0x00000210,0x61726170,0x0000006d,0x00040005,0x00000212,0x61726170,0x0000006d,0x00060005, + 0x00000218,0x67617266,0x65766f43,0x65676172,0x00000000,0x00040005,0x0000021c,0x61726170, + 0x0000006d,0x00040005,0x0000021f,0x61726170,0x0000006d,0x00040005,0x00000221,0x61726170, + 0x0000006d,0x00030005,0x00000227,0x0064665f,0x00060005,0x00000229,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00060005,0x0000022a,0x616e456b,0x43656c62,0x5270696c,0x00746365, + 0x00080005,0x0000022b,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00060005,0x0000022c,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x0000022d, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x0000022e, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x0000022f, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00030047,0x0000000b,0x00000000,0x00030047, + 0x00000011,0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x00000023,0x00000000, + 0x00030047,0x00000028,0x00000000,0x00030047,0x0000002e,0x00000000,0x00030047,0x0000002f, + 0x00000000,0x00030047,0x00000034,0x00000000,0x00030047,0x00000035,0x00000000,0x00030047, + 0x00000048,0x00000000,0x00030047,0x00000049,0x00000000,0x00030047,0x0000004b,0x00000000, + 0x00030047,0x0000004c,0x00000000,0x00050048,0x0000004f,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000004f,0x00000001,0x00000023,0x00000004,0x00050048,0x0000004f,0x00000002, + 0x00000023,0x00000008,0x00050048,0x0000004f,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x0000004f,0x00000004,0x00000023,0x00000010,0x00050048,0x0000004f,0x00000005,0x00000023, + 0x00000014,0x00050048,0x0000004f,0x00000006,0x00000023,0x00000018,0x00050048,0x0000004f, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x0000004f,0x00000008,0x00000023,0x00000020, + 0x00050048,0x0000004f,0x00000009,0x00000023,0x00000030,0x00050048,0x0000004f,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x0000004f,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x0000004f,0x00000002,0x00040047,0x00000051,0x00000022,0x00000000,0x00040047,0x00000051, + 0x00000021,0x00000007,0x00040047,0x0000005b,0x00000006,0x00000004,0x00050048,0x0000005c, + 0x00000000,0x00000023,0x00000000,0x00030047,0x0000005c,0x00000003,0x00040047,0x0000005e, + 0x00000022,0x00000000,0x00040047,0x0000005e,0x00000021,0x0000000a,0x00030047,0x0000007a, + 0x00000000,0x00030047,0x00000081,0x00000000,0x00030047,0x00000082,0x00000000,0x00030047, + 0x00000083,0x00000000,0x00030047,0x00000084,0x00000000,0x00030047,0x00000093,0x00000000, + 0x00030047,0x00000094,0x00000000,0x00030047,0x00000096,0x00000000,0x00030047,0x0000009b, + 0x00000000,0x00030047,0x0000009d,0x00000000,0x00030047,0x0000009e,0x00000000,0x00030047, + 0x0000009f,0x00000000,0x00030047,0x000000a0,0x00000000,0x00030047,0x000000a1,0x00000000, + 0x00030047,0x000000a2,0x00000000,0x00030047,0x000000a3,0x00000000,0x00030047,0x000000a4, + 0x00000000,0x00030047,0x000000a5,0x00000000,0x00030047,0x000000aa,0x00000000,0x00030047, + 0x000000b2,0x00000000,0x00030047,0x000000c8,0x00000000,0x00030047,0x000000ca,0x00000000, + 0x00030047,0x000000cb,0x00000000,0x00030047,0x000000cc,0x00000000,0x00030047,0x000000cd, + 0x00000000,0x00030047,0x000000e5,0x00000000,0x00030047,0x000000f1,0x00000000,0x00030047, + 0x000000f4,0x00000000,0x00030047,0x000000f5,0x00000000,0x00030047,0x000000f6,0x00000000, + 0x00030047,0x000000f7,0x00000000,0x00030047,0x000000f8,0x00000000,0x00030047,0x000000f9, + 0x00000000,0x00030047,0x000000fa,0x00000000,0x00030047,0x000000fb,0x00000000,0x00030047, + 0x00000101,0x00000000,0x00030047,0x00000102,0x00000000,0x00030047,0x0000010b,0x00000000, + 0x00030047,0x00000111,0x00000000,0x00030047,0x00000112,0x00000000,0x00030047,0x00000113, + 0x00000000,0x00030047,0x00000114,0x00000000,0x00030047,0x00000115,0x00000000,0x00030047, + 0x00000116,0x00000000,0x00030047,0x00000117,0x00000000,0x00030047,0x00000118,0x00000000, + 0x00030047,0x00000119,0x00000000,0x00030047,0x0000011a,0x00000000,0x00030047,0x0000011b, + 0x00000000,0x00030047,0x0000011c,0x00000000,0x00030047,0x00000120,0x00000000,0x00030047, + 0x00000125,0x00000000,0x00030047,0x00000129,0x00000000,0x00030047,0x0000012a,0x00000000, + 0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012d,0x00000000,0x00030047,0x0000012f, + 0x00000000,0x00030047,0x00000131,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047, + 0x00000136,0x0000000e,0x00040047,0x00000136,0x0000001e,0x00000001,0x00030047,0x00000137, + 0x00000000,0x00040047,0x0000013b,0x00000006,0x00000008,0x00040048,0x0000013c,0x00000000, + 0x00000018,0x00050048,0x0000013c,0x00000000,0x00000023,0x00000000,0x00030047,0x0000013c, + 0x00000003,0x00040047,0x0000013e,0x00000022,0x00000000,0x00040047,0x0000013e,0x00000021, + 0x00000004,0x00030047,0x0000014c,0x00000000,0x00040047,0x00000153,0x00000006,0x00000010, + 0x00040048,0x00000154,0x00000000,0x00000018,0x00050048,0x00000154,0x00000000,0x00000023, + 0x00000000,0x00030047,0x00000154,0x00000003,0x00040047,0x00000156,0x00000022,0x00000000, + 0x00040047,0x00000156,0x00000021,0x00000005,0x00040047,0x00000169,0x0000000b,0x0000000f, + 0x00030047,0x00000192,0x00000000,0x00040047,0x00000192,0x00000022,0x00000000,0x00040047, + 0x00000192,0x00000021,0x00000001,0x00030047,0x00000193,0x00000000,0x00030047,0x00000196, + 0x00000000,0x00040047,0x00000196,0x00000022,0x00000002,0x00040047,0x00000196,0x00000021, + 0x00000001,0x00030047,0x00000197,0x00000000,0x00030047,0x0000019d,0x00000000,0x00030047, + 0x000001a6,0x00000000,0x00040047,0x000001a6,0x00000022,0x00000001,0x00040047,0x000001a6, + 0x00000021,0x00000002,0x00030047,0x000001a7,0x00000000,0x00030047,0x000001a8,0x00000000, + 0x00040047,0x000001a8,0x00000022,0x00000002,0x00040047,0x000001a8,0x00000021,0x00000002, + 0x00030047,0x000001a9,0x00000000,0x00030047,0x000001ad,0x00000000,0x00030047,0x000001b0, + 0x00000000,0x00030047,0x000001b4,0x00000000,0x00030047,0x000001bb,0x0000000e,0x00040047, + 0x000001bb,0x0000001e,0x00000002,0x00040047,0x000001c3,0x0000001e,0x00000003,0x00040047, + 0x000001f1,0x00000001,0x00000007,0x00030047,0x000001f4,0x00000000,0x00030047,0x000001f5, + 0x00000000,0x00040047,0x000001f5,0x0000001e,0x00000000,0x00030047,0x000001f8,0x00000000, + 0x00030047,0x000001f9,0x00000000,0x00030047,0x000001fa,0x00000000,0x00030047,0x000001fb, + 0x00000000,0x00030047,0x000001fc,0x00000000,0x00030047,0x00000202,0x00000000,0x00030047, + 0x00000206,0x00000000,0x00030047,0x00000208,0x00000000,0x00030047,0x0000020a,0x00000000, + 0x00030047,0x0000020b,0x00000000,0x00030047,0x0000020c,0x00000000,0x00030047,0x0000020f, + 0x00000000,0x00030047,0x00000210,0x00000000,0x00030047,0x00000211,0x00000000,0x00030047, + 0x00000218,0x00000000,0x00030047,0x0000021a,0x00000000,0x00030047,0x0000021b,0x00000000, + 0x00030047,0x0000021e,0x00000000,0x00030047,0x0000021f,0x00000000,0x00030047,0x00000220, + 0x00000000,0x00030047,0x00000227,0x00000000,0x00040047,0x00000227,0x0000001e,0x00000000, + 0x00030047,0x00000228,0x00000000,0x00040047,0x00000229,0x00000001,0x00000000,0x00040047, + 0x0000022a,0x00000001,0x00000001,0x00040047,0x0000022b,0x00000001,0x00000002,0x00040047, + 0x0000022c,0x00000001,0x00000003,0x00040047,0x0000022d,0x00000001,0x00000004,0x00040047, + 0x0000022e,0x00000001,0x00000005,0x00040047,0x0000022f,0x00000001,0x00000006,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040015,0x0000000d,0x00000020,0x00000001,0x00040020, + 0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f,0x00000008,0x0000000e,0x00040017, + 0x00000013,0x00000008,0x00000004,0x00040020,0x00000014,0x00000007,0x00000013,0x00040017, + 0x00000015,0x00000008,0x00000002,0x00040018,0x00000016,0x00000015,0x00000002,0x00040021, + 0x00000017,0x00000016,0x00000014,0x00040020,0x0000001b,0x00000007,0x00000008,0x00050021, + 0x0000001c,0x00000002,0x0000001b,0x00000007,0x00060021,0x00000021,0x00000002,0x0000001b, + 0x0000001b,0x00000007,0x0004002b,0x00000008,0x0000003c,0x3f800000,0x0004002b,0x00000008, + 0x0000003d,0x00000000,0x0004002b,0x00000008,0x0000004a,0x437f0000,0x00040017,0x0000004e, + 0x0000000d,0x00000004,0x000e001e,0x0000004f,0x00000008,0x00000008,0x00000008,0x00000008, + 0x00000006,0x00000006,0x00000006,0x00000006,0x0000004e,0x00000006,0x00000006,0x00000008, + 0x00040020,0x00000050,0x00000002,0x0000004f,0x0004003b,0x00000050,0x00000051,0x00000002, + 0x0004002b,0x0000000d,0x00000052,0x00000009,0x00040020,0x00000053,0x00000002,0x00000006, + 0x0004002b,0x00000006,0x00000056,0x00004000,0x0003001d,0x0000005b,0x00000006,0x0003001e, + 0x0000005c,0x0000005b,0x00040020,0x0000005d,0x00000002,0x0000005c,0x0004003b,0x0000005d, + 0x0000005e,0x00000002,0x0004002b,0x0000000d,0x0000005f,0x00000000,0x0004002b,0x00000006, + 0x00000063,0x00000001,0x0004002b,0x00000006,0x00000064,0x00000000,0x00020014,0x00000069, + 0x0004002b,0x00000006,0x00000098,0x000000ff,0x0004002b,0x00000008,0x0000009c,0x3b808081, + 0x0004002b,0x00000006,0x000000ee,0x00007fff,0x00040020,0x00000135,0x00000001,0x00000006, + 0x0004003b,0x00000135,0x00000136,0x00000001,0x00040017,0x00000138,0x00000006,0x00000002, + 0x00040020,0x00000139,0x00000007,0x00000138,0x0003001d,0x0000013b,0x00000138,0x0003001e, + 0x0000013c,0x0000013b,0x00040020,0x0000013d,0x00000002,0x0000013c,0x0004003b,0x0000013d, + 0x0000013e,0x00000002,0x00040020,0x00000140,0x00000002,0x00000138,0x0004002b,0x00000006, + 0x00000146,0x0000000f,0x00040020,0x00000151,0x00000007,0x00000016,0x0003001d,0x00000153, + 0x00000013,0x0003001e,0x00000154,0x00000153,0x00040020,0x00000155,0x00000002,0x00000154, + 0x0004003b,0x00000155,0x00000156,0x00000002,0x0004002b,0x00000006,0x00000158,0x00000004, + 0x00040020,0x0000015b,0x00000002,0x00000013,0x00040020,0x00000165,0x00000007,0x00000015, + 0x00040020,0x00000168,0x00000001,0x00000013,0x0004003b,0x00000168,0x00000169,0x00000001, + 0x0004002b,0x00000006,0x00000176,0x00000002,0x0004002b,0x00000006,0x00000188,0x00000003, + 0x00090019,0x00000190,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, + 0x00000000,0x00040020,0x00000191,0x00000000,0x00000190,0x0004003b,0x00000191,0x00000192, + 0x00000000,0x0002001a,0x00000194,0x00040020,0x00000195,0x00000000,0x00000194,0x0004003b, + 0x00000195,0x00000196,0x00000000,0x0003001b,0x00000198,0x00000190,0x0004003b,0x00000191, + 0x000001a6,0x00000000,0x0004003b,0x00000195,0x000001a8,0x00000000,0x00040020,0x000001ba, + 0x00000001,0x00000138,0x0004003b,0x000001ba,0x000001bb,0x00000001,0x00040020,0x000001c2, + 0x00000001,0x00000015,0x0004003b,0x000001c2,0x000001c3,0x00000001,0x0004002b,0x0000000d, + 0x000001c9,0x00000005,0x0004002b,0x00000006,0x000001d1,0x00000400,0x0004002b,0x00000006, + 0x000001d8,0x0000001f,0x0004002b,0x0000000d,0x000001da,0x00000002,0x0004002b,0x00000006, + 0x000001dc,0x00000080,0x0004002b,0x00000006,0x000001e2,0x00000010,0x00030031,0x00000069, + 0x000001f1,0x0004003b,0x000001c2,0x000001f5,0x00000001,0x00040020,0x000001f6,0x00000001, + 0x00000008,0x00040020,0x00000226,0x00000003,0x00000013,0x0004003b,0x00000226,0x00000227, + 0x00000003,0x00030031,0x00000069,0x00000229,0x00030031,0x00000069,0x0000022a,0x00030031, + 0x00000069,0x0000022b,0x00030031,0x00000069,0x0000022c,0x00030031,0x00000069,0x0000022d, + 0x00030031,0x00000069,0x0000022e,0x00030031,0x00000069,0x0000022f,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000134, + 0x00000007,0x0004003b,0x00000139,0x0000013a,0x00000007,0x0004003b,0x00000007,0x00000143, + 0x00000007,0x0004003b,0x00000014,0x0000014c,0x00000007,0x0004003b,0x00000151,0x00000152, + 0x00000007,0x0004003b,0x00000014,0x0000015a,0x00000007,0x0004003b,0x00000014,0x0000015f, + 0x00000007,0x0004003b,0x00000165,0x00000166,0x00000007,0x0004003b,0x0000001b,0x00000174, + 0x00000007,0x0004003b,0x0000001b,0x00000178,0x00000007,0x0004003b,0x0000001b,0x00000183, + 0x00000007,0x0004003b,0x0000001b,0x0000018c,0x00000007,0x0004003b,0x0000001b,0x0000019f, + 0x00000007,0x0004003b,0x0000001b,0x000001a3,0x00000007,0x0004003b,0x00000007,0x000001b9, + 0x00000007,0x0004003b,0x00000007,0x000001be,0x00000007,0x0004003b,0x00000139,0x000001c1, + 0x00000007,0x0004003b,0x0000001b,0x000001f4,0x00000007,0x0004003b,0x0000001b,0x000001fb, + 0x00000007,0x0004003b,0x00000007,0x000001fd,0x00000007,0x0004003b,0x0000001b,0x00000206, + 0x00000007,0x0004003b,0x0000001b,0x0000020d,0x00000007,0x0004003b,0x0000001b,0x00000210, + 0x00000007,0x0004003b,0x00000007,0x00000212,0x00000007,0x0004003b,0x0000001b,0x00000218, + 0x00000007,0x0004003b,0x0000001b,0x0000021c,0x00000007,0x0004003b,0x0000001b,0x0000021f, + 0x00000007,0x0004003b,0x00000007,0x00000221,0x00000007,0x0004003d,0x00000006,0x00000137, + 0x00000136,0x0003003e,0x00000134,0x00000137,0x0004003d,0x00000006,0x0000013f,0x00000134, + 0x00060041,0x00000140,0x00000141,0x0000013e,0x0000005f,0x0000013f,0x0004003d,0x00000138, + 0x00000142,0x00000141,0x0003003e,0x0000013a,0x00000142,0x00050041,0x00000007,0x00000144, + 0x0000013a,0x00000064,0x0004003d,0x00000006,0x00000145,0x00000144,0x000500c7,0x00000006, + 0x00000147,0x00000145,0x00000146,0x0003003e,0x00000143,0x00000147,0x0004003d,0x00000006, + 0x00000148,0x00000143,0x000500b2,0x00000069,0x00000149,0x00000148,0x00000063,0x000300f7, + 0x0000014b,0x00000000,0x000400fa,0x00000149,0x0000014a,0x00000150,0x000200f8,0x0000014a, + 0x00050041,0x00000007,0x0000014d,0x0000013a,0x00000063,0x0004003d,0x00000006,0x0000014e, + 0x0000014d,0x0006000c,0x00000013,0x0000014f,0x00000001,0x00000040,0x0000014e,0x0003003e, + 0x0000014c,0x0000014f,0x000200f9,0x0000014b,0x000200f8,0x00000150,0x0004003d,0x00000006, + 0x00000157,0x00000134,0x00050084,0x00000006,0x00000159,0x00000157,0x00000158,0x00060041, + 0x0000015b,0x0000015c,0x00000156,0x0000005f,0x00000159,0x0004003d,0x00000013,0x0000015d, + 0x0000015c,0x0003003e,0x0000015a,0x0000015d,0x00050039,0x00000016,0x0000015e,0x00000019, + 0x0000015a,0x0003003e,0x00000152,0x0000015e,0x0004003d,0x00000006,0x00000160,0x00000134, + 0x00050084,0x00000006,0x00000161,0x00000160,0x00000158,0x00050080,0x00000006,0x00000162, + 0x00000161,0x00000063,0x00060041,0x0000015b,0x00000163,0x00000156,0x0000005f,0x00000162, + 0x0004003d,0x00000013,0x00000164,0x00000163,0x0003003e,0x0000015f,0x00000164,0x0004003d, + 0x00000016,0x00000167,0x00000152,0x0004003d,0x00000013,0x0000016a,0x00000169,0x0007004f, + 0x00000015,0x0000016b,0x0000016a,0x0000016a,0x00000000,0x00000001,0x00050091,0x00000015, + 0x0000016c,0x00000167,0x0000016b,0x0004003d,0x00000013,0x0000016d,0x0000015f,0x0007004f, + 0x00000015,0x0000016e,0x0000016d,0x0000016d,0x00000000,0x00000001,0x00050081,0x00000015, + 0x0000016f,0x0000016c,0x0000016e,0x0003003e,0x00000166,0x0000016f,0x0004003d,0x00000006, + 0x00000170,0x00000143,0x000500ab,0x00000069,0x00000171,0x00000170,0x00000158,0x000300f7, + 0x00000173,0x00000000,0x000400fa,0x00000171,0x00000172,0x0000019e,0x000200f8,0x00000172, + 0x0004003d,0x00000006,0x00000175,0x00000143,0x000500aa,0x00000069,0x00000177,0x00000175, + 0x00000176,0x000300f7,0x0000017a,0x00000000,0x000400fa,0x00000177,0x00000179,0x0000017d, + 0x000200f8,0x00000179,0x00050041,0x0000001b,0x0000017b,0x00000166,0x00000064,0x0004003d, + 0x00000008,0x0000017c,0x0000017b,0x0003003e,0x00000178,0x0000017c,0x000200f9,0x0000017a, + 0x000200f8,0x0000017d,0x0004003d,0x00000015,0x0000017e,0x00000166,0x0006000c,0x00000008, + 0x0000017f,0x00000001,0x00000042,0x0000017e,0x0003003e,0x00000178,0x0000017f,0x000200f9, + 0x0000017a,0x000200f8,0x0000017a,0x0004003d,0x00000008,0x00000180,0x00000178,0x0003003e, + 0x00000174,0x00000180,0x0004003d,0x00000008,0x00000181,0x00000174,0x0008000c,0x00000008, + 0x00000182,0x00000001,0x0000002b,0x00000181,0x0000003d,0x0000003c,0x0003003e,0x00000174, + 0x00000182,0x0004003d,0x00000008,0x00000184,0x00000174,0x00050041,0x0000001b,0x00000185, + 0x0000015f,0x00000176,0x0004003d,0x00000008,0x00000186,0x00000185,0x00050085,0x00000008, + 0x00000187,0x00000184,0x00000186,0x00050041,0x0000001b,0x00000189,0x0000015f,0x00000188, + 0x0004003d,0x00000008,0x0000018a,0x00000189,0x00050081,0x00000008,0x0000018b,0x00000187, + 0x0000018a,0x0003003e,0x00000183,0x0000018b,0x00050041,0x00000007,0x0000018d,0x0000013a, + 0x00000063,0x0004003d,0x00000006,0x0000018e,0x0000018d,0x0004007c,0x00000008,0x0000018f, + 0x0000018e,0x0003003e,0x0000018c,0x0000018f,0x0004003d,0x00000190,0x00000193,0x00000192, + 0x0004003d,0x00000194,0x00000197,0x00000196,0x00050056,0x00000198,0x00000199,0x00000193, + 0x00000197,0x0004003d,0x00000008,0x0000019a,0x00000183,0x0004003d,0x00000008,0x0000019b, + 0x0000018c,0x00050050,0x00000015,0x0000019c,0x0000019a,0x0000019b,0x00070058,0x00000013, + 0x0000019d,0x00000199,0x0000019c,0x00000002,0x0000003d,0x0003003e,0x0000014c,0x0000019d, + 0x000200f9,0x00000173,0x000200f8,0x0000019e,0x00050041,0x00000007,0x000001a0,0x0000013a, + 0x00000063,0x0004003d,0x00000006,0x000001a1,0x000001a0,0x0004007c,0x00000008,0x000001a2, + 0x000001a1,0x0003003e,0x0000019f,0x000001a2,0x00050041,0x0000001b,0x000001a4,0x0000015f, + 0x00000176,0x0004003d,0x00000008,0x000001a5,0x000001a4,0x0003003e,0x000001a3,0x000001a5, + 0x0004003d,0x00000190,0x000001a7,0x000001a6,0x0004003d,0x00000194,0x000001a9,0x000001a8, + 0x00050056,0x00000198,0x000001aa,0x000001a7,0x000001a9,0x0004003d,0x00000015,0x000001ab, + 0x00000166,0x0004003d,0x00000008,0x000001ac,0x000001a3,0x00070058,0x00000013,0x000001ad, + 0x000001aa,0x000001ab,0x00000002,0x000001ac,0x0003003e,0x0000014c,0x000001ad,0x0004003d, + 0x00000008,0x000001ae,0x0000019f,0x00050041,0x0000001b,0x000001af,0x0000014c,0x00000188, + 0x0004003d,0x00000008,0x000001b0,0x000001af,0x00050085,0x00000008,0x000001b1,0x000001b0, + 0x000001ae,0x00050041,0x0000001b,0x000001b2,0x0000014c,0x00000188,0x0003003e,0x000001b2, + 0x000001b1,0x000200f9,0x00000173,0x000200f8,0x00000173,0x000200f9,0x0000014b,0x000200f8, + 0x0000014b,0x00050041,0x0000001b,0x000001b3,0x0000014c,0x00000188,0x0004003d,0x00000008, + 0x000001b4,0x000001b3,0x000500b4,0x00000069,0x000001b5,0x000001b4,0x0000003d,0x000300f7, + 0x000001b7,0x00000000,0x000400fa,0x000001b5,0x000001b6,0x000001b7,0x000200f8,0x000001b6, + 0x000100fc,0x000200f8,0x000001b7,0x00050041,0x00000135,0x000001bc,0x000001bb,0x00000064, + 0x0004003d,0x00000006,0x000001bd,0x000001bc,0x0003003e,0x000001b9,0x000001bd,0x00050041, + 0x00000135,0x000001bf,0x000001bb,0x00000063,0x0004003d,0x00000006,0x000001c0,0x000001bf, + 0x0003003e,0x000001be,0x000001c0,0x0004003d,0x00000015,0x000001c4,0x000001c3,0x0006000c, + 0x00000015,0x000001c5,0x00000001,0x00000008,0x000001c4,0x0004006d,0x00000138,0x000001c6, + 0x000001c5,0x0003003e,0x000001c1,0x000001c6,0x00050041,0x00000007,0x000001c7,0x000001c1, + 0x00000063,0x0004003d,0x00000006,0x000001c8,0x000001c7,0x000500c2,0x00000006,0x000001ca, + 0x000001c8,0x000001c9,0x0004003d,0x00000006,0x000001cb,0x000001be,0x000500c4,0x00000006, + 0x000001cc,0x000001cb,0x000001c9,0x00050084,0x00000006,0x000001cd,0x000001ca,0x000001cc, + 0x00050041,0x00000007,0x000001ce,0x000001c1,0x00000064,0x0004003d,0x00000006,0x000001cf, + 0x000001ce,0x000500c2,0x00000006,0x000001d0,0x000001cf,0x000001c9,0x00050084,0x00000006, + 0x000001d2,0x000001d0,0x000001d1,0x00050080,0x00000006,0x000001d3,0x000001cd,0x000001d2, + 0x0004003d,0x00000006,0x000001d4,0x000001b9,0x00050080,0x00000006,0x000001d5,0x000001d4, + 0x000001d3,0x0003003e,0x000001b9,0x000001d5,0x00050041,0x00000007,0x000001d6,0x000001c1, + 0x00000064,0x0004003d,0x00000006,0x000001d7,0x000001d6,0x000500c7,0x00000006,0x000001d9, + 0x000001d7,0x000001d8,0x000500c2,0x00000006,0x000001db,0x000001d9,0x000001da,0x00050084, + 0x00000006,0x000001dd,0x000001db,0x000001dc,0x00050041,0x00000007,0x000001de,0x000001c1, + 0x00000063,0x0004003d,0x00000006,0x000001df,0x000001de,0x000500c7,0x00000006,0x000001e0, + 0x000001df,0x000001d8,0x000500c2,0x00000006,0x000001e1,0x000001e0,0x000001da,0x00050084, + 0x00000006,0x000001e3,0x000001e1,0x000001e2,0x00050080,0x00000006,0x000001e4,0x000001dd, + 0x000001e3,0x0004003d,0x00000006,0x000001e5,0x000001b9,0x00050080,0x00000006,0x000001e6, + 0x000001e5,0x000001e4,0x0003003e,0x000001b9,0x000001e6,0x00050041,0x00000007,0x000001e7, + 0x000001c1,0x00000063,0x0004003d,0x00000006,0x000001e8,0x000001e7,0x000500c7,0x00000006, + 0x000001e9,0x000001e8,0x00000188,0x00050084,0x00000006,0x000001ea,0x000001e9,0x00000158, + 0x00050041,0x00000007,0x000001eb,0x000001c1,0x00000064,0x0004003d,0x00000006,0x000001ec, + 0x000001eb,0x000500c7,0x00000006,0x000001ed,0x000001ec,0x00000188,0x00050080,0x00000006, + 0x000001ee,0x000001ea,0x000001ed,0x0004003d,0x00000006,0x000001ef,0x000001b9,0x00050080, + 0x00000006,0x000001f0,0x000001ef,0x000001ee,0x0003003e,0x000001b9,0x000001f0,0x000300f7, + 0x000001f3,0x00000000,0x000400fa,0x000001f1,0x000001f2,0x000001f3,0x000200f8,0x000001f2, + 0x00050041,0x000001f6,0x000001f7,0x000001f5,0x00000064,0x0004003d,0x00000008,0x000001f8, + 0x000001f7,0x0004007f,0x00000008,0x000001f9,0x000001f8,0x0007000c,0x00000008,0x000001fa, + 0x00000001,0x00000028,0x000001f9,0x0000003d,0x0003003e,0x000001f4,0x000001fa,0x0004003d, + 0x00000008,0x000001fc,0x000001f4,0x0003003e,0x000001fb,0x000001fc,0x0004003d,0x00000006, + 0x000001fe,0x000001b9,0x0003003e,0x000001fd,0x000001fe,0x00060039,0x00000002,0x000001ff, + 0x0000001f,0x000001fb,0x000001fd,0x000100fc,0x000200f8,0x000001f3,0x00050041,0x000001f6, + 0x00000201,0x000001f5,0x00000063,0x0004003d,0x00000008,0x00000202,0x00000201,0x000500be, + 0x00000069,0x00000203,0x00000202,0x0000003d,0x000300f7,0x00000205,0x00000000,0x000400fa, + 0x00000203,0x00000204,0x00000217,0x000200f8,0x00000204,0x00050041,0x000001f6,0x00000207, + 0x000001f5,0x00000064,0x0004003d,0x00000008,0x00000208,0x00000207,0x00050041,0x000001f6, + 0x00000209,0x000001f5,0x00000063,0x0004003d,0x00000008,0x0000020a,0x00000209,0x0007000c, + 0x00000008,0x0000020b,0x00000001,0x00000025,0x00000208,0x0000020a,0x0008000c,0x00000008, + 0x0000020c,0x00000001,0x0000002b,0x0000020b,0x0000003d,0x0000003c,0x0003003e,0x00000206, + 0x0000020c,0x00050041,0x0000001b,0x0000020e,0x0000014c,0x00000188,0x0004003d,0x00000008, + 0x0000020f,0x0000020e,0x0003003e,0x0000020d,0x0000020f,0x0004003d,0x00000008,0x00000211, + 0x00000206,0x0003003e,0x00000210,0x00000211,0x0004003d,0x00000006,0x00000213,0x000001b9, + 0x0003003e,0x00000212,0x00000213,0x00070039,0x00000002,0x00000214,0x00000025,0x0000020d, + 0x00000210,0x00000212,0x0004003d,0x00000008,0x00000215,0x0000020d,0x00050041,0x0000001b, + 0x00000216,0x0000014c,0x00000188,0x0003003e,0x00000216,0x00000215,0x000200f9,0x00000205, + 0x000200f8,0x00000217,0x00050041,0x000001f6,0x00000219,0x000001f5,0x00000064,0x0004003d, + 0x00000008,0x0000021a,0x00000219,0x0008000c,0x00000008,0x0000021b,0x00000001,0x0000002b, + 0x0000021a,0x0000003d,0x0000003c,0x0003003e,0x00000218,0x0000021b,0x00050041,0x0000001b, + 0x0000021d,0x0000014c,0x00000188,0x0004003d,0x00000008,0x0000021e,0x0000021d,0x0003003e, + 0x0000021c,0x0000021e,0x0004003d,0x00000008,0x00000220,0x00000218,0x0003003e,0x0000021f, + 0x00000220,0x0004003d,0x00000006,0x00000222,0x000001b9,0x0003003e,0x00000221,0x00000222, + 0x00070039,0x00000002,0x00000223,0x0000002a,0x0000021c,0x0000021f,0x00000221,0x0004003d, + 0x00000008,0x00000224,0x0000021c,0x00050041,0x0000001b,0x00000225,0x0000014c,0x00000188, + 0x0003003e,0x00000225,0x00000224,0x000200f9,0x00000205,0x000200f8,0x00000205,0x0004003d, + 0x00000013,0x00000228,0x0000014c,0x0003003e,0x00000227,0x00000228,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003b,0x0000001b,0x0000002e,0x00000007,0x0004003d,0x00000006, + 0x0000002c,0x0000000a,0x00040070,0x00000008,0x0000002d,0x0000002c,0x0003003e,0x0000002e, + 0x0000002d,0x0004003d,0x00000008,0x0000002f,0x0000002e,0x000200fe,0x0000002f,0x00010038, + 0x00050036,0x00000008,0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010, + 0x000200f8,0x00000012,0x0004003b,0x0000001b,0x00000034,0x00000007,0x0004003d,0x0000000d, + 0x00000032,0x00000010,0x0004006f,0x00000008,0x00000033,0x00000032,0x0003003e,0x00000034, + 0x00000033,0x0004003d,0x00000008,0x00000035,0x00000034,0x000200fe,0x00000035,0x00010038, + 0x00050036,0x00000016,0x00000019,0x00000000,0x00000017,0x00030037,0x00000014,0x00000018, + 0x000200f8,0x0000001a,0x0004003d,0x00000013,0x00000038,0x00000018,0x0007004f,0x00000015, + 0x00000039,0x00000038,0x00000038,0x00000000,0x00000001,0x0004003d,0x00000013,0x0000003a, + 0x00000018,0x0007004f,0x00000015,0x0000003b,0x0000003a,0x0000003a,0x00000002,0x00000003, + 0x00050051,0x00000008,0x0000003e,0x00000039,0x00000000,0x00050051,0x00000008,0x0000003f, + 0x00000039,0x00000001,0x00050051,0x00000008,0x00000040,0x0000003b,0x00000000,0x00050051, + 0x00000008,0x00000041,0x0000003b,0x00000001,0x00050050,0x00000015,0x00000042,0x0000003e, + 0x0000003f,0x00050050,0x00000015,0x00000043,0x00000040,0x00000041,0x00050050,0x00000016, + 0x00000044,0x00000042,0x00000043,0x000200fe,0x00000044,0x00010038,0x00050036,0x00000002, + 0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x00030037,0x00000007, + 0x0000001e,0x000200f8,0x00000020,0x0004003b,0x00000007,0x00000047,0x00000007,0x0004003b, + 0x00000007,0x0000004d,0x00000007,0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b, + 0x00000007,0x0000006d,0x00000007,0x0004003d,0x00000008,0x00000048,0x0000001d,0x0006000c, + 0x00000008,0x00000049,0x00000001,0x00000004,0x00000048,0x00050085,0x00000008,0x0000004b, + 0x00000049,0x0000004a,0x0004006d,0x00000006,0x0000004c,0x0000004b,0x0003003e,0x00000047, + 0x0000004c,0x00050041,0x00000053,0x00000054,0x00000051,0x00000052,0x0004003d,0x00000006, + 0x00000055,0x00000054,0x0004003d,0x00000006,0x00000057,0x00000047,0x00050082,0x00000006, + 0x00000058,0x00000056,0x00000057,0x000500c5,0x00000006,0x00000059,0x00000055,0x00000058, + 0x0003003e,0x0000004d,0x00000059,0x0004003d,0x00000006,0x00000060,0x0000001e,0x00060041, + 0x00000053,0x00000061,0x0000005e,0x0000005f,0x00000060,0x0004003d,0x00000006,0x00000062, + 0x0000004d,0x000700ef,0x00000006,0x00000065,0x00000061,0x00000063,0x00000064,0x00000062, + 0x0003003e,0x0000005a,0x00000065,0x0004003d,0x00000006,0x00000066,0x0000005a,0x00050041, + 0x00000053,0x00000067,0x00000051,0x00000052,0x0004003d,0x00000006,0x00000068,0x00000067, + 0x000500ae,0x00000069,0x0000006a,0x00000066,0x00000068,0x000300f7,0x0000006c,0x00000000, + 0x000400fa,0x0000006a,0x0000006b,0x0000006c,0x000200f8,0x0000006b,0x0004003d,0x00000006, + 0x0000006e,0x0000005a,0x0004003d,0x00000006,0x0000006f,0x0000005a,0x0004003d,0x00000006, + 0x00000070,0x0000004d,0x0007000c,0x00000006,0x00000071,0x00000001,0x00000029,0x0000006f, + 0x00000070,0x00050082,0x00000006,0x00000072,0x0000006e,0x00000071,0x0003003e,0x0000006d, + 0x00000072,0x0004003d,0x00000006,0x00000073,0x0000001e,0x00060041,0x00000053,0x00000074, + 0x0000005e,0x0000005f,0x00000073,0x0004003d,0x00000006,0x00000075,0x0000006d,0x0004003d, + 0x00000006,0x00000076,0x00000047,0x00050082,0x00000006,0x00000077,0x00000075,0x00000076, + 0x000700ea,0x00000006,0x00000078,0x00000074,0x00000063,0x00000064,0x00000077,0x000200f9, + 0x0000006c,0x000200f8,0x0000006c,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000025, + 0x00000000,0x00000021,0x00030037,0x0000001b,0x00000022,0x00030037,0x0000001b,0x00000023, + 0x00030037,0x00000007,0x00000024,0x000200f8,0x00000026,0x0004003b,0x00000007,0x00000080, + 0x00000007,0x0004003b,0x00000007,0x00000085,0x00000007,0x0004003b,0x0000001b,0x00000093, + 0x00000007,0x0004003b,0x0000001b,0x00000096,0x00000007,0x0004003b,0x00000007,0x0000009a, + 0x00000007,0x0004003b,0x0000001b,0x0000009e,0x00000007,0x0004003d,0x00000008,0x00000079, + 0x00000022,0x0004003d,0x00000008,0x0000007a,0x00000023,0x0007000c,0x00000008,0x0000007b, + 0x00000001,0x00000025,0x00000079,0x0000007a,0x000500be,0x00000069,0x0000007c,0x0000007b, + 0x0000003c,0x000300f7,0x0000007e,0x00000000,0x000400fa,0x0000007c,0x0000007d,0x0000007e, + 0x000200f8,0x0000007d,0x000100fd,0x000200f8,0x0000007e,0x0004003d,0x00000008,0x00000081, + 0x00000023,0x0006000c,0x00000008,0x00000082,0x00000001,0x00000004,0x00000081,0x00050085, + 0x00000008,0x00000083,0x00000082,0x0000004a,0x0004006d,0x00000006,0x00000084,0x00000083, + 0x0003003e,0x00000080,0x00000084,0x0004003d,0x00000006,0x00000086,0x00000024,0x00060041, + 0x00000053,0x00000087,0x0000005e,0x0000005f,0x00000086,0x00050041,0x00000053,0x00000088, + 0x00000051,0x00000052,0x0004003d,0x00000006,0x00000089,0x00000088,0x0004003d,0x00000006, + 0x0000008a,0x00000080,0x000500c5,0x00000006,0x0000008b,0x00000089,0x0000008a,0x000700ef, + 0x00000006,0x0000008c,0x00000087,0x00000063,0x00000064,0x0000008b,0x0003003e,0x00000085, + 0x0000008c,0x0004003d,0x00000006,0x0000008d,0x00000085,0x00050041,0x00000053,0x0000008e, + 0x00000051,0x00000052,0x0004003d,0x00000006,0x0000008f,0x0000008e,0x000500b0,0x00000069, + 0x00000090,0x0000008d,0x0000008f,0x000300f7,0x00000092,0x00000000,0x000400fa,0x00000090, + 0x00000091,0x00000095,0x000200f8,0x00000091,0x0004003d,0x00000008,0x00000094,0x00000023, + 0x0003003e,0x00000093,0x00000094,0x000200f9,0x00000092,0x000200f8,0x00000095,0x0004003d, + 0x00000006,0x00000097,0x00000085,0x000500c7,0x00000006,0x00000099,0x00000097,0x00000098, + 0x0003003e,0x0000009a,0x00000099,0x00050039,0x00000008,0x0000009b,0x0000000b,0x0000009a, + 0x00050085,0x00000008,0x0000009d,0x0000009b,0x0000009c,0x0003003e,0x00000096,0x0000009d, + 0x0004003d,0x00000008,0x0000009f,0x00000096,0x0004003d,0x00000008,0x000000a0,0x00000023, + 0x0007000c,0x00000008,0x000000a1,0x00000001,0x00000028,0x0000009f,0x000000a0,0x0003003e, + 0x0000009e,0x000000a1,0x0004003d,0x00000008,0x000000a2,0x0000009e,0x0004003d,0x00000008, + 0x000000a3,0x00000096,0x00050083,0x00000008,0x000000a4,0x000000a2,0x000000a3,0x0004003d, + 0x00000008,0x000000a5,0x00000096,0x0004003d,0x00000008,0x000000a6,0x00000022,0x00050085, + 0x00000008,0x000000a7,0x000000a5,0x000000a6,0x00050083,0x00000008,0x000000a8,0x0000003c, + 0x000000a7,0x00050088,0x00000008,0x000000a9,0x000000a4,0x000000a8,0x0003003e,0x00000093, + 0x000000a9,0x000200f9,0x00000092,0x000200f8,0x00000092,0x0004003d,0x00000008,0x000000aa, + 0x00000093,0x0004003d,0x00000008,0x000000ab,0x00000022,0x00050085,0x00000008,0x000000ac, + 0x000000ab,0x000000aa,0x0003003e,0x00000022,0x000000ac,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x0000002a,0x00000000,0x00000021,0x00030037,0x0000001b,0x00000027,0x00030037, + 0x0000001b,0x00000028,0x00030037,0x00000007,0x00000029,0x000200f8,0x0000002b,0x0004003b, + 0x00000007,0x000000ad,0x00000007,0x0004003b,0x0000001b,0x000000c8,0x00000007,0x0004003b, + 0x00000007,0x000000c9,0x00000007,0x0004003b,0x00000007,0x000000d4,0x00000007,0x0004003b, + 0x00000007,0x000000da,0x00000007,0x0004003b,0x00000007,0x000000ec,0x00000007,0x0004003b, + 0x0000001b,0x000000f1,0x00000007,0x0004003b,0x00000007,0x000000f2,0x00000007,0x0004003b, + 0x0000001b,0x000000f6,0x00000007,0x0004003b,0x00000007,0x00000106,0x00000007,0x0004003b, + 0x0000001b,0x0000010b,0x00000007,0x0004003b,0x0000000e,0x00000110,0x00000007,0x0004003b, + 0x0000001b,0x00000113,0x00000007,0x0004003b,0x0000001b,0x0000011b,0x00000007,0x0004003d, + 0x00000006,0x000000ae,0x00000029,0x00060041,0x00000053,0x000000af,0x0000005e,0x0000005f, + 0x000000ae,0x0004003d,0x00000006,0x000000b0,0x000000af,0x0003003e,0x000000ad,0x000000b0, + 0x0004003d,0x00000008,0x000000b1,0x00000027,0x0004003d,0x00000008,0x000000b2,0x00000028, + 0x0007000c,0x00000008,0x000000b3,0x00000001,0x00000025,0x000000b1,0x000000b2,0x000500be, + 0x00000069,0x000000b4,0x000000b3,0x0000003c,0x000300f7,0x000000b6,0x00000000,0x000400fa, + 0x000000b4,0x000000b5,0x000000b6,0x000200f8,0x000000b5,0x0004003d,0x00000006,0x000000b7, + 0x000000ad,0x00050041,0x00000053,0x000000b8,0x00000051,0x00000052,0x0004003d,0x00000006, + 0x000000b9,0x000000b8,0x000500b0,0x00000069,0x000000ba,0x000000b7,0x000000b9,0x000400a8, + 0x00000069,0x000000bb,0x000000ba,0x000300f7,0x000000bd,0x00000000,0x000400fa,0x000000bb, + 0x000000bc,0x000000bd,0x000200f8,0x000000bc,0x0004003d,0x00000006,0x000000be,0x000000ad, + 0x00050041,0x00000053,0x000000bf,0x00000051,0x00000052,0x0004003d,0x00000006,0x000000c0, + 0x000000bf,0x000500c5,0x00000006,0x000000c1,0x000000c0,0x00000056,0x000500ae,0x00000069, + 0x000000c2,0x000000be,0x000000c1,0x000200f9,0x000000bd,0x000200f8,0x000000bd,0x000700f5, + 0x00000069,0x000000c3,0x000000ba,0x000000b5,0x000000c2,0x000000bc,0x000200f9,0x000000b6, + 0x000200f8,0x000000b6,0x000700f5,0x00000069,0x000000c4,0x000000b4,0x0000002b,0x000000c3, + 0x000000bd,0x000300f7,0x000000c6,0x00000000,0x000400fa,0x000000c4,0x000000c5,0x000000c6, + 0x000200f8,0x000000c5,0x000100fd,0x000200f8,0x000000c6,0x0003003e,0x000000c8,0x0000003d, + 0x0004003d,0x00000008,0x000000ca,0x00000028,0x0006000c,0x00000008,0x000000cb,0x00000001, + 0x00000004,0x000000ca,0x00050085,0x00000008,0x000000cc,0x000000cb,0x0000004a,0x0004006d, + 0x00000006,0x000000cd,0x000000cc,0x0003003e,0x000000c9,0x000000cd,0x0004003d,0x00000006, + 0x000000ce,0x000000ad,0x00050041,0x00000053,0x000000cf,0x00000051,0x00000052,0x0004003d, + 0x00000006,0x000000d0,0x000000cf,0x000500b0,0x00000069,0x000000d1,0x000000ce,0x000000d0, + 0x000300f7,0x000000d3,0x00000000,0x000400fa,0x000000d1,0x000000d2,0x000000d3,0x000200f8, + 0x000000d2,0x00050041,0x00000053,0x000000d5,0x00000051,0x00000052,0x0004003d,0x00000006, + 0x000000d6,0x000000d5,0x0004003d,0x00000006,0x000000d7,0x000000c9,0x00050080,0x00000006, + 0x000000d8,0x00000056,0x000000d7,0x000500c5,0x00000006,0x000000d9,0x000000d6,0x000000d8, + 0x0003003e,0x000000d4,0x000000d9,0x0004003d,0x00000006,0x000000db,0x00000029,0x00060041, + 0x00000053,0x000000dc,0x0000005e,0x0000005f,0x000000db,0x0004003d,0x00000006,0x000000dd, + 0x000000d4,0x000700ef,0x00000006,0x000000de,0x000000dc,0x00000063,0x00000064,0x000000dd, + 0x0003003e,0x000000da,0x000000de,0x0004003d,0x00000006,0x000000df,0x000000da,0x00050041, + 0x00000053,0x000000e0,0x00000051,0x00000052,0x0004003d,0x00000006,0x000000e1,0x000000e0, + 0x000500b2,0x00000069,0x000000e2,0x000000df,0x000000e1,0x000300f7,0x000000e4,0x00000000, + 0x000400fa,0x000000e2,0x000000e3,0x000000e6,0x000200f8,0x000000e3,0x0004003d,0x00000008, + 0x000000e5,0x00000028,0x0003003e,0x000000c8,0x000000e5,0x0003003e,0x00000028,0x0000003d, + 0x000200f9,0x000000e4,0x000200f8,0x000000e6,0x0004003d,0x00000006,0x000000e7,0x000000da, + 0x0004003d,0x00000006,0x000000e8,0x000000d4,0x000500b0,0x00000069,0x000000e9,0x000000e7, + 0x000000e8,0x000300f7,0x000000eb,0x00000000,0x000400fa,0x000000e9,0x000000ea,0x000000eb, + 0x000200f8,0x000000ea,0x0004003d,0x00000006,0x000000ed,0x000000da,0x000500c7,0x00000006, + 0x000000ef,0x000000ed,0x000000ee,0x00050082,0x00000006,0x000000f0,0x000000ef,0x00000056, + 0x0003003e,0x000000ec,0x000000f0,0x0004003d,0x00000006,0x000000f3,0x000000ec,0x0003003e, + 0x000000f2,0x000000f3,0x00050039,0x00000008,0x000000f4,0x0000000b,0x000000f2,0x00050085, + 0x00000008,0x000000f5,0x000000f4,0x0000009c,0x0003003e,0x000000f1,0x000000f5,0x0004003d, + 0x00000008,0x000000f7,0x00000028,0x0003003e,0x000000f6,0x000000f7,0x0004003d,0x00000008, + 0x000000f8,0x000000f6,0x0004003d,0x00000008,0x000000f9,0x000000f1,0x00050083,0x00000008, + 0x000000fa,0x000000f8,0x000000f9,0x0004003d,0x00000008,0x000000fb,0x000000f1,0x0004003d, + 0x00000008,0x000000fc,0x00000027,0x00050085,0x00000008,0x000000fd,0x000000fb,0x000000fc, + 0x00050083,0x00000008,0x000000fe,0x0000003c,0x000000fd,0x00050088,0x00000008,0x000000ff, + 0x000000fa,0x000000fe,0x0003003e,0x000000c8,0x000000ff,0x0004003d,0x00000006,0x00000100, + 0x000000ec,0x0003003e,0x000000c9,0x00000100,0x0004003d,0x00000008,0x00000101,0x000000f1, + 0x0003003e,0x00000028,0x00000101,0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x000200f9, + 0x000000e4,0x000200f8,0x000000e4,0x000200f9,0x000000d3,0x000200f8,0x000000d3,0x0004003d, + 0x00000008,0x00000102,0x00000028,0x000500ba,0x00000069,0x00000103,0x00000102,0x0000003d, + 0x000300f7,0x00000105,0x00000000,0x000400fa,0x00000103,0x00000104,0x00000105,0x000200f8, + 0x00000104,0x0004003d,0x00000006,0x00000107,0x00000029,0x00060041,0x00000053,0x00000108, + 0x0000005e,0x0000005f,0x00000107,0x0004003d,0x00000006,0x00000109,0x000000c9,0x000700ea, + 0x00000006,0x0000010a,0x00000108,0x00000063,0x00000064,0x00000109,0x0003003e,0x00000106, + 0x0000010a,0x0004003d,0x00000006,0x0000010c,0x00000106,0x000500c7,0x00000006,0x0000010d, + 0x0000010c,0x000000ee,0x00050082,0x00000006,0x0000010e,0x0000010d,0x00000056,0x0004007c, + 0x0000000d,0x0000010f,0x0000010e,0x0003003e,0x00000110,0x0000010f,0x00050039,0x00000008, + 0x00000111,0x00000011,0x00000110,0x00050085,0x00000008,0x00000112,0x00000111,0x0000009c, + 0x0003003e,0x0000010b,0x00000112,0x0004003d,0x00000008,0x00000114,0x0000010b,0x0004003d, + 0x00000008,0x00000115,0x00000028,0x00050081,0x00000008,0x00000116,0x00000114,0x00000115, + 0x0003003e,0x00000113,0x00000116,0x0004003d,0x00000008,0x00000117,0x0000010b,0x0008000c, + 0x00000008,0x00000118,0x00000001,0x0000002b,0x00000117,0x0000003d,0x0000003c,0x0003003e, + 0x0000010b,0x00000118,0x0004003d,0x00000008,0x00000119,0x00000113,0x0008000c,0x00000008, + 0x0000011a,0x00000001,0x0000002b,0x00000119,0x0000003d,0x0000003c,0x0003003e,0x00000113, + 0x0000011a,0x0004003d,0x00000008,0x0000011c,0x0000010b,0x0004003d,0x00000008,0x0000011d, + 0x00000027,0x00050085,0x00000008,0x0000011e,0x0000011c,0x0000011d,0x00050083,0x00000008, + 0x0000011f,0x0000003c,0x0000011e,0x0003003e,0x0000011b,0x0000011f,0x0004003d,0x00000008, + 0x00000120,0x0000011b,0x000500bc,0x00000069,0x00000121,0x00000120,0x0000003d,0x000300f7, + 0x00000123,0x00000000,0x000400fa,0x00000121,0x00000122,0x00000123,0x000200f8,0x00000122, + 0x000100fc,0x000200f8,0x00000123,0x0004003d,0x00000008,0x00000125,0x000000c8,0x0004003d, + 0x00000008,0x00000126,0x00000027,0x00050085,0x00000008,0x00000127,0x00000125,0x00000126, + 0x00050083,0x00000008,0x00000128,0x0000003c,0x00000127,0x0004003d,0x00000008,0x00000129, + 0x00000113,0x0004003d,0x00000008,0x0000012a,0x0000010b,0x00050083,0x00000008,0x0000012b, + 0x00000129,0x0000012a,0x00050085,0x00000008,0x0000012c,0x00000128,0x0000012b,0x0004003d, + 0x00000008,0x0000012d,0x0000011b,0x00050088,0x00000008,0x0000012e,0x0000012c,0x0000012d, + 0x0004003d,0x00000008,0x0000012f,0x000000c8,0x00050081,0x00000008,0x00000130,0x0000012f, + 0x0000012e,0x0003003e,0x000000c8,0x00000130,0x000200f9,0x00000105,0x000200f8,0x00000105, + 0x0004003d,0x00000008,0x00000131,0x000000c8,0x0004003d,0x00000008,0x00000132,0x00000027, + 0x00050085,0x00000008,0x00000133,0x00000132,0x00000131,0x0003003e,0x00000027,0x00000133, + 0x000100fd,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.vert.h b/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.vert.h new file mode 100644 index 00000000..a108f147 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_clockwise_path.vert.h @@ -0,0 +1,650 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_clockwise_path_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x0000030b,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000e000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x000002a5,0x000002a8,0x000002ab, + 0x000002ac,0x000002b0,0x000002c7,0x000002ca,0x000002cd,0x000002f7,0x00030003,0x00000002, + 0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65, + 0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47, + 0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576, + 0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669, + 0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a,0x74736163,0x6f6c665f, + 0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009,0x00000078,0x00090005, + 0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61,0x32667628,0x0000003b, + 0x00030005,0x0000000f,0x00007978,0x00060005,0x00000013,0x656b616d,0x6c61685f,0x31662866, + 0x0000003b,0x00030005,0x00000012,0x00000078,0x00070005,0x00000018,0x656b616d,0x6c61685f, + 0x66283266,0x31663b31,0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017, + 0x00000079,0x00070005,0x0000001f,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34, + 0x00030005,0x0000001e,0x00000078,0x00080005,0x00000025,0x746e6f63,0x5f72756f,0x61746164, + 0x7864695f,0x3b317528,0x00000000,0x00070005,0x00000024,0x746e6f63,0x4972756f,0x74695744, + 0x616c4668,0x00007367,0x00080005,0x0000002c,0x73736574,0x7865745f,0x635f6c65,0x64726f6f, + 0x3b316928,0x00000000,0x00050005,0x0000002b,0x65786574,0x646e496c,0x00007865,0x000a0005, + 0x00000032,0x686e616d,0x61747461,0x69705f6e,0x5f6c6578,0x74646977,0x666d2868,0x763b3232, + 0x003b3266,0x00030005,0x00000030,0x0000004d,0x00050005,0x00000031,0x6d726f6e,0x7a696c61, + 0x00006465,0x00100005,0x0000003c,0x61706e75,0x745f6b63,0x65737365,0x74616c6c,0x705f6465, + 0x5f687461,0x74726576,0x76287865,0x763b3466,0x693b3466,0x31753b31,0x3266763b,0x3266763b, + 0x0000003b,0x00060005,0x00000036,0x63746170,0x72655668,0x44786574,0x00617461,0x00070005, + 0x00000037,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174,0x00050005,0x00000038, + 0x736e695f,0x636e6174,0x00444965,0x00050005,0x00000039,0x5074756f,0x49687461,0x00000044, + 0x00070005,0x0000003a,0x5674756f,0x65747265,0x736f5078,0x6f697469,0x0000006e,0x00060005, + 0x0000003b,0x4574756f,0x44656764,0x61747369,0x0065636e,0x00030005,0x0000004b,0x00746572, + 0x00030005,0x00000073,0x00000076,0x00060005,0x00000085,0x61636f6c,0x7265566c,0x49786574, + 0x00000044,0x00040005,0x00000089,0x7374756f,0x00007465,0x00060005,0x0000008c,0x6c6c6966, + 0x65766f43,0x65676172,0x00000000,0x00070005,0x00000090,0x63746170,0x67655368,0x746e656d, + 0x6e617053,0x00000000,0x00050005,0x00000097,0x74726576,0x79547865,0x00006570,0x00070005, + 0x0000009d,0x74726576,0x44497865,0x6f436e4f,0x756f746e,0x00000072,0x00060005,0x000000a3, + 0x73736574,0x74726556,0x64497865,0x00000078,0x00060005,0x000000ab,0x73736574,0x74726556, + 0x61447865,0x00006174,0x00090005,0x000000ae,0x5058455f,0x4554524f,0x65745f44,0x65567373, + 0x78657472,0x74786554,0x00657275,0x00040005,0x000000b0,0x61726170,0x0000006d,0x00070005, + 0x000000b5,0x746e6f63,0x4972756f,0x74695744,0x616c4668,0x00007367,0x00050005,0x000000b8, + 0x746e6f63,0x4472756f,0x00617461,0x00060005,0x000000ba,0x746e6f43,0x4272756f,0x65666675, + 0x00000072,0x00050006,0x000000ba,0x00000000,0x6c61765f,0x00736575,0x00080005,0x000000bc, + 0x5058455f,0x4554524f,0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00040005,0x000000bd, + 0x61726170,0x0000006d,0x00050005,0x000000c3,0x7064696d,0x746e696f,0x00000000,0x00060005, + 0x000000cb,0x74726576,0x6e497865,0x30786564,0x00000000,0x00030005,0x000000ce,0x0000004d, + 0x00050005,0x000000d0,0x68746150,0x66667542,0x00007265,0x00050006,0x000000d0,0x00000000, + 0x6c61765f,0x00736575,0x00080005,0x000000d2,0x5058455f,0x4554524f,0x61705f44,0x75426874, + 0x72656666,0x00000000,0x00040005,0x000000d9,0x61726170,0x0000006d,0x00050005,0x000000db, + 0x68746170,0x61746144,0x00000000,0x00050005,0x000000e1,0x6e617274,0x74616c73,0x00000065, + 0x00060005,0x000000e5,0x6f727473,0x6152656b,0x73756964,0x00000000,0x00070005,0x000000e9, + 0x7272696d,0x6465726f,0x746e6f43,0x4672756f,0x0067616c,0x00090005,0x00000102,0x6c706572, + 0x6d656361,0x54746e65,0x56737365,0x65747265,0x74614478,0x00000061,0x00040005,0x00000104, + 0x61726170,0x0000006d,0x00050005,0x00000112,0x6c437369,0x6465736f,0x00000000,0x00040005, + 0x00000122,0x61726170,0x0000006d,0x00040005,0x0000012d,0x74656874,0x00000061,0x00040005, + 0x00000131,0x6d726f6e,0x00000000,0x00040005,0x00000138,0x6769726f,0x00006e69,0x00050005, + 0x00000155,0x61526161,0x73756964,0x00000000,0x00040005,0x00000156,0x61726170,0x0000006d, + 0x00040005,0x00000158,0x61726170,0x0000006d,0x00060005,0x0000015d,0x626f6c67,0x6f436c61, + 0x61726576,0x00006567,0x00040005,0x00000163,0x61726170,0x0000006d,0x00040005,0x00000166, + 0x61726170,0x0000006d,0x00060005,0x0000016b,0x74726576,0x664f7865,0x74657366,0x00000000, + 0x00030005,0x00000171,0x00000078,0x00040005,0x00000185,0x61726170,0x0000006d,0x00050005, + 0x00000187,0x6e696f6a,0x65707954,0x00000000,0x00040005,0x0000018f,0x6b656570,0x00726944, + 0x00070005,0x000001a0,0x6568746f,0x696f4a72,0x7865546e,0x6f436c65,0x0064726f,0x00040005, + 0x000001a4,0x61726170,0x0000006d,0x00060005,0x000001a6,0x6568746f,0x696f4a72,0x7461446e, + 0x00000061,0x00060005,0x000001aa,0x6568746f,0x696f4a72,0x6568546e,0x00006174,0x00050005, + 0x000001ae,0x6e696f6a,0x6c676e41,0x00000065,0x00040005,0x000001bb,0x61547369,0x0000306e, + 0x00050005,0x000001bf,0x654c7369,0x6f4a7466,0x00006e69,0x00050005,0x000001c3,0x65736962, + 0x68547463,0x00617465,0x00050005,0x000001cd,0x65736962,0x726f7463,0x00000000,0x00070005, + 0x000001d4,0x65736962,0x69507463,0x576c6578,0x68746469,0x00000000,0x00040005,0x000001d5, + 0x61726170,0x0000006d,0x00040005,0x000001d7,0x61726170,0x0000006d,0x00050005,0x000001da, + 0x6574696d,0x74615272,0x00006f69,0x00070005,0x000001ed,0x6574696d,0x766e4972,0x65737265, + 0x696d694c,0x00000074,0x00050005,0x000001f3,0x70696c63,0x69646152,0x00007375,0x00060005, + 0x00000201,0x70696c63,0x61524141,0x73756964,0x00000000,0x00060005,0x0000020c,0x6f727473, + 0x4141656b,0x64696152,0x00007375,0x00040005,0x00000210,0x706f6c73,0x00000000,0x00060005, + 0x0000021d,0x6574696d,0x52414172,0x75696461,0x00000073,0x00060005,0x00000226,0x65736962, + 0x41417463,0x7366664f,0x00007465,0x00030005,0x0000022a,0x0000006b,0x00030005,0x0000023e, + 0x00007470,0x00060005,0x00000243,0x70696c63,0x74736944,0x65636e61,0x00000000,0x00040005, + 0x00000251,0x61726170,0x0000006d,0x00040005,0x00000256,0x61726170,0x0000006d,0x00040005, + 0x00000260,0x61726170,0x0000006d,0x00090005,0x00000264,0x74736f70,0x6e617254,0x726f6673, + 0x7265566d,0x4f786574,0x65736666,0x00000074,0x00040005,0x0000028b,0x61726170,0x0000006d, + 0x00040005,0x0000028d,0x61726170,0x0000006d,0x00050005,0x000002a3,0x7265765f,0x49786574, + 0x00000044,0x00060005,0x000002a5,0x565f6c67,0x65747265,0x646e4978,0x00007865,0x00050005, + 0x000002a7,0x736e695f,0x636e6174,0x00444965,0x00070005,0x000002a8,0x495f6c67,0x6174736e, + 0x4965636e,0x7865646e,0x00000000,0x00090005,0x000002ab,0x5058455f,0x4554524f,0x5f615f44, + 0x63746170,0x72655668,0x44786574,0x00617461,0x000a0005,0x000002ac,0x5058455f,0x4554524f, + 0x5f615f44,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174,0x00040005,0x000002ad, + 0x68746170,0x00004449,0x00060005,0x000002ae,0x74726576,0x6f507865,0x69746973,0x00006e6f, + 0x00060005,0x000002b0,0x64655f76,0x69446567,0x6e617473,0x00006563,0x00040005,0x000002b1, + 0x61726170,0x0000006d,0x00040005,0x000002b3,0x61726170,0x0000006d,0x00040005,0x000002b5, + 0x61726170,0x0000006d,0x00040005,0x000002b7,0x61726170,0x0000006d,0x00040005,0x000002b8, + 0x61726170,0x0000006d,0x00040005,0x000002b9,0x61726170,0x0000006d,0x00060005,0x000002c0, + 0x65766f63,0x65676172,0x61746144,0x00000000,0x00050005,0x000002c7,0x61705f76,0x44496874, + 0x00000000,0x00070005,0x000002ca,0x6f635f76,0x61726576,0x6c506567,0x6d656361,0x00746e65, + 0x00060005,0x000002cd,0x6f635f76,0x61726576,0x6f436567,0x0064726f,0x00030005,0x000002d3, + 0x00736f70,0x00080005,0x000002d7,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e, + 0x00736d72,0x00090006,0x000002d7,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00090006,0x000002d7,0x00000001,0x73736574,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x000b0006,0x000002d7,0x00000002,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x000002d7, + 0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00080006,0x000002d7,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957, + 0x00000068,0x00080006,0x000002d7,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548, + 0x00007468,0x00070006,0x000002d7,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c, + 0x00080006,0x000002d7,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575, + 0x000a0006,0x000002d7,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574, + 0x73646e75,0x00000000,0x00090006,0x000002d7,0x00000009,0x65766f63,0x65676172,0x66667542, + 0x72507265,0x78696665,0x00000000,0x00080006,0x000002d7,0x0000000a,0x68746170,0x72474449, + 0x6c756e61,0x74697261,0x00000079,0x00080006,0x000002d7,0x0000000b,0x74726576,0x69447865, + 0x72616373,0x6c615664,0x00006575,0x00050005,0x000002d9,0x66696e75,0x736d726f,0x00000000, + 0x00060005,0x000002f5,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x000002f5, + 0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x000002f5,0x00000001,0x505f6c67, + 0x746e696f,0x657a6953,0x00000000,0x00070006,0x000002f5,0x00000002,0x435f6c67,0x4470696c, + 0x61747369,0x0065636e,0x00070006,0x000002f5,0x00000003,0x435f6c67,0x446c6c75,0x61747369, + 0x0065636e,0x00030005,0x000002f7,0x00000000,0x00060005,0x000002fb,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00060005,0x000002fc,0x616e456b,0x43656c62,0x5270696c,0x00746365, + 0x00080005,0x000002fd,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000, + 0x00060005,0x000002fe,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x000002ff, + 0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000300, + 0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000301, + 0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000302,0x726f426b,0x65776f72, + 0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00050005,0x00000304,0x6e696150, + 0x66754274,0x00726566,0x00050006,0x00000304,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x00000306,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00060005, + 0x00000308,0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000308,0x00000000, + 0x6c61765f,0x00736575,0x00090005,0x0000030a,0x5058455f,0x4554524f,0x61705f44,0x41746e69, + 0x75427875,0x72656666,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010, + 0x00000000,0x00030047,0x00000013,0x00000000,0x00030047,0x00000012,0x00000000,0x00030047, + 0x00000018,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000017,0x00000000, + 0x00030047,0x0000003b,0x00000000,0x00030047,0x0000003f,0x00000000,0x00030047,0x00000040, + 0x00000000,0x00030047,0x00000044,0x00000000,0x00030047,0x00000045,0x00000000,0x00030047, + 0x00000048,0x00000000,0x00030047,0x0000004b,0x00000000,0x00030047,0x0000004c,0x00000000, + 0x00030047,0x0000004f,0x00000000,0x00030047,0x00000052,0x00000000,0x00040047,0x000000ae, + 0x00000022,0x00000000,0x00040047,0x000000ae,0x00000021,0x00000000,0x00040047,0x000000b9, + 0x00000006,0x00000010,0x00040048,0x000000ba,0x00000000,0x00000018,0x00050048,0x000000ba, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000000ba,0x00000003,0x00040047,0x000000bc, + 0x00000022,0x00000000,0x00040047,0x000000bc,0x00000021,0x00000006,0x00040047,0x000000cf, + 0x00000006,0x00000010,0x00040048,0x000000d0,0x00000000,0x00000018,0x00050048,0x000000d0, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000000d0,0x00000003,0x00040047,0x000000d2, + 0x00000022,0x00000000,0x00040047,0x000000d2,0x00000021,0x00000003,0x00030047,0x0000015d, + 0x00000000,0x00030047,0x00000165,0x00000000,0x00030047,0x00000168,0x00000000,0x00030047, + 0x00000169,0x00000000,0x00030047,0x00000186,0x00000000,0x00030047,0x00000253,0x00000000, + 0x00030047,0x00000258,0x00000000,0x00030047,0x0000025a,0x00000000,0x00030047,0x0000025b, + 0x00000000,0x00030047,0x0000025c,0x00000000,0x00030047,0x0000025e,0x00000000,0x00030047, + 0x00000260,0x00000000,0x00030047,0x00000261,0x00000000,0x00030047,0x00000262,0x00000000, + 0x00030047,0x0000028b,0x00000000,0x00030047,0x0000028d,0x00000000,0x00030047,0x0000028e, + 0x00000000,0x00040047,0x000002a5,0x0000000b,0x0000002a,0x00040047,0x000002a8,0x0000000b, + 0x0000002b,0x00040047,0x000002ab,0x0000001e,0x00000000,0x00040047,0x000002ac,0x0000001e, + 0x00000001,0x00030047,0x000002b0,0x00000000,0x00040047,0x000002b0,0x0000001e,0x00000000, + 0x00030047,0x000002b9,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047,0x000002c7, + 0x0000000e,0x00040047,0x000002c7,0x0000001e,0x00000001,0x00030047,0x000002ca,0x0000000e, + 0x00040047,0x000002ca,0x0000001e,0x00000002,0x00040047,0x000002cd,0x0000001e,0x00000003, + 0x00050048,0x000002d7,0x00000000,0x00000023,0x00000000,0x00050048,0x000002d7,0x00000001, + 0x00000023,0x00000004,0x00050048,0x000002d7,0x00000002,0x00000023,0x00000008,0x00050048, + 0x000002d7,0x00000003,0x00000023,0x0000000c,0x00050048,0x000002d7,0x00000004,0x00000023, + 0x00000010,0x00050048,0x000002d7,0x00000005,0x00000023,0x00000014,0x00050048,0x000002d7, + 0x00000006,0x00000023,0x00000018,0x00050048,0x000002d7,0x00000007,0x00000023,0x0000001c, + 0x00050048,0x000002d7,0x00000008,0x00000023,0x00000020,0x00050048,0x000002d7,0x00000009, + 0x00000023,0x00000030,0x00050048,0x000002d7,0x0000000a,0x00000023,0x00000034,0x00050048, + 0x000002d7,0x0000000b,0x00000023,0x00000038,0x00030047,0x000002d7,0x00000002,0x00040047, + 0x000002d9,0x00000022,0x00000000,0x00040047,0x000002d9,0x00000021,0x00000007,0x00050048, + 0x000002f5,0x00000000,0x0000000b,0x00000000,0x00050048,0x000002f5,0x00000001,0x0000000b, + 0x00000001,0x00050048,0x000002f5,0x00000002,0x0000000b,0x00000003,0x00050048,0x000002f5, + 0x00000003,0x0000000b,0x00000004,0x00030047,0x000002f5,0x00000002,0x00040047,0x000002fb, + 0x00000001,0x00000000,0x00040047,0x000002fc,0x00000001,0x00000001,0x00040047,0x000002fd, + 0x00000001,0x00000002,0x00040047,0x000002fe,0x00000001,0x00000003,0x00040047,0x000002ff, + 0x00000001,0x00000004,0x00040047,0x00000300,0x00000001,0x00000005,0x00040047,0x00000301, + 0x00000001,0x00000006,0x00040047,0x00000302,0x00000001,0x00000007,0x00040047,0x00000303, + 0x00000006,0x00000008,0x00040048,0x00000304,0x00000000,0x00000018,0x00050048,0x00000304, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000304,0x00000003,0x00040047,0x00000306, + 0x00000022,0x00000000,0x00040047,0x00000306,0x00000021,0x00000004,0x00040047,0x00000307, + 0x00000006,0x00000010,0x00040048,0x00000308,0x00000000,0x00000018,0x00050048,0x00000308, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000308,0x00000003,0x00040047,0x0000030a, + 0x00000022,0x00000000,0x00040047,0x0000030a,0x00000021,0x00000005,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c, + 0x00000006,0x00000002,0x00040020,0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e, + 0x0000000c,0x0000000d,0x00050021,0x00000015,0x0000000c,0x00000007,0x00000007,0x00040017, + 0x0000001a,0x00000006,0x00000004,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00040018, + 0x0000001c,0x0000000c,0x00000002,0x00040021,0x0000001d,0x0000001c,0x0000001b,0x00040015, + 0x00000021,0x00000020,0x00000000,0x00040020,0x00000022,0x00000007,0x00000021,0x00040021, + 0x00000023,0x00000021,0x00000022,0x00040015,0x00000027,0x00000020,0x00000001,0x00040020, + 0x00000028,0x00000007,0x00000027,0x00040017,0x00000029,0x00000027,0x00000002,0x00040021, + 0x0000002a,0x00000029,0x00000028,0x00040020,0x0000002e,0x00000007,0x0000001c,0x00050021, + 0x0000002f,0x00000006,0x0000002e,0x0000000d,0x00020014,0x00000034,0x00090021,0x00000035, + 0x00000034,0x0000001b,0x0000001b,0x00000028,0x00000022,0x0000000d,0x0000000d,0x0004002b, + 0x00000021,0x0000004d,0x00000000,0x0004002b,0x00000021,0x00000050,0x00000001,0x0004002b, + 0x00000006,0x00000059,0x3f800000,0x0004002b,0x00000006,0x0000005a,0x00000000,0x0004002b, + 0x00000021,0x00000065,0x0000ffff,0x0004002b,0x00000027,0x0000006b,0x000007ff,0x0004002b, + 0x00000027,0x0000006e,0x0000000b,0x0004002b,0x00000021,0x0000008d,0x00000002,0x0004002b, + 0x00000021,0x00000091,0x00000003,0x0004002b,0x00000027,0x00000095,0x00000002,0x0004002b, + 0x00000027,0x0000009b,0x00000003,0x0004002b,0x00000027,0x000000a0,0x00000001,0x00040017, + 0x000000a9,0x00000021,0x00000004,0x00040020,0x000000aa,0x00000007,0x000000a9,0x00090019, + 0x000000ac,0x00000021,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x000000ad,0x00000000,0x000000ac,0x0004003b,0x000000ad,0x000000ae,0x00000000, + 0x0004002b,0x00000027,0x000000b3,0x00000000,0x0003001d,0x000000b9,0x000000a9,0x0003001e, + 0x000000ba,0x000000b9,0x00040020,0x000000bb,0x00000002,0x000000ba,0x0004003b,0x000000bb, + 0x000000bc,0x00000002,0x00040020,0x000000c0,0x00000002,0x000000a9,0x00040017,0x000000c4, + 0x00000021,0x00000002,0x0003001d,0x000000cf,0x000000a9,0x0003001e,0x000000d0,0x000000cf, + 0x00040020,0x000000d1,0x00000002,0x000000d0,0x0004003b,0x000000d1,0x000000d2,0x00000002, + 0x0004002b,0x00000021,0x000000d4,0x00000004,0x0004002b,0x00000021,0x000000eb,0x02000000, + 0x0004002b,0x00000021,0x0000010a,0x0200ffff,0x00040020,0x00000111,0x00000007,0x00000034, + 0x0004002b,0x00000021,0x00000129,0xfdffffff,0x0004002b,0x00000021,0x00000146,0x00400000, + 0x0004002b,0x00000021,0x0000014e,0x00200000,0x0004002b,0x00000006,0x0000015b,0x3f000000, + 0x0004002b,0x00000006,0x00000178,0x40000000,0x0004002b,0x00000021,0x00000189,0x30000000, + 0x0004002b,0x00000021,0x00000191,0x01000000,0x00040020,0x0000019f,0x00000007,0x00000029, + 0x0004002b,0x00000006,0x000001b4,0x40490fdb,0x0004002b,0x00000006,0x000001b8,0x40c90fdb, + 0x0004002b,0x00000006,0x000001c8,0xbf000000,0x0004002b,0x00000021,0x000001e4,0x20000000, + 0x0004002b,0x00000006,0x000001e7,0x3e800000,0x0004002b,0x00000021,0x000001ef,0x08000000, + 0x0004002b,0x00000021,0x00000207,0x00800000,0x0004002b,0x00000006,0x00000212,0x3e000000, + 0x0004002b,0x00000006,0x0000025f,0x38d1b717,0x0003002a,0x00000034,0x0000026e,0x0004002b, + 0x00000021,0x00000282,0x04000000,0x0004002b,0x00000006,0x0000028a,0xbf800000,0x0004002b, + 0x00000021,0x00000290,0x80000000,0x00030029,0x00000034,0x000002a0,0x00040020,0x000002a4, + 0x00000001,0x00000027,0x0004003b,0x000002a4,0x000002a5,0x00000001,0x0004003b,0x000002a4, + 0x000002a8,0x00000001,0x00040020,0x000002aa,0x00000001,0x0000001a,0x0004003b,0x000002aa, + 0x000002ab,0x00000001,0x0004003b,0x000002aa,0x000002ac,0x00000001,0x00040020,0x000002af, + 0x00000003,0x0000000c,0x0004003b,0x000002af,0x000002b0,0x00000003,0x00040020,0x000002c6, + 0x00000003,0x00000021,0x0004003b,0x000002c6,0x000002c7,0x00000003,0x00040020,0x000002c9, + 0x00000003,0x000000c4,0x0004003b,0x000002c9,0x000002ca,0x00000003,0x0004003b,0x000002af, + 0x000002cd,0x00000003,0x00040017,0x000002d6,0x00000027,0x00000004,0x000e001e,0x000002d7, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000021,0x00000021,0x00000021,0x00000021, + 0x000002d6,0x00000021,0x00000021,0x00000006,0x00040020,0x000002d8,0x00000002,0x000002d7, + 0x0004003b,0x000002d8,0x000002d9,0x00000002,0x00040020,0x000002da,0x00000002,0x00000006, + 0x0004001c,0x000002f4,0x00000006,0x00000050,0x0006001e,0x000002f5,0x0000001a,0x00000006, + 0x000002f4,0x000002f4,0x00040020,0x000002f6,0x00000003,0x000002f5,0x0004003b,0x000002f6, + 0x000002f7,0x00000003,0x00040020,0x000002f9,0x00000003,0x0000001a,0x00030031,0x00000034, + 0x000002fb,0x00030031,0x00000034,0x000002fc,0x00030031,0x00000034,0x000002fd,0x00030031, + 0x00000034,0x000002fe,0x00030031,0x00000034,0x000002ff,0x00030031,0x00000034,0x00000300, + 0x00030031,0x00000034,0x00000301,0x00030031,0x00000034,0x00000302,0x0003001d,0x00000303, + 0x000000c4,0x0003001e,0x00000304,0x00000303,0x00040020,0x00000305,0x00000002,0x00000304, + 0x0004003b,0x00000305,0x00000306,0x00000002,0x0003001d,0x00000307,0x0000001a,0x0003001e, + 0x00000308,0x00000307,0x00040020,0x00000309,0x00000002,0x00000308,0x0004003b,0x00000309, + 0x0000030a,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000028,0x000002a3,0x00000007,0x0004003b,0x00000028,0x000002a7, + 0x00000007,0x0004003b,0x00000022,0x000002ad,0x00000007,0x0004003b,0x0000000d,0x000002ae, + 0x00000007,0x0004003b,0x0000001b,0x000002b1,0x00000007,0x0004003b,0x0000001b,0x000002b3, + 0x00000007,0x0004003b,0x00000028,0x000002b5,0x00000007,0x0004003b,0x00000022,0x000002b7, + 0x00000007,0x0004003b,0x0000000d,0x000002b8,0x00000007,0x0004003b,0x0000000d,0x000002b9, + 0x00000007,0x0004003b,0x000000aa,0x000002c0,0x00000007,0x0004003b,0x0000001b,0x000002d3, + 0x00000007,0x0004003d,0x00000027,0x000002a6,0x000002a5,0x0003003e,0x000002a3,0x000002a6, + 0x0004003d,0x00000027,0x000002a9,0x000002a8,0x0003003e,0x000002a7,0x000002a9,0x0004003d, + 0x0000001a,0x000002b2,0x000002ab,0x0003003e,0x000002b1,0x000002b2,0x0004003d,0x0000001a, + 0x000002b4,0x000002ac,0x0003003e,0x000002b3,0x000002b4,0x0004003d,0x00000027,0x000002b6, + 0x000002a7,0x0003003e,0x000002b5,0x000002b6,0x000a0039,0x00000034,0x000002ba,0x0000003c, + 0x000002b1,0x000002b3,0x000002b5,0x000002b7,0x000002b8,0x000002b9,0x0004003d,0x00000021, + 0x000002bb,0x000002b7,0x0003003e,0x000002ad,0x000002bb,0x0004003d,0x0000000c,0x000002bc, + 0x000002b8,0x0003003e,0x000002ae,0x000002bc,0x0004003d,0x0000000c,0x000002bd,0x000002b9, + 0x0003003e,0x000002b0,0x000002bd,0x000300f7,0x000002bf,0x00000000,0x000400fa,0x000002ba, + 0x000002be,0x000002ea,0x000200f8,0x000002be,0x0004003d,0x00000021,0x000002c1,0x000002ad, + 0x00050084,0x00000021,0x000002c2,0x000002c1,0x000000d4,0x00050080,0x00000021,0x000002c3, + 0x000002c2,0x0000008d,0x00060041,0x000000c0,0x000002c4,0x000000d2,0x000000b3,0x000002c3, + 0x0004003d,0x000000a9,0x000002c5,0x000002c4,0x0003003e,0x000002c0,0x000002c5,0x0004003d, + 0x00000021,0x000002c8,0x000002ad,0x0003003e,0x000002c7,0x000002c8,0x0004003d,0x000000a9, + 0x000002cb,0x000002c0,0x0007004f,0x000000c4,0x000002cc,0x000002cb,0x000002cb,0x00000000, + 0x00000001,0x0003003e,0x000002ca,0x000002cc,0x0004003d,0x0000000c,0x000002ce,0x000002ae, + 0x0004003d,0x000000a9,0x000002cf,0x000002c0,0x0007004f,0x000000c4,0x000002d0,0x000002cf, + 0x000002cf,0x00000002,0x00000003,0x0004007c,0x0000000c,0x000002d1,0x000002d0,0x00050081, + 0x0000000c,0x000002d2,0x000002ce,0x000002d1,0x0003003e,0x000002cd,0x000002d2,0x00050041, + 0x00000007,0x000002d4,0x000002ae,0x0000004d,0x0004003d,0x00000006,0x000002d5,0x000002d4, + 0x00050041,0x000002da,0x000002db,0x000002d9,0x00000095,0x0004003d,0x00000006,0x000002dc, + 0x000002db,0x00050085,0x00000006,0x000002dd,0x000002d5,0x000002dc,0x00050083,0x00000006, + 0x000002de,0x000002dd,0x00000059,0x00050041,0x00000007,0x000002df,0x000002ae,0x00000050, + 0x0004003d,0x00000006,0x000002e0,0x000002df,0x00050041,0x000002da,0x000002e1,0x000002d9, + 0x0000009b,0x0004003d,0x00000006,0x000002e2,0x000002e1,0x0004007f,0x00000006,0x000002e3, + 0x000002e2,0x00050085,0x00000006,0x000002e4,0x000002e0,0x000002e3,0x00050041,0x000002da, + 0x000002e5,0x000002d9,0x0000009b,0x0004003d,0x00000006,0x000002e6,0x000002e5,0x0006000c, + 0x00000006,0x000002e7,0x00000001,0x00000006,0x000002e6,0x00050081,0x00000006,0x000002e8, + 0x000002e4,0x000002e7,0x00070050,0x0000001a,0x000002e9,0x000002de,0x000002e8,0x0000005a, + 0x00000059,0x0003003e,0x000002d3,0x000002e9,0x000200f9,0x000002bf,0x000200f8,0x000002ea, + 0x00050041,0x000002da,0x000002eb,0x000002d9,0x0000006e,0x0004003d,0x00000006,0x000002ec, + 0x000002eb,0x00050041,0x000002da,0x000002ed,0x000002d9,0x0000006e,0x0004003d,0x00000006, + 0x000002ee,0x000002ed,0x00050041,0x000002da,0x000002ef,0x000002d9,0x0000006e,0x0004003d, + 0x00000006,0x000002f0,0x000002ef,0x00050041,0x000002da,0x000002f1,0x000002d9,0x0000006e, + 0x0004003d,0x00000006,0x000002f2,0x000002f1,0x00070050,0x0000001a,0x000002f3,0x000002ec, + 0x000002ee,0x000002f0,0x000002f2,0x0003003e,0x000002d3,0x000002f3,0x000200f9,0x000002bf, + 0x000200f8,0x000002bf,0x0004003d,0x0000001a,0x000002f8,0x000002d3,0x00050041,0x000002f9, + 0x000002fa,0x000002f7,0x000000b3,0x0003003e,0x000002fa,0x000002f8,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x000200f8,0x0000000b,0x0004003b,0x00000007,0x0000003f,0x00000007,0x0004003d,0x00000006, + 0x0000003e,0x00000009,0x0003003e,0x0000003f,0x0000003e,0x0004003d,0x00000006,0x00000040, + 0x0000003f,0x000200fe,0x00000040,0x00010038,0x00050036,0x0000000c,0x00000010,0x00000000, + 0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003b,0x0000000d, + 0x00000044,0x00000007,0x0004003d,0x0000000c,0x00000043,0x0000000f,0x0003003e,0x00000044, + 0x00000043,0x0004003d,0x0000000c,0x00000045,0x00000044,0x000200fe,0x00000045,0x00010038, + 0x00050036,0x00000006,0x00000013,0x00000000,0x00000008,0x00030037,0x00000007,0x00000012, + 0x000200f8,0x00000014,0x0004003d,0x00000006,0x00000048,0x00000012,0x000200fe,0x00000048, + 0x00010038,0x00050036,0x0000000c,0x00000018,0x00000000,0x00000015,0x00030037,0x00000007, + 0x00000016,0x00030037,0x00000007,0x00000017,0x000200f8,0x00000019,0x0004003b,0x0000000d, + 0x0000004b,0x00000007,0x0004003d,0x00000006,0x0000004c,0x00000016,0x00050041,0x00000007, + 0x0000004e,0x0000004b,0x0000004d,0x0003003e,0x0000004e,0x0000004c,0x0004003d,0x00000006, + 0x0000004f,0x00000017,0x00050041,0x00000007,0x00000051,0x0000004b,0x00000050,0x0003003e, + 0x00000051,0x0000004f,0x0004003d,0x0000000c,0x00000052,0x0000004b,0x000200fe,0x00000052, + 0x00010038,0x00050036,0x0000001c,0x0000001f,0x00000000,0x0000001d,0x00030037,0x0000001b, + 0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a,0x00000055,0x0000001e,0x0007004f, + 0x0000000c,0x00000056,0x00000055,0x00000055,0x00000000,0x00000001,0x0004003d,0x0000001a, + 0x00000057,0x0000001e,0x0007004f,0x0000000c,0x00000058,0x00000057,0x00000057,0x00000002, + 0x00000003,0x00050051,0x00000006,0x0000005b,0x00000056,0x00000000,0x00050051,0x00000006, + 0x0000005c,0x00000056,0x00000001,0x00050051,0x00000006,0x0000005d,0x00000058,0x00000000, + 0x00050051,0x00000006,0x0000005e,0x00000058,0x00000001,0x00050050,0x0000000c,0x0000005f, + 0x0000005b,0x0000005c,0x00050050,0x0000000c,0x00000060,0x0000005d,0x0000005e,0x00050050, + 0x0000001c,0x00000061,0x0000005f,0x00000060,0x000200fe,0x00000061,0x00010038,0x00050036, + 0x00000021,0x00000025,0x00000000,0x00000023,0x00030037,0x00000022,0x00000024,0x000200f8, + 0x00000026,0x0004003d,0x00000021,0x00000064,0x00000024,0x000500c7,0x00000021,0x00000066, + 0x00000064,0x00000065,0x00050082,0x00000021,0x00000067,0x00000066,0x00000050,0x000200fe, + 0x00000067,0x00010038,0x00050036,0x00000029,0x0000002c,0x00000000,0x0000002a,0x00030037, + 0x00000028,0x0000002b,0x000200f8,0x0000002d,0x0004003d,0x00000027,0x0000006a,0x0000002b, + 0x000500c7,0x00000027,0x0000006c,0x0000006a,0x0000006b,0x0004003d,0x00000027,0x0000006d, + 0x0000002b,0x000500c3,0x00000027,0x0000006f,0x0000006d,0x0000006e,0x00050050,0x00000029, + 0x00000070,0x0000006c,0x0000006f,0x000200fe,0x00000070,0x00010038,0x00050036,0x00000006, + 0x00000032,0x00000000,0x0000002f,0x00030037,0x0000002e,0x00000030,0x00030037,0x0000000d, + 0x00000031,0x000200f8,0x00000033,0x0004003b,0x0000000d,0x00000073,0x00000007,0x0004003d, + 0x0000001c,0x00000074,0x00000030,0x0004003d,0x0000000c,0x00000075,0x00000031,0x00050091, + 0x0000000c,0x00000076,0x00000074,0x00000075,0x0003003e,0x00000073,0x00000076,0x00050041, + 0x00000007,0x00000077,0x00000073,0x0000004d,0x0004003d,0x00000006,0x00000078,0x00000077, + 0x0006000c,0x00000006,0x00000079,0x00000001,0x00000004,0x00000078,0x00050041,0x00000007, + 0x0000007a,0x00000073,0x00000050,0x0004003d,0x00000006,0x0000007b,0x0000007a,0x0006000c, + 0x00000006,0x0000007c,0x00000001,0x00000004,0x0000007b,0x00050081,0x00000006,0x0000007d, + 0x00000079,0x0000007c,0x0004003d,0x0000000c,0x0000007e,0x00000073,0x0004003d,0x0000000c, + 0x0000007f,0x00000073,0x00050094,0x00000006,0x00000080,0x0000007e,0x0000007f,0x00050088, + 0x00000006,0x00000081,0x00000059,0x00000080,0x00050085,0x00000006,0x00000082,0x0000007d, + 0x00000081,0x000200fe,0x00000082,0x00010038,0x00050036,0x00000034,0x0000003c,0x00000000, + 0x00000035,0x00030037,0x0000001b,0x00000036,0x00030037,0x0000001b,0x00000037,0x00030037, + 0x00000028,0x00000038,0x00030037,0x00000022,0x00000039,0x00030037,0x0000000d,0x0000003a, + 0x00030037,0x0000000d,0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000028,0x00000085, + 0x00000007,0x0004003b,0x00000007,0x00000089,0x00000007,0x0004003b,0x00000007,0x0000008c, + 0x00000007,0x0004003b,0x00000028,0x00000090,0x00000007,0x0004003b,0x00000028,0x00000097, + 0x00000007,0x0004003b,0x00000028,0x0000009d,0x00000007,0x0004003b,0x00000028,0x000000a3, + 0x00000007,0x0004003b,0x000000aa,0x000000ab,0x00000007,0x0004003b,0x00000028,0x000000b0, + 0x00000007,0x0004003b,0x00000022,0x000000b5,0x00000007,0x0004003b,0x000000aa,0x000000b8, + 0x00000007,0x0004003b,0x00000022,0x000000bd,0x00000007,0x0004003b,0x0000000d,0x000000c3, + 0x00000007,0x0004003b,0x00000022,0x000000cb,0x00000007,0x0004003b,0x0000002e,0x000000ce, + 0x00000007,0x0004003b,0x0000001b,0x000000d9,0x00000007,0x0004003b,0x000000aa,0x000000db, + 0x00000007,0x0004003b,0x0000000d,0x000000e1,0x00000007,0x0004003b,0x00000007,0x000000e5, + 0x00000007,0x0004003b,0x00000022,0x000000e9,0x00000007,0x0004003b,0x000000aa,0x00000102, + 0x00000007,0x0004003b,0x00000028,0x00000104,0x00000007,0x0004003b,0x00000111,0x00000112, + 0x00000007,0x0004003b,0x00000028,0x00000122,0x00000007,0x0004003b,0x00000007,0x0000012d, + 0x00000007,0x0004003b,0x0000000d,0x00000131,0x00000007,0x0004003b,0x0000000d,0x00000138, + 0x00000007,0x0004003b,0x00000007,0x00000155,0x00000007,0x0004003b,0x0000002e,0x00000156, + 0x00000007,0x0004003b,0x0000000d,0x00000158,0x00000007,0x0004003b,0x00000007,0x0000015d, + 0x00000007,0x0004003b,0x00000007,0x00000163,0x00000007,0x0004003b,0x00000007,0x00000166, + 0x00000007,0x0004003b,0x0000000d,0x0000016b,0x00000007,0x0004003b,0x00000007,0x00000171, + 0x00000007,0x0004003b,0x0000000d,0x00000185,0x00000007,0x0004003b,0x00000022,0x00000187, + 0x00000007,0x0004003b,0x00000028,0x0000018f,0x00000007,0x0004003b,0x0000019f,0x000001a0, + 0x00000007,0x0004003b,0x00000028,0x000001a4,0x00000007,0x0004003b,0x000000aa,0x000001a6, + 0x00000007,0x0004003b,0x00000007,0x000001aa,0x00000007,0x0004003b,0x00000007,0x000001ae, + 0x00000007,0x0004003b,0x00000111,0x000001bb,0x00000007,0x0004003b,0x00000111,0x000001bf, + 0x00000007,0x0004003b,0x00000007,0x000001c3,0x00000007,0x0004003b,0x0000000d,0x000001cd, + 0x00000007,0x0004003b,0x00000007,0x000001d4,0x00000007,0x0004003b,0x0000002e,0x000001d5, + 0x00000007,0x0004003b,0x0000000d,0x000001d7,0x00000007,0x0004003b,0x00000007,0x000001da, + 0x00000007,0x0004003b,0x00000007,0x000001ed,0x00000007,0x0004003b,0x00000007,0x000001f3, + 0x00000007,0x0004003b,0x00000007,0x00000201,0x00000007,0x0004003b,0x00000007,0x0000020c, + 0x00000007,0x0004003b,0x00000007,0x00000210,0x00000007,0x0004003b,0x00000007,0x0000021d, + 0x00000007,0x0004003b,0x0000000d,0x00000226,0x00000007,0x0004003b,0x0000000d,0x0000022a, + 0x00000007,0x0004003b,0x0000000d,0x0000023e,0x00000007,0x0004003b,0x00000007,0x00000243, + 0x00000007,0x0004003b,0x00000007,0x00000251,0x00000007,0x0004003b,0x00000007,0x00000256, + 0x00000007,0x0004003b,0x00000007,0x00000260,0x00000007,0x0004003b,0x0000000d,0x00000264, + 0x00000007,0x0004003b,0x00000007,0x0000028b,0x00000007,0x0004003b,0x00000007,0x0000028d, + 0x00000007,0x00050041,0x00000007,0x00000086,0x00000036,0x0000004d,0x0004003d,0x00000006, + 0x00000087,0x00000086,0x0004006e,0x00000027,0x00000088,0x00000087,0x0003003e,0x00000085, + 0x00000088,0x00050041,0x00000007,0x0000008a,0x00000036,0x00000050,0x0004003d,0x00000006, + 0x0000008b,0x0000008a,0x0003003e,0x00000089,0x0000008b,0x00050041,0x00000007,0x0000008e, + 0x00000036,0x0000008d,0x0004003d,0x00000006,0x0000008f,0x0000008e,0x0003003e,0x0000008c, + 0x0000008f,0x00050041,0x00000007,0x00000092,0x00000036,0x00000091,0x0004003d,0x00000006, + 0x00000093,0x00000092,0x0004007c,0x00000027,0x00000094,0x00000093,0x000500c3,0x00000027, + 0x00000096,0x00000094,0x00000095,0x0003003e,0x00000090,0x00000096,0x00050041,0x00000007, + 0x00000098,0x00000036,0x00000091,0x0004003d,0x00000006,0x00000099,0x00000098,0x0004007c, + 0x00000027,0x0000009a,0x00000099,0x000500c7,0x00000027,0x0000009c,0x0000009a,0x0000009b, + 0x0003003e,0x00000097,0x0000009c,0x0004003d,0x00000027,0x0000009e,0x00000085,0x0004003d, + 0x00000027,0x0000009f,0x00000090,0x00050082,0x00000027,0x000000a1,0x0000009f,0x000000a0, + 0x0007000c,0x00000027,0x000000a2,0x00000001,0x00000027,0x0000009e,0x000000a1,0x0003003e, + 0x0000009d,0x000000a2,0x0004003d,0x00000027,0x000000a4,0x00000038,0x0004003d,0x00000027, + 0x000000a5,0x00000090,0x00050084,0x00000027,0x000000a6,0x000000a4,0x000000a5,0x0004003d, + 0x00000027,0x000000a7,0x0000009d,0x00050080,0x00000027,0x000000a8,0x000000a6,0x000000a7, + 0x0003003e,0x000000a3,0x000000a8,0x0004003d,0x000000ac,0x000000af,0x000000ae,0x0004003d, + 0x00000027,0x000000b1,0x000000a3,0x0003003e,0x000000b0,0x000000b1,0x00050039,0x00000029, + 0x000000b2,0x0000002c,0x000000b0,0x0007005f,0x000000a9,0x000000b4,0x000000af,0x000000b2, + 0x00000002,0x000000b3,0x0003003e,0x000000ab,0x000000b4,0x00050041,0x00000022,0x000000b6, + 0x000000ab,0x00000091,0x0004003d,0x00000021,0x000000b7,0x000000b6,0x0003003e,0x000000b5, + 0x000000b7,0x0004003d,0x00000021,0x000000be,0x000000b5,0x0003003e,0x000000bd,0x000000be, + 0x00050039,0x00000021,0x000000bf,0x00000025,0x000000bd,0x00060041,0x000000c0,0x000000c1, + 0x000000bc,0x000000b3,0x000000bf,0x0004003d,0x000000a9,0x000000c2,0x000000c1,0x0003003e, + 0x000000b8,0x000000c2,0x0004003d,0x000000a9,0x000000c5,0x000000b8,0x0007004f,0x000000c4, + 0x000000c6,0x000000c5,0x000000c5,0x00000000,0x00000001,0x0004007c,0x0000000c,0x000000c7, + 0x000000c6,0x0003003e,0x000000c3,0x000000c7,0x00050041,0x00000022,0x000000c8,0x000000b8, + 0x0000008d,0x0004003d,0x00000021,0x000000c9,0x000000c8,0x000500c7,0x00000021,0x000000ca, + 0x000000c9,0x00000065,0x0003003e,0x00000039,0x000000ca,0x00050041,0x00000022,0x000000cc, + 0x000000b8,0x00000091,0x0004003d,0x00000021,0x000000cd,0x000000cc,0x0003003e,0x000000cb, + 0x000000cd,0x0004003d,0x00000021,0x000000d3,0x00000039,0x00050084,0x00000021,0x000000d5, + 0x000000d3,0x000000d4,0x00060041,0x000000c0,0x000000d6,0x000000d2,0x000000b3,0x000000d5, + 0x0004003d,0x000000a9,0x000000d7,0x000000d6,0x0004007c,0x0000001a,0x000000d8,0x000000d7, + 0x0003003e,0x000000d9,0x000000d8,0x00050039,0x0000001c,0x000000da,0x0000001f,0x000000d9, + 0x0003003e,0x000000ce,0x000000da,0x0004003d,0x00000021,0x000000dc,0x00000039,0x00050084, + 0x00000021,0x000000dd,0x000000dc,0x000000d4,0x00050080,0x00000021,0x000000de,0x000000dd, + 0x00000050,0x00060041,0x000000c0,0x000000df,0x000000d2,0x000000b3,0x000000de,0x0004003d, + 0x000000a9,0x000000e0,0x000000df,0x0003003e,0x000000db,0x000000e0,0x0004003d,0x000000a9, + 0x000000e2,0x000000db,0x0007004f,0x000000c4,0x000000e3,0x000000e2,0x000000e2,0x00000000, + 0x00000001,0x0004007c,0x0000000c,0x000000e4,0x000000e3,0x0003003e,0x000000e1,0x000000e4, + 0x00050041,0x00000022,0x000000e6,0x000000db,0x0000008d,0x0004003d,0x00000021,0x000000e7, + 0x000000e6,0x0004007c,0x00000006,0x000000e8,0x000000e7,0x0003003e,0x000000e5,0x000000e8, + 0x0004003d,0x00000021,0x000000ea,0x000000b5,0x000500c7,0x00000021,0x000000ec,0x000000ea, + 0x000000eb,0x0003003e,0x000000e9,0x000000ec,0x0004003d,0x00000021,0x000000ed,0x000000e9, + 0x000500ab,0x00000034,0x000000ee,0x000000ed,0x0000004d,0x000300f7,0x000000f0,0x00000000, + 0x000400fa,0x000000ee,0x000000ef,0x000000f0,0x000200f8,0x000000ef,0x00050041,0x00000007, + 0x000000f1,0x00000037,0x0000004d,0x0004003d,0x00000006,0x000000f2,0x000000f1,0x0004006e, + 0x00000027,0x000000f3,0x000000f2,0x0003003e,0x00000085,0x000000f3,0x00050041,0x00000007, + 0x000000f4,0x00000037,0x00000050,0x0004003d,0x00000006,0x000000f5,0x000000f4,0x0003003e, + 0x00000089,0x000000f5,0x00050041,0x00000007,0x000000f6,0x00000037,0x0000008d,0x0004003d, + 0x00000006,0x000000f7,0x000000f6,0x0003003e,0x0000008c,0x000000f7,0x000200f9,0x000000f0, + 0x000200f8,0x000000f0,0x0004003d,0x00000027,0x000000f8,0x00000085,0x0004003d,0x00000027, + 0x000000f9,0x0000009d,0x000500ab,0x00000034,0x000000fa,0x000000f8,0x000000f9,0x000300f7, + 0x000000fc,0x00000000,0x000400fa,0x000000fa,0x000000fb,0x000000fc,0x000200f8,0x000000fb, + 0x0004003d,0x00000027,0x000000fd,0x00000085,0x0004003d,0x00000027,0x000000fe,0x0000009d, + 0x00050082,0x00000027,0x000000ff,0x000000fd,0x000000fe,0x0004003d,0x00000027,0x00000100, + 0x000000a3,0x00050080,0x00000027,0x00000101,0x00000100,0x000000ff,0x0003003e,0x000000a3, + 0x00000101,0x0004003d,0x000000ac,0x00000103,0x000000ae,0x0004003d,0x00000027,0x00000105, + 0x000000a3,0x0003003e,0x00000104,0x00000105,0x00050039,0x00000029,0x00000106,0x0000002c, + 0x00000104,0x0007005f,0x000000a9,0x00000107,0x00000103,0x00000106,0x00000002,0x000000b3, + 0x0003003e,0x00000102,0x00000107,0x00050041,0x00000022,0x00000108,0x00000102,0x00000091, + 0x0004003d,0x00000021,0x00000109,0x00000108,0x000500c7,0x00000021,0x0000010b,0x00000109, + 0x0000010a,0x0004003d,0x00000021,0x0000010c,0x000000b5,0x000500c7,0x00000021,0x0000010d, + 0x0000010c,0x0000010a,0x000500ab,0x00000034,0x0000010e,0x0000010b,0x0000010d,0x000300f7, + 0x00000110,0x00000000,0x000400fa,0x0000010e,0x0000010f,0x00000125,0x000200f8,0x0000010f, + 0x0004003d,0x00000006,0x00000113,0x000000e5,0x000500b4,0x00000034,0x00000114,0x00000113, + 0x0000005a,0x000400a8,0x00000034,0x00000115,0x00000114,0x000300f7,0x00000117,0x00000000, + 0x000400fa,0x00000115,0x00000116,0x00000117,0x000200f8,0x00000116,0x00050041,0x00000007, + 0x00000118,0x000000c3,0x0000004d,0x0004003d,0x00000006,0x00000119,0x00000118,0x000500b7, + 0x00000034,0x0000011a,0x00000119,0x0000005a,0x000200f9,0x00000117,0x000200f8,0x00000117, + 0x000700f5,0x00000034,0x0000011b,0x00000114,0x0000010f,0x0000011a,0x00000116,0x0003003e, + 0x00000112,0x0000011b,0x0004003d,0x00000034,0x0000011c,0x00000112,0x000300f7,0x0000011e, + 0x00000000,0x000400fa,0x0000011c,0x0000011d,0x0000011e,0x000200f8,0x0000011d,0x0004003d, + 0x000000ac,0x0000011f,0x000000ae,0x0004003d,0x00000021,0x00000120,0x000000cb,0x0004007c, + 0x00000027,0x00000121,0x00000120,0x0003003e,0x00000122,0x00000121,0x00050039,0x00000029, + 0x00000123,0x0000002c,0x00000122,0x0007005f,0x000000a9,0x00000124,0x0000011f,0x00000123, + 0x00000002,0x000000b3,0x0003003e,0x000000ab,0x00000124,0x000200f9,0x0000011e,0x000200f8, + 0x0000011e,0x000200f9,0x00000110,0x000200f8,0x00000125,0x0004003d,0x000000a9,0x00000126, + 0x00000102,0x0003003e,0x000000ab,0x00000126,0x000200f9,0x00000110,0x000200f8,0x00000110, + 0x00050041,0x00000022,0x00000127,0x000000ab,0x00000091,0x0004003d,0x00000021,0x00000128, + 0x00000127,0x000500c7,0x00000021,0x0000012a,0x00000128,0x00000129,0x0004003d,0x00000021, + 0x0000012b,0x000000e9,0x000500c5,0x00000021,0x0000012c,0x0000012a,0x0000012b,0x0003003e, + 0x000000b5,0x0000012c,0x000200f9,0x000000fc,0x000200f8,0x000000fc,0x00050041,0x00000022, + 0x0000012e,0x000000ab,0x0000008d,0x0004003d,0x00000021,0x0000012f,0x0000012e,0x0004007c, + 0x00000006,0x00000130,0x0000012f,0x0003003e,0x0000012d,0x00000130,0x0004003d,0x00000006, + 0x00000132,0x0000012d,0x0006000c,0x00000006,0x00000133,0x00000001,0x0000000d,0x00000132, + 0x0004003d,0x00000006,0x00000134,0x0000012d,0x0006000c,0x00000006,0x00000135,0x00000001, + 0x0000000e,0x00000134,0x0004007f,0x00000006,0x00000136,0x00000135,0x00050050,0x0000000c, + 0x00000137,0x00000133,0x00000136,0x0003003e,0x00000131,0x00000137,0x0004003d,0x000000a9, + 0x00000139,0x000000ab,0x0007004f,0x000000c4,0x0000013a,0x00000139,0x00000139,0x00000000, + 0x00000001,0x0004007c,0x0000000c,0x0000013b,0x0000013a,0x0003003e,0x00000138,0x0000013b, + 0x0004003d,0x00000006,0x0000013c,0x000000e5,0x000500b7,0x00000034,0x0000013d,0x0000013c, + 0x0000005a,0x000300f7,0x0000013f,0x00000000,0x000400fa,0x0000013d,0x0000013e,0x00000270, + 0x000200f8,0x0000013e,0x0004003d,0x0000001c,0x00000140,0x000000ce,0x0006000c,0x00000006, + 0x00000141,0x00000001,0x00000021,0x00000140,0x0006000c,0x00000006,0x00000142,0x00000001, + 0x00000006,0x00000141,0x0004003d,0x00000006,0x00000143,0x00000089,0x00050085,0x00000006, + 0x00000144,0x00000143,0x00000142,0x0003003e,0x00000089,0x00000144,0x0004003d,0x00000021, + 0x00000145,0x000000b5,0x000500c7,0x00000021,0x00000147,0x00000145,0x00000146,0x000500ab, + 0x00000034,0x00000148,0x00000147,0x0000004d,0x000300f7,0x0000014a,0x00000000,0x000400fa, + 0x00000148,0x00000149,0x0000014a,0x000200f8,0x00000149,0x0004003d,0x00000006,0x0000014b, + 0x00000089,0x0007000c,0x00000006,0x0000014c,0x00000001,0x00000025,0x0000014b,0x0000005a, + 0x0003003e,0x00000089,0x0000014c,0x000200f9,0x0000014a,0x000200f8,0x0000014a,0x0004003d, + 0x00000021,0x0000014d,0x000000b5,0x000500c7,0x00000021,0x0000014f,0x0000014d,0x0000014e, + 0x000500ab,0x00000034,0x00000150,0x0000014f,0x0000004d,0x000300f7,0x00000152,0x00000000, + 0x000400fa,0x00000150,0x00000151,0x00000152,0x000200f8,0x00000151,0x0004003d,0x00000006, + 0x00000153,0x00000089,0x0007000c,0x00000006,0x00000154,0x00000001,0x00000028,0x00000153, + 0x0000005a,0x0003003e,0x00000089,0x00000154,0x000200f9,0x00000152,0x000200f8,0x00000152, + 0x0004003d,0x0000001c,0x00000157,0x000000ce,0x0003003e,0x00000156,0x00000157,0x0004003d, + 0x0000000c,0x00000159,0x00000131,0x0003003e,0x00000158,0x00000159,0x00060039,0x00000006, + 0x0000015a,0x00000032,0x00000156,0x00000158,0x00050085,0x00000006,0x0000015c,0x0000015a, + 0x0000015b,0x0003003e,0x00000155,0x0000015c,0x0003003e,0x0000015d,0x00000059,0x0004003d, + 0x00000006,0x0000015e,0x00000155,0x0004003d,0x00000006,0x0000015f,0x000000e5,0x000500ba, + 0x00000034,0x00000160,0x0000015e,0x0000015f,0x000300f7,0x00000162,0x00000000,0x000400fa, + 0x00000160,0x00000161,0x00000162,0x000200f8,0x00000161,0x0004003d,0x00000006,0x00000164, + 0x000000e5,0x0003003e,0x00000163,0x00000164,0x00050039,0x00000006,0x00000165,0x0000000a, + 0x00000163,0x0004003d,0x00000006,0x00000167,0x00000155,0x0003003e,0x00000166,0x00000167, + 0x00050039,0x00000006,0x00000168,0x0000000a,0x00000166,0x00050088,0x00000006,0x00000169, + 0x00000165,0x00000168,0x0003003e,0x0000015d,0x00000169,0x0004003d,0x00000006,0x0000016a, + 0x00000155,0x0003003e,0x000000e5,0x0000016a,0x000200f9,0x00000162,0x000200f8,0x00000162, + 0x0004003d,0x0000000c,0x0000016c,0x00000131,0x0004003d,0x00000006,0x0000016d,0x000000e5, + 0x0004003d,0x00000006,0x0000016e,0x00000155,0x00050081,0x00000006,0x0000016f,0x0000016d, + 0x0000016e,0x0005008e,0x0000000c,0x00000170,0x0000016c,0x0000016f,0x0003003e,0x0000016b, + 0x00000170,0x0004003d,0x00000006,0x00000172,0x00000089,0x0004003d,0x00000006,0x00000173, + 0x000000e5,0x0004003d,0x00000006,0x00000174,0x00000155,0x00050081,0x00000006,0x00000175, + 0x00000173,0x00000174,0x00050085,0x00000006,0x00000176,0x00000172,0x00000175,0x0003003e, + 0x00000171,0x00000176,0x0004003d,0x00000006,0x00000177,0x00000155,0x00050085,0x00000006, + 0x00000179,0x00000177,0x00000178,0x00050088,0x00000006,0x0000017a,0x00000059,0x00000179, + 0x0004003d,0x00000006,0x0000017b,0x00000171,0x0004003d,0x00000006,0x0000017c,0x00000171, + 0x0004007f,0x00000006,0x0000017d,0x0000017c,0x00050050,0x0000000c,0x0000017e,0x0000017b, + 0x0000017d,0x0004003d,0x00000006,0x0000017f,0x000000e5,0x00050050,0x0000000c,0x00000180, + 0x0000017f,0x0000017f,0x00050081,0x0000000c,0x00000181,0x0000017e,0x00000180,0x0005008e, + 0x0000000c,0x00000182,0x00000181,0x0000017a,0x00050050,0x0000000c,0x00000183,0x0000015b, + 0x0000015b,0x00050081,0x0000000c,0x00000184,0x00000182,0x00000183,0x0003003e,0x00000185, + 0x00000184,0x00050039,0x0000000c,0x00000186,0x00000010,0x00000185,0x0003003e,0x0000003b, + 0x00000186,0x0004003d,0x00000021,0x00000188,0x000000b5,0x000500c7,0x00000021,0x0000018a, + 0x00000188,0x00000189,0x0003003e,0x00000187,0x0000018a,0x0004003d,0x00000021,0x0000018b, + 0x00000187,0x000500ab,0x00000034,0x0000018c,0x0000018b,0x0000004d,0x000300f7,0x0000018e, + 0x00000000,0x000400fa,0x0000018c,0x0000018d,0x0000018e,0x000200f8,0x0000018d,0x0003003e, + 0x0000018f,0x00000095,0x0004003d,0x00000021,0x00000190,0x000000b5,0x000500c7,0x00000021, + 0x00000192,0x00000190,0x00000191,0x000500aa,0x00000034,0x00000193,0x00000192,0x0000004d, + 0x000300f7,0x00000195,0x00000000,0x000400fa,0x00000193,0x00000194,0x00000195,0x000200f8, + 0x00000194,0x0004003d,0x00000027,0x00000196,0x0000018f,0x0004007e,0x00000027,0x00000197, + 0x00000196,0x0003003e,0x0000018f,0x00000197,0x000200f9,0x00000195,0x000200f8,0x00000195, + 0x0004003d,0x00000021,0x00000198,0x000000b5,0x000500c7,0x00000021,0x00000199,0x00000198, + 0x000000eb,0x000500ab,0x00000034,0x0000019a,0x00000199,0x0000004d,0x000300f7,0x0000019c, + 0x00000000,0x000400fa,0x0000019a,0x0000019b,0x0000019c,0x000200f8,0x0000019b,0x0004003d, + 0x00000027,0x0000019d,0x0000018f,0x0004007e,0x00000027,0x0000019e,0x0000019d,0x0003003e, + 0x0000018f,0x0000019e,0x000200f9,0x0000019c,0x000200f8,0x0000019c,0x0004003d,0x00000027, + 0x000001a1,0x000000a3,0x0004003d,0x00000027,0x000001a2,0x0000018f,0x00050080,0x00000027, + 0x000001a3,0x000001a1,0x000001a2,0x0003003e,0x000001a4,0x000001a3,0x00050039,0x00000029, + 0x000001a5,0x0000002c,0x000001a4,0x0003003e,0x000001a0,0x000001a5,0x0004003d,0x000000ac, + 0x000001a7,0x000000ae,0x0004003d,0x00000029,0x000001a8,0x000001a0,0x0007005f,0x000000a9, + 0x000001a9,0x000001a7,0x000001a8,0x00000002,0x000000b3,0x0003003e,0x000001a6,0x000001a9, + 0x00050041,0x00000022,0x000001ab,0x000001a6,0x0000008d,0x0004003d,0x00000021,0x000001ac, + 0x000001ab,0x0004007c,0x00000006,0x000001ad,0x000001ac,0x0003003e,0x000001aa,0x000001ad, + 0x0004003d,0x00000006,0x000001af,0x000001aa,0x0004003d,0x00000006,0x000001b0,0x0000012d, + 0x00050083,0x00000006,0x000001b1,0x000001af,0x000001b0,0x0006000c,0x00000006,0x000001b2, + 0x00000001,0x00000004,0x000001b1,0x0003003e,0x000001ae,0x000001b2,0x0004003d,0x00000006, + 0x000001b3,0x000001ae,0x000500ba,0x00000034,0x000001b5,0x000001b3,0x000001b4,0x000300f7, + 0x000001b7,0x00000000,0x000400fa,0x000001b5,0x000001b6,0x000001b7,0x000200f8,0x000001b6, + 0x0004003d,0x00000006,0x000001b9,0x000001ae,0x00050083,0x00000006,0x000001ba,0x000001b8, + 0x000001b9,0x0003003e,0x000001ae,0x000001ba,0x000200f9,0x000001b7,0x000200f8,0x000001b7, + 0x0004003d,0x00000021,0x000001bc,0x000000b5,0x000500c7,0x00000021,0x000001bd,0x000001bc, + 0x00000191,0x000500ab,0x00000034,0x000001be,0x000001bd,0x0000004d,0x0003003e,0x000001bb, + 0x000001be,0x0004003d,0x00000021,0x000001c0,0x000000b5,0x000500c7,0x00000021,0x000001c1, + 0x000001c0,0x00000146,0x000500ab,0x00000034,0x000001c2,0x000001c1,0x0000004d,0x0003003e, + 0x000001bf,0x000001c2,0x0004003d,0x00000006,0x000001c4,0x000001ae,0x0004003d,0x00000034, + 0x000001c5,0x000001bb,0x0004003d,0x00000034,0x000001c6,0x000001bf,0x000500a4,0x00000034, + 0x000001c7,0x000001c5,0x000001c6,0x000600a9,0x00000006,0x000001c9,0x000001c7,0x000001c8, + 0x0000015b,0x00050085,0x00000006,0x000001ca,0x000001c4,0x000001c9,0x0004003d,0x00000006, + 0x000001cb,0x0000012d,0x00050081,0x00000006,0x000001cc,0x000001ca,0x000001cb,0x0003003e, + 0x000001c3,0x000001cc,0x0004003d,0x00000006,0x000001ce,0x000001c3,0x0006000c,0x00000006, + 0x000001cf,0x00000001,0x0000000d,0x000001ce,0x0004003d,0x00000006,0x000001d0,0x000001c3, + 0x0006000c,0x00000006,0x000001d1,0x00000001,0x0000000e,0x000001d0,0x0004007f,0x00000006, + 0x000001d2,0x000001d1,0x00050050,0x0000000c,0x000001d3,0x000001cf,0x000001d2,0x0003003e, + 0x000001cd,0x000001d3,0x0004003d,0x0000001c,0x000001d6,0x000000ce,0x0003003e,0x000001d5, + 0x000001d6,0x0004003d,0x0000000c,0x000001d8,0x000001cd,0x0003003e,0x000001d7,0x000001d8, + 0x00060039,0x00000006,0x000001d9,0x00000032,0x000001d5,0x000001d7,0x0003003e,0x000001d4, + 0x000001d9,0x0004003d,0x00000006,0x000001db,0x000001ae,0x00050085,0x00000006,0x000001dc, + 0x000001db,0x0000015b,0x0006000c,0x00000006,0x000001dd,0x00000001,0x0000000e,0x000001dc, + 0x0003003e,0x000001da,0x000001dd,0x0004003d,0x00000021,0x000001de,0x00000187,0x000500aa, + 0x00000034,0x000001df,0x000001de,0x00000189,0x000400a8,0x00000034,0x000001e0,0x000001df, + 0x000300f7,0x000001e2,0x00000000,0x000400fa,0x000001e0,0x000001e1,0x000001e2,0x000200f8, + 0x000001e1,0x0004003d,0x00000021,0x000001e3,0x00000187,0x000500aa,0x00000034,0x000001e5, + 0x000001e3,0x000001e4,0x0004003d,0x00000006,0x000001e6,0x000001da,0x000500be,0x00000034, + 0x000001e8,0x000001e6,0x000001e7,0x000500a7,0x00000034,0x000001e9,0x000001e5,0x000001e8, + 0x000200f9,0x000001e2,0x000200f8,0x000001e2,0x000700f5,0x00000034,0x000001ea,0x000001df, + 0x000001b7,0x000001e9,0x000001e1,0x000300f7,0x000001ec,0x00000000,0x000400fa,0x000001ea, + 0x000001eb,0x000001fa,0x000200f8,0x000001eb,0x0004003d,0x00000021,0x000001ee,0x000000b5, + 0x000500c7,0x00000021,0x000001f0,0x000001ee,0x000001ef,0x000500ab,0x00000034,0x000001f1, + 0x000001f0,0x0000004d,0x000600a9,0x00000006,0x000001f2,0x000001f1,0x00000059,0x000001e7, + 0x0003003e,0x000001ed,0x000001f2,0x0004003d,0x00000006,0x000001f4,0x000000e5,0x0004003d, + 0x00000006,0x000001f5,0x000001da,0x0004003d,0x00000006,0x000001f6,0x000001ed,0x0007000c, + 0x00000006,0x000001f7,0x00000001,0x00000028,0x000001f5,0x000001f6,0x00050088,0x00000006, + 0x000001f8,0x00000059,0x000001f7,0x00050085,0x00000006,0x000001f9,0x000001f4,0x000001f8, + 0x0003003e,0x000001f3,0x000001f9,0x000200f9,0x000001ec,0x000200f8,0x000001fa,0x0004003d, + 0x00000006,0x000001fb,0x000000e5,0x0004003d,0x00000006,0x000001fc,0x000001da,0x00050085, + 0x00000006,0x000001fd,0x000001fb,0x000001fc,0x0004003d,0x00000006,0x000001fe,0x000001d4, + 0x00050085,0x00000006,0x000001ff,0x000001fe,0x0000015b,0x00050081,0x00000006,0x00000200, + 0x000001fd,0x000001ff,0x0003003e,0x000001f3,0x00000200,0x000200f9,0x000001ec,0x000200f8, + 0x000001ec,0x0004003d,0x00000006,0x00000202,0x000001f3,0x0004003d,0x00000006,0x00000203, + 0x000001d4,0x00050085,0x00000006,0x00000204,0x00000203,0x0000015b,0x00050081,0x00000006, + 0x00000205,0x00000202,0x00000204,0x0003003e,0x00000201,0x00000205,0x0004003d,0x00000021, + 0x00000206,0x000000b5,0x000500c7,0x00000021,0x00000208,0x00000206,0x00000207,0x000500ab, + 0x00000034,0x00000209,0x00000208,0x0000004d,0x000300f7,0x0000020b,0x00000000,0x000400fa, + 0x00000209,0x0000020a,0x0000020b,0x000200f8,0x0000020a,0x0004003d,0x00000006,0x0000020d, + 0x000000e5,0x0004003d,0x00000006,0x0000020e,0x00000155,0x00050081,0x00000006,0x0000020f, + 0x0000020d,0x0000020e,0x0003003e,0x0000020c,0x0000020f,0x0004003d,0x00000006,0x00000211, + 0x00000155,0x00050085,0x00000006,0x00000213,0x00000211,0x00000212,0x0003003e,0x00000210, + 0x00000213,0x0004003d,0x00000006,0x00000214,0x0000020c,0x0004003d,0x00000006,0x00000215, + 0x00000201,0x0004003d,0x00000006,0x00000216,0x000001da,0x00050085,0x00000006,0x00000217, + 0x00000215,0x00000216,0x0004003d,0x00000006,0x00000218,0x00000210,0x00050081,0x00000006, + 0x00000219,0x00000217,0x00000218,0x000500bc,0x00000034,0x0000021a,0x00000214,0x00000219, + 0x000300f7,0x0000021c,0x00000000,0x000400fa,0x0000021a,0x0000021b,0x00000225,0x000200f8, + 0x0000021b,0x0004003d,0x00000006,0x0000021e,0x0000020c,0x0004003d,0x00000006,0x0000021f, + 0x000001da,0x00050088,0x00000006,0x00000220,0x00000059,0x0000021f,0x00050085,0x00000006, + 0x00000221,0x0000021e,0x00000220,0x0003003e,0x0000021d,0x00000221,0x0004003d,0x0000000c, + 0x00000222,0x000001cd,0x0004003d,0x00000006,0x00000223,0x0000021d,0x0005008e,0x0000000c, + 0x00000224,0x00000222,0x00000223,0x0003003e,0x0000016b,0x00000224,0x000200f9,0x0000021c, + 0x000200f8,0x00000225,0x0004003d,0x0000000c,0x00000227,0x000001cd,0x0004003d,0x00000006, + 0x00000228,0x00000201,0x0005008e,0x0000000c,0x00000229,0x00000227,0x00000228,0x0003003e, + 0x00000226,0x00000229,0x0004003d,0x0000000c,0x0000022b,0x0000016b,0x0004003d,0x0000000c, + 0x0000022c,0x0000016b,0x00050094,0x00000006,0x0000022d,0x0000022b,0x0000022c,0x0004003d, + 0x0000000c,0x0000022e,0x00000226,0x0004003d,0x0000000c,0x0000022f,0x00000226,0x00050094, + 0x00000006,0x00000230,0x0000022e,0x0000022f,0x00050050,0x0000000c,0x00000231,0x0000022d, + 0x00000230,0x0003003e,0x0000022a,0x00000231,0x0004003d,0x0000000c,0x00000232,0x0000022a, + 0x0004003d,0x0000000c,0x00000233,0x0000016b,0x0004003d,0x0000000c,0x00000234,0x00000226, + 0x00050051,0x00000006,0x00000235,0x00000233,0x00000000,0x00050051,0x00000006,0x00000236, + 0x00000233,0x00000001,0x00050051,0x00000006,0x00000237,0x00000234,0x00000000,0x00050051, + 0x00000006,0x00000238,0x00000234,0x00000001,0x00050050,0x0000000c,0x00000239,0x00000235, + 0x00000236,0x00050050,0x0000000c,0x0000023a,0x00000237,0x00000238,0x00050050,0x0000001c, + 0x0000023b,0x00000239,0x0000023a,0x0006000c,0x0000001c,0x0000023c,0x00000001,0x00000022, + 0x0000023b,0x00050090,0x0000000c,0x0000023d,0x00000232,0x0000023c,0x0003003e,0x0000016b, + 0x0000023d,0x000200f9,0x0000021c,0x000200f8,0x0000021c,0x000200f9,0x0000020b,0x000200f8, + 0x0000020b,0x0004003d,0x00000006,0x0000023f,0x00000089,0x0006000c,0x00000006,0x00000240, + 0x00000001,0x00000004,0x0000023f,0x0004003d,0x0000000c,0x00000241,0x0000016b,0x0005008e, + 0x0000000c,0x00000242,0x00000241,0x00000240,0x0003003e,0x0000023e,0x00000242,0x0004003d, + 0x00000006,0x00000244,0x00000201,0x0004003d,0x0000000c,0x00000245,0x0000023e,0x0004003d, + 0x0000000c,0x00000246,0x000001cd,0x00050094,0x00000006,0x00000247,0x00000245,0x00000246, + 0x00050083,0x00000006,0x00000248,0x00000244,0x00000247,0x0004003d,0x00000006,0x00000249, + 0x000001d4,0x00050085,0x00000006,0x0000024a,0x00000249,0x00000059,0x00050088,0x00000006, + 0x0000024b,0x00000248,0x0000024a,0x0003003e,0x00000243,0x0000024b,0x0004003d,0x00000021, + 0x0000024c,0x000000b5,0x000500c7,0x00000021,0x0000024d,0x0000024c,0x00000146,0x000500ab, + 0x00000034,0x0000024e,0x0000024d,0x0000004d,0x000300f7,0x00000250,0x00000000,0x000400fa, + 0x0000024e,0x0000024f,0x00000255,0x000200f8,0x0000024f,0x0004003d,0x00000006,0x00000252, + 0x00000243,0x0003003e,0x00000251,0x00000252,0x00050039,0x00000006,0x00000253,0x0000000a, + 0x00000251,0x00050041,0x00000007,0x00000254,0x0000003b,0x00000050,0x0003003e,0x00000254, + 0x00000253,0x000200f9,0x00000250,0x000200f8,0x00000255,0x0004003d,0x00000006,0x00000257, + 0x00000243,0x0003003e,0x00000256,0x00000257,0x00050039,0x00000006,0x00000258,0x0000000a, + 0x00000256,0x00050041,0x00000007,0x00000259,0x0000003b,0x0000004d,0x0003003e,0x00000259, + 0x00000258,0x000200f9,0x00000250,0x000200f8,0x00000250,0x000200f9,0x0000018e,0x000200f8, + 0x0000018e,0x0004003d,0x00000006,0x0000025a,0x0000015d,0x0004003d,0x0000000c,0x0000025b, + 0x0000003b,0x0005008e,0x0000000c,0x0000025c,0x0000025b,0x0000025a,0x0003003e,0x0000003b, + 0x0000025c,0x00050041,0x00000007,0x0000025d,0x0000003b,0x00000050,0x0004003d,0x00000006, + 0x0000025e,0x0000025d,0x0003003e,0x00000260,0x0000025f,0x00050039,0x00000006,0x00000261, + 0x00000013,0x00000260,0x0007000c,0x00000006,0x00000262,0x00000001,0x00000028,0x0000025e, + 0x00000261,0x00050041,0x00000007,0x00000263,0x0000003b,0x00000050,0x0003003e,0x00000263, + 0x00000262,0x0004003d,0x0000001c,0x00000265,0x000000ce,0x0004003d,0x00000006,0x00000266, + 0x00000089,0x0004003d,0x0000000c,0x00000267,0x0000016b,0x0005008e,0x0000000c,0x00000268, + 0x00000267,0x00000266,0x00050091,0x0000000c,0x00000269,0x00000265,0x00000268,0x0003003e, + 0x00000264,0x00000269,0x0004003d,0x00000027,0x0000026a,0x00000097,0x000500ab,0x00000034, + 0x0000026b,0x0000026a,0x000000b3,0x000300f7,0x0000026d,0x00000000,0x000400fa,0x0000026b, + 0x0000026c,0x0000026d,0x000200f8,0x0000026c,0x000200fe,0x0000026e,0x000200f8,0x0000026d, + 0x000200f9,0x0000013f,0x000200f8,0x00000270,0x0004003d,0x00000027,0x00000271,0x00000097, + 0x000500aa,0x00000034,0x00000272,0x00000271,0x00000095,0x000300f7,0x00000274,0x00000000, + 0x000400fa,0x00000272,0x00000273,0x00000274,0x000200f8,0x00000273,0x0004003d,0x0000000c, + 0x00000275,0x000000c3,0x0003003e,0x00000138,0x00000275,0x000200f9,0x00000274,0x000200f8, + 0x00000274,0x0004003d,0x00000006,0x00000276,0x00000089,0x0004003d,0x0000000c,0x00000277, + 0x00000131,0x0005008e,0x0000000c,0x00000278,0x00000277,0x00000276,0x0004003d,0x0000001c, + 0x00000279,0x000000ce,0x0006000c,0x0000001c,0x0000027a,0x00000001,0x00000022,0x00000279, + 0x00050090,0x0000000c,0x0000027b,0x00000278,0x0000027a,0x0006000c,0x0000000c,0x0000027c, + 0x00000001,0x00000006,0x0000027b,0x0005008e,0x0000000c,0x0000027d,0x0000027c,0x0000015b, + 0x0003003e,0x00000264,0x0000027d,0x0004003d,0x00000021,0x0000027e,0x000000b5,0x000500c7, + 0x00000021,0x0000027f,0x0000027e,0x000000eb,0x000500ab,0x00000034,0x00000280,0x0000027f, + 0x0000004d,0x0004003d,0x00000021,0x00000281,0x000000b5,0x000500c7,0x00000021,0x00000283, + 0x00000281,0x00000282,0x000500ab,0x00000034,0x00000284,0x00000283,0x0000004d,0x000500a5, + 0x00000034,0x00000285,0x00000280,0x00000284,0x000300f7,0x00000287,0x00000000,0x000400fa, + 0x00000285,0x00000286,0x00000287,0x000200f8,0x00000286,0x0004003d,0x00000006,0x00000288, + 0x0000008c,0x0004007f,0x00000006,0x00000289,0x00000288,0x0003003e,0x0000008c,0x00000289, + 0x000200f9,0x00000287,0x000200f8,0x00000287,0x0004003d,0x00000006,0x0000028c,0x0000008c, + 0x0003003e,0x0000028b,0x0000028c,0x0003003e,0x0000028d,0x0000028a,0x00060039,0x0000000c, + 0x0000028e,0x00000018,0x0000028b,0x0000028d,0x0003003e,0x0000003b,0x0000028e,0x0004003d, + 0x00000021,0x0000028f,0x000000b5,0x000500c7,0x00000021,0x00000291,0x0000028f,0x00000290, + 0x000500ab,0x00000034,0x00000292,0x00000291,0x0000004d,0x0004003d,0x00000027,0x00000293, + 0x00000097,0x000500ab,0x00000034,0x00000294,0x00000293,0x000000a0,0x000500a7,0x00000034, + 0x00000295,0x00000292,0x00000294,0x000300f7,0x00000297,0x00000000,0x000400fa,0x00000295, + 0x00000296,0x00000297,0x000200f8,0x00000296,0x000200fe,0x0000026e,0x000200f8,0x00000297, + 0x000200f9,0x0000013f,0x000200f8,0x0000013f,0x0004003d,0x0000001c,0x00000299,0x000000ce, + 0x0004003d,0x0000000c,0x0000029a,0x00000138,0x00050091,0x0000000c,0x0000029b,0x00000299, + 0x0000029a,0x0004003d,0x0000000c,0x0000029c,0x00000264,0x00050081,0x0000000c,0x0000029d, + 0x0000029b,0x0000029c,0x0004003d,0x0000000c,0x0000029e,0x000000e1,0x00050081,0x0000000c, + 0x0000029f,0x0000029d,0x0000029e,0x0003003e,0x0000003a,0x0000029f,0x000200fe,0x000002a0, + 0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_image_mesh.frag.h b/defold-rive/include/generated/shaders/spirv/draw_image_mesh.frag.h new file mode 100644 index 00000000..b75f1778 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_image_mesh.frag.h @@ -0,0 +1,911 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_image_mesh_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000397,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000c000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000305, + 0x0000030e,0x0000031d,0x0000037e,0x00000381,0x00000387,0x00000396,0x00030010,0x00000004, + 0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168, + 0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00090005, + 0x0000000b,0x74736163,0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61,0x34667628,0x0000003b, + 0x00040005,0x0000000a,0x777a7978,0x00000000,0x00080005,0x00000011,0x74736163,0x6e69755f, + 0x6f745f74,0x6873755f,0x2874726f,0x003b3175,0x00030005,0x00000010,0x00000078,0x00060005, + 0x00000016,0x656b616d,0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000015,0x00000078, + 0x00080005,0x0000001d,0x656b616d,0x6c61685f,0x66283366,0x31663b31,0x3b31663b,0x00000000, + 0x00030005,0x0000001a,0x00000078,0x00030005,0x0000001b,0x00000079,0x00030005,0x0000001c, + 0x0000007a,0x00060005,0x00000021,0x656b616d,0x6c61685f,0x66283366,0x00003b31,0x00030005, + 0x00000020,0x00000078,0x00070005,0x00000027,0x656b616d,0x6c61685f,0x76283466,0x663b3366, + 0x00003b31,0x00030005,0x00000025,0x007a7978,0x00030005,0x00000026,0x00000077,0x00090005, + 0x0000002e,0x656b616d,0x6c61685f,0x33783366,0x33667628,0x3366763b,0x3366763b,0x0000003b, + 0x00030005,0x0000002b,0x00000061,0x00030005,0x0000002c,0x00000062,0x00030005,0x0000002d, + 0x00000063,0x00060005,0x00000031,0x756d6e75,0x7069746c,0x7628796c,0x003b3466,0x00040005, + 0x00000030,0x6f6c6f63,0x00000072,0x00060005,0x00000035,0x5f6e696d,0x756c6176,0x66762865, + 0x00003b34,0x00040005,0x00000034,0x346e696d,0x00000000,0x00050005,0x00000039,0x766e696d, + 0x66762833,0x00003b33,0x00030005,0x00000038,0x00000063,0x00050005,0x0000003c,0x7678616d, + 0x66762833,0x00003b33,0x00030005,0x0000003b,0x00000063,0x00050005,0x0000003f,0x766d756c, + 0x66762833,0x00003b33,0x00030005,0x0000003e,0x00000063,0x00050005,0x00000042,0x76746173, + 0x66762833,0x00003b33,0x00030005,0x00000041,0x00000063,0x00060005,0x00000046,0x70696c63, + 0x6c6f635f,0x7628726f,0x003b3366,0x00040005,0x00000045,0x6f6c6f63,0x00000072,0x00070005, + 0x0000004b,0x5f746573,0x286d756c,0x3b336676,0x3b336676,0x00000000,0x00040005,0x00000049, + 0x73616263,0x00000065,0x00040005,0x0000004a,0x6d756c63,0x00000000,0x00090005,0x00000051, + 0x5f746573,0x5f6d756c,0x28746173,0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005, + 0x0000004e,0x73616263,0x00000065,0x00040005,0x0000004f,0x74617363,0x00000000,0x00040005, + 0x00000050,0x6d756c63,0x00000000,0x000b0005,0x00000057,0x61766461,0x6465636e,0x656c625f, + 0x635f646e,0x6666656f,0x66762873,0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000054, + 0x00637273,0x00030005,0x00000055,0x00747364,0x00040005,0x00000056,0x65646f6d,0x00000000, + 0x00090005,0x0000005d,0x61766461,0x6465636e,0x656c625f,0x7628646e,0x763b3466,0x753b3466, + 0x00003b31,0x00030005,0x0000005a,0x00637273,0x00030005,0x0000005b,0x00747364,0x00040005, + 0x0000005c,0x65646f6d,0x00000000,0x00030005,0x0000006c,0x00746572,0x00030005,0x00000079, + 0x00746572,0x00030005,0x00000083,0x00746572,0x00030005,0x00000092,0x00746572,0x00040005, + 0x000000bc,0x61726170,0x0000006d,0x00040005,0x000000c1,0x61726170,0x0000006d,0x00040005, + 0x000000d1,0x326e696d,0x00000000,0x00040005,0x000000d7,0x316e696d,0x00000000,0x00040005, + 0x000000f8,0x61726170,0x0000006d,0x00040005,0x000000f9,0x61726170,0x0000006d,0x00040005, + 0x000000fa,0x61726170,0x0000006d,0x00040005,0x000000ff,0x61726170,0x0000006d,0x00040005, + 0x00000102,0x61726170,0x0000006d,0x00030005,0x00000108,0x006d756c,0x00040005,0x00000109, + 0x61726170,0x0000006d,0x00040005,0x0000010c,0x636e696d,0x00006c6f,0x00040005,0x0000010d, + 0x61726170,0x0000006d,0x00040005,0x00000110,0x6378616d,0x00006c6f,0x00040005,0x00000111, + 0x61726170,0x0000006d,0x00040005,0x0000013c,0x7361626c,0x00000065,0x00040005,0x0000013d, + 0x61726170,0x0000006d,0x00040005,0x00000140,0x6d756c6c,0x00000000,0x00040005,0x00000141, + 0x61726170,0x0000006d,0x00040005,0x00000144,0x6669646c,0x00000066,0x00040005,0x00000148, + 0x6f6c6f63,0x00000072,0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005,0x0000014e, + 0x61726170,0x0000006d,0x00040005,0x00000153,0x626e696d,0x00657361,0x00040005,0x00000154, + 0x61726170,0x0000006d,0x00040005,0x00000157,0x73616273,0x00000065,0x00040005,0x00000158, + 0x61726170,0x0000006d,0x00040005,0x0000015b,0x74617373,0x00000000,0x00040005,0x0000015c, + 0x61726170,0x0000006d,0x00040005,0x00000163,0x6f6c6f63,0x00000072,0x00040005,0x0000016e, + 0x61726170,0x0000006d,0x00040005,0x00000170,0x61726170,0x0000006d,0x00040005,0x00000172, + 0x61726170,0x0000006d,0x00040005,0x00000188,0x66656f63,0x00007366,0x00030005,0x00000196, + 0x00000069,0x00040005,0x000001cf,0x61726170,0x0000006d,0x00040005,0x000001d2,0x61726170, + 0x0000006d,0x00040005,0x000001d5,0x61726170,0x0000006d,0x00040005,0x000001e3,0x61726170, + 0x0000006d,0x00040005,0x000001e6,0x61726170,0x0000006d,0x00030005,0x000001eb,0x00000069, + 0x00030005,0x00000214,0x00000069,0x00080005,0x00000281,0x616e456b,0x48656c62,0x6c424c53, + 0x4d646e65,0x7365646f,0x00000000,0x00040005,0x00000285,0x61726170,0x0000006d,0x00040005, + 0x00000287,0x61726170,0x0000006d,0x00040005,0x0000028a,0x61726170,0x0000006d,0x00040005, + 0x0000028c,0x61726170,0x0000006d,0x00040005,0x0000028e,0x61726170,0x0000006d,0x00040005, + 0x00000295,0x61726170,0x0000006d,0x00040005,0x00000297,0x61726170,0x0000006d,0x00040005, + 0x0000029a,0x61726170,0x0000006d,0x00040005,0x0000029c,0x61726170,0x0000006d,0x00040005, + 0x0000029e,0x61726170,0x0000006d,0x00040005,0x000002a5,0x61726170,0x0000006d,0x00040005, + 0x000002a7,0x61726170,0x0000006d,0x00040005,0x000002aa,0x61726170,0x0000006d,0x00040005, + 0x000002ac,0x61726170,0x0000006d,0x00040005,0x000002b3,0x61726170,0x0000006d,0x00040005, + 0x000002b5,0x61726170,0x0000006d,0x00040005,0x000002b8,0x61726170,0x0000006d,0x00040005, + 0x000002ba,0x61726170,0x0000006d,0x00040005,0x000002c2,0x66656f63,0x00007366,0x00040005, + 0x000002c3,0x61726170,0x0000006d,0x00040005,0x000002c6,0x61726170,0x0000006d,0x00040005, + 0x000002c9,0x61726170,0x0000006d,0x00030005,0x000002cc,0x00616473,0x00030005,0x000002d2, + 0x00000070,0x00040005,0x000002db,0x61726170,0x0000006d,0x00040005,0x000002dd,0x61726170, + 0x0000006d,0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002e0,0x61726170, + 0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005,0x000002e5,0x61726170, + 0x0000006d,0x00040005,0x000002f4,0x61726170,0x0000006d,0x00040005,0x000002f5,0x61726170, + 0x0000006d,0x00040005,0x000002f9,0x6f6c6f63,0x00000072,0x00080005,0x000002fc,0x5058455f, + 0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005,0x00000300,0x67616d69, + 0x6d615365,0x72656c70,0x00000000,0x00050005,0x00000305,0x65745f76,0x6f6f4378,0x00006472, + 0x00050005,0x00000308,0x65766f63,0x65676172,0x00000000,0x00060005,0x00000309,0x616e456b, + 0x43656c62,0x5270696c,0x00746365,0x00070005,0x0000030c,0x70696c63,0x74636552,0x65766f43, + 0x65676172,0x00000000,0x00050005,0x0000030e,0x6c635f76,0x65527069,0x00007463,0x00040005, + 0x0000030f,0x61726170,0x0000006d,0x00040005,0x00000312,0x61726170,0x0000006d,0x00040005, + 0x00000315,0x61726170,0x0000006d,0x00060005,0x00000319,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00050005,0x0000031d,0x6c635f76,0x44497069,0x00000000,0x00050005,0x00000323, + 0x70696c63,0x61746144,0x00000000,0x00060005,0x00000326,0x5f6e695f,0x70696c63,0x66667542, + 0x00007265,0x00060005,0x0000032e,0x70696c63,0x746e6f43,0x49746e65,0x00000044,0x00060005, + 0x00000331,0x70696c63,0x65766f43,0x65676172,0x00000000,0x00040005,0x0000033b,0x61726170, + 0x0000006d,0x00090005,0x00000341,0x5058455f,0x4554524f,0x6d495f44,0x44656761,0x55776172, + 0x6f66696e,0x00736d72,0x00060006,0x00000341,0x00000000,0x77656976,0x7274614d,0x00007869, + 0x00060006,0x00000341,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006,0x00000341, + 0x00000002,0x6361706f,0x00797469,0x00050006,0x00000341,0x00000003,0x64646170,0x00676e69, + 0x00090006,0x00000341,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461, + 0x00000078,0x000a0006,0x00000341,0x00000005,0x70696c63,0x74636552,0x65766e49,0x54657372, + 0x736e6172,0x6574616c,0x00000000,0x00050006,0x00000341,0x00000006,0x70696c63,0x00004449, + 0x00060006,0x00000341,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006,0x00000341, + 0x00000008,0x646e497a,0x00007865,0x00070005,0x00000343,0x67616d69,0x61724465,0x696e5577, + 0x6d726f66,0x00000073,0x00050005,0x0000034d,0x43747364,0x726f6c6f,0x00000000,0x00060005, + 0x00000350,0x5f6e695f,0x6f6c6f63,0x66754272,0x00726566,0x00080005,0x00000353,0x616e456b, + 0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00040005,0x0000035e,0x61726170, + 0x0000006d,0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000365,0x61726170, + 0x0000006d,0x00040005,0x00000367,0x61726170,0x0000006d,0x00040005,0x00000368,0x61726170, + 0x0000006d,0x00050005,0x0000037e,0x6f6c6f63,0x66754272,0x00726566,0x00050005,0x00000381, + 0x70696c63,0x66667542,0x00007265,0x00070005,0x00000387,0x65766f63,0x65676172,0x6e756f43, + 0x66754274,0x00726566,0x00080005,0x00000388,0x5f6e695f,0x65766f63,0x65676172,0x6e756f43, + 0x66754274,0x00726566,0x00060005,0x0000038d,0x616e456b,0x45656c62,0x4f6e6576,0x00006464, + 0x00080005,0x0000038e,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067, + 0x00060005,0x0000038f,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x00000390, + 0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00080005, + 0x00000392,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006, + 0x00000392,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00090006,0x00000392,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x000b0006,0x00000392,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x00000392,0x00000003,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006, + 0x00000392,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006, + 0x00000392,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006, + 0x00000392,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000392, + 0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000392, + 0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000, + 0x00090006,0x00000392,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665, + 0x00000000,0x00080006,0x00000392,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261, + 0x00000079,0x00080006,0x00000392,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664, + 0x00006575,0x00050005,0x00000394,0x66696e75,0x736d726f,0x00000000,0x00080005,0x00000395, + 0x5f6e695f,0x61726373,0x43686374,0x726f6c6f,0x66667542,0x00007265,0x00070005,0x00000396, + 0x61726373,0x43686374,0x726f6c6f,0x66667542,0x00007265,0x00030047,0x0000000b,0x00000000, + 0x00030047,0x00000011,0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000015, + 0x00000000,0x00030047,0x0000001d,0x00000000,0x00030047,0x0000001a,0x00000000,0x00030047, + 0x0000001b,0x00000000,0x00030047,0x0000001c,0x00000000,0x00030047,0x00000021,0x00000000, + 0x00030047,0x00000020,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047,0x00000025, + 0x00000000,0x00030047,0x00000026,0x00000000,0x00030047,0x0000002e,0x00000000,0x00030047, + 0x0000002b,0x00000000,0x00030047,0x0000002c,0x00000000,0x00030047,0x0000002d,0x00000000, + 0x00030047,0x00000031,0x00000000,0x00030047,0x00000030,0x00000000,0x00030047,0x00000035, + 0x00000000,0x00030047,0x00000034,0x00000000,0x00030047,0x00000039,0x00000000,0x00030047, + 0x00000038,0x00000000,0x00030047,0x0000003c,0x00000000,0x00030047,0x0000003b,0x00000000, + 0x00030047,0x0000003f,0x00000000,0x00030047,0x0000003e,0x00000000,0x00030047,0x00000042, + 0x00000000,0x00030047,0x00000041,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047, + 0x00000045,0x00000000,0x00030047,0x0000004b,0x00000000,0x00030047,0x00000049,0x00000000, + 0x00030047,0x0000004a,0x00000000,0x00030047,0x00000051,0x00000000,0x00030047,0x0000004e, + 0x00000000,0x00030047,0x0000004f,0x00000000,0x00030047,0x00000050,0x00000000,0x00030047, + 0x00000057,0x00000000,0x00030047,0x00000054,0x00000000,0x00030047,0x00000055,0x00000000, + 0x00030047,0x00000056,0x00000000,0x00030047,0x0000005d,0x00000000,0x00030047,0x0000005a, + 0x00000000,0x00030047,0x0000005b,0x00000000,0x00030047,0x0000005c,0x00000000,0x00030047, + 0x00000060,0x00000000,0x00030047,0x00000061,0x00000000,0x00030047,0x00000065,0x00000000, + 0x00030047,0x00000066,0x00000000,0x00030047,0x00000069,0x00000000,0x00030047,0x0000006c, + 0x00000000,0x00030047,0x0000006d,0x00000000,0x00030047,0x00000070,0x00000000,0x00030047, + 0x00000073,0x00000000,0x00030047,0x00000076,0x00000000,0x00030047,0x00000079,0x00000000, + 0x00030047,0x0000007a,0x00000000,0x00030047,0x0000007c,0x00000000,0x00030047,0x0000007e, + 0x00000000,0x00030047,0x00000080,0x00000000,0x00030047,0x00000083,0x00000000,0x00030047, + 0x00000084,0x00000000,0x00030047,0x0000008b,0x00000000,0x00030047,0x0000008e,0x00000000, + 0x00030047,0x00000092,0x00000000,0x00030047,0x00000095,0x00000000,0x00030047,0x00000098, + 0x00000000,0x00030047,0x0000009b,0x00000000,0x00030047,0x0000009d,0x00000000,0x00030047, + 0x000000a3,0x00000000,0x00030047,0x000000a8,0x00000000,0x00030047,0x000000af,0x00000000, + 0x00030047,0x000000b0,0x00000000,0x00030047,0x000000b1,0x00000000,0x00030047,0x000000b2, + 0x00000000,0x00030047,0x000000b3,0x00000000,0x00030047,0x000000ba,0x00000000,0x00030047, + 0x000000bb,0x00000000,0x00030047,0x000000bc,0x00000000,0x00030047,0x000000bd,0x00000000, + 0x00030047,0x000000be,0x00000000,0x00030047,0x000000bf,0x00000000,0x00030047,0x000000c1, + 0x00000000,0x00030047,0x000000c2,0x00000000,0x00030047,0x000000c4,0x00000000,0x00030047, + 0x000000c5,0x00000000,0x00030047,0x000000cc,0x00000000,0x00030047,0x000000d1,0x00000000, + 0x00030047,0x000000d2,0x00000000,0x00030047,0x000000d3,0x00000000,0x00030047,0x000000d4, + 0x00000000,0x00030047,0x000000d5,0x00000000,0x00030047,0x000000d6,0x00000000,0x00030047, + 0x000000d7,0x00000000,0x00030047,0x000000d9,0x00000000,0x00030047,0x000000db,0x00000000, + 0x00030047,0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000,0x00030047,0x000000e1, + 0x00000000,0x00030047,0x000000e3,0x00000000,0x00030047,0x000000e4,0x00000000,0x00030047, + 0x000000e6,0x00000000,0x00030047,0x000000e7,0x00000000,0x00030047,0x000000eb,0x00000000, + 0x00030047,0x000000ed,0x00000000,0x00030047,0x000000ee,0x00000000,0x00030047,0x000000f0, + 0x00000000,0x00030047,0x000000f1,0x00000000,0x00030047,0x000000f4,0x00000000,0x00030047, + 0x000000f8,0x00000000,0x00030047,0x000000f9,0x00000000,0x00030047,0x000000fa,0x00000000, + 0x00030047,0x000000fb,0x00000000,0x00030047,0x000000fc,0x00000000,0x00030047,0x000000ff, + 0x00000000,0x00030047,0x00000100,0x00000000,0x00030047,0x00000101,0x00000000,0x00030047, + 0x00000102,0x00000000,0x00030047,0x00000103,0x00000000,0x00030047,0x00000104,0x00000000, + 0x00030047,0x00000105,0x00000000,0x00030047,0x00000108,0x00000000,0x00030047,0x00000109, + 0x00000000,0x00030047,0x0000010a,0x00000000,0x00030047,0x0000010b,0x00000000,0x00030047, + 0x0000010c,0x00000000,0x00030047,0x0000010d,0x00000000,0x00030047,0x0000010e,0x00000000, + 0x00030047,0x0000010f,0x00000000,0x00030047,0x00000110,0x00000000,0x00030047,0x00000111, + 0x00000000,0x00030047,0x00000112,0x00000000,0x00030047,0x00000113,0x00000000,0x00030047, + 0x00000114,0x00000000,0x00030047,0x00000118,0x00000000,0x00030047,0x00000119,0x00000000, + 0x00030047,0x0000011a,0x00000000,0x00030047,0x0000011b,0x00000000,0x00030047,0x0000011c, + 0x00000000,0x00030047,0x0000011d,0x00000000,0x00030047,0x0000011e,0x00000000,0x00030047, + 0x0000011f,0x00000000,0x00030047,0x00000120,0x00000000,0x00030047,0x00000121,0x00000000, + 0x00030047,0x00000122,0x00000000,0x00030047,0x00000123,0x00000000,0x00030047,0x00000124, + 0x00000000,0x00030047,0x00000125,0x00000000,0x00030047,0x00000126,0x00000000,0x00030047, + 0x0000012a,0x00000000,0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012c,0x00000000, + 0x00030047,0x0000012d,0x00000000,0x00030047,0x0000012e,0x00000000,0x00030047,0x0000012f, + 0x00000000,0x00030047,0x00000130,0x00000000,0x00030047,0x00000131,0x00000000,0x00030047, + 0x00000132,0x00000000,0x00030047,0x00000133,0x00000000,0x00030047,0x00000134,0x00000000, + 0x00030047,0x00000135,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047,0x00000137, + 0x00000000,0x00030047,0x00000138,0x00000000,0x00030047,0x00000139,0x00000000,0x00030047, + 0x0000013c,0x00000000,0x00030047,0x0000013d,0x00000000,0x00030047,0x0000013e,0x00000000, + 0x00030047,0x0000013f,0x00000000,0x00030047,0x00000140,0x00000000,0x00030047,0x00000141, + 0x00000000,0x00030047,0x00000142,0x00000000,0x00030047,0x00000143,0x00000000,0x00030047, + 0x00000144,0x00000000,0x00030047,0x00000145,0x00000000,0x00030047,0x00000146,0x00000000, + 0x00030047,0x00000147,0x00000000,0x00030047,0x00000148,0x00000000,0x00030047,0x00000149, + 0x00000000,0x00030047,0x0000014a,0x00000000,0x00030047,0x0000014b,0x00000000,0x00030047, + 0x0000014c,0x00000000,0x00030047,0x0000014d,0x00000000,0x00030047,0x0000014e,0x00000000, + 0x00030047,0x0000014f,0x00000000,0x00030047,0x00000150,0x00000000,0x00030047,0x00000153, + 0x00000000,0x00030047,0x00000154,0x00000000,0x00030047,0x00000155,0x00000000,0x00030047, + 0x00000156,0x00000000,0x00030047,0x00000157,0x00000000,0x00030047,0x00000158,0x00000000, + 0x00030047,0x00000159,0x00000000,0x00030047,0x0000015a,0x00000000,0x00030047,0x0000015b, + 0x00000000,0x00030047,0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000,0x00030047, + 0x0000015e,0x00000000,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000163,0x00000000, + 0x00030047,0x00000164,0x00000000,0x00030047,0x00000165,0x00000000,0x00030047,0x00000166, + 0x00000000,0x00030047,0x00000167,0x00000000,0x00030047,0x00000168,0x00000000,0x00030047, + 0x00000169,0x00000000,0x00030047,0x0000016a,0x00000000,0x00030047,0x0000016b,0x00000000, + 0x00030047,0x0000016c,0x00000000,0x00030047,0x0000016e,0x00000000,0x00030047,0x0000016f, + 0x00000000,0x00030047,0x00000170,0x00000000,0x00030047,0x00000171,0x00000000,0x00030047, + 0x00000172,0x00000000,0x00030047,0x00000173,0x00000000,0x00030047,0x00000174,0x00000000, + 0x00030047,0x00000177,0x00000000,0x00030047,0x00000188,0x00000000,0x00030047,0x00000189, + 0x00000000,0x00030047,0x0000018a,0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047, + 0x0000018d,0x00000000,0x00030047,0x0000018e,0x00000000,0x00030047,0x0000018f,0x00000000, + 0x00030047,0x00000190,0x00000000,0x00030047,0x00000191,0x00000000,0x00030047,0x00000192, + 0x00000000,0x00030047,0x00000193,0x00000000,0x00030047,0x000001a1,0x00000000,0x00030047, + 0x000001aa,0x00000000,0x00030047,0x000001ab,0x00000000,0x00030047,0x000001ae,0x00000000, + 0x00030047,0x000001af,0x00000000,0x00030047,0x000001b5,0x00000000,0x00030047,0x000001b6, + 0x00000000,0x00030047,0x000001b7,0x00000000,0x00030047,0x000001ba,0x00000000,0x00030047, + 0x000001bb,0x00000000,0x00030047,0x000001bc,0x00000000,0x00030047,0x000001bd,0x00000000, + 0x00030047,0x000001c2,0x00000000,0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4, + 0x00000000,0x00030047,0x000001c6,0x00000000,0x00030047,0x000001c7,0x00000000,0x00030047, + 0x000001c8,0x00000000,0x00030047,0x000001ca,0x00000000,0x00030047,0x000001cb,0x00000000, + 0x00030047,0x000001cc,0x00000000,0x00030047,0x000001cd,0x00000000,0x00030047,0x000001ce, + 0x00000000,0x00030047,0x000001cf,0x00000000,0x00030047,0x000001d0,0x00000000,0x00030047, + 0x000001d1,0x00000000,0x00030047,0x000001d2,0x00000000,0x00030047,0x000001d3,0x00000000, + 0x00030047,0x000001d4,0x00000000,0x00030047,0x000001d5,0x00000000,0x00030047,0x000001d6, + 0x00000000,0x00030047,0x000001d7,0x00000000,0x00030047,0x000001d8,0x00000000,0x00030047, + 0x000001da,0x00000000,0x00030047,0x000001db,0x00000000,0x00030047,0x000001dc,0x00000000, + 0x00030047,0x000001dd,0x00000000,0x00030047,0x000001de,0x00000000,0x00030047,0x000001df, + 0x00000000,0x00030047,0x000001e0,0x00000000,0x00030047,0x000001e1,0x00000000,0x00030047, + 0x000001e2,0x00000000,0x00030047,0x000001e3,0x00000000,0x00030047,0x000001e4,0x00000000, + 0x00030047,0x000001e5,0x00000000,0x00030047,0x000001e6,0x00000000,0x00030047,0x000001e7, + 0x00000000,0x00030047,0x000001e8,0x00000000,0x00030047,0x000001e9,0x00000000,0x00030047, + 0x000001f5,0x00000000,0x00030047,0x000001fc,0x00000000,0x00030047,0x000001fd,0x00000000, + 0x00030047,0x00000200,0x00000000,0x00030047,0x00000201,0x00000000,0x00030047,0x00000207, + 0x00000000,0x00030047,0x00000208,0x00000000,0x00030047,0x00000209,0x00000000,0x00030047, + 0x0000020c,0x00000000,0x00030047,0x0000020d,0x00000000,0x00030047,0x0000020e,0x00000000, + 0x00030047,0x0000020f,0x00000000,0x00030047,0x0000021e,0x00000000,0x00030047,0x00000225, + 0x00000000,0x00030047,0x00000228,0x00000000,0x00030047,0x00000229,0x00000000,0x00030047, + 0x0000022a,0x00000000,0x00030047,0x0000022d,0x00000000,0x00030047,0x0000022e,0x00000000, + 0x00030047,0x00000231,0x00000000,0x00030047,0x00000232,0x00000000,0x00030047,0x00000233, + 0x00000000,0x00030047,0x00000234,0x00000000,0x00030047,0x00000239,0x00000000,0x00030047, + 0x00000241,0x00000000,0x00030047,0x00000244,0x00000000,0x00030047,0x00000245,0x00000000, + 0x00030047,0x00000246,0x00000000,0x00030047,0x00000249,0x00000000,0x00030047,0x0000024a, + 0x00000000,0x00030047,0x0000024e,0x00000000,0x00030047,0x0000024f,0x00000000,0x00030047, + 0x00000251,0x00000000,0x00030047,0x00000254,0x00000000,0x00030047,0x00000255,0x00000000, + 0x00030047,0x00000257,0x00000000,0x00030047,0x00000258,0x00000000,0x00030047,0x00000259, + 0x00000000,0x00030047,0x0000025f,0x00000000,0x00030047,0x00000262,0x00000000,0x00030047, + 0x00000263,0x00000000,0x00030047,0x00000264,0x00000000,0x00030047,0x00000267,0x00000000, + 0x00030047,0x00000268,0x00000000,0x00030047,0x0000026b,0x00000000,0x00030047,0x0000026c, + 0x00000000,0x00030047,0x0000026d,0x00000000,0x00030047,0x0000026e,0x00000000,0x00030047, + 0x00000273,0x00000000,0x00030047,0x00000274,0x00000000,0x00030047,0x00000275,0x00000000, + 0x00030047,0x00000276,0x00000000,0x00030047,0x00000278,0x00000000,0x00030047,0x00000279, + 0x00000000,0x00030047,0x0000027a,0x00000000,0x00030047,0x0000027b,0x00000000,0x00030047, + 0x0000027c,0x00000000,0x00030047,0x0000027d,0x00000000,0x00030047,0x0000027e,0x00000000, + 0x00030047,0x0000027f,0x00000000,0x00040047,0x00000281,0x00000001,0x00000005,0x00030047, + 0x00000284,0x00000000,0x00030047,0x00000285,0x00000000,0x00030047,0x00000286,0x00000000, + 0x00030047,0x00000287,0x00000000,0x00030047,0x00000288,0x00000000,0x00030047,0x00000289, + 0x00000000,0x00030047,0x0000028a,0x00000000,0x00030047,0x0000028b,0x00000000,0x00030047, + 0x0000028c,0x00000000,0x00030047,0x0000028d,0x00000000,0x00030047,0x0000028e,0x00000000, + 0x00030047,0x0000028f,0x00000000,0x00030047,0x00000290,0x00000000,0x00030047,0x00000294, + 0x00000000,0x00030047,0x00000295,0x00000000,0x00030047,0x00000296,0x00000000,0x00030047, + 0x00000297,0x00000000,0x00030047,0x00000298,0x00000000,0x00030047,0x00000299,0x00000000, + 0x00030047,0x0000029a,0x00000000,0x00030047,0x0000029b,0x00000000,0x00030047,0x0000029c, + 0x00000000,0x00030047,0x0000029d,0x00000000,0x00030047,0x0000029e,0x00000000,0x00030047, + 0x0000029f,0x00000000,0x00030047,0x000002a0,0x00000000,0x00030047,0x000002a4,0x00000000, + 0x00030047,0x000002a5,0x00000000,0x00030047,0x000002a6,0x00000000,0x00030047,0x000002a7, + 0x00000000,0x00030047,0x000002a8,0x00000000,0x00030047,0x000002a9,0x00000000,0x00030047, + 0x000002aa,0x00000000,0x00030047,0x000002ab,0x00000000,0x00030047,0x000002ac,0x00000000, + 0x00030047,0x000002ad,0x00000000,0x00030047,0x000002ae,0x00000000,0x00030047,0x000002b2, + 0x00000000,0x00030047,0x000002b3,0x00000000,0x00030047,0x000002b4,0x00000000,0x00030047, + 0x000002b5,0x00000000,0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b7,0x00000000, + 0x00030047,0x000002b8,0x00000000,0x00030047,0x000002b9,0x00000000,0x00030047,0x000002ba, + 0x00000000,0x00030047,0x000002bb,0x00000000,0x00030047,0x000002bc,0x00000000,0x00030047, + 0x000002bf,0x00000000,0x00030047,0x000002c2,0x00000000,0x00030047,0x000002c3,0x00000000, + 0x00030047,0x000002c4,0x00000000,0x00030047,0x000002c5,0x00000000,0x00030047,0x000002c6, + 0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047,0x000002c8,0x00000000,0x00030047, + 0x000002c9,0x00000000,0x00030047,0x000002ca,0x00000000,0x00030047,0x000002cb,0x00000000, + 0x00030047,0x000002cc,0x00000000,0x00030047,0x000002ce,0x00000000,0x00030047,0x000002d0, + 0x00000000,0x00030047,0x000002d1,0x00000000,0x00030047,0x000002d2,0x00000000,0x00030047, + 0x000002d4,0x00000000,0x00030047,0x000002d5,0x00000000,0x00030047,0x000002d6,0x00000000, + 0x00030047,0x000002d8,0x00000000,0x00030047,0x000002d9,0x00000000,0x00030047,0x000002da, + 0x00000000,0x00030047,0x000002db,0x00000000,0x00030047,0x000002dc,0x00000000,0x00030047, + 0x000002dd,0x00000000,0x00030047,0x000002de,0x00000000,0x00030047,0x000002df,0x00000000, + 0x00030047,0x000002e0,0x00000000,0x00030047,0x000002e1,0x00000000,0x00030047,0x000002e2, + 0x00000000,0x00030047,0x000002e3,0x00000000,0x00030047,0x000002e4,0x00000000,0x00030047, + 0x000002e5,0x00000000,0x00030047,0x000002e6,0x00000000,0x00030047,0x000002e7,0x00000000, + 0x00030047,0x000002e8,0x00000000,0x00030047,0x000002e9,0x00000000,0x00030047,0x000002ea, + 0x00000000,0x00030047,0x000002ec,0x00000000,0x00030047,0x000002ee,0x00000000,0x00030047, + 0x000002ef,0x00000000,0x00030047,0x000002f0,0x00000000,0x00030047,0x000002f2,0x00000000, + 0x00030047,0x000002f3,0x00000000,0x00030047,0x000002f4,0x00000000,0x00030047,0x000002f5, + 0x00000000,0x00030047,0x000002f6,0x00000000,0x00030047,0x000002f9,0x00000000,0x00030047, + 0x000002fc,0x00000000,0x00040047,0x000002fc,0x00000022,0x00000001,0x00040047,0x000002fc, + 0x00000021,0x00000002,0x00030047,0x000002fd,0x00000000,0x00030047,0x00000300,0x00000000, + 0x00040047,0x00000300,0x00000022,0x00000002,0x00040047,0x00000300,0x00000021,0x00000002, + 0x00030047,0x00000301,0x00000000,0x00040047,0x00000305,0x0000001e,0x00000000,0x00030047, + 0x00000307,0x00000000,0x00030047,0x00000308,0x00000000,0x00040047,0x00000309,0x00000001, + 0x00000001,0x00030047,0x0000030c,0x00000000,0x00040047,0x0000030e,0x0000001e,0x00000002, + 0x00030047,0x00000311,0x00000000,0x00030047,0x00000312,0x00000000,0x00030047,0x00000313, + 0x00000000,0x00030047,0x00000314,0x00000000,0x00030047,0x00000315,0x00000000,0x00030047, + 0x00000316,0x00000000,0x00030047,0x00000317,0x00000000,0x00030047,0x00000318,0x00000000, + 0x00040047,0x00000319,0x00000001,0x00000000,0x00030047,0x0000031d,0x00000000,0x00030047, + 0x0000031d,0x0000000e,0x00040047,0x0000031d,0x0000001e,0x00000001,0x00030047,0x0000031e, + 0x00000000,0x00030047,0x00000323,0x00000000,0x00040047,0x00000326,0x00000022,0x00000003, + 0x00040047,0x00000326,0x00000021,0x00000001,0x00040047,0x00000326,0x0000002b,0x00000001, + 0x00030047,0x0000032e,0x00000000,0x00030047,0x00000330,0x00000000,0x00030047,0x00000331, + 0x00000000,0x00030047,0x00000332,0x00000000,0x00030047,0x00000333,0x00000000,0x00030047, + 0x00000335,0x00000000,0x00030047,0x00000339,0x00000000,0x00030047,0x0000033b,0x00000000, + 0x00030047,0x0000033c,0x00000000,0x00030047,0x0000033d,0x00000000,0x00030047,0x0000033e, + 0x00000000,0x00030047,0x0000033f,0x00000000,0x00030047,0x00000340,0x00000000,0x00050048, + 0x00000341,0x00000000,0x00000023,0x00000000,0x00050048,0x00000341,0x00000001,0x00000023, + 0x00000010,0x00050048,0x00000341,0x00000002,0x00000023,0x00000018,0x00050048,0x00000341, + 0x00000003,0x00000023,0x0000001c,0x00050048,0x00000341,0x00000004,0x00000023,0x00000020, + 0x00050048,0x00000341,0x00000005,0x00000023,0x00000030,0x00050048,0x00000341,0x00000006, + 0x00000023,0x00000038,0x00050048,0x00000341,0x00000007,0x00000023,0x0000003c,0x00050048, + 0x00000341,0x00000008,0x00000023,0x00000040,0x00030047,0x00000341,0x00000002,0x00040047, + 0x00000343,0x00000022,0x00000000,0x00040047,0x00000343,0x00000021,0x00000009,0x00030047, + 0x00000347,0x00000000,0x00030047,0x0000034a,0x00000000,0x00030047,0x0000034d,0x00000000, + 0x00030047,0x00000350,0x00000000,0x00040047,0x00000350,0x00000022,0x00000003,0x00040047, + 0x00000350,0x00000021,0x00000000,0x00040047,0x00000350,0x0000002b,0x00000000,0x00030047, + 0x00000351,0x00000000,0x00030047,0x00000352,0x00000000,0x00040047,0x00000353,0x00000001, + 0x00000002,0x00030047,0x0000035e,0x00000000,0x00030047,0x0000035f,0x00000000,0x00030047, + 0x00000360,0x00000000,0x00030047,0x00000364,0x00000000,0x00030047,0x00000365,0x00000000, + 0x00030047,0x00000366,0x00000000,0x00030047,0x00000367,0x00000000,0x00030047,0x00000368, + 0x00000000,0x00030047,0x00000369,0x00000000,0x00030047,0x0000036c,0x00000000,0x00030047, + 0x0000036d,0x00000000,0x00030047,0x0000036e,0x00000000,0x00030047,0x0000036f,0x00000000, + 0x00030047,0x00000376,0x00000000,0x00030047,0x00000377,0x00000000,0x00030047,0x00000379, + 0x00000000,0x00030047,0x0000037a,0x00000000,0x00030047,0x0000037b,0x00000000,0x00030047, + 0x0000037c,0x00000000,0x00030047,0x0000037e,0x00000000,0x00040047,0x0000037e,0x0000001e, + 0x00000000,0x00030047,0x0000037f,0x00000000,0x00040047,0x00000381,0x0000001e,0x00000001, + 0x00040047,0x00000387,0x0000001e,0x00000003,0x00040047,0x00000388,0x00000022,0x00000003, + 0x00040047,0x00000388,0x00000021,0x00000003,0x00040047,0x00000388,0x0000002b,0x00000003, + 0x00040047,0x0000038d,0x00000001,0x00000003,0x00040047,0x0000038e,0x00000001,0x00000004, + 0x00040047,0x0000038f,0x00000001,0x00000006,0x00040047,0x00000390,0x00000001,0x00000007, + 0x00050048,0x00000392,0x00000000,0x00000023,0x00000000,0x00050048,0x00000392,0x00000001, + 0x00000023,0x00000004,0x00050048,0x00000392,0x00000002,0x00000023,0x00000008,0x00050048, + 0x00000392,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000392,0x00000004,0x00000023, + 0x00000010,0x00050048,0x00000392,0x00000005,0x00000023,0x00000014,0x00050048,0x00000392, + 0x00000006,0x00000023,0x00000018,0x00050048,0x00000392,0x00000007,0x00000023,0x0000001c, + 0x00050048,0x00000392,0x00000008,0x00000023,0x00000020,0x00050048,0x00000392,0x00000009, + 0x00000023,0x00000030,0x00050048,0x00000392,0x0000000a,0x00000023,0x00000034,0x00050048, + 0x00000392,0x0000000b,0x00000023,0x00000038,0x00030047,0x00000392,0x00000002,0x00040047, + 0x00000394,0x00000022,0x00000000,0x00040047,0x00000394,0x00000021,0x00000007,0x00030047, + 0x00000395,0x00000000,0x00040047,0x00000395,0x00000022,0x00000003,0x00040047,0x00000395, + 0x00000021,0x00000002,0x00040047,0x00000395,0x0000002b,0x00000002,0x00030047,0x00000396, + 0x00000000,0x00040047,0x00000396,0x0000001e,0x00000002,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006, + 0x00000004,0x00040020,0x00000008,0x00000007,0x00000007,0x00040021,0x00000009,0x00000007, + 0x00000008,0x00040015,0x0000000d,0x00000020,0x00000000,0x00040020,0x0000000e,0x00000007, + 0x0000000d,0x00040021,0x0000000f,0x0000000d,0x0000000e,0x00040020,0x00000013,0x00000007, + 0x00000006,0x00040021,0x00000014,0x00000006,0x00000013,0x00040017,0x00000018,0x00000006, + 0x00000003,0x00060021,0x00000019,0x00000018,0x00000013,0x00000013,0x00000013,0x00040021, + 0x0000001f,0x00000018,0x00000013,0x00040020,0x00000023,0x00000007,0x00000018,0x00050021, + 0x00000024,0x00000007,0x00000023,0x00000013,0x00040018,0x00000029,0x00000018,0x00000003, + 0x00060021,0x0000002a,0x00000029,0x00000023,0x00000023,0x00000023,0x00040021,0x00000033, + 0x00000006,0x00000008,0x00040021,0x00000037,0x00000006,0x00000023,0x00040021,0x00000044, + 0x00000018,0x00000023,0x00050021,0x00000048,0x00000018,0x00000023,0x00000023,0x00060021, + 0x0000004d,0x00000018,0x00000023,0x00000023,0x00000023,0x00060021,0x00000053,0x00000018, + 0x00000023,0x00000023,0x0000000e,0x00060021,0x00000059,0x00000007,0x00000008,0x00000008, + 0x0000000e,0x0004002b,0x0000000d,0x0000006e,0x00000000,0x0004002b,0x0000000d,0x00000071, + 0x00000001,0x0004002b,0x0000000d,0x00000074,0x00000002,0x0004002b,0x0000000d,0x0000008c, + 0x00000003,0x00040020,0x00000091,0x00000007,0x00000029,0x00040015,0x00000093,0x00000020, + 0x00000001,0x0004002b,0x00000093,0x00000094,0x00000000,0x0004002b,0x00000093,0x00000097, + 0x00000001,0x0004002b,0x00000093,0x0000009a,0x00000002,0x00020014,0x000000a0,0x0004002b, + 0x00000006,0x000000a1,0x00000000,0x0004002b,0x00000006,0x000000a9,0x3f800000,0x0004002b, + 0x00000006,0x000000c0,0x3f7f7f7f,0x00040017,0x000000c3,0x000000a0,0x00000003,0x00040017, + 0x000000cf,0x00000006,0x00000002,0x00040020,0x000000d0,0x00000007,0x000000cf,0x0004002b, + 0x00000006,0x000000f5,0x3e99999a,0x0004002b,0x00000006,0x000000f6,0x3f170a3d,0x0004002b, + 0x00000006,0x000000f7,0x3de147ae,0x00040020,0x00000195,0x00000007,0x00000093,0x0004002b, + 0x00000093,0x0000019d,0x00000003,0x0004002b,0x00000006,0x000001a2,0x3f000000,0x0004002b, + 0x00000006,0x000001a7,0x40000000,0x0004002b,0x00000006,0x0000023a,0x3e800000,0x0004002b, + 0x00000006,0x0000024b,0x41800000,0x0004002b,0x00000006,0x00000250,0x41400000,0x0004002b, + 0x00000006,0x00000256,0x40400000,0x00030031,0x000000a0,0x00000281,0x00090019,0x000002fa, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x000002fb,0x00000000,0x000002fa,0x0004003b,0x000002fb,0x000002fc,0x00000000,0x0002001a, + 0x000002fe,0x00040020,0x000002ff,0x00000000,0x000002fe,0x0004003b,0x000002ff,0x00000300, + 0x00000000,0x0003001b,0x00000302,0x000002fa,0x00040020,0x00000304,0x00000001,0x000000cf, + 0x0004003b,0x00000304,0x00000305,0x00000001,0x00030031,0x000000a0,0x00000309,0x00040020, + 0x0000030d,0x00000001,0x00000007,0x0004003b,0x0000030d,0x0000030e,0x00000001,0x00030031, + 0x000000a0,0x00000319,0x00040020,0x0000031c,0x00000001,0x00000006,0x0004003b,0x0000031c, + 0x0000031d,0x00000001,0x00090019,0x00000324,0x0000000d,0x00000006,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000000,0x00040020,0x00000325,0x00000000,0x00000324,0x0004003b, + 0x00000325,0x00000326,0x00000000,0x00040017,0x00000328,0x00000093,0x00000002,0x0005002c, + 0x00000328,0x00000329,0x00000094,0x00000094,0x00040017,0x0000032a,0x0000000d,0x00000004, + 0x000b001e,0x00000341,0x00000007,0x000000cf,0x00000006,0x00000006,0x00000007,0x000000cf, + 0x0000000d,0x0000000d,0x0000000d,0x00040020,0x00000342,0x00000002,0x00000341,0x0004003b, + 0x00000342,0x00000343,0x00000002,0x00040020,0x00000344,0x00000002,0x00000006,0x00090019, + 0x0000034e,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000, + 0x00040020,0x0000034f,0x00000000,0x0000034e,0x0004003b,0x0000034f,0x00000350,0x00000000, + 0x00030031,0x000000a0,0x00000353,0x0004002b,0x00000093,0x00000356,0x00000007,0x00040020, + 0x00000357,0x00000002,0x0000000d,0x00040020,0x0000037d,0x00000003,0x00000007,0x0004003b, + 0x0000037d,0x0000037e,0x00000003,0x00040020,0x00000380,0x00000003,0x0000032a,0x0004003b, + 0x00000380,0x00000381,0x00000003,0x00040020,0x00000385,0x00000003,0x0000000d,0x0004003b, + 0x00000380,0x00000387,0x00000003,0x0004003b,0x00000325,0x00000388,0x00000000,0x00030031, + 0x000000a0,0x0000038d,0x00030031,0x000000a0,0x0000038e,0x00030031,0x000000a0,0x0000038f, + 0x00030031,0x000000a0,0x00000390,0x00040017,0x00000391,0x00000093,0x00000004,0x000e001e, + 0x00000392,0x00000006,0x00000006,0x00000006,0x00000006,0x0000000d,0x0000000d,0x0000000d, + 0x0000000d,0x00000391,0x0000000d,0x0000000d,0x00000006,0x00040020,0x00000393,0x00000002, + 0x00000392,0x0004003b,0x00000393,0x00000394,0x00000002,0x0004003b,0x0000034f,0x00000395, + 0x00000000,0x0004003b,0x0000037d,0x00000396,0x00000003,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x000002f9,0x00000007, + 0x0004003b,0x00000013,0x00000308,0x00000007,0x0004003b,0x00000013,0x0000030c,0x00000007, + 0x0004003b,0x00000008,0x0000030f,0x00000007,0x0004003b,0x00000008,0x00000312,0x00000007, + 0x0004003b,0x00000013,0x00000315,0x00000007,0x0004003b,0x000000d0,0x00000323,0x00000007, + 0x0004003b,0x00000013,0x0000032e,0x00000007,0x0004003b,0x00000013,0x00000331,0x00000007, + 0x0004003b,0x00000013,0x00000335,0x00000007,0x0004003b,0x00000013,0x0000033b,0x00000007, + 0x0004003b,0x00000008,0x0000034d,0x00000007,0x0004003b,0x00000008,0x0000035e,0x00000007, + 0x0004003b,0x0000000e,0x00000361,0x00000007,0x0004003b,0x00000008,0x00000365,0x00000007, + 0x0004003b,0x00000008,0x00000367,0x00000007,0x0004003b,0x0000000e,0x00000368,0x00000007, + 0x0004003d,0x000002fa,0x000002fd,0x000002fc,0x0004003d,0x000002fe,0x00000301,0x00000300, + 0x00050056,0x00000302,0x00000303,0x000002fd,0x00000301,0x0004003d,0x000000cf,0x00000306, + 0x00000305,0x00050057,0x00000007,0x00000307,0x00000303,0x00000306,0x0003003e,0x000002f9, + 0x00000307,0x0003003e,0x00000308,0x000000a9,0x000300f7,0x0000030b,0x00000000,0x000400fa, + 0x00000309,0x0000030a,0x0000030b,0x000200f8,0x0000030a,0x0004003d,0x00000007,0x00000310, + 0x0000030e,0x0003003e,0x0000030f,0x00000310,0x00050039,0x00000007,0x00000311,0x0000000b, + 0x0000030f,0x0003003e,0x00000312,0x00000311,0x00050039,0x00000006,0x00000313,0x00000035, + 0x00000312,0x0003003e,0x0000030c,0x00000313,0x0004003d,0x00000006,0x00000314,0x0000030c, + 0x0003003e,0x00000315,0x000000a1,0x00050039,0x00000006,0x00000316,0x00000016,0x00000315, + 0x0004003d,0x00000006,0x00000317,0x00000308,0x0008000c,0x00000006,0x00000318,0x00000001, + 0x0000002b,0x00000314,0x00000316,0x00000317,0x0003003e,0x00000308,0x00000318,0x000200f9, + 0x0000030b,0x000200f8,0x0000030b,0x000300f7,0x0000031b,0x00000000,0x000400fa,0x00000319, + 0x0000031a,0x0000031b,0x000200f8,0x0000031a,0x0004003d,0x00000006,0x0000031e,0x0000031d, + 0x000500b7,0x000000a0,0x0000031f,0x0000031e,0x000000a1,0x000200f9,0x0000031b,0x000200f8, + 0x0000031b,0x000700f5,0x000000a0,0x00000320,0x00000319,0x0000030b,0x0000031f,0x0000031a, + 0x000300f7,0x00000322,0x00000000,0x000400fa,0x00000320,0x00000321,0x00000322,0x000200f8, + 0x00000321,0x0004003d,0x00000324,0x00000327,0x00000326,0x00050062,0x0000032a,0x0000032b, + 0x00000327,0x00000329,0x00050051,0x0000000d,0x0000032c,0x0000032b,0x00000000,0x0006000c, + 0x000000cf,0x0000032d,0x00000001,0x0000003e,0x0000032c,0x0003003e,0x00000323,0x0000032d, + 0x00050041,0x00000013,0x0000032f,0x00000323,0x00000071,0x0004003d,0x00000006,0x00000330, + 0x0000032f,0x0003003e,0x0000032e,0x00000330,0x0004003d,0x00000006,0x00000332,0x0000032e, + 0x0004003d,0x00000006,0x00000333,0x0000031d,0x000500b4,0x000000a0,0x00000334,0x00000332, + 0x00000333,0x000300f7,0x00000337,0x00000000,0x000400fa,0x00000334,0x00000336,0x0000033a, + 0x000200f8,0x00000336,0x00050041,0x00000013,0x00000338,0x00000323,0x0000006e,0x0004003d, + 0x00000006,0x00000339,0x00000338,0x0003003e,0x00000335,0x00000339,0x000200f9,0x00000337, + 0x000200f8,0x0000033a,0x0003003e,0x0000033b,0x000000a1,0x00050039,0x00000006,0x0000033c, + 0x00000016,0x0000033b,0x0003003e,0x00000335,0x0000033c,0x000200f9,0x00000337,0x000200f8, + 0x00000337,0x0004003d,0x00000006,0x0000033d,0x00000335,0x0003003e,0x00000331,0x0000033d, + 0x0004003d,0x00000006,0x0000033e,0x00000308,0x0004003d,0x00000006,0x0000033f,0x00000331, + 0x0007000c,0x00000006,0x00000340,0x00000001,0x00000025,0x0000033e,0x0000033f,0x0003003e, + 0x00000308,0x00000340,0x000200f9,0x00000322,0x000200f8,0x00000322,0x00050041,0x00000344, + 0x00000345,0x00000343,0x0000009a,0x0004003d,0x00000006,0x00000346,0x00000345,0x0004003d, + 0x00000006,0x00000347,0x00000308,0x00050085,0x00000006,0x00000348,0x00000346,0x00000347, + 0x00050041,0x00000013,0x00000349,0x000002f9,0x0000008c,0x0004003d,0x00000006,0x0000034a, + 0x00000349,0x00050085,0x00000006,0x0000034b,0x0000034a,0x00000348,0x00050041,0x00000013, + 0x0000034c,0x000002f9,0x0000008c,0x0003003e,0x0000034c,0x0000034b,0x0004003d,0x0000034e, + 0x00000351,0x00000350,0x00050062,0x00000007,0x00000352,0x00000351,0x00000329,0x0003003e, + 0x0000034d,0x00000352,0x000300f7,0x00000355,0x00000000,0x000400fa,0x00000353,0x00000354, + 0x00000355,0x000200f8,0x00000354,0x00050041,0x00000357,0x00000358,0x00000343,0x00000356, + 0x0004003d,0x0000000d,0x00000359,0x00000358,0x000500ab,0x000000a0,0x0000035a,0x00000359, + 0x0000006e,0x000200f9,0x00000355,0x000200f8,0x00000355,0x000700f5,0x000000a0,0x0000035b, + 0x00000353,0x00000322,0x0000035a,0x00000354,0x000300f7,0x0000035d,0x00000000,0x000400fa, + 0x0000035b,0x0000035c,0x0000036a,0x000200f8,0x0000035c,0x0004003d,0x00000007,0x0000035f, + 0x0000034d,0x0003003e,0x0000035e,0x0000035f,0x00050039,0x00000007,0x00000360,0x00000031, + 0x0000035e,0x00050041,0x00000357,0x00000362,0x00000343,0x00000356,0x0004003d,0x0000000d, + 0x00000363,0x00000362,0x0003003e,0x00000361,0x00000363,0x00050039,0x0000000d,0x00000364, + 0x00000011,0x00000361,0x0004003d,0x00000007,0x00000366,0x000002f9,0x0003003e,0x00000365, + 0x00000366,0x0003003e,0x00000367,0x00000360,0x0003003e,0x00000368,0x00000364,0x00070039, + 0x00000007,0x00000369,0x0000005d,0x00000365,0x00000367,0x00000368,0x0003003e,0x000002f9, + 0x00000369,0x000200f9,0x0000035d,0x000200f8,0x0000036a,0x00050041,0x00000013,0x0000036b, + 0x000002f9,0x0000008c,0x0004003d,0x00000006,0x0000036c,0x0000036b,0x0004003d,0x00000007, + 0x0000036d,0x000002f9,0x0008004f,0x00000018,0x0000036e,0x0000036d,0x0000036d,0x00000000, + 0x00000001,0x00000002,0x0005008e,0x00000018,0x0000036f,0x0000036e,0x0000036c,0x00050041, + 0x00000013,0x00000370,0x000002f9,0x0000006e,0x00050051,0x00000006,0x00000371,0x0000036f, + 0x00000000,0x0003003e,0x00000370,0x00000371,0x00050041,0x00000013,0x00000372,0x000002f9, + 0x00000071,0x00050051,0x00000006,0x00000373,0x0000036f,0x00000001,0x0003003e,0x00000372, + 0x00000373,0x00050041,0x00000013,0x00000374,0x000002f9,0x00000074,0x00050051,0x00000006, + 0x00000375,0x0000036f,0x00000002,0x0003003e,0x00000374,0x00000375,0x0004003d,0x00000007, + 0x00000376,0x000002f9,0x0004003d,0x00000007,0x00000377,0x0000034d,0x00050041,0x00000013, + 0x00000378,0x000002f9,0x0000008c,0x0004003d,0x00000006,0x00000379,0x00000378,0x00050083, + 0x00000006,0x0000037a,0x000000a9,0x00000379,0x0005008e,0x00000007,0x0000037b,0x00000377, + 0x0000037a,0x00050081,0x00000007,0x0000037c,0x00000376,0x0000037b,0x0003003e,0x000002f9, + 0x0000037c,0x000200f9,0x0000035d,0x000200f8,0x0000035d,0x0004003d,0x00000007,0x0000037f, + 0x000002f9,0x0003003e,0x0000037e,0x0000037f,0x0004003d,0x00000324,0x00000382,0x00000326, + 0x00050062,0x0000032a,0x00000383,0x00000382,0x00000329,0x00050051,0x0000000d,0x00000384, + 0x00000383,0x00000000,0x00050041,0x00000385,0x00000386,0x00000381,0x0000006e,0x0003003e, + 0x00000386,0x00000384,0x0004003d,0x00000324,0x00000389,0x00000388,0x00050062,0x0000032a, + 0x0000038a,0x00000389,0x00000329,0x00050051,0x0000000d,0x0000038b,0x0000038a,0x00000000, + 0x00050041,0x00000385,0x0000038c,0x00000387,0x0000006e,0x0003003e,0x0000038c,0x0000038b, + 0x000100fd,0x00010038,0x00050036,0x00000007,0x0000000b,0x00000000,0x00000009,0x00030037, + 0x00000008,0x0000000a,0x000200f8,0x0000000c,0x0004003b,0x00000008,0x00000060,0x00000007, + 0x0004003d,0x00000007,0x0000005f,0x0000000a,0x0003003e,0x00000060,0x0000005f,0x0004003d, + 0x00000007,0x00000061,0x00000060,0x000200fe,0x00000061,0x00010038,0x00050036,0x0000000d, + 0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012, + 0x0004003b,0x0000000e,0x00000065,0x00000007,0x0004003d,0x0000000d,0x00000064,0x00000010, + 0x0003003e,0x00000065,0x00000064,0x0004003d,0x0000000d,0x00000066,0x00000065,0x000200fe, + 0x00000066,0x00010038,0x00050036,0x00000006,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000006,0x00000069,0x00000015, + 0x000200fe,0x00000069,0x00010038,0x00050036,0x00000018,0x0000001d,0x00000000,0x00000019, + 0x00030037,0x00000013,0x0000001a,0x00030037,0x00000013,0x0000001b,0x00030037,0x00000013, + 0x0000001c,0x000200f8,0x0000001e,0x0004003b,0x00000023,0x0000006c,0x00000007,0x0004003d, + 0x00000006,0x0000006d,0x0000001a,0x00050041,0x00000013,0x0000006f,0x0000006c,0x0000006e, + 0x0003003e,0x0000006f,0x0000006d,0x0004003d,0x00000006,0x00000070,0x0000001b,0x00050041, + 0x00000013,0x00000072,0x0000006c,0x00000071,0x0003003e,0x00000072,0x00000070,0x0004003d, + 0x00000006,0x00000073,0x0000001c,0x00050041,0x00000013,0x00000075,0x0000006c,0x00000074, + 0x0003003e,0x00000075,0x00000073,0x0004003d,0x00000018,0x00000076,0x0000006c,0x000200fe, + 0x00000076,0x00010038,0x00050036,0x00000018,0x00000021,0x00000000,0x0000001f,0x00030037, + 0x00000013,0x00000020,0x000200f8,0x00000022,0x0004003b,0x00000023,0x00000079,0x00000007, + 0x0004003d,0x00000006,0x0000007a,0x00000020,0x00050041,0x00000013,0x0000007b,0x00000079, + 0x0000006e,0x0003003e,0x0000007b,0x0000007a,0x0004003d,0x00000006,0x0000007c,0x00000020, + 0x00050041,0x00000013,0x0000007d,0x00000079,0x00000071,0x0003003e,0x0000007d,0x0000007c, + 0x0004003d,0x00000006,0x0000007e,0x00000020,0x00050041,0x00000013,0x0000007f,0x00000079, + 0x00000074,0x0003003e,0x0000007f,0x0000007e,0x0004003d,0x00000018,0x00000080,0x00000079, + 0x000200fe,0x00000080,0x00010038,0x00050036,0x00000007,0x00000027,0x00000000,0x00000024, + 0x00030037,0x00000023,0x00000025,0x00030037,0x00000013,0x00000026,0x000200f8,0x00000028, + 0x0004003b,0x00000008,0x00000083,0x00000007,0x0004003d,0x00000018,0x00000084,0x00000025, + 0x00050041,0x00000013,0x00000085,0x00000083,0x0000006e,0x00050051,0x00000006,0x00000086, + 0x00000084,0x00000000,0x0003003e,0x00000085,0x00000086,0x00050041,0x00000013,0x00000087, + 0x00000083,0x00000071,0x00050051,0x00000006,0x00000088,0x00000084,0x00000001,0x0003003e, + 0x00000087,0x00000088,0x00050041,0x00000013,0x00000089,0x00000083,0x00000074,0x00050051, + 0x00000006,0x0000008a,0x00000084,0x00000002,0x0003003e,0x00000089,0x0000008a,0x0004003d, + 0x00000006,0x0000008b,0x00000026,0x00050041,0x00000013,0x0000008d,0x00000083,0x0000008c, + 0x0003003e,0x0000008d,0x0000008b,0x0004003d,0x00000007,0x0000008e,0x00000083,0x000200fe, + 0x0000008e,0x00010038,0x00050036,0x00000029,0x0000002e,0x00000000,0x0000002a,0x00030037, + 0x00000023,0x0000002b,0x00030037,0x00000023,0x0000002c,0x00030037,0x00000023,0x0000002d, + 0x000200f8,0x0000002f,0x0004003b,0x00000091,0x00000092,0x00000007,0x0004003d,0x00000018, + 0x00000095,0x0000002b,0x00050041,0x00000023,0x00000096,0x00000092,0x00000094,0x0003003e, + 0x00000096,0x00000095,0x0004003d,0x00000018,0x00000098,0x0000002c,0x00050041,0x00000023, + 0x00000099,0x00000092,0x00000097,0x0003003e,0x00000099,0x00000098,0x0004003d,0x00000018, + 0x0000009b,0x0000002d,0x00050041,0x00000023,0x0000009c,0x00000092,0x0000009a,0x0003003e, + 0x0000009c,0x0000009b,0x0004003d,0x00000029,0x0000009d,0x00000092,0x000200fe,0x0000009d, + 0x00010038,0x00050036,0x00000007,0x00000031,0x00000000,0x00000009,0x00030037,0x00000008, + 0x00000030,0x000200f8,0x00000032,0x0004003b,0x00000013,0x000000bc,0x00000007,0x0004003b, + 0x00000013,0x000000c1,0x00000007,0x00050041,0x00000013,0x000000a2,0x00000030,0x0000008c, + 0x0004003d,0x00000006,0x000000a3,0x000000a2,0x000500b8,0x000000a0,0x000000a4,0x000000a1, + 0x000000a3,0x000300f7,0x000000a6,0x00000000,0x000400fa,0x000000a4,0x000000a5,0x000000a6, + 0x000200f8,0x000000a5,0x00050041,0x00000013,0x000000a7,0x00000030,0x0000008c,0x0004003d, + 0x00000006,0x000000a8,0x000000a7,0x000500b8,0x000000a0,0x000000aa,0x000000a8,0x000000a9, + 0x000200f9,0x000000a6,0x000200f8,0x000000a6,0x000700f5,0x000000a0,0x000000ab,0x000000a4, + 0x00000032,0x000000aa,0x000000a5,0x000300f7,0x000000ad,0x00000000,0x000400fa,0x000000ab, + 0x000000ac,0x000000ad,0x000200f8,0x000000ac,0x00050041,0x00000013,0x000000ae,0x00000030, + 0x0000008c,0x0004003d,0x00000006,0x000000af,0x000000ae,0x00050088,0x00000006,0x000000b0, + 0x000000a9,0x000000af,0x0004003d,0x00000007,0x000000b1,0x00000030,0x0008004f,0x00000018, + 0x000000b2,0x000000b1,0x000000b1,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000018, + 0x000000b3,0x000000b2,0x000000b0,0x00050041,0x00000013,0x000000b4,0x00000030,0x0000006e, + 0x00050051,0x00000006,0x000000b5,0x000000b3,0x00000000,0x0003003e,0x000000b4,0x000000b5, + 0x00050041,0x00000013,0x000000b6,0x00000030,0x00000071,0x00050051,0x00000006,0x000000b7, + 0x000000b3,0x00000001,0x0003003e,0x000000b6,0x000000b7,0x00050041,0x00000013,0x000000b8, + 0x00000030,0x00000074,0x00050051,0x00000006,0x000000b9,0x000000b3,0x00000002,0x0003003e, + 0x000000b8,0x000000b9,0x0004003d,0x00000007,0x000000ba,0x00000030,0x0008004f,0x00000018, + 0x000000bb,0x000000ba,0x000000ba,0x00000000,0x00000001,0x00000002,0x0003003e,0x000000bc, + 0x000000a9,0x00050039,0x00000018,0x000000bd,0x00000021,0x000000bc,0x0004003d,0x00000007, + 0x000000be,0x00000030,0x0008004f,0x00000018,0x000000bf,0x000000be,0x000000be,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x000000c1,0x000000c0,0x00050039,0x00000018,0x000000c2, + 0x00000021,0x000000c1,0x000500ba,0x000000c3,0x000000c4,0x000000bf,0x000000c2,0x000600a9, + 0x00000018,0x000000c5,0x000000c4,0x000000bd,0x000000bb,0x00050041,0x00000013,0x000000c6, + 0x00000030,0x0000006e,0x00050051,0x00000006,0x000000c7,0x000000c5,0x00000000,0x0003003e, + 0x000000c6,0x000000c7,0x00050041,0x00000013,0x000000c8,0x00000030,0x00000071,0x00050051, + 0x00000006,0x000000c9,0x000000c5,0x00000001,0x0003003e,0x000000c8,0x000000c9,0x00050041, + 0x00000013,0x000000ca,0x00000030,0x00000074,0x00050051,0x00000006,0x000000cb,0x000000c5, + 0x00000002,0x0003003e,0x000000ca,0x000000cb,0x000200f9,0x000000ad,0x000200f8,0x000000ad, + 0x0004003d,0x00000007,0x000000cc,0x00000030,0x000200fe,0x000000cc,0x00010038,0x00050036, + 0x00000006,0x00000035,0x00000000,0x00000033,0x00030037,0x00000008,0x00000034,0x000200f8, + 0x00000036,0x0004003b,0x000000d0,0x000000d1,0x00000007,0x0004003b,0x00000013,0x000000d7, + 0x00000007,0x0004003d,0x00000007,0x000000d2,0x00000034,0x0007004f,0x000000cf,0x000000d3, + 0x000000d2,0x000000d2,0x00000000,0x00000001,0x0004003d,0x00000007,0x000000d4,0x00000034, + 0x0007004f,0x000000cf,0x000000d5,0x000000d4,0x000000d4,0x00000002,0x00000003,0x0007000c, + 0x000000cf,0x000000d6,0x00000001,0x00000025,0x000000d3,0x000000d5,0x0003003e,0x000000d1, + 0x000000d6,0x00050041,0x00000013,0x000000d8,0x000000d1,0x0000006e,0x0004003d,0x00000006, + 0x000000d9,0x000000d8,0x00050041,0x00000013,0x000000da,0x000000d1,0x00000071,0x0004003d, + 0x00000006,0x000000db,0x000000da,0x0007000c,0x00000006,0x000000dc,0x00000001,0x00000025, + 0x000000d9,0x000000db,0x0003003e,0x000000d7,0x000000dc,0x0004003d,0x00000006,0x000000dd, + 0x000000d7,0x000200fe,0x000000dd,0x00010038,0x00050036,0x00000006,0x00000039,0x00000000, + 0x00000037,0x00030037,0x00000023,0x00000038,0x000200f8,0x0000003a,0x00050041,0x00000013, + 0x000000e0,0x00000038,0x0000006e,0x0004003d,0x00000006,0x000000e1,0x000000e0,0x00050041, + 0x00000013,0x000000e2,0x00000038,0x00000071,0x0004003d,0x00000006,0x000000e3,0x000000e2, + 0x0007000c,0x00000006,0x000000e4,0x00000001,0x00000025,0x000000e1,0x000000e3,0x00050041, + 0x00000013,0x000000e5,0x00000038,0x00000074,0x0004003d,0x00000006,0x000000e6,0x000000e5, + 0x0007000c,0x00000006,0x000000e7,0x00000001,0x00000025,0x000000e4,0x000000e6,0x000200fe, + 0x000000e7,0x00010038,0x00050036,0x00000006,0x0000003c,0x00000000,0x00000037,0x00030037, + 0x00000023,0x0000003b,0x000200f8,0x0000003d,0x00050041,0x00000013,0x000000ea,0x0000003b, + 0x0000006e,0x0004003d,0x00000006,0x000000eb,0x000000ea,0x00050041,0x00000013,0x000000ec, + 0x0000003b,0x00000071,0x0004003d,0x00000006,0x000000ed,0x000000ec,0x0007000c,0x00000006, + 0x000000ee,0x00000001,0x00000028,0x000000eb,0x000000ed,0x00050041,0x00000013,0x000000ef, + 0x0000003b,0x00000074,0x0004003d,0x00000006,0x000000f0,0x000000ef,0x0007000c,0x00000006, + 0x000000f1,0x00000001,0x00000028,0x000000ee,0x000000f0,0x000200fe,0x000000f1,0x00010038, + 0x00050036,0x00000006,0x0000003f,0x00000000,0x00000037,0x00030037,0x00000023,0x0000003e, + 0x000200f8,0x00000040,0x0004003b,0x00000013,0x000000f8,0x00000007,0x0004003b,0x00000013, + 0x000000f9,0x00000007,0x0004003b,0x00000013,0x000000fa,0x00000007,0x0004003d,0x00000018, + 0x000000f4,0x0000003e,0x0003003e,0x000000f8,0x000000f5,0x0003003e,0x000000f9,0x000000f6, + 0x0003003e,0x000000fa,0x000000f7,0x00070039,0x00000018,0x000000fb,0x0000001d,0x000000f8, + 0x000000f9,0x000000fa,0x00050094,0x00000006,0x000000fc,0x000000f4,0x000000fb,0x000200fe, + 0x000000fc,0x00010038,0x00050036,0x00000006,0x00000042,0x00000000,0x00000037,0x00030037, + 0x00000023,0x00000041,0x000200f8,0x00000043,0x0004003b,0x00000023,0x000000ff,0x00000007, + 0x0004003b,0x00000023,0x00000102,0x00000007,0x0004003d,0x00000018,0x00000100,0x00000041, + 0x0003003e,0x000000ff,0x00000100,0x00050039,0x00000006,0x00000101,0x0000003c,0x000000ff, + 0x0004003d,0x00000018,0x00000103,0x00000041,0x0003003e,0x00000102,0x00000103,0x00050039, + 0x00000006,0x00000104,0x00000039,0x00000102,0x00050083,0x00000006,0x00000105,0x00000101, + 0x00000104,0x000200fe,0x00000105,0x00010038,0x00050036,0x00000018,0x00000046,0x00000000, + 0x00000044,0x00030037,0x00000023,0x00000045,0x000200f8,0x00000047,0x0004003b,0x00000013, + 0x00000108,0x00000007,0x0004003b,0x00000023,0x00000109,0x00000007,0x0004003b,0x00000013, + 0x0000010c,0x00000007,0x0004003b,0x00000023,0x0000010d,0x00000007,0x0004003b,0x00000013, + 0x00000110,0x00000007,0x0004003b,0x00000023,0x00000111,0x00000007,0x0004003d,0x00000018, + 0x0000010a,0x00000045,0x0003003e,0x00000109,0x0000010a,0x00050039,0x00000006,0x0000010b, + 0x0000003f,0x00000109,0x0003003e,0x00000108,0x0000010b,0x0004003d,0x00000018,0x0000010e, + 0x00000045,0x0003003e,0x0000010d,0x0000010e,0x00050039,0x00000006,0x0000010f,0x00000039, + 0x0000010d,0x0003003e,0x0000010c,0x0000010f,0x0004003d,0x00000018,0x00000112,0x00000045, + 0x0003003e,0x00000111,0x00000112,0x00050039,0x00000006,0x00000113,0x0000003c,0x00000111, + 0x0003003e,0x00000110,0x00000113,0x0004003d,0x00000006,0x00000114,0x0000010c,0x000500b8, + 0x000000a0,0x00000115,0x00000114,0x000000a1,0x000300f7,0x00000117,0x00000000,0x000400fa, + 0x00000115,0x00000116,0x00000117,0x000200f8,0x00000116,0x0004003d,0x00000006,0x00000118, + 0x00000108,0x0004003d,0x00000018,0x00000119,0x00000045,0x0004003d,0x00000006,0x0000011a, + 0x00000108,0x00060050,0x00000018,0x0000011b,0x0000011a,0x0000011a,0x0000011a,0x00050083, + 0x00000018,0x0000011c,0x00000119,0x0000011b,0x0004003d,0x00000006,0x0000011d,0x00000108, + 0x0005008e,0x00000018,0x0000011e,0x0000011c,0x0000011d,0x0004003d,0x00000006,0x0000011f, + 0x00000108,0x0004003d,0x00000006,0x00000120,0x0000010c,0x00050083,0x00000006,0x00000121, + 0x0000011f,0x00000120,0x00060050,0x00000018,0x00000122,0x00000121,0x00000121,0x00000121, + 0x00050088,0x00000018,0x00000123,0x0000011e,0x00000122,0x00060050,0x00000018,0x00000124, + 0x00000118,0x00000118,0x00000118,0x00050081,0x00000018,0x00000125,0x00000124,0x00000123, + 0x0003003e,0x00000045,0x00000125,0x000200f9,0x00000117,0x000200f8,0x00000117,0x0004003d, + 0x00000006,0x00000126,0x00000110,0x000500ba,0x000000a0,0x00000127,0x00000126,0x000000a9, + 0x000300f7,0x00000129,0x00000000,0x000400fa,0x00000127,0x00000128,0x00000129,0x000200f8, + 0x00000128,0x0004003d,0x00000006,0x0000012a,0x00000108,0x0004003d,0x00000018,0x0000012b, + 0x00000045,0x0004003d,0x00000006,0x0000012c,0x00000108,0x00060050,0x00000018,0x0000012d, + 0x0000012c,0x0000012c,0x0000012c,0x00050083,0x00000018,0x0000012e,0x0000012b,0x0000012d, + 0x0004003d,0x00000006,0x0000012f,0x00000108,0x00050083,0x00000006,0x00000130,0x000000a9, + 0x0000012f,0x0005008e,0x00000018,0x00000131,0x0000012e,0x00000130,0x0004003d,0x00000006, + 0x00000132,0x00000110,0x0004003d,0x00000006,0x00000133,0x00000108,0x00050083,0x00000006, + 0x00000134,0x00000132,0x00000133,0x00060050,0x00000018,0x00000135,0x00000134,0x00000134, + 0x00000134,0x00050088,0x00000018,0x00000136,0x00000131,0x00000135,0x00060050,0x00000018, + 0x00000137,0x0000012a,0x0000012a,0x0000012a,0x00050081,0x00000018,0x00000138,0x00000137, + 0x00000136,0x0003003e,0x00000045,0x00000138,0x000200f9,0x00000129,0x000200f8,0x00000129, + 0x0004003d,0x00000018,0x00000139,0x00000045,0x000200fe,0x00000139,0x00010038,0x00050036, + 0x00000018,0x0000004b,0x00000000,0x00000048,0x00030037,0x00000023,0x00000049,0x00030037, + 0x00000023,0x0000004a,0x000200f8,0x0000004c,0x0004003b,0x00000013,0x0000013c,0x00000007, + 0x0004003b,0x00000023,0x0000013d,0x00000007,0x0004003b,0x00000013,0x00000140,0x00000007, + 0x0004003b,0x00000023,0x00000141,0x00000007,0x0004003b,0x00000013,0x00000144,0x00000007, + 0x0004003b,0x00000023,0x00000148,0x00000007,0x0004003b,0x00000013,0x0000014a,0x00000007, + 0x0004003b,0x00000023,0x0000014e,0x00000007,0x0004003d,0x00000018,0x0000013e,0x00000049, + 0x0003003e,0x0000013d,0x0000013e,0x00050039,0x00000006,0x0000013f,0x0000003f,0x0000013d, + 0x0003003e,0x0000013c,0x0000013f,0x0004003d,0x00000018,0x00000142,0x0000004a,0x0003003e, + 0x00000141,0x00000142,0x00050039,0x00000006,0x00000143,0x0000003f,0x00000141,0x0003003e, + 0x00000140,0x00000143,0x0004003d,0x00000006,0x00000145,0x00000140,0x0004003d,0x00000006, + 0x00000146,0x0000013c,0x00050083,0x00000006,0x00000147,0x00000145,0x00000146,0x0003003e, + 0x00000144,0x00000147,0x0004003d,0x00000018,0x00000149,0x00000049,0x0004003d,0x00000006, + 0x0000014b,0x00000144,0x0003003e,0x0000014a,0x0000014b,0x00050039,0x00000018,0x0000014c, + 0x00000021,0x0000014a,0x00050081,0x00000018,0x0000014d,0x00000149,0x0000014c,0x0003003e, + 0x00000148,0x0000014d,0x0004003d,0x00000018,0x0000014f,0x00000148,0x0003003e,0x0000014e, + 0x0000014f,0x00050039,0x00000018,0x00000150,0x00000046,0x0000014e,0x000200fe,0x00000150, + 0x00010038,0x00050036,0x00000018,0x00000051,0x00000000,0x0000004d,0x00030037,0x00000023, + 0x0000004e,0x00030037,0x00000023,0x0000004f,0x00030037,0x00000023,0x00000050,0x000200f8, + 0x00000052,0x0004003b,0x00000013,0x00000153,0x00000007,0x0004003b,0x00000023,0x00000154, + 0x00000007,0x0004003b,0x00000013,0x00000157,0x00000007,0x0004003b,0x00000023,0x00000158, + 0x00000007,0x0004003b,0x00000013,0x0000015b,0x00000007,0x0004003b,0x00000023,0x0000015c, + 0x00000007,0x0004003b,0x00000023,0x00000163,0x00000007,0x0004003b,0x00000013,0x0000016e, + 0x00000007,0x0004003b,0x00000023,0x00000170,0x00000007,0x0004003b,0x00000023,0x00000172, + 0x00000007,0x0004003d,0x00000018,0x00000155,0x0000004e,0x0003003e,0x00000154,0x00000155, + 0x00050039,0x00000006,0x00000156,0x00000039,0x00000154,0x0003003e,0x00000153,0x00000156, + 0x0004003d,0x00000018,0x00000159,0x0000004e,0x0003003e,0x00000158,0x00000159,0x00050039, + 0x00000006,0x0000015a,0x00000042,0x00000158,0x0003003e,0x00000157,0x0000015a,0x0004003d, + 0x00000018,0x0000015d,0x0000004f,0x0003003e,0x0000015c,0x0000015d,0x00050039,0x00000006, + 0x0000015e,0x00000042,0x0000015c,0x0003003e,0x0000015b,0x0000015e,0x0004003d,0x00000006, + 0x0000015f,0x00000157,0x000500ba,0x000000a0,0x00000160,0x0000015f,0x000000a1,0x000300f7, + 0x00000162,0x00000000,0x000400fa,0x00000160,0x00000161,0x0000016d,0x000200f8,0x00000161, + 0x0004003d,0x00000018,0x00000164,0x0000004e,0x0004003d,0x00000006,0x00000165,0x00000153, + 0x00060050,0x00000018,0x00000166,0x00000165,0x00000165,0x00000165,0x00050083,0x00000018, + 0x00000167,0x00000164,0x00000166,0x0004003d,0x00000006,0x00000168,0x0000015b,0x0005008e, + 0x00000018,0x00000169,0x00000167,0x00000168,0x0004003d,0x00000006,0x0000016a,0x00000157, + 0x00060050,0x00000018,0x0000016b,0x0000016a,0x0000016a,0x0000016a,0x00050088,0x00000018, + 0x0000016c,0x00000169,0x0000016b,0x0003003e,0x00000163,0x0000016c,0x000200f9,0x00000162, + 0x000200f8,0x0000016d,0x0003003e,0x0000016e,0x000000a1,0x00050039,0x00000018,0x0000016f, + 0x00000021,0x0000016e,0x0003003e,0x00000163,0x0000016f,0x000200f9,0x00000162,0x000200f8, + 0x00000162,0x0004003d,0x00000018,0x00000171,0x00000163,0x0003003e,0x00000170,0x00000171, + 0x0004003d,0x00000018,0x00000173,0x00000050,0x0003003e,0x00000172,0x00000173,0x00060039, + 0x00000018,0x00000174,0x0000004b,0x00000170,0x00000172,0x000200fe,0x00000174,0x00010038, + 0x00050036,0x00000018,0x00000057,0x00000000,0x00000053,0x00030037,0x00000023,0x00000054, + 0x00030037,0x00000023,0x00000055,0x00030037,0x0000000e,0x00000056,0x000200f8,0x00000058, + 0x0004003b,0x00000023,0x00000188,0x00000007,0x0004003b,0x00000195,0x00000196,0x00000007, + 0x0004003b,0x00000013,0x000001cf,0x00000007,0x0004003b,0x00000013,0x000001d2,0x00000007, + 0x0004003b,0x00000013,0x000001d5,0x00000007,0x0004003b,0x00000013,0x000001e3,0x00000007, + 0x0004003b,0x00000013,0x000001e6,0x00000007,0x0004003b,0x00000195,0x000001eb,0x00000007, + 0x0004003b,0x00000195,0x00000214,0x00000007,0x0004003b,0x00000013,0x00000285,0x00000007, + 0x0004003b,0x00000013,0x00000287,0x00000007,0x0004003b,0x00000023,0x0000028a,0x00000007, + 0x0004003b,0x00000023,0x0000028c,0x00000007,0x0004003b,0x00000023,0x0000028e,0x00000007, + 0x0004003b,0x00000013,0x00000295,0x00000007,0x0004003b,0x00000013,0x00000297,0x00000007, + 0x0004003b,0x00000023,0x0000029a,0x00000007,0x0004003b,0x00000023,0x0000029c,0x00000007, + 0x0004003b,0x00000023,0x0000029e,0x00000007,0x0004003b,0x00000013,0x000002a5,0x00000007, + 0x0004003b,0x00000013,0x000002a7,0x00000007,0x0004003b,0x00000023,0x000002aa,0x00000007, + 0x0004003b,0x00000023,0x000002ac,0x00000007,0x0004003b,0x00000013,0x000002b3,0x00000007, + 0x0004003b,0x00000013,0x000002b5,0x00000007,0x0004003b,0x00000023,0x000002b8,0x00000007, + 0x0004003b,0x00000023,0x000002ba,0x00000007,0x0004003d,0x0000000d,0x00000177,0x00000056, + 0x000300f7,0x00000187,0x00000000,0x002100fb,0x00000177,0x00000187,0x0000000b,0x00000178, + 0x00000001,0x00000179,0x00000002,0x0000017a,0x00000003,0x0000017b,0x00000004,0x0000017c, + 0x00000005,0x0000017d,0x00000006,0x0000017e,0x00000007,0x0000017f,0x00000008,0x00000180, + 0x00000009,0x00000181,0x0000000a,0x00000182,0x0000000c,0x00000183,0x0000000d,0x00000184, + 0x0000000e,0x00000185,0x0000000f,0x00000186,0x000200f8,0x00000178,0x0004003d,0x00000018, + 0x00000189,0x00000054,0x0004003d,0x00000018,0x0000018a,0x00000055,0x00050085,0x00000018, + 0x0000018b,0x00000189,0x0000018a,0x0003003e,0x00000188,0x0000018b,0x000200f9,0x00000187, + 0x000200f8,0x00000179,0x0004003d,0x00000018,0x0000018d,0x00000054,0x0004003d,0x00000018, + 0x0000018e,0x00000055,0x00050081,0x00000018,0x0000018f,0x0000018d,0x0000018e,0x0004003d, + 0x00000018,0x00000190,0x00000054,0x0004003d,0x00000018,0x00000191,0x00000055,0x00050085, + 0x00000018,0x00000192,0x00000190,0x00000191,0x00050083,0x00000018,0x00000193,0x0000018f, + 0x00000192,0x0003003e,0x00000188,0x00000193,0x000200f9,0x00000187,0x000200f8,0x0000017a, + 0x0003003e,0x00000196,0x00000094,0x000200f9,0x00000197,0x000200f8,0x00000197,0x000400f6, + 0x00000199,0x0000019a,0x00000000,0x000200f9,0x0000019b,0x000200f8,0x0000019b,0x0004003d, + 0x00000093,0x0000019c,0x00000196,0x000500b1,0x000000a0,0x0000019e,0x0000019c,0x0000019d, + 0x000400fa,0x0000019e,0x00000198,0x00000199,0x000200f8,0x00000198,0x0004003d,0x00000093, + 0x0000019f,0x00000196,0x00050041,0x00000013,0x000001a0,0x00000055,0x0000019f,0x0004003d, + 0x00000006,0x000001a1,0x000001a0,0x000500bc,0x000000a0,0x000001a3,0x000001a1,0x000001a2, + 0x000300f7,0x000001a5,0x00000000,0x000400fa,0x000001a3,0x000001a4,0x000001b1,0x000200f8, + 0x000001a4,0x0004003d,0x00000093,0x000001a6,0x00000196,0x0004003d,0x00000093,0x000001a8, + 0x00000196,0x00050041,0x00000013,0x000001a9,0x00000054,0x000001a8,0x0004003d,0x00000006, + 0x000001aa,0x000001a9,0x00050085,0x00000006,0x000001ab,0x000001a7,0x000001aa,0x0004003d, + 0x00000093,0x000001ac,0x00000196,0x00050041,0x00000013,0x000001ad,0x00000055,0x000001ac, + 0x0004003d,0x00000006,0x000001ae,0x000001ad,0x00050085,0x00000006,0x000001af,0x000001ab, + 0x000001ae,0x00050041,0x00000013,0x000001b0,0x00000188,0x000001a6,0x0003003e,0x000001b0, + 0x000001af,0x000200f9,0x000001a5,0x000200f8,0x000001b1,0x0004003d,0x00000093,0x000001b2, + 0x00000196,0x0004003d,0x00000093,0x000001b3,0x00000196,0x00050041,0x00000013,0x000001b4, + 0x00000054,0x000001b3,0x0004003d,0x00000006,0x000001b5,0x000001b4,0x00050083,0x00000006, + 0x000001b6,0x000000a9,0x000001b5,0x00050085,0x00000006,0x000001b7,0x000001a7,0x000001b6, + 0x0004003d,0x00000093,0x000001b8,0x00000196,0x00050041,0x00000013,0x000001b9,0x00000055, + 0x000001b8,0x0004003d,0x00000006,0x000001ba,0x000001b9,0x00050083,0x00000006,0x000001bb, + 0x000000a9,0x000001ba,0x00050085,0x00000006,0x000001bc,0x000001b7,0x000001bb,0x00050083, + 0x00000006,0x000001bd,0x000000a9,0x000001bc,0x00050041,0x00000013,0x000001be,0x00000188, + 0x000001b2,0x0003003e,0x000001be,0x000001bd,0x000200f9,0x000001a5,0x000200f8,0x000001a5, + 0x000200f9,0x0000019a,0x000200f8,0x0000019a,0x0004003d,0x00000093,0x000001bf,0x00000196, + 0x00050080,0x00000093,0x000001c0,0x000001bf,0x00000097,0x0003003e,0x00000196,0x000001c0, + 0x000200f9,0x00000197,0x000200f8,0x00000199,0x000200f9,0x00000187,0x000200f8,0x0000017b, + 0x0004003d,0x00000018,0x000001c2,0x00000054,0x0004003d,0x00000018,0x000001c3,0x00000055, + 0x0007000c,0x00000018,0x000001c4,0x00000001,0x00000025,0x000001c2,0x000001c3,0x0003003e, + 0x00000188,0x000001c4,0x000200f9,0x00000187,0x000200f8,0x0000017c,0x0004003d,0x00000018, + 0x000001c6,0x00000054,0x0004003d,0x00000018,0x000001c7,0x00000055,0x0007000c,0x00000018, + 0x000001c8,0x00000001,0x00000028,0x000001c6,0x000001c7,0x0003003e,0x00000188,0x000001c8, + 0x000200f9,0x00000187,0x000200f8,0x0000017d,0x0004003d,0x00000018,0x000001ca,0x00000055, + 0x0004003d,0x00000018,0x000001cb,0x00000054,0x00060050,0x00000018,0x000001cc,0x000000a9, + 0x000000a9,0x000000a9,0x00050083,0x00000018,0x000001cd,0x000001cc,0x000001cb,0x00050088, + 0x00000018,0x000001ce,0x000001ca,0x000001cd,0x0003003e,0x000001cf,0x000000a9,0x00050039, + 0x00000018,0x000001d0,0x00000021,0x000001cf,0x0007000c,0x00000018,0x000001d1,0x00000001, + 0x00000025,0x000001ce,0x000001d0,0x0003003e,0x000001d2,0x000000a1,0x00050039,0x00000018, + 0x000001d3,0x00000021,0x000001d2,0x0004003d,0x00000018,0x000001d4,0x00000055,0x0003003e, + 0x000001d5,0x000000a1,0x00050039,0x00000018,0x000001d6,0x00000021,0x000001d5,0x000500bc, + 0x000000c3,0x000001d7,0x000001d4,0x000001d6,0x000600a9,0x00000018,0x000001d8,0x000001d7, + 0x000001d3,0x000001d1,0x0003003e,0x00000188,0x000001d8,0x000200f9,0x00000187,0x000200f8, + 0x0000017e,0x0004003d,0x00000018,0x000001da,0x00000055,0x00060050,0x00000018,0x000001db, + 0x000000a9,0x000000a9,0x000000a9,0x00050083,0x00000018,0x000001dc,0x000001db,0x000001da, + 0x0004003d,0x00000018,0x000001dd,0x00000054,0x00050088,0x00000018,0x000001de,0x000001dc, + 0x000001dd,0x00060050,0x00000018,0x000001df,0x000000a9,0x000000a9,0x000000a9,0x0007000c, + 0x00000018,0x000001e0,0x00000001,0x00000025,0x000001de,0x000001df,0x00060050,0x00000018, + 0x000001e1,0x000000a9,0x000000a9,0x000000a9,0x00050083,0x00000018,0x000001e2,0x000001e1, + 0x000001e0,0x0003003e,0x000001e3,0x000000a9,0x00050039,0x00000018,0x000001e4,0x00000021, + 0x000001e3,0x0004003d,0x00000018,0x000001e5,0x00000055,0x0003003e,0x000001e6,0x000000a9, + 0x00050039,0x00000018,0x000001e7,0x00000021,0x000001e6,0x000500be,0x000000c3,0x000001e8, + 0x000001e5,0x000001e7,0x000600a9,0x00000018,0x000001e9,0x000001e8,0x000001e4,0x000001e2, + 0x0003003e,0x00000188,0x000001e9,0x000200f9,0x00000187,0x000200f8,0x0000017f,0x0003003e, + 0x000001eb,0x00000094,0x000200f9,0x000001ec,0x000200f8,0x000001ec,0x000400f6,0x000001ee, + 0x000001ef,0x00000000,0x000200f9,0x000001f0,0x000200f8,0x000001f0,0x0004003d,0x00000093, + 0x000001f1,0x000001eb,0x000500b1,0x000000a0,0x000001f2,0x000001f1,0x0000019d,0x000400fa, + 0x000001f2,0x000001ed,0x000001ee,0x000200f8,0x000001ed,0x0004003d,0x00000093,0x000001f3, + 0x000001eb,0x00050041,0x00000013,0x000001f4,0x00000054,0x000001f3,0x0004003d,0x00000006, + 0x000001f5,0x000001f4,0x000500bc,0x000000a0,0x000001f6,0x000001f5,0x000001a2,0x000300f7, + 0x000001f8,0x00000000,0x000400fa,0x000001f6,0x000001f7,0x00000203,0x000200f8,0x000001f7, + 0x0004003d,0x00000093,0x000001f9,0x000001eb,0x0004003d,0x00000093,0x000001fa,0x000001eb, + 0x00050041,0x00000013,0x000001fb,0x00000054,0x000001fa,0x0004003d,0x00000006,0x000001fc, + 0x000001fb,0x00050085,0x00000006,0x000001fd,0x000001a7,0x000001fc,0x0004003d,0x00000093, + 0x000001fe,0x000001eb,0x00050041,0x00000013,0x000001ff,0x00000055,0x000001fe,0x0004003d, + 0x00000006,0x00000200,0x000001ff,0x00050085,0x00000006,0x00000201,0x000001fd,0x00000200, + 0x00050041,0x00000013,0x00000202,0x00000188,0x000001f9,0x0003003e,0x00000202,0x00000201, + 0x000200f9,0x000001f8,0x000200f8,0x00000203,0x0004003d,0x00000093,0x00000204,0x000001eb, + 0x0004003d,0x00000093,0x00000205,0x000001eb,0x00050041,0x00000013,0x00000206,0x00000054, + 0x00000205,0x0004003d,0x00000006,0x00000207,0x00000206,0x00050083,0x00000006,0x00000208, + 0x000000a9,0x00000207,0x00050085,0x00000006,0x00000209,0x000001a7,0x00000208,0x0004003d, + 0x00000093,0x0000020a,0x000001eb,0x00050041,0x00000013,0x0000020b,0x00000055,0x0000020a, + 0x0004003d,0x00000006,0x0000020c,0x0000020b,0x00050083,0x00000006,0x0000020d,0x000000a9, + 0x0000020c,0x00050085,0x00000006,0x0000020e,0x00000209,0x0000020d,0x00050083,0x00000006, + 0x0000020f,0x000000a9,0x0000020e,0x00050041,0x00000013,0x00000210,0x00000188,0x00000204, + 0x0003003e,0x00000210,0x0000020f,0x000200f9,0x000001f8,0x000200f8,0x000001f8,0x000200f9, + 0x000001ef,0x000200f8,0x000001ef,0x0004003d,0x00000093,0x00000211,0x000001eb,0x00050080, + 0x00000093,0x00000212,0x00000211,0x00000097,0x0003003e,0x000001eb,0x00000212,0x000200f9, + 0x000001ec,0x000200f8,0x000001ee,0x000200f9,0x00000187,0x000200f8,0x00000180,0x0003003e, + 0x00000214,0x00000094,0x000200f9,0x00000215,0x000200f8,0x00000215,0x000400f6,0x00000217, + 0x00000218,0x00000000,0x000200f9,0x00000219,0x000200f8,0x00000219,0x0004003d,0x00000093, + 0x0000021a,0x00000214,0x000500b1,0x000000a0,0x0000021b,0x0000021a,0x0000019d,0x000400fa, + 0x0000021b,0x00000216,0x00000217,0x000200f8,0x00000216,0x0004003d,0x00000093,0x0000021c, + 0x00000214,0x00050041,0x00000013,0x0000021d,0x00000054,0x0000021c,0x0004003d,0x00000006, + 0x0000021e,0x0000021d,0x000500bc,0x000000a0,0x0000021f,0x0000021e,0x000001a2,0x000300f7, + 0x00000221,0x00000000,0x000400fa,0x0000021f,0x00000220,0x00000236,0x000200f8,0x00000220, + 0x0004003d,0x00000093,0x00000222,0x00000214,0x0004003d,0x00000093,0x00000223,0x00000214, + 0x00050041,0x00000013,0x00000224,0x00000055,0x00000223,0x0004003d,0x00000006,0x00000225, + 0x00000224,0x0004003d,0x00000093,0x00000226,0x00000214,0x00050041,0x00000013,0x00000227, + 0x00000054,0x00000226,0x0004003d,0x00000006,0x00000228,0x00000227,0x00050085,0x00000006, + 0x00000229,0x000001a7,0x00000228,0x00050083,0x00000006,0x0000022a,0x000000a9,0x00000229, + 0x0004003d,0x00000093,0x0000022b,0x00000214,0x00050041,0x00000013,0x0000022c,0x00000055, + 0x0000022b,0x0004003d,0x00000006,0x0000022d,0x0000022c,0x00050085,0x00000006,0x0000022e, + 0x0000022a,0x0000022d,0x0004003d,0x00000093,0x0000022f,0x00000214,0x00050041,0x00000013, + 0x00000230,0x00000055,0x0000022f,0x0004003d,0x00000006,0x00000231,0x00000230,0x00050083, + 0x00000006,0x00000232,0x000000a9,0x00000231,0x00050085,0x00000006,0x00000233,0x0000022e, + 0x00000232,0x00050083,0x00000006,0x00000234,0x00000225,0x00000233,0x00050041,0x00000013, + 0x00000235,0x00000188,0x00000222,0x0003003e,0x00000235,0x00000234,0x000200f9,0x00000221, + 0x000200f8,0x00000236,0x0004003d,0x00000093,0x00000237,0x00000214,0x00050041,0x00000013, + 0x00000238,0x00000055,0x00000237,0x0004003d,0x00000006,0x00000239,0x00000238,0x000500bc, + 0x000000a0,0x0000023b,0x00000239,0x0000023a,0x000300f7,0x0000023d,0x00000000,0x000400fa, + 0x0000023b,0x0000023c,0x0000025b,0x000200f8,0x0000023c,0x0004003d,0x00000093,0x0000023e, + 0x00000214,0x0004003d,0x00000093,0x0000023f,0x00000214,0x00050041,0x00000013,0x00000240, + 0x00000055,0x0000023f,0x0004003d,0x00000006,0x00000241,0x00000240,0x0004003d,0x00000093, + 0x00000242,0x00000214,0x00050041,0x00000013,0x00000243,0x00000054,0x00000242,0x0004003d, + 0x00000006,0x00000244,0x00000243,0x00050085,0x00000006,0x00000245,0x000001a7,0x00000244, + 0x00050083,0x00000006,0x00000246,0x00000245,0x000000a9,0x0004003d,0x00000093,0x00000247, + 0x00000214,0x00050041,0x00000013,0x00000248,0x00000055,0x00000247,0x0004003d,0x00000006, + 0x00000249,0x00000248,0x00050085,0x00000006,0x0000024a,0x00000246,0x00000249,0x0004003d, + 0x00000093,0x0000024c,0x00000214,0x00050041,0x00000013,0x0000024d,0x00000055,0x0000024c, + 0x0004003d,0x00000006,0x0000024e,0x0000024d,0x00050085,0x00000006,0x0000024f,0x0000024b, + 0x0000024e,0x00050083,0x00000006,0x00000251,0x0000024f,0x00000250,0x0004003d,0x00000093, + 0x00000252,0x00000214,0x00050041,0x00000013,0x00000253,0x00000055,0x00000252,0x0004003d, + 0x00000006,0x00000254,0x00000253,0x00050085,0x00000006,0x00000255,0x00000251,0x00000254, + 0x00050081,0x00000006,0x00000257,0x00000255,0x00000256,0x00050085,0x00000006,0x00000258, + 0x0000024a,0x00000257,0x00050081,0x00000006,0x00000259,0x00000241,0x00000258,0x00050041, + 0x00000013,0x0000025a,0x00000188,0x0000023e,0x0003003e,0x0000025a,0x00000259,0x000200f9, + 0x0000023d,0x000200f8,0x0000025b,0x0004003d,0x00000093,0x0000025c,0x00000214,0x0004003d, + 0x00000093,0x0000025d,0x00000214,0x00050041,0x00000013,0x0000025e,0x00000055,0x0000025d, + 0x0004003d,0x00000006,0x0000025f,0x0000025e,0x0004003d,0x00000093,0x00000260,0x00000214, + 0x00050041,0x00000013,0x00000261,0x00000054,0x00000260,0x0004003d,0x00000006,0x00000262, + 0x00000261,0x00050085,0x00000006,0x00000263,0x000001a7,0x00000262,0x00050083,0x00000006, + 0x00000264,0x00000263,0x000000a9,0x0004003d,0x00000093,0x00000265,0x00000214,0x00050041, + 0x00000013,0x00000266,0x00000055,0x00000265,0x0004003d,0x00000006,0x00000267,0x00000266, + 0x0006000c,0x00000006,0x00000268,0x00000001,0x0000001f,0x00000267,0x0004003d,0x00000093, + 0x00000269,0x00000214,0x00050041,0x00000013,0x0000026a,0x00000055,0x00000269,0x0004003d, + 0x00000006,0x0000026b,0x0000026a,0x00050083,0x00000006,0x0000026c,0x00000268,0x0000026b, + 0x00050085,0x00000006,0x0000026d,0x00000264,0x0000026c,0x00050081,0x00000006,0x0000026e, + 0x0000025f,0x0000026d,0x00050041,0x00000013,0x0000026f,0x00000188,0x0000025c,0x0003003e, + 0x0000026f,0x0000026e,0x000200f9,0x0000023d,0x000200f8,0x0000023d,0x000200f9,0x00000221, + 0x000200f8,0x00000221,0x000200f9,0x00000218,0x000200f8,0x00000218,0x0004003d,0x00000093, + 0x00000270,0x00000214,0x00050080,0x00000093,0x00000271,0x00000270,0x00000097,0x0003003e, + 0x00000214,0x00000271,0x000200f9,0x00000215,0x000200f8,0x00000217,0x000200f9,0x00000187, + 0x000200f8,0x00000181,0x0004003d,0x00000018,0x00000273,0x00000055,0x0004003d,0x00000018, + 0x00000274,0x00000054,0x00050083,0x00000018,0x00000275,0x00000273,0x00000274,0x0006000c, + 0x00000018,0x00000276,0x00000001,0x00000004,0x00000275,0x0003003e,0x00000188,0x00000276, + 0x000200f9,0x00000187,0x000200f8,0x00000182,0x0004003d,0x00000018,0x00000278,0x00000054, + 0x0004003d,0x00000018,0x00000279,0x00000055,0x00050081,0x00000018,0x0000027a,0x00000278, + 0x00000279,0x0004003d,0x00000018,0x0000027b,0x00000054,0x0005008e,0x00000018,0x0000027c, + 0x0000027b,0x000001a7,0x0004003d,0x00000018,0x0000027d,0x00000055,0x00050085,0x00000018, + 0x0000027e,0x0000027c,0x0000027d,0x00050083,0x00000018,0x0000027f,0x0000027a,0x0000027e, + 0x0003003e,0x00000188,0x0000027f,0x000200f9,0x00000187,0x000200f8,0x00000183,0x000300f7, + 0x00000283,0x00000000,0x000400fa,0x00000281,0x00000282,0x00000283,0x000200f8,0x00000282, + 0x0004003d,0x00000018,0x00000284,0x00000054,0x0003003e,0x00000285,0x000000a1,0x00050039, + 0x00000018,0x00000286,0x00000021,0x00000285,0x0003003e,0x00000287,0x000000a9,0x00050039, + 0x00000018,0x00000288,0x00000021,0x00000287,0x0008000c,0x00000018,0x00000289,0x00000001, + 0x0000002b,0x00000284,0x00000286,0x00000288,0x0003003e,0x00000054,0x00000289,0x0004003d, + 0x00000018,0x0000028b,0x00000054,0x0003003e,0x0000028a,0x0000028b,0x0004003d,0x00000018, + 0x0000028d,0x00000055,0x0003003e,0x0000028c,0x0000028d,0x0004003d,0x00000018,0x0000028f, + 0x00000055,0x0003003e,0x0000028e,0x0000028f,0x00070039,0x00000018,0x00000290,0x00000051, + 0x0000028a,0x0000028c,0x0000028e,0x0003003e,0x00000188,0x00000290,0x000200f9,0x00000187, + 0x000200f8,0x00000283,0x000200f9,0x00000184,0x000200f8,0x00000184,0x000300f7,0x00000293, + 0x00000000,0x000400fa,0x00000281,0x00000292,0x00000293,0x000200f8,0x00000292,0x0004003d, + 0x00000018,0x00000294,0x00000054,0x0003003e,0x00000295,0x000000a1,0x00050039,0x00000018, + 0x00000296,0x00000021,0x00000295,0x0003003e,0x00000297,0x000000a9,0x00050039,0x00000018, + 0x00000298,0x00000021,0x00000297,0x0008000c,0x00000018,0x00000299,0x00000001,0x0000002b, + 0x00000294,0x00000296,0x00000298,0x0003003e,0x00000054,0x00000299,0x0004003d,0x00000018, + 0x0000029b,0x00000055,0x0003003e,0x0000029a,0x0000029b,0x0004003d,0x00000018,0x0000029d, + 0x00000054,0x0003003e,0x0000029c,0x0000029d,0x0004003d,0x00000018,0x0000029f,0x00000055, + 0x0003003e,0x0000029e,0x0000029f,0x00070039,0x00000018,0x000002a0,0x00000051,0x0000029a, + 0x0000029c,0x0000029e,0x0003003e,0x00000188,0x000002a0,0x000200f9,0x00000187,0x000200f8, + 0x00000293,0x000200f9,0x00000185,0x000200f8,0x00000185,0x000300f7,0x000002a3,0x00000000, + 0x000400fa,0x00000281,0x000002a2,0x000002a3,0x000200f8,0x000002a2,0x0004003d,0x00000018, + 0x000002a4,0x00000054,0x0003003e,0x000002a5,0x000000a1,0x00050039,0x00000018,0x000002a6, + 0x00000021,0x000002a5,0x0003003e,0x000002a7,0x000000a9,0x00050039,0x00000018,0x000002a8, + 0x00000021,0x000002a7,0x0008000c,0x00000018,0x000002a9,0x00000001,0x0000002b,0x000002a4, + 0x000002a6,0x000002a8,0x0003003e,0x00000054,0x000002a9,0x0004003d,0x00000018,0x000002ab, + 0x00000054,0x0003003e,0x000002aa,0x000002ab,0x0004003d,0x00000018,0x000002ad,0x00000055, + 0x0003003e,0x000002ac,0x000002ad,0x00060039,0x00000018,0x000002ae,0x0000004b,0x000002aa, + 0x000002ac,0x0003003e,0x00000188,0x000002ae,0x000200f9,0x00000187,0x000200f8,0x000002a3, + 0x000200f9,0x00000186,0x000200f8,0x00000186,0x000300f7,0x000002b1,0x00000000,0x000400fa, + 0x00000281,0x000002b0,0x000002b1,0x000200f8,0x000002b0,0x0004003d,0x00000018,0x000002b2, + 0x00000054,0x0003003e,0x000002b3,0x000000a1,0x00050039,0x00000018,0x000002b4,0x00000021, + 0x000002b3,0x0003003e,0x000002b5,0x000000a9,0x00050039,0x00000018,0x000002b6,0x00000021, + 0x000002b5,0x0008000c,0x00000018,0x000002b7,0x00000001,0x0000002b,0x000002b2,0x000002b4, + 0x000002b6,0x0003003e,0x00000054,0x000002b7,0x0004003d,0x00000018,0x000002b9,0x00000055, + 0x0003003e,0x000002b8,0x000002b9,0x0004003d,0x00000018,0x000002bb,0x00000054,0x0003003e, + 0x000002ba,0x000002bb,0x00060039,0x00000018,0x000002bc,0x0000004b,0x000002b8,0x000002ba, + 0x0003003e,0x00000188,0x000002bc,0x000200f9,0x00000187,0x000200f8,0x000002b1,0x000200f9, + 0x00000187,0x000200f8,0x00000187,0x0004003d,0x00000018,0x000002bf,0x00000188,0x000200fe, + 0x000002bf,0x00010038,0x00050036,0x00000007,0x0000005d,0x00000000,0x00000059,0x00030037, + 0x00000008,0x0000005a,0x00030037,0x00000008,0x0000005b,0x00030037,0x0000000e,0x0000005c, + 0x000200f8,0x0000005e,0x0004003b,0x00000023,0x000002c2,0x00000007,0x0004003b,0x00000023, + 0x000002c3,0x00000007,0x0004003b,0x00000023,0x000002c6,0x00000007,0x0004003b,0x0000000e, + 0x000002c9,0x00000007,0x0004003b,0x00000013,0x000002cc,0x00000007,0x0004003b,0x00000023, + 0x000002d2,0x00000007,0x0004003b,0x00000013,0x000002db,0x00000007,0x0004003b,0x00000013, + 0x000002dd,0x00000007,0x0004003b,0x00000013,0x000002de,0x00000007,0x0004003b,0x00000023, + 0x000002e0,0x00000007,0x0004003b,0x00000023,0x000002e2,0x00000007,0x0004003b,0x00000023, + 0x000002e5,0x00000007,0x0004003b,0x00000023,0x000002f4,0x00000007,0x0004003b,0x00000013, + 0x000002f5,0x00000007,0x0004003d,0x00000007,0x000002c4,0x0000005a,0x0008004f,0x00000018, + 0x000002c5,0x000002c4,0x000002c4,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002c3, + 0x000002c5,0x0004003d,0x00000007,0x000002c7,0x0000005b,0x0008004f,0x00000018,0x000002c8, + 0x000002c7,0x000002c7,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002c6,0x000002c8, + 0x0004003d,0x0000000d,0x000002ca,0x0000005c,0x0003003e,0x000002c9,0x000002ca,0x00070039, + 0x00000018,0x000002cb,0x00000057,0x000002c3,0x000002c6,0x000002c9,0x0003003e,0x000002c2, + 0x000002cb,0x00050041,0x00000013,0x000002cd,0x0000005a,0x0000008c,0x0004003d,0x00000006, + 0x000002ce,0x000002cd,0x00050041,0x00000013,0x000002cf,0x0000005b,0x0000008c,0x0004003d, + 0x00000006,0x000002d0,0x000002cf,0x00050085,0x00000006,0x000002d1,0x000002ce,0x000002d0, + 0x0003003e,0x000002cc,0x000002d1,0x00050041,0x00000013,0x000002d3,0x0000005a,0x0000008c, + 0x0004003d,0x00000006,0x000002d4,0x000002d3,0x0004003d,0x00000006,0x000002d5,0x000002cc, + 0x00050083,0x00000006,0x000002d6,0x000002d4,0x000002d5,0x00050041,0x00000013,0x000002d7, + 0x0000005b,0x0000008c,0x0004003d,0x00000006,0x000002d8,0x000002d7,0x0004003d,0x00000006, + 0x000002d9,0x000002cc,0x00050083,0x00000006,0x000002da,0x000002d8,0x000002d9,0x0004003d, + 0x00000006,0x000002dc,0x000002cc,0x0003003e,0x000002db,0x000002dc,0x0003003e,0x000002dd, + 0x000002d6,0x0003003e,0x000002de,0x000002da,0x00070039,0x00000018,0x000002df,0x0000001d, + 0x000002db,0x000002dd,0x000002de,0x0003003e,0x000002d2,0x000002df,0x0004003d,0x00000018, + 0x000002e1,0x000002c2,0x0003003e,0x000002e0,0x000002e1,0x0004003d,0x00000007,0x000002e3, + 0x0000005a,0x0008004f,0x00000018,0x000002e4,0x000002e3,0x000002e3,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x000002e2,0x000002e4,0x0004003d,0x00000007,0x000002e6,0x0000005b, + 0x0008004f,0x00000018,0x000002e7,0x000002e6,0x000002e6,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x000002e5,0x000002e7,0x00070039,0x00000029,0x000002e8,0x0000002e,0x000002e0, + 0x000002e2,0x000002e5,0x0004003d,0x00000018,0x000002e9,0x000002d2,0x00050091,0x00000018, + 0x000002ea,0x000002e8,0x000002e9,0x00050041,0x00000013,0x000002eb,0x0000005b,0x0000008c, + 0x0004003d,0x00000006,0x000002ec,0x000002eb,0x00050041,0x00000013,0x000002ed,0x0000005a, + 0x0000008c,0x0004003d,0x00000006,0x000002ee,0x000002ed,0x00050083,0x00000006,0x000002ef, + 0x000000a9,0x000002ee,0x00050085,0x00000006,0x000002f0,0x000002ec,0x000002ef,0x00050041, + 0x00000013,0x000002f1,0x0000005a,0x0000008c,0x0004003d,0x00000006,0x000002f2,0x000002f1, + 0x00050081,0x00000006,0x000002f3,0x000002f0,0x000002f2,0x0003003e,0x000002f4,0x000002ea, + 0x0003003e,0x000002f5,0x000002f3,0x00060039,0x00000007,0x000002f6,0x00000027,0x000002f4, + 0x000002f5,0x000200fe,0x000002f6,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_image_mesh.vert.h b/defold-rive/include/generated/shaders/spirv/draw_image_mesh.vert.h new file mode 100644 index 00000000..f210dcce --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_image_mesh.vert.h @@ -0,0 +1,227 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_image_mesh_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000000db,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000c000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000007d,0x0000008a,0x00000092, + 0x00000093,0x00000099,0x000000ac,0x000000d2,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00070005,0x0000000d,0x656b616d,0x6f6c665f,0x78327461,0x66762832, + 0x00003b34,0x00030005,0x0000000c,0x00000078,0x00080005,0x00000014,0x625f6469,0x5f737469, + 0x665f6f74,0x75283631,0x31753b31,0x0000003b,0x00040005,0x00000012,0x69426469,0x00007374, + 0x00070005,0x00000013,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x000e0005, + 0x0000001c,0x646e6966,0x696c635f,0x65725f70,0x635f7463,0x7265766f,0x5f656761,0x74736964, + 0x65636e61,0x666d2873,0x763b3232,0x763b3266,0x003b3266,0x00080005,0x00000019,0x70696c63, + 0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078,0x00090005,0x0000001a,0x70696c63, + 0x74636552,0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00060005,0x0000001b, + 0x65786970,0x736f506c,0x6f697469,0x0000006e,0x00060005,0x00000042,0x70696c63,0x74636552, + 0x69574141,0x00687464,0x00030005,0x00000059,0x00000072,0x00060005,0x0000005d,0x70696c63, + 0x74636552,0x726f6f43,0x00000064,0x00050005,0x0000007b,0x7265765f,0x49786574,0x00000044, + 0x00060005,0x0000007d,0x565f6c67,0x65747265,0x646e4978,0x00007865,0x00050005,0x0000007f, + 0x736e695f,0x636e6174,0x00444965,0x00060005,0x00000080,0x74726576,0x6f507865,0x69746973, + 0x00006e6f,0x00090005,0x00000081,0x5058455f,0x4554524f,0x6d495f44,0x44656761,0x55776172, + 0x6f66696e,0x00736d72,0x00060006,0x00000081,0x00000000,0x77656976,0x7274614d,0x00007869, + 0x00060006,0x00000081,0x00000001,0x6e617274,0x74616c73,0x00000065,0x00050006,0x00000081, + 0x00000002,0x6361706f,0x00797469,0x00050006,0x00000081,0x00000003,0x64646170,0x00676e69, + 0x00090006,0x00000081,0x00000004,0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461, + 0x00000078,0x000a0006,0x00000081,0x00000005,0x70696c63,0x74636552,0x65766e49,0x54657372, + 0x736e6172,0x6574616c,0x00000000,0x00050006,0x00000081,0x00000006,0x70696c63,0x00004449, + 0x00060006,0x00000081,0x00000007,0x6e656c62,0x646f4d64,0x00000065,0x00050006,0x00000081, + 0x00000008,0x646e497a,0x00007865,0x00070005,0x00000083,0x67616d69,0x61724465,0x696e5577, + 0x6d726f66,0x00000073,0x00040005,0x00000084,0x61726170,0x0000006d,0x00080005,0x0000008a, + 0x5058455f,0x4554524f,0x5f615f44,0x69736f70,0x6e6f6974,0x00000000,0x00050005,0x00000092, + 0x65745f76,0x6f6f4378,0x00006472,0x00080005,0x00000093,0x5058455f,0x4554524f,0x5f615f44, + 0x43786574,0x64726f6f,0x00000000,0x00060005,0x00000095,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00050005,0x00000099,0x6c635f76,0x44497069,0x00000000,0x00080005,0x0000009c, + 0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x0000009c, + 0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006, + 0x0000009c,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x000b0006,0x0000009c,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372, + 0x70776569,0x5874726f,0x00000000,0x000b0006,0x0000009c,0x00000003,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x0000009c, + 0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x0000009c, + 0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x0000009c, + 0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x0000009c,0x00000007, + 0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x0000009c,0x00000008, + 0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006, + 0x0000009c,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000, + 0x00080006,0x0000009c,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079, + 0x00080006,0x0000009c,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575, + 0x00050005,0x0000009e,0x66696e75,0x736d726f,0x00000000,0x00040005,0x000000a0,0x61726170, + 0x0000006d,0x00040005,0x000000a4,0x61726170,0x0000006d,0x00060005,0x000000a8,0x616e456b, + 0x43656c62,0x5270696c,0x00746365,0x00050005,0x000000ac,0x6c635f76,0x65527069,0x00007463, + 0x00040005,0x000000ae,0x61726170,0x0000006d,0x00040005,0x000000b3,0x61726170,0x0000006d, + 0x00040005,0x000000b4,0x61726170,0x0000006d,0x00040005,0x000000b7,0x61726170,0x0000006d, + 0x00030005,0x000000ba,0x00736f70,0x00060005,0x000000d0,0x505f6c67,0x65567265,0x78657472, + 0x00000000,0x00060006,0x000000d0,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006, + 0x000000d0,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x000000d0, + 0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x000000d0,0x00000003, + 0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x000000d2,0x00000000,0x00080005, + 0x000000d5,0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00060005, + 0x000000d6,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x000000d7,0x616e456b, + 0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005,0x000000d8,0x616e456b, + 0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005,0x000000d9,0x6f6c436b, + 0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000000da,0x726f426b,0x65776f72,0x766f4364, + 0x67617265,0x65725065,0x73736170,0x00000000,0x00030047,0x00000014,0x00000000,0x00030047, + 0x0000003e,0x00000000,0x00030047,0x0000003f,0x00000000,0x00040047,0x0000007d,0x0000000b, + 0x0000002a,0x00050048,0x00000081,0x00000000,0x00000023,0x00000000,0x00050048,0x00000081, + 0x00000001,0x00000023,0x00000010,0x00050048,0x00000081,0x00000002,0x00000023,0x00000018, + 0x00050048,0x00000081,0x00000003,0x00000023,0x0000001c,0x00050048,0x00000081,0x00000004, + 0x00000023,0x00000020,0x00050048,0x00000081,0x00000005,0x00000023,0x00000030,0x00050048, + 0x00000081,0x00000006,0x00000023,0x00000038,0x00050048,0x00000081,0x00000007,0x00000023, + 0x0000003c,0x00050048,0x00000081,0x00000008,0x00000023,0x00000040,0x00030047,0x00000081, + 0x00000002,0x00040047,0x00000083,0x00000022,0x00000000,0x00040047,0x00000083,0x00000021, + 0x00000009,0x00040047,0x0000008a,0x0000001e,0x00000000,0x00040047,0x00000092,0x0000001e, + 0x00000000,0x00040047,0x00000093,0x0000001e,0x00000001,0x00040047,0x00000095,0x00000001, + 0x00000000,0x00030047,0x00000099,0x00000000,0x00030047,0x00000099,0x0000000e,0x00040047, + 0x00000099,0x0000001e,0x00000001,0x00050048,0x0000009c,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000009c,0x00000001,0x00000023,0x00000004,0x00050048,0x0000009c,0x00000002, + 0x00000023,0x00000008,0x00050048,0x0000009c,0x00000003,0x00000023,0x0000000c,0x00050048, + 0x0000009c,0x00000004,0x00000023,0x00000010,0x00050048,0x0000009c,0x00000005,0x00000023, + 0x00000014,0x00050048,0x0000009c,0x00000006,0x00000023,0x00000018,0x00050048,0x0000009c, + 0x00000007,0x00000023,0x0000001c,0x00050048,0x0000009c,0x00000008,0x00000023,0x00000020, + 0x00050048,0x0000009c,0x00000009,0x00000023,0x00000030,0x00050048,0x0000009c,0x0000000a, + 0x00000023,0x00000034,0x00050048,0x0000009c,0x0000000b,0x00000023,0x00000038,0x00030047, + 0x0000009c,0x00000002,0x00040047,0x0000009e,0x00000022,0x00000000,0x00040047,0x0000009e, + 0x00000021,0x00000007,0x00030047,0x000000a7,0x00000000,0x00040047,0x000000a8,0x00000001, + 0x00000001,0x00040047,0x000000ac,0x0000001e,0x00000002,0x00050048,0x000000d0,0x00000000, + 0x0000000b,0x00000000,0x00050048,0x000000d0,0x00000001,0x0000000b,0x00000001,0x00050048, + 0x000000d0,0x00000002,0x0000000b,0x00000003,0x00050048,0x000000d0,0x00000003,0x0000000b, + 0x00000004,0x00030047,0x000000d0,0x00000002,0x00040047,0x000000d5,0x00000001,0x00000002, + 0x00040047,0x000000d6,0x00000001,0x00000003,0x00040047,0x000000d7,0x00000001,0x00000004, + 0x00040047,0x000000d8,0x00000001,0x00000005,0x00040047,0x000000d9,0x00000001,0x00000006, + 0x00040047,0x000000da,0x00000001,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004, + 0x00040020,0x00000008,0x00000007,0x00000007,0x00040017,0x00000009,0x00000006,0x00000002, + 0x00040018,0x0000000a,0x00000009,0x00000002,0x00040021,0x0000000b,0x0000000a,0x00000008, + 0x00040015,0x0000000f,0x00000020,0x00000000,0x00040020,0x00000010,0x00000007,0x0000000f, + 0x00050021,0x00000011,0x00000006,0x00000010,0x00000010,0x00040020,0x00000016,0x00000007, + 0x0000000a,0x00040020,0x00000017,0x00000007,0x00000009,0x00060021,0x00000018,0x00000007, + 0x00000016,0x00000017,0x00000017,0x0004002b,0x00000006,0x00000022,0x3f800000,0x0004002b, + 0x00000006,0x00000023,0x00000000,0x0004002b,0x0000000f,0x0000002e,0x00000000,0x00020014, + 0x0000002f,0x00040020,0x00000031,0x00000007,0x00000006,0x0004002b,0x0000000f,0x00000037, + 0x000003ff,0x00040015,0x00000043,0x00000020,0x00000001,0x0004002b,0x00000043,0x00000044, + 0x00000000,0x0004002b,0x00000043,0x00000048,0x00000001,0x0004002b,0x0000000f,0x00000052, + 0x00000001,0x0004002b,0x00000006,0x00000071,0x3f000000,0x00040020,0x0000007a,0x00000007, + 0x00000043,0x00040020,0x0000007c,0x00000001,0x00000043,0x0004003b,0x0000007c,0x0000007d, + 0x00000001,0x000b001e,0x00000081,0x00000007,0x00000009,0x00000006,0x00000006,0x00000007, + 0x00000009,0x0000000f,0x0000000f,0x0000000f,0x00040020,0x00000082,0x00000002,0x00000081, + 0x0004003b,0x00000082,0x00000083,0x00000002,0x00040020,0x00000085,0x00000002,0x00000007, + 0x00040020,0x00000089,0x00000001,0x00000009,0x0004003b,0x00000089,0x0000008a,0x00000001, + 0x00040020,0x0000008d,0x00000002,0x00000009,0x00040020,0x00000091,0x00000003,0x00000009, + 0x0004003b,0x00000091,0x00000092,0x00000003,0x0004003b,0x00000089,0x00000093,0x00000001, + 0x00030031,0x0000002f,0x00000095,0x00040020,0x00000098,0x00000003,0x00000006,0x0004003b, + 0x00000098,0x00000099,0x00000003,0x0004002b,0x00000043,0x0000009a,0x00000006,0x00040017, + 0x0000009b,0x00000043,0x00000004,0x000e001e,0x0000009c,0x00000006,0x00000006,0x00000006, + 0x00000006,0x0000000f,0x0000000f,0x0000000f,0x0000000f,0x0000009b,0x0000000f,0x0000000f, + 0x00000006,0x00040020,0x0000009d,0x00000002,0x0000009c,0x0004003b,0x0000009d,0x0000009e, + 0x00000002,0x0004002b,0x00000043,0x0000009f,0x0000000a,0x00040020,0x000000a1,0x00000002, + 0x0000000f,0x00030031,0x0000002f,0x000000a8,0x00040020,0x000000ab,0x00000003,0x00000007, + 0x0004003b,0x000000ab,0x000000ac,0x00000003,0x0004002b,0x00000043,0x000000ad,0x00000004, + 0x0004002b,0x00000043,0x000000b2,0x00000005,0x0004002b,0x00000043,0x000000bd,0x00000002, + 0x00040020,0x000000be,0x00000002,0x00000006,0x0004002b,0x00000043,0x000000c5,0x00000003, + 0x0004001c,0x000000cf,0x00000006,0x00000052,0x0006001e,0x000000d0,0x00000007,0x00000006, + 0x000000cf,0x000000cf,0x00040020,0x000000d1,0x00000003,0x000000d0,0x0004003b,0x000000d1, + 0x000000d2,0x00000003,0x00030031,0x0000002f,0x000000d5,0x00030031,0x0000002f,0x000000d6, + 0x00030031,0x0000002f,0x000000d7,0x00030031,0x0000002f,0x000000d8,0x00030031,0x0000002f, + 0x000000d9,0x00030031,0x0000002f,0x000000da,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000007a,0x0000007b,0x00000007,0x0004003b, + 0x0000007a,0x0000007f,0x00000007,0x0004003b,0x00000017,0x00000080,0x00000007,0x0004003b, + 0x00000008,0x00000084,0x00000007,0x0004003b,0x00000010,0x000000a0,0x00000007,0x0004003b, + 0x00000010,0x000000a4,0x00000007,0x0004003b,0x00000008,0x000000ae,0x00000007,0x0004003b, + 0x00000016,0x000000b3,0x00000007,0x0004003b,0x00000017,0x000000b4,0x00000007,0x0004003b, + 0x00000017,0x000000b7,0x00000007,0x0004003b,0x00000008,0x000000ba,0x00000007,0x0004003d, + 0x00000043,0x0000007e,0x0000007d,0x0003003e,0x0000007b,0x0000007e,0x0003003e,0x0000007f, + 0x00000044,0x00050041,0x00000085,0x00000086,0x00000083,0x00000044,0x0004003d,0x00000007, + 0x00000087,0x00000086,0x0003003e,0x00000084,0x00000087,0x00050039,0x0000000a,0x00000088, + 0x0000000d,0x00000084,0x0004003d,0x00000009,0x0000008b,0x0000008a,0x00050091,0x00000009, + 0x0000008c,0x00000088,0x0000008b,0x00050041,0x0000008d,0x0000008e,0x00000083,0x00000048, + 0x0004003d,0x00000009,0x0000008f,0x0000008e,0x00050081,0x00000009,0x00000090,0x0000008c, + 0x0000008f,0x0003003e,0x00000080,0x00000090,0x0004003d,0x00000009,0x00000094,0x00000093, + 0x0003003e,0x00000092,0x00000094,0x000300f7,0x00000097,0x00000000,0x000400fa,0x00000095, + 0x00000096,0x00000097,0x000200f8,0x00000096,0x00050041,0x000000a1,0x000000a2,0x00000083, + 0x0000009a,0x0004003d,0x0000000f,0x000000a3,0x000000a2,0x0003003e,0x000000a0,0x000000a3, + 0x00050041,0x000000a1,0x000000a5,0x0000009e,0x0000009f,0x0004003d,0x0000000f,0x000000a6, + 0x000000a5,0x0003003e,0x000000a4,0x000000a6,0x00060039,0x00000006,0x000000a7,0x00000014, + 0x000000a0,0x000000a4,0x0003003e,0x00000099,0x000000a7,0x000200f9,0x00000097,0x000200f8, + 0x00000097,0x000300f7,0x000000aa,0x00000000,0x000400fa,0x000000a8,0x000000a9,0x000000aa, + 0x000200f8,0x000000a9,0x00050041,0x00000085,0x000000af,0x00000083,0x000000ad,0x0004003d, + 0x00000007,0x000000b0,0x000000af,0x0003003e,0x000000ae,0x000000b0,0x00050039,0x0000000a, + 0x000000b1,0x0000000d,0x000000ae,0x0003003e,0x000000b3,0x000000b1,0x00050041,0x0000008d, + 0x000000b5,0x00000083,0x000000b2,0x0004003d,0x00000009,0x000000b6,0x000000b5,0x0003003e, + 0x000000b4,0x000000b6,0x0004003d,0x00000009,0x000000b8,0x00000080,0x0003003e,0x000000b7, + 0x000000b8,0x00070039,0x00000007,0x000000b9,0x0000001c,0x000000b3,0x000000b4,0x000000b7, + 0x0003003e,0x000000ac,0x000000b9,0x000200f9,0x000000aa,0x000200f8,0x000000aa,0x00050041, + 0x00000031,0x000000bb,0x00000080,0x0000002e,0x0004003d,0x00000006,0x000000bc,0x000000bb, + 0x00050041,0x000000be,0x000000bf,0x0000009e,0x000000bd,0x0004003d,0x00000006,0x000000c0, + 0x000000bf,0x00050085,0x00000006,0x000000c1,0x000000bc,0x000000c0,0x00050083,0x00000006, + 0x000000c2,0x000000c1,0x00000022,0x00050041,0x00000031,0x000000c3,0x00000080,0x00000052, + 0x0004003d,0x00000006,0x000000c4,0x000000c3,0x00050041,0x000000be,0x000000c6,0x0000009e, + 0x000000c5,0x0004003d,0x00000006,0x000000c7,0x000000c6,0x0004007f,0x00000006,0x000000c8, + 0x000000c7,0x00050085,0x00000006,0x000000c9,0x000000c4,0x000000c8,0x00050041,0x000000be, + 0x000000ca,0x0000009e,0x000000c5,0x0004003d,0x00000006,0x000000cb,0x000000ca,0x0006000c, + 0x00000006,0x000000cc,0x00000001,0x00000006,0x000000cb,0x00050081,0x00000006,0x000000cd, + 0x000000c9,0x000000cc,0x00070050,0x00000007,0x000000ce,0x000000c2,0x000000cd,0x00000023, + 0x00000022,0x0003003e,0x000000ba,0x000000ce,0x0004003d,0x00000007,0x000000d3,0x000000ba, + 0x00050041,0x000000ab,0x000000d4,0x000000d2,0x00000044,0x0003003e,0x000000d4,0x000000d3, + 0x000100fd,0x00010038,0x00050036,0x0000000a,0x0000000d,0x00000000,0x0000000b,0x00030037, + 0x00000008,0x0000000c,0x000200f8,0x0000000e,0x0004003d,0x00000007,0x0000001e,0x0000000c, + 0x0007004f,0x00000009,0x0000001f,0x0000001e,0x0000001e,0x00000000,0x00000001,0x0004003d, + 0x00000007,0x00000020,0x0000000c,0x0007004f,0x00000009,0x00000021,0x00000020,0x00000020, + 0x00000002,0x00000003,0x00050051,0x00000006,0x00000024,0x0000001f,0x00000000,0x00050051, + 0x00000006,0x00000025,0x0000001f,0x00000001,0x00050051,0x00000006,0x00000026,0x00000021, + 0x00000000,0x00050051,0x00000006,0x00000027,0x00000021,0x00000001,0x00050050,0x00000009, + 0x00000028,0x00000024,0x00000025,0x00050050,0x00000009,0x00000029,0x00000026,0x00000027, + 0x00050050,0x0000000a,0x0000002a,0x00000028,0x00000029,0x000200fe,0x0000002a,0x00010038, + 0x00050036,0x00000006,0x00000014,0x00000000,0x00000011,0x00030037,0x00000010,0x00000012, + 0x00030037,0x00000010,0x00000013,0x000200f8,0x00000015,0x0004003b,0x00000031,0x00000032, + 0x00000007,0x0004003b,0x00000031,0x0000003e,0x00000007,0x0004003d,0x0000000f,0x0000002d, + 0x00000012,0x000500aa,0x0000002f,0x00000030,0x0000002d,0x0000002e,0x000300f7,0x00000034, + 0x00000000,0x000400fa,0x00000030,0x00000033,0x00000035,0x000200f8,0x00000033,0x0003003e, + 0x00000032,0x00000023,0x000200f9,0x00000034,0x000200f8,0x00000035,0x0004003d,0x0000000f, + 0x00000036,0x00000012,0x00050080,0x0000000f,0x00000038,0x00000036,0x00000037,0x0004003d, + 0x0000000f,0x00000039,0x00000013,0x00050084,0x0000000f,0x0000003a,0x00000038,0x00000039, + 0x0006000c,0x00000009,0x0000003b,0x00000001,0x0000003e,0x0000003a,0x00050051,0x00000006, + 0x0000003c,0x0000003b,0x00000000,0x0003003e,0x00000032,0x0000003c,0x000200f9,0x00000034, + 0x000200f8,0x00000034,0x0004003d,0x00000006,0x0000003d,0x00000032,0x0003003e,0x0000003e, + 0x0000003d,0x0004003d,0x00000006,0x0000003f,0x0000003e,0x000200fe,0x0000003f,0x00010038, + 0x00050036,0x00000007,0x0000001c,0x00000000,0x00000018,0x00030037,0x00000016,0x00000019, + 0x00030037,0x00000017,0x0000001a,0x00030037,0x00000017,0x0000001b,0x000200f8,0x0000001d, + 0x0004003b,0x00000017,0x00000042,0x00000007,0x0004003b,0x00000017,0x00000059,0x00000007, + 0x0004003b,0x00000017,0x0000005d,0x00000007,0x00050041,0x00000017,0x00000045,0x00000019, + 0x00000044,0x0004003d,0x00000009,0x00000046,0x00000045,0x0006000c,0x00000009,0x00000047, + 0x00000001,0x00000004,0x00000046,0x00050041,0x00000017,0x00000049,0x00000019,0x00000048, + 0x0004003d,0x00000009,0x0000004a,0x00000049,0x0006000c,0x00000009,0x0000004b,0x00000001, + 0x00000004,0x0000004a,0x00050081,0x00000009,0x0000004c,0x00000047,0x0000004b,0x0003003e, + 0x00000042,0x0000004c,0x00050041,0x00000031,0x0000004d,0x00000042,0x0000002e,0x0004003d, + 0x00000006,0x0000004e,0x0000004d,0x000500b7,0x0000002f,0x0000004f,0x0000004e,0x00000023, + 0x000300f7,0x00000051,0x00000000,0x000400fa,0x0000004f,0x00000050,0x00000051,0x000200f8, + 0x00000050,0x00050041,0x00000031,0x00000053,0x00000042,0x00000052,0x0004003d,0x00000006, + 0x00000054,0x00000053,0x000500b7,0x0000002f,0x00000055,0x00000054,0x00000023,0x000200f9, + 0x00000051,0x000200f8,0x00000051,0x000700f5,0x0000002f,0x00000056,0x0000004f,0x0000001d, + 0x00000055,0x00000050,0x000300f7,0x00000058,0x00000000,0x000400fa,0x00000056,0x00000057, + 0x00000075,0x000200f8,0x00000057,0x0004003d,0x00000009,0x0000005a,0x00000042,0x00050050, + 0x00000009,0x0000005b,0x00000022,0x00000022,0x00050088,0x00000009,0x0000005c,0x0000005b, + 0x0000005a,0x0003003e,0x00000059,0x0000005c,0x0004003d,0x0000000a,0x0000005e,0x00000019, + 0x0004003d,0x00000009,0x0000005f,0x0000001b,0x00050091,0x00000009,0x00000060,0x0000005e, + 0x0000005f,0x0004003d,0x00000009,0x00000061,0x0000001a,0x00050081,0x00000009,0x00000062, + 0x00000060,0x00000061,0x0003003e,0x0000005d,0x00000062,0x0004003d,0x00000009,0x00000063, + 0x0000005d,0x0004003d,0x00000009,0x00000064,0x0000005d,0x0004007f,0x00000009,0x00000065, + 0x00000064,0x00050051,0x00000006,0x00000066,0x00000063,0x00000000,0x00050051,0x00000006, + 0x00000067,0x00000063,0x00000001,0x00050051,0x00000006,0x00000068,0x00000065,0x00000000, + 0x00050051,0x00000006,0x00000069,0x00000065,0x00000001,0x00070050,0x00000007,0x0000006a, + 0x00000066,0x00000067,0x00000068,0x00000069,0x0004003d,0x00000009,0x0000006b,0x00000059, + 0x0009004f,0x00000007,0x0000006c,0x0000006b,0x0000006b,0x00000000,0x00000001,0x00000000, + 0x00000001,0x00050085,0x00000007,0x0000006d,0x0000006a,0x0000006c,0x0004003d,0x00000009, + 0x0000006e,0x00000059,0x0009004f,0x00000007,0x0000006f,0x0000006e,0x0000006e,0x00000000, + 0x00000001,0x00000000,0x00000001,0x00050081,0x00000007,0x00000070,0x0000006d,0x0000006f, + 0x00070050,0x00000007,0x00000072,0x00000071,0x00000071,0x00000071,0x00000071,0x00050081, + 0x00000007,0x00000073,0x00000070,0x00000072,0x000200fe,0x00000073,0x000200f8,0x00000075, + 0x0004003d,0x00000009,0x00000076,0x0000001a,0x0009004f,0x00000007,0x00000077,0x00000076, + 0x00000076,0x00000000,0x00000001,0x00000000,0x00000001,0x000200fe,0x00000077,0x000200f8, + 0x00000058,0x000100ff,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.frag.h b/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.frag.h new file mode 100644 index 00000000..1f3671a4 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.frag.h @@ -0,0 +1,1109 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_interior_triangles_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x0000047c,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000f000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000387, + 0x00000393,0x00000398,0x000003c3,0x000003d1,0x000003fb,0x00000404,0x00000429,0x0000044b, + 0x0000047b,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x6e69755f,0x6f745f74,0x6c61685f, + 0x31752866,0x0000003b,0x00030005,0x0000000a,0x00000078,0x00090005,0x00000011,0x74736163, + 0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61,0x34667628,0x0000003b,0x00040005,0x00000010, + 0x777a7978,0x00000000,0x00080005,0x00000016,0x74736163,0x6c61685f,0x6f745f66,0x6873755f, + 0x2874726f,0x003b3166,0x00030005,0x00000015,0x00000078,0x00060005,0x0000001a,0x656b616d, + 0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000019,0x00000078,0x00070005,0x00000020, + 0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x0000001e,0x00000078, + 0x00030005,0x0000001f,0x00000079,0x00080005,0x00000027,0x656b616d,0x6c61685f,0x66283366, + 0x31663b31,0x3b31663b,0x00000000,0x00030005,0x00000024,0x00000078,0x00030005,0x00000025, + 0x00000079,0x00030005,0x00000026,0x0000007a,0x00060005,0x0000002b,0x656b616d,0x6c61685f, + 0x66283366,0x00003b31,0x00030005,0x0000002a,0x00000078,0x00070005,0x00000031,0x656b616d, + 0x6c61685f,0x76283466,0x663b3366,0x00003b31,0x00030005,0x0000002f,0x007a7978,0x00030005, + 0x00000030,0x00000077,0x00090005,0x00000038,0x656b616d,0x6c61685f,0x33783366,0x33667628, + 0x3366763b,0x3366763b,0x0000003b,0x00030005,0x00000035,0x00000061,0x00030005,0x00000036, + 0x00000062,0x00030005,0x00000037,0x00000063,0x00060005,0x0000003b,0x756d6e75,0x7069746c, + 0x7628796c,0x003b3466,0x00040005,0x0000003a,0x6f6c6f63,0x00000072,0x00060005,0x0000003f, + 0x5f6e696d,0x756c6176,0x66762865,0x00003b34,0x00040005,0x0000003e,0x346e696d,0x00000000, + 0x00050005,0x00000043,0x766e696d,0x66762833,0x00003b33,0x00030005,0x00000042,0x00000063, + 0x00050005,0x00000046,0x7678616d,0x66762833,0x00003b33,0x00030005,0x00000045,0x00000063, + 0x00050005,0x00000049,0x766d756c,0x66762833,0x00003b33,0x00030005,0x00000048,0x00000063, + 0x00050005,0x0000004c,0x76746173,0x66762833,0x00003b33,0x00030005,0x0000004b,0x00000063, + 0x00060005,0x00000050,0x70696c63,0x6c6f635f,0x7628726f,0x003b3366,0x00040005,0x0000004f, + 0x6f6c6f63,0x00000072,0x00070005,0x00000055,0x5f746573,0x286d756c,0x3b336676,0x3b336676, + 0x00000000,0x00040005,0x00000053,0x73616263,0x00000065,0x00040005,0x00000054,0x6d756c63, + 0x00000000,0x00090005,0x0000005b,0x5f746573,0x5f6d756c,0x28746173,0x3b336676,0x3b336676, + 0x3b336676,0x00000000,0x00040005,0x00000058,0x73616263,0x00000065,0x00040005,0x00000059, + 0x74617363,0x00000000,0x00040005,0x0000005a,0x6d756c63,0x00000000,0x000b0005,0x00000061, + 0x61766461,0x6465636e,0x656c625f,0x635f646e,0x6666656f,0x66762873,0x66763b33,0x31753b33, + 0x0000003b,0x00030005,0x0000005e,0x00637273,0x00030005,0x0000005f,0x00747364,0x00040005, + 0x00000060,0x65646f6d,0x00000000,0x00090005,0x00000067,0x61766461,0x6465636e,0x656c625f, + 0x7628646e,0x763b3466,0x753b3466,0x00003b31,0x00030005,0x00000064,0x00637273,0x00030005, + 0x00000065,0x00747364,0x00040005,0x00000066,0x65646f6d,0x00000000,0x00080005,0x0000006a, + 0x646e6966,0x6961705f,0x635f746e,0x726f6c6f,0x34667628,0x0000003b,0x00040005,0x00000069, + 0x6e696170,0x00000074,0x00030005,0x0000007f,0x00746572,0x00030005,0x00000089,0x00746572, + 0x00030005,0x00000094,0x00746572,0x00030005,0x0000009e,0x00746572,0x00030005,0x000000ad, + 0x00746572,0x00040005,0x000000d7,0x61726170,0x0000006d,0x00040005,0x000000dc,0x61726170, + 0x0000006d,0x00040005,0x000000ea,0x326e696d,0x00000000,0x00040005,0x000000f0,0x316e696d, + 0x00000000,0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170, + 0x0000006d,0x00040005,0x00000113,0x61726170,0x0000006d,0x00040005,0x00000118,0x61726170, + 0x0000006d,0x00040005,0x0000011b,0x61726170,0x0000006d,0x00030005,0x00000121,0x006d756c, + 0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005,0x00000125,0x636e696d,0x00006c6f, + 0x00040005,0x00000126,0x61726170,0x0000006d,0x00040005,0x00000129,0x6378616d,0x00006c6f, + 0x00040005,0x0000012a,0x61726170,0x0000006d,0x00040005,0x00000155,0x7361626c,0x00000065, + 0x00040005,0x00000156,0x61726170,0x0000006d,0x00040005,0x00000159,0x6d756c6c,0x00000000, + 0x00040005,0x0000015a,0x61726170,0x0000006d,0x00040005,0x0000015d,0x6669646c,0x00000066, + 0x00040005,0x00000161,0x6f6c6f63,0x00000072,0x00040005,0x00000163,0x61726170,0x0000006d, + 0x00040005,0x00000167,0x61726170,0x0000006d,0x00040005,0x0000016c,0x626e696d,0x00657361, + 0x00040005,0x0000016d,0x61726170,0x0000006d,0x00040005,0x00000170,0x73616273,0x00000065, + 0x00040005,0x00000171,0x61726170,0x0000006d,0x00040005,0x00000174,0x74617373,0x00000000, + 0x00040005,0x00000175,0x61726170,0x0000006d,0x00040005,0x0000017c,0x6f6c6f63,0x00000072, + 0x00040005,0x00000187,0x61726170,0x0000006d,0x00040005,0x00000189,0x61726170,0x0000006d, + 0x00040005,0x0000018b,0x61726170,0x0000006d,0x00040005,0x000001a1,0x66656f63,0x00007366, + 0x00030005,0x000001af,0x00000069,0x00040005,0x000001e8,0x61726170,0x0000006d,0x00040005, + 0x000001eb,0x61726170,0x0000006d,0x00040005,0x000001ee,0x61726170,0x0000006d,0x00040005, + 0x000001fc,0x61726170,0x0000006d,0x00040005,0x000001ff,0x61726170,0x0000006d,0x00030005, + 0x00000204,0x00000069,0x00030005,0x0000022d,0x00000069,0x00080005,0x0000029a,0x616e456b, + 0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005,0x0000029e,0x61726170, + 0x0000006d,0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005,0x000002a3,0x61726170, + 0x0000006d,0x00040005,0x000002a5,0x61726170,0x0000006d,0x00040005,0x000002a7,0x61726170, + 0x0000006d,0x00040005,0x000002ae,0x61726170,0x0000006d,0x00040005,0x000002b0,0x61726170, + 0x0000006d,0x00040005,0x000002b3,0x61726170,0x0000006d,0x00040005,0x000002b5,0x61726170, + 0x0000006d,0x00040005,0x000002b7,0x61726170,0x0000006d,0x00040005,0x000002be,0x61726170, + 0x0000006d,0x00040005,0x000002c0,0x61726170,0x0000006d,0x00040005,0x000002c3,0x61726170, + 0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00040005,0x000002cc,0x61726170, + 0x0000006d,0x00040005,0x000002ce,0x61726170,0x0000006d,0x00040005,0x000002d1,0x61726170, + 0x0000006d,0x00040005,0x000002d3,0x61726170,0x0000006d,0x00040005,0x000002db,0x66656f63, + 0x00007366,0x00040005,0x000002dc,0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170, + 0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00030005,0x000002e5,0x00616473, + 0x00030005,0x000002eb,0x00000070,0x00040005,0x000002f4,0x61726170,0x0000006d,0x00040005, + 0x000002f6,0x61726170,0x0000006d,0x00040005,0x000002f7,0x61726170,0x0000006d,0x00040005, + 0x000002f9,0x61726170,0x0000006d,0x00040005,0x000002fb,0x61726170,0x0000006d,0x00040005, + 0x000002fe,0x61726170,0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005, + 0x0000030e,0x61726170,0x0000006d,0x00040005,0x00000317,0x61726170,0x0000006d,0x00030005, + 0x00000322,0x00000074,0x00040005,0x00000332,0x6e617073,0x00000000,0x00030005,0x00000336, + 0x00000078,0x00030005,0x00000348,0x00776f72,0x00080005,0x0000034e,0x5058455f,0x4554524f, + 0x72675f44,0x65546461,0x72757478,0x00000065,0x00050005,0x00000352,0x64617267,0x706d6153, + 0x0072656c,0x00030005,0x0000035c,0x00646f6c,0x00040005,0x00000361,0x6f6c6f63,0x00000072, + 0x00080005,0x00000362,0x5058455f,0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572, + 0x00060005,0x00000364,0x67616d69,0x6d615365,0x72656c70,0x00000000,0x00040005,0x0000036b, + 0x6361706f,0x00797469,0x00060005,0x00000376,0x65766f63,0x65676172,0x61746144,0x00000000, + 0x00080005,0x00000379,0x5f6e695f,0x65766f63,0x65676172,0x6e756f43,0x66754274,0x00726566, + 0x00070005,0x00000381,0x65766f63,0x65676172,0x66667542,0x44497265,0x00000000,0x00060005, + 0x00000384,0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00050005,0x00000387,0x61705f76, + 0x44496874,0x00000000,0x00040005,0x00000390,0x61726170,0x0000006d,0x00060005,0x00000393, + 0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00070005,0x00000398,0x65766f63,0x65676172, + 0x6e756f43,0x66754274,0x00726566,0x00060005,0x0000039e,0x6f6c436b,0x69776b63,0x69466573, + 0x00006c6c,0x00050005,0x000003a1,0x65766f63,0x65676172,0x00000000,0x00040005,0x000003a3, + 0x61726170,0x0000006d,0x00040005,0x000003a5,0x61726170,0x0000006d,0x00060005,0x000003ab, + 0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x000003b9,0x61726170,0x0000006d, + 0x00040005,0x000003bd,0x61726170,0x0000006d,0x00060005,0x000003c0,0x616e456b,0x43656c62, + 0x7070696c,0x00676e69,0x00050005,0x000003c3,0x6c635f76,0x44497069,0x00000000,0x00040005, + 0x000003c9,0x70696c63,0x00004449,0x00080005,0x000003cc,0x616e456b,0x4e656c62,0x65747365, + 0x696c4364,0x6e697070,0x00000067,0x00050005,0x000003cf,0x6574756f,0x696c4372,0x00444970, + 0x00040005,0x000003d1,0x61705f76,0x00746e69,0x00050005,0x000003d8,0x70696c63,0x61746144, + 0x00000000,0x00060005,0x000003d9,0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00060005, + 0x000003de,0x70696c63,0x746e6f43,0x49746e65,0x00000044,0x00070005,0x000003e6,0x6574756f, + 0x696c4372,0x766f4370,0x67617265,0x00000065,0x00080005,0x000003f4,0x5f6e695f,0x61726373, + 0x43686374,0x726f6c6f,0x66667542,0x00007265,0x00050005,0x000003fb,0x70696c63,0x66667542, + 0x00007265,0x00040005,0x000003fc,0x61726170,0x0000006d,0x00040005,0x000003fe,0x61726170, + 0x0000006d,0x00050005,0x00000404,0x6f6c6f63,0x66754272,0x00726566,0x00060005,0x00000405, + 0x5f6e695f,0x6f6c6f63,0x66754272,0x00726566,0x00050005,0x0000040f,0x70696c63,0x61746144, + 0x00000000,0x00060005,0x00000414,0x70696c63,0x746e6f43,0x49746e65,0x00000044,0x00040005, + 0x00000422,0x61726170,0x0000006d,0x00060005,0x00000425,0x616e456b,0x43656c62,0x5270696c, + 0x00746365,0x00070005,0x00000428,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000, + 0x00050005,0x00000429,0x6c635f76,0x65527069,0x00007463,0x00040005,0x0000042a,0x61726170, + 0x0000006d,0x00040005,0x0000042d,0x61726170,0x0000006d,0x00040005,0x00000430,0x61726170, + 0x0000006d,0x00040005,0x00000434,0x6f6c6f63,0x00000072,0x00040005,0x00000435,0x61726170, + 0x0000006d,0x00050005,0x00000442,0x43747364,0x726f6c6f,0x00000000,0x00080005,0x00000448, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005,0x0000044b, + 0x6c625f76,0x4d646e65,0x0065646f,0x00040005,0x0000044d,0x61726170,0x0000006d,0x00040005, + 0x00000453,0x61726170,0x0000006d,0x00040005,0x00000456,0x61726170,0x0000006d,0x00040005, + 0x00000459,0x61726170,0x0000006d,0x00040005,0x0000045b,0x61726170,0x0000006d,0x00040005, + 0x0000045c,0x61726170,0x0000006d,0x00090005,0x00000476,0x726f426b,0x65776f72,0x766f4364, + 0x67617265,0x65725065,0x73736170,0x00000000,0x00080005,0x00000478,0x5058455f,0x4554524f, + 0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000478,0x00000000,0x64617267, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000478,0x00000001, + 0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x00000478, + 0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f, + 0x00000000,0x000b0006,0x00000478,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000478,0x00000004,0x646e6572, + 0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000478,0x00000005,0x646e6572, + 0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000478,0x00000006,0x6f6c6f63, + 0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000478,0x00000007,0x65766f63,0x65676172, + 0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000478,0x00000008,0x646e6572,0x61547265, + 0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000478,0x00000009, + 0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x00000478, + 0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x00000478, + 0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x0000047a, + 0x66696e75,0x736d726f,0x00000000,0x00070005,0x0000047b,0x61726373,0x43686374,0x726f6c6f, + 0x66667542,0x00007265,0x00030047,0x0000000b,0x00000000,0x00030047,0x00000011,0x00000000, + 0x00030047,0x00000016,0x00000000,0x00030047,0x00000015,0x00000000,0x00030047,0x0000001a, + 0x00000000,0x00030047,0x00000019,0x00000000,0x00030047,0x00000020,0x00000000,0x00030047, + 0x0000001e,0x00000000,0x00030047,0x0000001f,0x00000000,0x00030047,0x00000027,0x00000000, + 0x00030047,0x00000024,0x00000000,0x00030047,0x00000025,0x00000000,0x00030047,0x00000026, + 0x00000000,0x00030047,0x0000002b,0x00000000,0x00030047,0x0000002a,0x00000000,0x00030047, + 0x00000031,0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047,0x00000030,0x00000000, + 0x00030047,0x00000038,0x00000000,0x00030047,0x00000035,0x00000000,0x00030047,0x00000036, + 0x00000000,0x00030047,0x00000037,0x00000000,0x00030047,0x0000003b,0x00000000,0x00030047, + 0x0000003a,0x00000000,0x00030047,0x0000003f,0x00000000,0x00030047,0x0000003e,0x00000000, + 0x00030047,0x00000043,0x00000000,0x00030047,0x00000042,0x00000000,0x00030047,0x00000046, + 0x00000000,0x00030047,0x00000045,0x00000000,0x00030047,0x00000049,0x00000000,0x00030047, + 0x00000048,0x00000000,0x00030047,0x0000004c,0x00000000,0x00030047,0x0000004b,0x00000000, + 0x00030047,0x00000050,0x00000000,0x00030047,0x0000004f,0x00000000,0x00030047,0x00000055, + 0x00000000,0x00030047,0x00000053,0x00000000,0x00030047,0x00000054,0x00000000,0x00030047, + 0x0000005b,0x00000000,0x00030047,0x00000058,0x00000000,0x00030047,0x00000059,0x00000000, + 0x00030047,0x0000005a,0x00000000,0x00030047,0x00000061,0x00000000,0x00030047,0x0000005e, + 0x00000000,0x00030047,0x0000005f,0x00000000,0x00030047,0x00000060,0x00000000,0x00030047, + 0x00000067,0x00000000,0x00030047,0x00000064,0x00000000,0x00030047,0x00000065,0x00000000, + 0x00030047,0x00000066,0x00000000,0x00030047,0x0000006a,0x00000000,0x00030047,0x0000006e, + 0x00000000,0x00030047,0x0000006f,0x00000000,0x00030047,0x00000073,0x00000000,0x00030047, + 0x00000074,0x00000000,0x00030047,0x00000077,0x00000000,0x00030047,0x00000078,0x00000000, + 0x00030047,0x0000007b,0x00000000,0x00030047,0x0000007f,0x00000000,0x00030047,0x00000080, + 0x00000000,0x00030047,0x00000083,0x00000000,0x00030047,0x00000086,0x00000000,0x00030047, + 0x00000089,0x00000000,0x00030047,0x0000008a,0x00000000,0x00030047,0x0000008c,0x00000000, + 0x00030047,0x0000008e,0x00000000,0x00030047,0x00000091,0x00000000,0x00030047,0x00000094, + 0x00000000,0x00030047,0x00000095,0x00000000,0x00030047,0x00000097,0x00000000,0x00030047, + 0x00000099,0x00000000,0x00030047,0x0000009b,0x00000000,0x00030047,0x0000009e,0x00000000, + 0x00030047,0x0000009f,0x00000000,0x00030047,0x000000a6,0x00000000,0x00030047,0x000000a9, + 0x00000000,0x00030047,0x000000ad,0x00000000,0x00030047,0x000000b0,0x00000000,0x00030047, + 0x000000b3,0x00000000,0x00030047,0x000000b6,0x00000000,0x00030047,0x000000b8,0x00000000, + 0x00030047,0x000000be,0x00000000,0x00030047,0x000000c3,0x00000000,0x00030047,0x000000ca, + 0x00000000,0x00030047,0x000000cb,0x00000000,0x00030047,0x000000cc,0x00000000,0x00030047, + 0x000000cd,0x00000000,0x00030047,0x000000ce,0x00000000,0x00030047,0x000000d5,0x00000000, + 0x00030047,0x000000d6,0x00000000,0x00030047,0x000000d7,0x00000000,0x00030047,0x000000d8, + 0x00000000,0x00030047,0x000000d9,0x00000000,0x00030047,0x000000da,0x00000000,0x00030047, + 0x000000dc,0x00000000,0x00030047,0x000000dd,0x00000000,0x00030047,0x000000df,0x00000000, + 0x00030047,0x000000e0,0x00000000,0x00030047,0x000000e7,0x00000000,0x00030047,0x000000ea, + 0x00000000,0x00030047,0x000000eb,0x00000000,0x00030047,0x000000ec,0x00000000,0x00030047, + 0x000000ed,0x00000000,0x00030047,0x000000ee,0x00000000,0x00030047,0x000000ef,0x00000000, + 0x00030047,0x000000f0,0x00000000,0x00030047,0x000000f2,0x00000000,0x00030047,0x000000f4, + 0x00000000,0x00030047,0x000000f5,0x00000000,0x00030047,0x000000f6,0x00000000,0x00030047, + 0x000000fa,0x00000000,0x00030047,0x000000fc,0x00000000,0x00030047,0x000000fd,0x00000000, + 0x00030047,0x000000ff,0x00000000,0x00030047,0x00000100,0x00000000,0x00030047,0x00000104, + 0x00000000,0x00030047,0x00000106,0x00000000,0x00030047,0x00000107,0x00000000,0x00030047, + 0x00000109,0x00000000,0x00030047,0x0000010a,0x00000000,0x00030047,0x0000010d,0x00000000, + 0x00030047,0x00000111,0x00000000,0x00030047,0x00000112,0x00000000,0x00030047,0x00000113, + 0x00000000,0x00030047,0x00000114,0x00000000,0x00030047,0x00000115,0x00000000,0x00030047, + 0x00000118,0x00000000,0x00030047,0x00000119,0x00000000,0x00030047,0x0000011a,0x00000000, + 0x00030047,0x0000011b,0x00000000,0x00030047,0x0000011c,0x00000000,0x00030047,0x0000011d, + 0x00000000,0x00030047,0x0000011e,0x00000000,0x00030047,0x00000121,0x00000000,0x00030047, + 0x00000122,0x00000000,0x00030047,0x00000123,0x00000000,0x00030047,0x00000124,0x00000000, + 0x00030047,0x00000125,0x00000000,0x00030047,0x00000126,0x00000000,0x00030047,0x00000127, + 0x00000000,0x00030047,0x00000128,0x00000000,0x00030047,0x00000129,0x00000000,0x00030047, + 0x0000012a,0x00000000,0x00030047,0x0000012b,0x00000000,0x00030047,0x0000012c,0x00000000, + 0x00030047,0x0000012d,0x00000000,0x00030047,0x00000131,0x00000000,0x00030047,0x00000132, + 0x00000000,0x00030047,0x00000133,0x00000000,0x00030047,0x00000134,0x00000000,0x00030047, + 0x00000135,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047,0x00000137,0x00000000, + 0x00030047,0x00000138,0x00000000,0x00030047,0x00000139,0x00000000,0x00030047,0x0000013a, + 0x00000000,0x00030047,0x0000013b,0x00000000,0x00030047,0x0000013c,0x00000000,0x00030047, + 0x0000013d,0x00000000,0x00030047,0x0000013e,0x00000000,0x00030047,0x0000013f,0x00000000, + 0x00030047,0x00000143,0x00000000,0x00030047,0x00000144,0x00000000,0x00030047,0x00000145, + 0x00000000,0x00030047,0x00000146,0x00000000,0x00030047,0x00000147,0x00000000,0x00030047, + 0x00000148,0x00000000,0x00030047,0x00000149,0x00000000,0x00030047,0x0000014a,0x00000000, + 0x00030047,0x0000014b,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047,0x0000014d, + 0x00000000,0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000,0x00030047, + 0x00000150,0x00000000,0x00030047,0x00000151,0x00000000,0x00030047,0x00000152,0x00000000, + 0x00030047,0x00000155,0x00000000,0x00030047,0x00000156,0x00000000,0x00030047,0x00000157, + 0x00000000,0x00030047,0x00000158,0x00000000,0x00030047,0x00000159,0x00000000,0x00030047, + 0x0000015a,0x00000000,0x00030047,0x0000015b,0x00000000,0x00030047,0x0000015c,0x00000000, + 0x00030047,0x0000015d,0x00000000,0x00030047,0x0000015e,0x00000000,0x00030047,0x0000015f, + 0x00000000,0x00030047,0x00000160,0x00000000,0x00030047,0x00000161,0x00000000,0x00030047, + 0x00000162,0x00000000,0x00030047,0x00000163,0x00000000,0x00030047,0x00000164,0x00000000, + 0x00030047,0x00000165,0x00000000,0x00030047,0x00000166,0x00000000,0x00030047,0x00000167, + 0x00000000,0x00030047,0x00000168,0x00000000,0x00030047,0x00000169,0x00000000,0x00030047, + 0x0000016c,0x00000000,0x00030047,0x0000016d,0x00000000,0x00030047,0x0000016e,0x00000000, + 0x00030047,0x0000016f,0x00000000,0x00030047,0x00000170,0x00000000,0x00030047,0x00000171, + 0x00000000,0x00030047,0x00000172,0x00000000,0x00030047,0x00000173,0x00000000,0x00030047, + 0x00000174,0x00000000,0x00030047,0x00000175,0x00000000,0x00030047,0x00000176,0x00000000, + 0x00030047,0x00000177,0x00000000,0x00030047,0x00000178,0x00000000,0x00030047,0x0000017c, + 0x00000000,0x00030047,0x0000017d,0x00000000,0x00030047,0x0000017e,0x00000000,0x00030047, + 0x0000017f,0x00000000,0x00030047,0x00000180,0x00000000,0x00030047,0x00000181,0x00000000, + 0x00030047,0x00000182,0x00000000,0x00030047,0x00000183,0x00000000,0x00030047,0x00000184, + 0x00000000,0x00030047,0x00000185,0x00000000,0x00030047,0x00000187,0x00000000,0x00030047, + 0x00000188,0x00000000,0x00030047,0x00000189,0x00000000,0x00030047,0x0000018a,0x00000000, + 0x00030047,0x0000018b,0x00000000,0x00030047,0x0000018c,0x00000000,0x00030047,0x0000018d, + 0x00000000,0x00030047,0x00000190,0x00000000,0x00030047,0x000001a1,0x00000000,0x00030047, + 0x000001a2,0x00000000,0x00030047,0x000001a3,0x00000000,0x00030047,0x000001a4,0x00000000, + 0x00030047,0x000001a6,0x00000000,0x00030047,0x000001a7,0x00000000,0x00030047,0x000001a8, + 0x00000000,0x00030047,0x000001a9,0x00000000,0x00030047,0x000001aa,0x00000000,0x00030047, + 0x000001ab,0x00000000,0x00030047,0x000001ac,0x00000000,0x00030047,0x000001ba,0x00000000, + 0x00030047,0x000001c3,0x00000000,0x00030047,0x000001c4,0x00000000,0x00030047,0x000001c7, + 0x00000000,0x00030047,0x000001c8,0x00000000,0x00030047,0x000001ce,0x00000000,0x00030047, + 0x000001cf,0x00000000,0x00030047,0x000001d0,0x00000000,0x00030047,0x000001d3,0x00000000, + 0x00030047,0x000001d4,0x00000000,0x00030047,0x000001d5,0x00000000,0x00030047,0x000001d6, + 0x00000000,0x00030047,0x000001db,0x00000000,0x00030047,0x000001dc,0x00000000,0x00030047, + 0x000001dd,0x00000000,0x00030047,0x000001df,0x00000000,0x00030047,0x000001e0,0x00000000, + 0x00030047,0x000001e1,0x00000000,0x00030047,0x000001e3,0x00000000,0x00030047,0x000001e4, + 0x00000000,0x00030047,0x000001e5,0x00000000,0x00030047,0x000001e6,0x00000000,0x00030047, + 0x000001e7,0x00000000,0x00030047,0x000001e8,0x00000000,0x00030047,0x000001e9,0x00000000, + 0x00030047,0x000001ea,0x00000000,0x00030047,0x000001eb,0x00000000,0x00030047,0x000001ec, + 0x00000000,0x00030047,0x000001ed,0x00000000,0x00030047,0x000001ee,0x00000000,0x00030047, + 0x000001ef,0x00000000,0x00030047,0x000001f0,0x00000000,0x00030047,0x000001f1,0x00000000, + 0x00030047,0x000001f3,0x00000000,0x00030047,0x000001f4,0x00000000,0x00030047,0x000001f5, + 0x00000000,0x00030047,0x000001f6,0x00000000,0x00030047,0x000001f7,0x00000000,0x00030047, + 0x000001f8,0x00000000,0x00030047,0x000001f9,0x00000000,0x00030047,0x000001fa,0x00000000, + 0x00030047,0x000001fb,0x00000000,0x00030047,0x000001fc,0x00000000,0x00030047,0x000001fd, + 0x00000000,0x00030047,0x000001fe,0x00000000,0x00030047,0x000001ff,0x00000000,0x00030047, + 0x00000200,0x00000000,0x00030047,0x00000201,0x00000000,0x00030047,0x00000202,0x00000000, + 0x00030047,0x0000020e,0x00000000,0x00030047,0x00000215,0x00000000,0x00030047,0x00000216, + 0x00000000,0x00030047,0x00000219,0x00000000,0x00030047,0x0000021a,0x00000000,0x00030047, + 0x00000220,0x00000000,0x00030047,0x00000221,0x00000000,0x00030047,0x00000222,0x00000000, + 0x00030047,0x00000225,0x00000000,0x00030047,0x00000226,0x00000000,0x00030047,0x00000227, + 0x00000000,0x00030047,0x00000228,0x00000000,0x00030047,0x00000237,0x00000000,0x00030047, + 0x0000023e,0x00000000,0x00030047,0x00000241,0x00000000,0x00030047,0x00000242,0x00000000, + 0x00030047,0x00000243,0x00000000,0x00030047,0x00000246,0x00000000,0x00030047,0x00000247, + 0x00000000,0x00030047,0x0000024a,0x00000000,0x00030047,0x0000024b,0x00000000,0x00030047, + 0x0000024c,0x00000000,0x00030047,0x0000024d,0x00000000,0x00030047,0x00000252,0x00000000, + 0x00030047,0x0000025a,0x00000000,0x00030047,0x0000025d,0x00000000,0x00030047,0x0000025e, + 0x00000000,0x00030047,0x0000025f,0x00000000,0x00030047,0x00000262,0x00000000,0x00030047, + 0x00000263,0x00000000,0x00030047,0x00000267,0x00000000,0x00030047,0x00000268,0x00000000, + 0x00030047,0x0000026a,0x00000000,0x00030047,0x0000026d,0x00000000,0x00030047,0x0000026e, + 0x00000000,0x00030047,0x00000270,0x00000000,0x00030047,0x00000271,0x00000000,0x00030047, + 0x00000272,0x00000000,0x00030047,0x00000278,0x00000000,0x00030047,0x0000027b,0x00000000, + 0x00030047,0x0000027c,0x00000000,0x00030047,0x0000027d,0x00000000,0x00030047,0x00000280, + 0x00000000,0x00030047,0x00000281,0x00000000,0x00030047,0x00000284,0x00000000,0x00030047, + 0x00000285,0x00000000,0x00030047,0x00000286,0x00000000,0x00030047,0x00000287,0x00000000, + 0x00030047,0x0000028c,0x00000000,0x00030047,0x0000028d,0x00000000,0x00030047,0x0000028e, + 0x00000000,0x00030047,0x0000028f,0x00000000,0x00030047,0x00000291,0x00000000,0x00030047, + 0x00000292,0x00000000,0x00030047,0x00000293,0x00000000,0x00030047,0x00000294,0x00000000, + 0x00030047,0x00000295,0x00000000,0x00030047,0x00000296,0x00000000,0x00030047,0x00000297, + 0x00000000,0x00030047,0x00000298,0x00000000,0x00040047,0x0000029a,0x00000001,0x00000005, + 0x00030047,0x0000029d,0x00000000,0x00030047,0x0000029e,0x00000000,0x00030047,0x0000029f, + 0x00000000,0x00030047,0x000002a0,0x00000000,0x00030047,0x000002a1,0x00000000,0x00030047, + 0x000002a2,0x00000000,0x00030047,0x000002a3,0x00000000,0x00030047,0x000002a4,0x00000000, + 0x00030047,0x000002a5,0x00000000,0x00030047,0x000002a6,0x00000000,0x00030047,0x000002a7, + 0x00000000,0x00030047,0x000002a8,0x00000000,0x00030047,0x000002a9,0x00000000,0x00030047, + 0x000002ad,0x00000000,0x00030047,0x000002ae,0x00000000,0x00030047,0x000002af,0x00000000, + 0x00030047,0x000002b0,0x00000000,0x00030047,0x000002b1,0x00000000,0x00030047,0x000002b2, + 0x00000000,0x00030047,0x000002b3,0x00000000,0x00030047,0x000002b4,0x00000000,0x00030047, + 0x000002b5,0x00000000,0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b7,0x00000000, + 0x00030047,0x000002b8,0x00000000,0x00030047,0x000002b9,0x00000000,0x00030047,0x000002bd, + 0x00000000,0x00030047,0x000002be,0x00000000,0x00030047,0x000002bf,0x00000000,0x00030047, + 0x000002c0,0x00000000,0x00030047,0x000002c1,0x00000000,0x00030047,0x000002c2,0x00000000, + 0x00030047,0x000002c3,0x00000000,0x00030047,0x000002c4,0x00000000,0x00030047,0x000002c5, + 0x00000000,0x00030047,0x000002c6,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047, + 0x000002cb,0x00000000,0x00030047,0x000002cc,0x00000000,0x00030047,0x000002cd,0x00000000, + 0x00030047,0x000002ce,0x00000000,0x00030047,0x000002cf,0x00000000,0x00030047,0x000002d0, + 0x00000000,0x00030047,0x000002d1,0x00000000,0x00030047,0x000002d2,0x00000000,0x00030047, + 0x000002d3,0x00000000,0x00030047,0x000002d4,0x00000000,0x00030047,0x000002d5,0x00000000, + 0x00030047,0x000002d8,0x00000000,0x00030047,0x000002db,0x00000000,0x00030047,0x000002dc, + 0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047,0x000002de,0x00000000,0x00030047, + 0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000,0x00030047,0x000002e1,0x00000000, + 0x00030047,0x000002e2,0x00000000,0x00030047,0x000002e3,0x00000000,0x00030047,0x000002e4, + 0x00000000,0x00030047,0x000002e5,0x00000000,0x00030047,0x000002e7,0x00000000,0x00030047, + 0x000002e9,0x00000000,0x00030047,0x000002ea,0x00000000,0x00030047,0x000002eb,0x00000000, + 0x00030047,0x000002ed,0x00000000,0x00030047,0x000002ee,0x00000000,0x00030047,0x000002ef, + 0x00000000,0x00030047,0x000002f1,0x00000000,0x00030047,0x000002f2,0x00000000,0x00030047, + 0x000002f3,0x00000000,0x00030047,0x000002f4,0x00000000,0x00030047,0x000002f5,0x00000000, + 0x00030047,0x000002f6,0x00000000,0x00030047,0x000002f7,0x00000000,0x00030047,0x000002f8, + 0x00000000,0x00030047,0x000002f9,0x00000000,0x00030047,0x000002fa,0x00000000,0x00030047, + 0x000002fb,0x00000000,0x00030047,0x000002fc,0x00000000,0x00030047,0x000002fd,0x00000000, + 0x00030047,0x000002fe,0x00000000,0x00030047,0x000002ff,0x00000000,0x00030047,0x00000300, + 0x00000000,0x00030047,0x00000301,0x00000000,0x00030047,0x00000302,0x00000000,0x00030047, + 0x00000303,0x00000000,0x00030047,0x00000305,0x00000000,0x00030047,0x00000307,0x00000000, + 0x00030047,0x00000308,0x00000000,0x00030047,0x00000309,0x00000000,0x00030047,0x0000030b, + 0x00000000,0x00030047,0x0000030c,0x00000000,0x00030047,0x0000030d,0x00000000,0x00030047, + 0x0000030e,0x00000000,0x00030047,0x0000030f,0x00000000,0x00030047,0x00000319,0x00000000, + 0x00030047,0x0000034e,0x00000000,0x00040047,0x0000034e,0x00000022,0x00000000,0x00040047, + 0x0000034e,0x00000021,0x00000001,0x00030047,0x0000034f,0x00000000,0x00030047,0x00000352, + 0x00000000,0x00040047,0x00000352,0x00000022,0x00000002,0x00040047,0x00000352,0x00000021, + 0x00000001,0x00030047,0x00000353,0x00000000,0x00030047,0x00000359,0x00000000,0x00030047, + 0x0000035c,0x00000000,0x00030047,0x00000361,0x00000000,0x00030047,0x00000362,0x00000000, + 0x00040047,0x00000362,0x00000022,0x00000001,0x00040047,0x00000362,0x00000021,0x00000002, + 0x00030047,0x00000363,0x00000000,0x00030047,0x00000364,0x00000000,0x00040047,0x00000364, + 0x00000022,0x00000002,0x00040047,0x00000364,0x00000021,0x00000002,0x00030047,0x00000365, + 0x00000000,0x00030047,0x00000369,0x00000000,0x00030047,0x0000036a,0x00000000,0x00030047, + 0x0000036b,0x00000000,0x00030047,0x0000036e,0x00000000,0x00030047,0x00000370,0x00000000, + 0x00030047,0x00000371,0x00000000,0x00030047,0x00000373,0x00000000,0x00030047,0x00000376, + 0x00000000,0x00040047,0x00000379,0x00000022,0x00000003,0x00040047,0x00000379,0x00000021, + 0x00000003,0x00040047,0x00000379,0x0000002b,0x00000003,0x00030047,0x00000381,0x00000000, + 0x00030047,0x00000383,0x00000000,0x00030047,0x00000384,0x00000000,0x00030047,0x00000385, + 0x00000000,0x00030047,0x00000387,0x00000000,0x00030047,0x00000387,0x0000000e,0x00040047, + 0x00000387,0x0000001e,0x00000003,0x00030047,0x00000388,0x00000000,0x00030047,0x0000038a, + 0x00000000,0x00030047,0x0000038e,0x00000000,0x00030047,0x00000390,0x00000000,0x00030047, + 0x00000391,0x00000000,0x00030047,0x00000392,0x00000000,0x00030047,0x00000393,0x00000000, + 0x00030047,0x00000393,0x0000000e,0x00040047,0x00000393,0x0000001e,0x00000001,0x00030047, + 0x00000394,0x00000000,0x00030047,0x00000395,0x00000000,0x00030047,0x00000396,0x00000000, + 0x00040047,0x00000398,0x0000001e,0x00000003,0x00040047,0x0000039e,0x00000001,0x00000006, + 0x00030047,0x000003a1,0x00000000,0x00030047,0x000003a2,0x00000000,0x00030047,0x000003a3, + 0x00000000,0x00030047,0x000003a4,0x00000000,0x00030047,0x000003a5,0x00000000,0x00030047, + 0x000003a6,0x00000000,0x00030047,0x000003a7,0x00000000,0x00030047,0x000003a9,0x00000000, + 0x00030047,0x000003aa,0x00000000,0x00040047,0x000003ab,0x00000001,0x00000003,0x00030047, + 0x000003ae,0x00000000,0x00030047,0x000003b3,0x00000000,0x00030047,0x000003b4,0x00000000, + 0x00030047,0x000003b5,0x00000000,0x00030047,0x000003b6,0x00000000,0x00030047,0x000003b7, + 0x00000000,0x00030047,0x000003b8,0x00000000,0x00030047,0x000003b9,0x00000000,0x00030047, + 0x000003ba,0x00000000,0x00030047,0x000003bb,0x00000000,0x00030047,0x000003bc,0x00000000, + 0x00030047,0x000003bd,0x00000000,0x00030047,0x000003be,0x00000000,0x00030047,0x000003bf, + 0x00000000,0x00040047,0x000003c0,0x00000001,0x00000000,0x00030047,0x000003c3,0x00000000, + 0x00030047,0x000003c3,0x0000000e,0x00040047,0x000003c3,0x0000001e,0x00000004,0x00030047, + 0x000003c4,0x00000000,0x00030047,0x000003c9,0x00000000,0x00030047,0x000003ca,0x00000000, + 0x00030047,0x000003cb,0x00000000,0x00040047,0x000003cc,0x00000001,0x00000004,0x00030047, + 0x000003cf,0x00000000,0x00040047,0x000003d1,0x0000001e,0x00000000,0x00030047,0x000003d4, + 0x00000000,0x00030047,0x000003d8,0x00000000,0x00040047,0x000003d9,0x00000022,0x00000003, + 0x00040047,0x000003d9,0x00000021,0x00000001,0x00040047,0x000003d9,0x0000002b,0x00000001, + 0x00030047,0x000003de,0x00000000,0x00030047,0x000003e0,0x00000000,0x00030047,0x000003e1, + 0x00000000,0x00030047,0x000003e2,0x00000000,0x00030047,0x000003e6,0x00000000,0x00030047, + 0x000003e7,0x00000000,0x00030047,0x000003e8,0x00000000,0x00030047,0x000003ea,0x00000000, + 0x00030047,0x000003ee,0x00000000,0x00030047,0x000003f0,0x00000000,0x00030047,0x000003f4, + 0x00000000,0x00040047,0x000003f4,0x00000022,0x00000003,0x00040047,0x000003f4,0x00000021, + 0x00000002,0x00040047,0x000003f4,0x0000002b,0x00000002,0x00030047,0x000003f5,0x00000000, + 0x00030047,0x000003f6,0x00000000,0x00030047,0x000003f7,0x00000000,0x00030047,0x000003f8, + 0x00000000,0x00030047,0x000003f9,0x00000000,0x00030047,0x000003fa,0x00000000,0x00040047, + 0x000003fb,0x0000001e,0x00000001,0x00030047,0x000003fc,0x00000000,0x00030047,0x000003fd, + 0x00000000,0x00030047,0x000003fe,0x00000000,0x00030047,0x000003ff,0x00000000,0x00030047, + 0x00000400,0x00000000,0x00030047,0x00000401,0x00000000,0x00030047,0x00000404,0x00000000, + 0x00040047,0x00000404,0x0000001e,0x00000000,0x00030047,0x00000405,0x00000000,0x00040047, + 0x00000405,0x00000022,0x00000003,0x00040047,0x00000405,0x00000021,0x00000000,0x00040047, + 0x00000405,0x0000002b,0x00000000,0x00030047,0x00000406,0x00000000,0x00030047,0x00000407, + 0x00000000,0x00030047,0x0000040b,0x00000000,0x00030047,0x0000040f,0x00000000,0x00030047, + 0x00000414,0x00000000,0x00030047,0x00000416,0x00000000,0x00030047,0x00000417,0x00000000, + 0x00030047,0x00000418,0x00000000,0x00030047,0x0000041a,0x00000000,0x00030047,0x0000041e, + 0x00000000,0x00030047,0x0000041f,0x00000000,0x00030047,0x00000420,0x00000000,0x00030047, + 0x00000422,0x00000000,0x00030047,0x00000423,0x00000000,0x00030047,0x00000424,0x00000000, + 0x00040047,0x00000425,0x00000001,0x00000001,0x00030047,0x00000428,0x00000000,0x00040047, + 0x00000429,0x0000001e,0x00000005,0x00030047,0x0000042c,0x00000000,0x00030047,0x0000042d, + 0x00000000,0x00030047,0x0000042e,0x00000000,0x00030047,0x0000042f,0x00000000,0x00030047, + 0x00000430,0x00000000,0x00030047,0x00000431,0x00000000,0x00030047,0x00000432,0x00000000, + 0x00030047,0x00000433,0x00000000,0x00030047,0x00000434,0x00000000,0x00030047,0x00000437, + 0x00000000,0x00030047,0x00000438,0x00000000,0x00030047,0x0000043a,0x00000000,0x00030047, + 0x0000043b,0x00000000,0x00030047,0x0000043d,0x00000000,0x00030047,0x0000043e,0x00000000, + 0x00030047,0x00000442,0x00000000,0x00030047,0x00000443,0x00000000,0x00030047,0x00000444, + 0x00000000,0x00030047,0x00000446,0x00000000,0x00030047,0x00000447,0x00000000,0x00040047, + 0x00000448,0x00000001,0x00000002,0x00030047,0x0000044b,0x00000000,0x00030047,0x0000044b, + 0x0000000e,0x00040047,0x0000044b,0x0000001e,0x00000006,0x00030047,0x0000044c,0x00000000, + 0x00030047,0x0000044e,0x00000000,0x00030047,0x00000453,0x00000000,0x00030047,0x00000454, + 0x00000000,0x00030047,0x00000455,0x00000000,0x00030047,0x00000456,0x00000000,0x00030047, + 0x00000457,0x00000000,0x00030047,0x00000458,0x00000000,0x00030047,0x00000459,0x00000000, + 0x00030047,0x0000045a,0x00000000,0x00030047,0x0000045b,0x00000000,0x00030047,0x0000045c, + 0x00000000,0x00030047,0x0000045d,0x00000000,0x00030047,0x00000460,0x00000000,0x00030047, + 0x00000461,0x00000000,0x00030047,0x00000462,0x00000000,0x00030047,0x00000463,0x00000000, + 0x00030047,0x0000046a,0x00000000,0x00030047,0x0000046b,0x00000000,0x00030047,0x0000046d, + 0x00000000,0x00030047,0x0000046e,0x00000000,0x00030047,0x0000046f,0x00000000,0x00030047, + 0x00000470,0x00000000,0x00030047,0x00000471,0x00000000,0x00040047,0x00000476,0x00000001, + 0x00000007,0x00050048,0x00000478,0x00000000,0x00000023,0x00000000,0x00050048,0x00000478, + 0x00000001,0x00000023,0x00000004,0x00050048,0x00000478,0x00000002,0x00000023,0x00000008, + 0x00050048,0x00000478,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000478,0x00000004, + 0x00000023,0x00000010,0x00050048,0x00000478,0x00000005,0x00000023,0x00000014,0x00050048, + 0x00000478,0x00000006,0x00000023,0x00000018,0x00050048,0x00000478,0x00000007,0x00000023, + 0x0000001c,0x00050048,0x00000478,0x00000008,0x00000023,0x00000020,0x00050048,0x00000478, + 0x00000009,0x00000023,0x00000030,0x00050048,0x00000478,0x0000000a,0x00000023,0x00000034, + 0x00050048,0x00000478,0x0000000b,0x00000023,0x00000038,0x00030047,0x00000478,0x00000002, + 0x00040047,0x0000047a,0x00000022,0x00000000,0x00040047,0x0000047a,0x00000021,0x00000007, + 0x00030047,0x0000047b,0x00000000,0x00040047,0x0000047b,0x0000001e,0x00000002,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d,0x00000008,0x00000004,0x00040020, + 0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f,0x0000000d,0x0000000e,0x00040020, + 0x00000013,0x00000007,0x00000008,0x00040021,0x00000014,0x00000006,0x00000013,0x00040021, + 0x00000018,0x00000008,0x00000013,0x00040017,0x0000001c,0x00000008,0x00000002,0x00050021, + 0x0000001d,0x0000001c,0x00000013,0x00000013,0x00040017,0x00000022,0x00000008,0x00000003, + 0x00060021,0x00000023,0x00000022,0x00000013,0x00000013,0x00000013,0x00040021,0x00000029, + 0x00000022,0x00000013,0x00040020,0x0000002d,0x00000007,0x00000022,0x00050021,0x0000002e, + 0x0000000d,0x0000002d,0x00000013,0x00040018,0x00000033,0x00000022,0x00000003,0x00060021, + 0x00000034,0x00000033,0x0000002d,0x0000002d,0x0000002d,0x00040021,0x0000003d,0x00000008, + 0x0000000e,0x00040021,0x00000041,0x00000008,0x0000002d,0x00040021,0x0000004e,0x00000022, + 0x0000002d,0x00050021,0x00000052,0x00000022,0x0000002d,0x0000002d,0x00060021,0x00000057, + 0x00000022,0x0000002d,0x0000002d,0x0000002d,0x00060021,0x0000005d,0x00000022,0x0000002d, + 0x0000002d,0x00000007,0x00060021,0x00000063,0x0000000d,0x0000000e,0x0000000e,0x00000007, + 0x00040020,0x0000007e,0x00000007,0x0000001c,0x0004002b,0x00000006,0x00000081,0x00000000, + 0x0004002b,0x00000006,0x00000084,0x00000001,0x0004002b,0x00000006,0x0000008f,0x00000002, + 0x0004002b,0x00000006,0x000000a7,0x00000003,0x00040020,0x000000ac,0x00000007,0x00000033, + 0x00040015,0x000000ae,0x00000020,0x00000001,0x0004002b,0x000000ae,0x000000af,0x00000000, + 0x0004002b,0x000000ae,0x000000b2,0x00000001,0x0004002b,0x000000ae,0x000000b5,0x00000002, + 0x00020014,0x000000bb,0x0004002b,0x00000008,0x000000bc,0x00000000,0x0004002b,0x00000008, + 0x000000c4,0x3f800000,0x0004002b,0x00000008,0x000000db,0x3f7f7f7f,0x00040017,0x000000de, + 0x000000bb,0x00000003,0x0004002b,0x00000008,0x0000010e,0x3e99999a,0x0004002b,0x00000008, + 0x0000010f,0x3f170a3d,0x0004002b,0x00000008,0x00000110,0x3de147ae,0x00040020,0x000001ae, + 0x00000007,0x000000ae,0x0004002b,0x000000ae,0x000001b6,0x00000003,0x0004002b,0x00000008, + 0x000001bb,0x3f000000,0x0004002b,0x00000008,0x000001c0,0x40000000,0x0004002b,0x00000008, + 0x00000253,0x3e800000,0x0004002b,0x00000008,0x00000264,0x41800000,0x0004002b,0x00000008, + 0x00000269,0x41400000,0x0004002b,0x00000008,0x0000026f,0x40400000,0x00030031,0x000000bb, + 0x0000029a,0x0004002b,0x00000008,0x0000031e,0xbf800000,0x0004002b,0x00000008,0x0000033c, + 0x3f7f8000,0x0004002b,0x00000008,0x0000033f,0x3a800000,0x0004002b,0x00000008,0x00000342, + 0x3b000000,0x00090019,0x0000034c,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x0000034d,0x00000000,0x0000034c,0x0004003b,0x0000034d, + 0x0000034e,0x00000000,0x0002001a,0x00000350,0x00040020,0x00000351,0x00000000,0x00000350, + 0x0004003b,0x00000351,0x00000352,0x00000000,0x0003001b,0x00000354,0x0000034c,0x0004003b, + 0x0000034d,0x00000362,0x00000000,0x0004003b,0x00000351,0x00000364,0x00000000,0x00090019, + 0x00000377,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000, + 0x00040020,0x00000378,0x00000000,0x00000377,0x0004003b,0x00000378,0x00000379,0x00000000, + 0x00040017,0x0000037b,0x000000ae,0x00000002,0x0005002c,0x0000037b,0x0000037c,0x000000af, + 0x000000af,0x00040017,0x0000037d,0x00000006,0x00000004,0x00040020,0x00000386,0x00000001, + 0x00000008,0x0004003b,0x00000386,0x00000387,0x00000001,0x0004003b,0x00000386,0x00000393, + 0x00000001,0x00040020,0x00000397,0x00000003,0x0000037d,0x0004003b,0x00000397,0x00000398, + 0x00000003,0x00040020,0x0000039c,0x00000003,0x00000006,0x00030031,0x000000bb,0x0000039e, + 0x00030031,0x000000bb,0x000003ab,0x00030031,0x000000bb,0x000003c0,0x0004003b,0x00000386, + 0x000003c3,0x00000001,0x00030031,0x000000bb,0x000003cc,0x00040020,0x000003d0,0x00000001, + 0x0000000d,0x0004003b,0x000003d0,0x000003d1,0x00000001,0x0004003b,0x00000378,0x000003d9, + 0x00000000,0x00090019,0x000003f2,0x00000008,0x00000006,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000000,0x00040020,0x000003f3,0x00000000,0x000003f2,0x0004003b,0x000003f3, + 0x000003f4,0x00000000,0x0004003b,0x00000397,0x000003fb,0x00000003,0x00040020,0x00000403, + 0x00000003,0x0000000d,0x0004003b,0x00000403,0x00000404,0x00000003,0x0004003b,0x000003f3, + 0x00000405,0x00000000,0x00030031,0x000000bb,0x00000425,0x0004003b,0x000003d0,0x00000429, + 0x00000001,0x00030031,0x000000bb,0x00000448,0x0004003b,0x00000386,0x0000044b,0x00000001, + 0x00030031,0x000000bb,0x00000476,0x00040017,0x00000477,0x000000ae,0x00000004,0x000e001e, + 0x00000478,0x00000008,0x00000008,0x00000008,0x00000008,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000477,0x00000006,0x00000006,0x00000008,0x00040020,0x00000479,0x00000002, + 0x00000478,0x0004003b,0x00000479,0x0000047a,0x00000002,0x0004003b,0x00000403,0x0000047b, + 0x00000003,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005, + 0x0004003b,0x0000007e,0x00000376,0x00000007,0x0004003b,0x00000013,0x00000381,0x00000007, + 0x0004003b,0x00000013,0x00000384,0x00000007,0x0004003b,0x00000013,0x0000038a,0x00000007, + 0x0004003b,0x00000013,0x00000390,0x00000007,0x0004003b,0x00000013,0x000003a1,0x00000007, + 0x0004003b,0x00000013,0x000003a3,0x00000007,0x0004003b,0x00000013,0x000003a5,0x00000007, + 0x0004003b,0x00000013,0x000003b9,0x00000007,0x0004003b,0x00000013,0x000003bd,0x00000007, + 0x0004003b,0x00000013,0x000003c9,0x00000007,0x0004003b,0x00000013,0x000003cf,0x00000007, + 0x0004003b,0x0000007e,0x000003d8,0x00000007,0x0004003b,0x00000013,0x000003de,0x00000007, + 0x0004003b,0x00000013,0x000003e6,0x00000007,0x0004003b,0x00000013,0x000003ea,0x00000007, + 0x0004003b,0x00000013,0x000003fc,0x00000007,0x0004003b,0x00000013,0x000003fe,0x00000007, + 0x0004003b,0x0000007e,0x0000040f,0x00000007,0x0004003b,0x00000013,0x00000414,0x00000007, + 0x0004003b,0x00000013,0x0000041a,0x00000007,0x0004003b,0x00000013,0x00000422,0x00000007, + 0x0004003b,0x00000013,0x00000428,0x00000007,0x0004003b,0x0000000e,0x0000042a,0x00000007, + 0x0004003b,0x0000000e,0x0000042d,0x00000007,0x0004003b,0x00000013,0x00000430,0x00000007, + 0x0004003b,0x0000000e,0x00000434,0x00000007,0x0004003b,0x0000000e,0x00000435,0x00000007, + 0x0004003b,0x0000000e,0x00000442,0x00000007,0x0004003b,0x00000007,0x0000044d,0x00000007, + 0x0004003b,0x0000000e,0x00000453,0x00000007,0x0004003b,0x00000013,0x00000456,0x00000007, + 0x0004003b,0x0000000e,0x00000459,0x00000007,0x0004003b,0x0000000e,0x0000045b,0x00000007, + 0x0004003b,0x00000007,0x0000045c,0x00000007,0x0004003d,0x00000377,0x0000037a,0x00000379, + 0x00050062,0x0000037d,0x0000037e,0x0000037a,0x0000037c,0x00050051,0x00000006,0x0000037f, + 0x0000037e,0x00000000,0x0006000c,0x0000001c,0x00000380,0x00000001,0x0000003e,0x0000037f, + 0x0003003e,0x00000376,0x00000380,0x00050041,0x00000013,0x00000382,0x00000376,0x00000084, + 0x0004003d,0x00000008,0x00000383,0x00000382,0x0003003e,0x00000381,0x00000383,0x0004003d, + 0x00000008,0x00000385,0x00000381,0x0004003d,0x00000008,0x00000388,0x00000387,0x000500b4, + 0x000000bb,0x00000389,0x00000385,0x00000388,0x000300f7,0x0000038c,0x00000000,0x000400fa, + 0x00000389,0x0000038b,0x0000038f,0x000200f8,0x0000038b,0x00050041,0x00000013,0x0000038d, + 0x00000376,0x00000081,0x0004003d,0x00000008,0x0000038e,0x0000038d,0x0003003e,0x0000038a, + 0x0000038e,0x000200f9,0x0000038c,0x000200f8,0x0000038f,0x0003003e,0x00000390,0x000000bc, + 0x00050039,0x00000008,0x00000391,0x0000001a,0x00000390,0x0003003e,0x0000038a,0x00000391, + 0x000200f9,0x0000038c,0x000200f8,0x0000038c,0x0004003d,0x00000008,0x00000392,0x0000038a, + 0x0003003e,0x00000384,0x00000392,0x0004003d,0x00000008,0x00000394,0x00000393,0x0004003d, + 0x00000008,0x00000395,0x00000384,0x00050081,0x00000008,0x00000396,0x00000395,0x00000394, + 0x0003003e,0x00000384,0x00000396,0x0004003d,0x00000377,0x00000399,0x00000379,0x00050062, + 0x0000037d,0x0000039a,0x00000399,0x0000037c,0x00050051,0x00000006,0x0000039b,0x0000039a, + 0x00000000,0x00050041,0x0000039c,0x0000039d,0x00000398,0x00000081,0x0003003e,0x0000039d, + 0x0000039b,0x000300f7,0x000003a0,0x00000000,0x000400fa,0x0000039e,0x0000039f,0x000003a8, + 0x000200f8,0x0000039f,0x0004003d,0x00000008,0x000003a2,0x00000384,0x0003003e,0x000003a3, + 0x000000bc,0x00050039,0x00000008,0x000003a4,0x0000001a,0x000003a3,0x0003003e,0x000003a5, + 0x000000c4,0x00050039,0x00000008,0x000003a6,0x0000001a,0x000003a5,0x0008000c,0x00000008, + 0x000003a7,0x00000001,0x0000002b,0x000003a2,0x000003a4,0x000003a6,0x0003003e,0x000003a1, + 0x000003a7,0x000200f9,0x000003a0,0x000200f8,0x000003a8,0x0004003d,0x00000008,0x000003a9, + 0x00000384,0x0006000c,0x00000008,0x000003aa,0x00000001,0x00000004,0x000003a9,0x0003003e, + 0x000003a1,0x000003aa,0x000300f7,0x000003ad,0x00000000,0x000400fa,0x000003ab,0x000003ac, + 0x000003ad,0x000200f8,0x000003ac,0x0004003d,0x00000008,0x000003ae,0x00000387,0x000500b8, + 0x000000bb,0x000003af,0x000003ae,0x000000bc,0x000200f9,0x000003ad,0x000200f8,0x000003ad, + 0x000700f5,0x000000bb,0x000003b0,0x000003ab,0x000003a8,0x000003af,0x000003ac,0x000300f7, + 0x000003b2,0x00000000,0x000400fa,0x000003b0,0x000003b1,0x000003b2,0x000200f8,0x000003b1, + 0x0004003d,0x00000008,0x000003b3,0x000003a1,0x00050085,0x00000008,0x000003b4,0x000003b3, + 0x000001bb,0x0006000c,0x00000008,0x000003b5,0x00000001,0x0000000a,0x000003b4,0x00050085, + 0x00000008,0x000003b6,0x000003b5,0x000001c0,0x00050081,0x00000008,0x000003b7,0x000003b6, + 0x0000031e,0x0006000c,0x00000008,0x000003b8,0x00000001,0x00000004,0x000003b7,0x0003003e, + 0x000003b9,0x000003b8,0x00050039,0x00000008,0x000003ba,0x0000001a,0x000003b9,0x00050083, + 0x00000008,0x000003bb,0x000000c4,0x000003ba,0x0003003e,0x000003a1,0x000003bb,0x000200f9, + 0x000003b2,0x000200f8,0x000003b2,0x0004003d,0x00000008,0x000003bc,0x000003a1,0x0003003e, + 0x000003bd,0x000000c4,0x00050039,0x00000008,0x000003be,0x0000001a,0x000003bd,0x0007000c, + 0x00000008,0x000003bf,0x00000001,0x00000025,0x000003bc,0x000003be,0x0003003e,0x000003a1, + 0x000003bf,0x000200f9,0x000003a0,0x000200f8,0x000003a0,0x000300f7,0x000003c2,0x00000000, + 0x000400fa,0x000003c0,0x000003c1,0x000003c2,0x000200f8,0x000003c1,0x0004003d,0x00000008, + 0x000003c4,0x000003c3,0x000500b8,0x000000bb,0x000003c5,0x000003c4,0x000000bc,0x000200f9, + 0x000003c2,0x000200f8,0x000003c2,0x000700f5,0x000000bb,0x000003c6,0x000003c0,0x000003a0, + 0x000003c5,0x000003c1,0x000300f7,0x000003c8,0x00000000,0x000400fa,0x000003c6,0x000003c7, + 0x00000408,0x000200f8,0x000003c7,0x0004003d,0x00000008,0x000003ca,0x000003c3,0x0004007f, + 0x00000008,0x000003cb,0x000003ca,0x0003003e,0x000003c9,0x000003cb,0x000300f7,0x000003ce, + 0x00000000,0x000400fa,0x000003cc,0x000003cd,0x000003ce,0x000200f8,0x000003cd,0x00050041, + 0x00000386,0x000003d2,0x000003d1,0x00000081,0x0004003d,0x00000008,0x000003d3,0x000003d2, + 0x0003003e,0x000003cf,0x000003d3,0x0004003d,0x00000008,0x000003d4,0x000003cf,0x000500b7, + 0x000000bb,0x000003d5,0x000003d4,0x000000bc,0x000300f7,0x000003d7,0x00000000,0x000400fa, + 0x000003d5,0x000003d6,0x000003d7,0x000200f8,0x000003d6,0x0004003d,0x00000377,0x000003da, + 0x000003d9,0x00050062,0x0000037d,0x000003db,0x000003da,0x0000037c,0x00050051,0x00000006, + 0x000003dc,0x000003db,0x00000000,0x0006000c,0x0000001c,0x000003dd,0x00000001,0x0000003e, + 0x000003dc,0x0003003e,0x000003d8,0x000003dd,0x00050041,0x00000013,0x000003df,0x000003d8, + 0x00000084,0x0004003d,0x00000008,0x000003e0,0x000003df,0x0003003e,0x000003de,0x000003e0, + 0x0004003d,0x00000008,0x000003e1,0x000003de,0x0004003d,0x00000008,0x000003e2,0x000003c9, + 0x000500b7,0x000000bb,0x000003e3,0x000003e1,0x000003e2,0x000300f7,0x000003e5,0x00000000, + 0x000400fa,0x000003e3,0x000003e4,0x000003f1,0x000200f8,0x000003e4,0x0004003d,0x00000008, + 0x000003e7,0x000003de,0x0004003d,0x00000008,0x000003e8,0x000003cf,0x000500b4,0x000000bb, + 0x000003e9,0x000003e7,0x000003e8,0x000300f7,0x000003ec,0x00000000,0x000400fa,0x000003e9, + 0x000003eb,0x000003ef,0x000200f8,0x000003eb,0x00050041,0x00000013,0x000003ed,0x000003d8, + 0x00000081,0x0004003d,0x00000008,0x000003ee,0x000003ed,0x0003003e,0x000003ea,0x000003ee, + 0x000200f9,0x000003ec,0x000200f8,0x000003ef,0x0003003e,0x000003ea,0x000000bc,0x000200f9, + 0x000003ec,0x000200f8,0x000003ec,0x0004003d,0x00000008,0x000003f0,0x000003ea,0x0003003e, + 0x000003e6,0x000003f0,0x000200f9,0x000003e5,0x000200f8,0x000003f1,0x0004003d,0x000003f2, + 0x000003f5,0x000003f4,0x00050062,0x0000000d,0x000003f6,0x000003f5,0x0000037c,0x00050051, + 0x00000008,0x000003f7,0x000003f6,0x00000000,0x0003003e,0x000003e6,0x000003f7,0x000200f9, + 0x000003e5,0x000200f8,0x000003e5,0x0004003d,0x00000008,0x000003f8,0x000003a1,0x0004003d, + 0x00000008,0x000003f9,0x000003e6,0x0007000c,0x00000008,0x000003fa,0x00000001,0x00000025, + 0x000003f8,0x000003f9,0x0003003e,0x000003a1,0x000003fa,0x000200f9,0x000003d7,0x000200f8, + 0x000003d7,0x000200f9,0x000003ce,0x000200f8,0x000003ce,0x0004003d,0x00000008,0x000003fd, + 0x000003a1,0x0003003e,0x000003fc,0x000003fd,0x0004003d,0x00000008,0x000003ff,0x000003c9, + 0x0003003e,0x000003fe,0x000003ff,0x00060039,0x0000001c,0x00000400,0x00000020,0x000003fc, + 0x000003fe,0x0006000c,0x00000006,0x00000401,0x00000001,0x0000003a,0x00000400,0x00050041, + 0x0000039c,0x00000402,0x000003fb,0x00000081,0x0003003e,0x00000402,0x00000401,0x0004003d, + 0x000003f2,0x00000406,0x00000405,0x00050062,0x0000000d,0x00000407,0x00000406,0x0000037c, + 0x0003003e,0x00000404,0x00000407,0x000200f9,0x000003c8,0x000200f8,0x00000408,0x000300f7, + 0x0000040a,0x00000000,0x000400fa,0x000003c0,0x00000409,0x0000040a,0x000200f8,0x00000409, + 0x0004003d,0x00000008,0x0000040b,0x000003c3,0x000500b7,0x000000bb,0x0000040c,0x0000040b, + 0x000000bc,0x000300f7,0x0000040e,0x00000000,0x000400fa,0x0000040c,0x0000040d,0x0000040e, + 0x000200f8,0x0000040d,0x0004003d,0x00000377,0x00000410,0x000003d9,0x00050062,0x0000037d, + 0x00000411,0x00000410,0x0000037c,0x00050051,0x00000006,0x00000412,0x00000411,0x00000000, + 0x0006000c,0x0000001c,0x00000413,0x00000001,0x0000003e,0x00000412,0x0003003e,0x0000040f, + 0x00000413,0x00050041,0x00000013,0x00000415,0x0000040f,0x00000084,0x0004003d,0x00000008, + 0x00000416,0x00000415,0x0003003e,0x00000414,0x00000416,0x0004003d,0x00000008,0x00000417, + 0x00000414,0x0004003d,0x00000008,0x00000418,0x000003c3,0x000500b4,0x000000bb,0x00000419, + 0x00000417,0x00000418,0x000300f7,0x0000041c,0x00000000,0x000400fa,0x00000419,0x0000041b, + 0x00000421,0x000200f8,0x0000041b,0x00050041,0x00000013,0x0000041d,0x0000040f,0x00000081, + 0x0004003d,0x00000008,0x0000041e,0x0000041d,0x0004003d,0x00000008,0x0000041f,0x000003a1, + 0x0007000c,0x00000008,0x00000420,0x00000001,0x00000025,0x0000041e,0x0000041f,0x0003003e, + 0x0000041a,0x00000420,0x000200f9,0x0000041c,0x000200f8,0x00000421,0x0003003e,0x00000422, + 0x000000bc,0x00050039,0x00000008,0x00000423,0x0000001a,0x00000422,0x0003003e,0x0000041a, + 0x00000423,0x000200f9,0x0000041c,0x000200f8,0x0000041c,0x0004003d,0x00000008,0x00000424, + 0x0000041a,0x0003003e,0x000003a1,0x00000424,0x000200f9,0x0000040e,0x000200f8,0x0000040e, + 0x000200f9,0x0000040a,0x000200f8,0x0000040a,0x000300f7,0x00000427,0x00000000,0x000400fa, + 0x00000425,0x00000426,0x00000427,0x000200f8,0x00000426,0x0004003d,0x0000000d,0x0000042b, + 0x00000429,0x0003003e,0x0000042a,0x0000042b,0x00050039,0x0000000d,0x0000042c,0x00000011, + 0x0000042a,0x0003003e,0x0000042d,0x0000042c,0x00050039,0x00000008,0x0000042e,0x0000003f, + 0x0000042d,0x0003003e,0x00000428,0x0000042e,0x0004003d,0x00000008,0x0000042f,0x00000428, + 0x0003003e,0x00000430,0x000000bc,0x00050039,0x00000008,0x00000431,0x0000001a,0x00000430, + 0x0004003d,0x00000008,0x00000432,0x000003a1,0x0008000c,0x00000008,0x00000433,0x00000001, + 0x0000002b,0x0000042f,0x00000431,0x00000432,0x0003003e,0x000003a1,0x00000433,0x000200f9, + 0x00000427,0x000200f8,0x00000427,0x0004003d,0x0000000d,0x00000436,0x000003d1,0x0003003e, + 0x00000435,0x00000436,0x00050039,0x0000000d,0x00000437,0x0000006a,0x00000435,0x0003003e, + 0x00000434,0x00000437,0x0004003d,0x00000008,0x00000438,0x000003a1,0x00050041,0x00000013, + 0x00000439,0x00000434,0x000000a7,0x0004003d,0x00000008,0x0000043a,0x00000439,0x00050085, + 0x00000008,0x0000043b,0x0000043a,0x00000438,0x00050041,0x00000013,0x0000043c,0x00000434, + 0x000000a7,0x0003003e,0x0000043c,0x0000043b,0x0004003d,0x00000008,0x0000043d,0x00000381, + 0x0004003d,0x00000008,0x0000043e,0x00000387,0x000500b7,0x000000bb,0x0000043f,0x0000043d, + 0x0000043e,0x000300f7,0x00000441,0x00000000,0x000400fa,0x0000043f,0x00000440,0x00000445, + 0x000200f8,0x00000440,0x0004003d,0x000003f2,0x00000443,0x00000405,0x00050062,0x0000000d, + 0x00000444,0x00000443,0x0000037c,0x0003003e,0x00000442,0x00000444,0x000200f9,0x00000441, + 0x000200f8,0x00000445,0x0004003d,0x000003f2,0x00000446,0x000003f4,0x00050062,0x0000000d, + 0x00000447,0x00000446,0x0000037c,0x0003003e,0x00000442,0x00000447,0x000200f9,0x00000441, + 0x000200f8,0x00000441,0x000300f7,0x0000044a,0x00000000,0x000400fa,0x00000448,0x00000449, + 0x0000044a,0x000200f8,0x00000449,0x0004003d,0x00000008,0x0000044c,0x0000044b,0x0003003e, + 0x0000044d,0x00000081,0x00050039,0x00000008,0x0000044e,0x0000000b,0x0000044d,0x000500b7, + 0x000000bb,0x0000044f,0x0000044c,0x0000044e,0x000200f9,0x0000044a,0x000200f8,0x0000044a, + 0x000700f5,0x000000bb,0x00000450,0x00000448,0x00000441,0x0000044f,0x00000449,0x000300f7, + 0x00000452,0x00000000,0x000400fa,0x00000450,0x00000451,0x0000045e,0x000200f8,0x00000451, + 0x0004003d,0x0000000d,0x00000454,0x00000442,0x0003003e,0x00000453,0x00000454,0x00050039, + 0x0000000d,0x00000455,0x0000003b,0x00000453,0x0004003d,0x00000008,0x00000457,0x0000044b, + 0x0003003e,0x00000456,0x00000457,0x00050039,0x00000006,0x00000458,0x00000016,0x00000456, + 0x0004003d,0x0000000d,0x0000045a,0x00000434,0x0003003e,0x00000459,0x0000045a,0x0003003e, + 0x0000045b,0x00000455,0x0003003e,0x0000045c,0x00000458,0x00070039,0x0000000d,0x0000045d, + 0x00000067,0x00000459,0x0000045b,0x0000045c,0x0003003e,0x00000434,0x0000045d,0x000200f9, + 0x00000452,0x000200f8,0x0000045e,0x00050041,0x00000013,0x0000045f,0x00000434,0x000000a7, + 0x0004003d,0x00000008,0x00000460,0x0000045f,0x0004003d,0x0000000d,0x00000461,0x00000434, + 0x0008004f,0x00000022,0x00000462,0x00000461,0x00000461,0x00000000,0x00000001,0x00000002, + 0x0005008e,0x00000022,0x00000463,0x00000462,0x00000460,0x00050041,0x00000013,0x00000464, + 0x00000434,0x00000081,0x00050051,0x00000008,0x00000465,0x00000463,0x00000000,0x0003003e, + 0x00000464,0x00000465,0x00050041,0x00000013,0x00000466,0x00000434,0x00000084,0x00050051, + 0x00000008,0x00000467,0x00000463,0x00000001,0x0003003e,0x00000466,0x00000467,0x00050041, + 0x00000013,0x00000468,0x00000434,0x0000008f,0x00050051,0x00000008,0x00000469,0x00000463, + 0x00000002,0x0003003e,0x00000468,0x00000469,0x0004003d,0x0000000d,0x0000046a,0x00000434, + 0x0004003d,0x0000000d,0x0000046b,0x00000442,0x00050041,0x00000013,0x0000046c,0x00000434, + 0x000000a7,0x0004003d,0x00000008,0x0000046d,0x0000046c,0x00050083,0x00000008,0x0000046e, + 0x000000c4,0x0000046d,0x0005008e,0x0000000d,0x0000046f,0x0000046b,0x0000046e,0x00050081, + 0x0000000d,0x00000470,0x0000046a,0x0000046f,0x0003003e,0x00000434,0x00000470,0x000200f9, + 0x00000452,0x000200f8,0x00000452,0x0004003d,0x0000000d,0x00000471,0x00000434,0x0003003e, + 0x00000404,0x00000471,0x0004003d,0x00000377,0x00000472,0x000003d9,0x00050062,0x0000037d, + 0x00000473,0x00000472,0x0000037c,0x00050051,0x00000006,0x00000474,0x00000473,0x00000000, + 0x00050041,0x0000039c,0x00000475,0x000003fb,0x00000081,0x0003003e,0x00000475,0x00000474, + 0x000200f9,0x000003c8,0x000200f8,0x000003c8,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003b,0x00000013,0x0000006e,0x00000007,0x0004003d,0x00000006,0x0000006c,0x0000000a, + 0x00040070,0x00000008,0x0000006d,0x0000006c,0x0003003e,0x0000006e,0x0000006d,0x0004003d, + 0x00000008,0x0000006f,0x0000006e,0x000200fe,0x0000006f,0x00010038,0x00050036,0x0000000d, + 0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012, + 0x0004003b,0x0000000e,0x00000073,0x00000007,0x0004003d,0x0000000d,0x00000072,0x00000010, + 0x0003003e,0x00000073,0x00000072,0x0004003d,0x0000000d,0x00000074,0x00000073,0x000200fe, + 0x00000074,0x00010038,0x00050036,0x00000006,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000008,0x00000077,0x00000015, + 0x0004006d,0x00000006,0x00000078,0x00000077,0x000200fe,0x00000078,0x00010038,0x00050036, + 0x00000008,0x0000001a,0x00000000,0x00000018,0x00030037,0x00000013,0x00000019,0x000200f8, + 0x0000001b,0x0004003d,0x00000008,0x0000007b,0x00000019,0x000200fe,0x0000007b,0x00010038, + 0x00050036,0x0000001c,0x00000020,0x00000000,0x0000001d,0x00030037,0x00000013,0x0000001e, + 0x00030037,0x00000013,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x0000007e,0x0000007f, + 0x00000007,0x0004003d,0x00000008,0x00000080,0x0000001e,0x00050041,0x00000013,0x00000082, + 0x0000007f,0x00000081,0x0003003e,0x00000082,0x00000080,0x0004003d,0x00000008,0x00000083, + 0x0000001f,0x00050041,0x00000013,0x00000085,0x0000007f,0x00000084,0x0003003e,0x00000085, + 0x00000083,0x0004003d,0x0000001c,0x00000086,0x0000007f,0x000200fe,0x00000086,0x00010038, + 0x00050036,0x00000022,0x00000027,0x00000000,0x00000023,0x00030037,0x00000013,0x00000024, + 0x00030037,0x00000013,0x00000025,0x00030037,0x00000013,0x00000026,0x000200f8,0x00000028, + 0x0004003b,0x0000002d,0x00000089,0x00000007,0x0004003d,0x00000008,0x0000008a,0x00000024, + 0x00050041,0x00000013,0x0000008b,0x00000089,0x00000081,0x0003003e,0x0000008b,0x0000008a, + 0x0004003d,0x00000008,0x0000008c,0x00000025,0x00050041,0x00000013,0x0000008d,0x00000089, + 0x00000084,0x0003003e,0x0000008d,0x0000008c,0x0004003d,0x00000008,0x0000008e,0x00000026, + 0x00050041,0x00000013,0x00000090,0x00000089,0x0000008f,0x0003003e,0x00000090,0x0000008e, + 0x0004003d,0x00000022,0x00000091,0x00000089,0x000200fe,0x00000091,0x00010038,0x00050036, + 0x00000022,0x0000002b,0x00000000,0x00000029,0x00030037,0x00000013,0x0000002a,0x000200f8, + 0x0000002c,0x0004003b,0x0000002d,0x00000094,0x00000007,0x0004003d,0x00000008,0x00000095, + 0x0000002a,0x00050041,0x00000013,0x00000096,0x00000094,0x00000081,0x0003003e,0x00000096, + 0x00000095,0x0004003d,0x00000008,0x00000097,0x0000002a,0x00050041,0x00000013,0x00000098, + 0x00000094,0x00000084,0x0003003e,0x00000098,0x00000097,0x0004003d,0x00000008,0x00000099, + 0x0000002a,0x00050041,0x00000013,0x0000009a,0x00000094,0x0000008f,0x0003003e,0x0000009a, + 0x00000099,0x0004003d,0x00000022,0x0000009b,0x00000094,0x000200fe,0x0000009b,0x00010038, + 0x00050036,0x0000000d,0x00000031,0x00000000,0x0000002e,0x00030037,0x0000002d,0x0000002f, + 0x00030037,0x00000013,0x00000030,0x000200f8,0x00000032,0x0004003b,0x0000000e,0x0000009e, + 0x00000007,0x0004003d,0x00000022,0x0000009f,0x0000002f,0x00050041,0x00000013,0x000000a0, + 0x0000009e,0x00000081,0x00050051,0x00000008,0x000000a1,0x0000009f,0x00000000,0x0003003e, + 0x000000a0,0x000000a1,0x00050041,0x00000013,0x000000a2,0x0000009e,0x00000084,0x00050051, + 0x00000008,0x000000a3,0x0000009f,0x00000001,0x0003003e,0x000000a2,0x000000a3,0x00050041, + 0x00000013,0x000000a4,0x0000009e,0x0000008f,0x00050051,0x00000008,0x000000a5,0x0000009f, + 0x00000002,0x0003003e,0x000000a4,0x000000a5,0x0004003d,0x00000008,0x000000a6,0x00000030, + 0x00050041,0x00000013,0x000000a8,0x0000009e,0x000000a7,0x0003003e,0x000000a8,0x000000a6, + 0x0004003d,0x0000000d,0x000000a9,0x0000009e,0x000200fe,0x000000a9,0x00010038,0x00050036, + 0x00000033,0x00000038,0x00000000,0x00000034,0x00030037,0x0000002d,0x00000035,0x00030037, + 0x0000002d,0x00000036,0x00030037,0x0000002d,0x00000037,0x000200f8,0x00000039,0x0004003b, + 0x000000ac,0x000000ad,0x00000007,0x0004003d,0x00000022,0x000000b0,0x00000035,0x00050041, + 0x0000002d,0x000000b1,0x000000ad,0x000000af,0x0003003e,0x000000b1,0x000000b0,0x0004003d, + 0x00000022,0x000000b3,0x00000036,0x00050041,0x0000002d,0x000000b4,0x000000ad,0x000000b2, + 0x0003003e,0x000000b4,0x000000b3,0x0004003d,0x00000022,0x000000b6,0x00000037,0x00050041, + 0x0000002d,0x000000b7,0x000000ad,0x000000b5,0x0003003e,0x000000b7,0x000000b6,0x0004003d, + 0x00000033,0x000000b8,0x000000ad,0x000200fe,0x000000b8,0x00010038,0x00050036,0x0000000d, + 0x0000003b,0x00000000,0x0000000f,0x00030037,0x0000000e,0x0000003a,0x000200f8,0x0000003c, + 0x0004003b,0x00000013,0x000000d7,0x00000007,0x0004003b,0x00000013,0x000000dc,0x00000007, + 0x00050041,0x00000013,0x000000bd,0x0000003a,0x000000a7,0x0004003d,0x00000008,0x000000be, + 0x000000bd,0x000500b8,0x000000bb,0x000000bf,0x000000bc,0x000000be,0x000300f7,0x000000c1, + 0x00000000,0x000400fa,0x000000bf,0x000000c0,0x000000c1,0x000200f8,0x000000c0,0x00050041, + 0x00000013,0x000000c2,0x0000003a,0x000000a7,0x0004003d,0x00000008,0x000000c3,0x000000c2, + 0x000500b8,0x000000bb,0x000000c5,0x000000c3,0x000000c4,0x000200f9,0x000000c1,0x000200f8, + 0x000000c1,0x000700f5,0x000000bb,0x000000c6,0x000000bf,0x0000003c,0x000000c5,0x000000c0, + 0x000300f7,0x000000c8,0x00000000,0x000400fa,0x000000c6,0x000000c7,0x000000c8,0x000200f8, + 0x000000c7,0x00050041,0x00000013,0x000000c9,0x0000003a,0x000000a7,0x0004003d,0x00000008, + 0x000000ca,0x000000c9,0x00050088,0x00000008,0x000000cb,0x000000c4,0x000000ca,0x0004003d, + 0x0000000d,0x000000cc,0x0000003a,0x0008004f,0x00000022,0x000000cd,0x000000cc,0x000000cc, + 0x00000000,0x00000001,0x00000002,0x0005008e,0x00000022,0x000000ce,0x000000cd,0x000000cb, + 0x00050041,0x00000013,0x000000cf,0x0000003a,0x00000081,0x00050051,0x00000008,0x000000d0, + 0x000000ce,0x00000000,0x0003003e,0x000000cf,0x000000d0,0x00050041,0x00000013,0x000000d1, + 0x0000003a,0x00000084,0x00050051,0x00000008,0x000000d2,0x000000ce,0x00000001,0x0003003e, + 0x000000d1,0x000000d2,0x00050041,0x00000013,0x000000d3,0x0000003a,0x0000008f,0x00050051, + 0x00000008,0x000000d4,0x000000ce,0x00000002,0x0003003e,0x000000d3,0x000000d4,0x0004003d, + 0x0000000d,0x000000d5,0x0000003a,0x0008004f,0x00000022,0x000000d6,0x000000d5,0x000000d5, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x000000d7,0x000000c4,0x00050039,0x00000022, + 0x000000d8,0x0000002b,0x000000d7,0x0004003d,0x0000000d,0x000000d9,0x0000003a,0x0008004f, + 0x00000022,0x000000da,0x000000d9,0x000000d9,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x000000dc,0x000000db,0x00050039,0x00000022,0x000000dd,0x0000002b,0x000000dc,0x000500ba, + 0x000000de,0x000000df,0x000000da,0x000000dd,0x000600a9,0x00000022,0x000000e0,0x000000df, + 0x000000d8,0x000000d6,0x00050041,0x00000013,0x000000e1,0x0000003a,0x00000081,0x00050051, + 0x00000008,0x000000e2,0x000000e0,0x00000000,0x0003003e,0x000000e1,0x000000e2,0x00050041, + 0x00000013,0x000000e3,0x0000003a,0x00000084,0x00050051,0x00000008,0x000000e4,0x000000e0, + 0x00000001,0x0003003e,0x000000e3,0x000000e4,0x00050041,0x00000013,0x000000e5,0x0000003a, + 0x0000008f,0x00050051,0x00000008,0x000000e6,0x000000e0,0x00000002,0x0003003e,0x000000e5, + 0x000000e6,0x000200f9,0x000000c8,0x000200f8,0x000000c8,0x0004003d,0x0000000d,0x000000e7, + 0x0000003a,0x000200fe,0x000000e7,0x00010038,0x00050036,0x00000008,0x0000003f,0x00000000, + 0x0000003d,0x00030037,0x0000000e,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000007e, + 0x000000ea,0x00000007,0x0004003b,0x00000013,0x000000f0,0x00000007,0x0004003d,0x0000000d, + 0x000000eb,0x0000003e,0x0007004f,0x0000001c,0x000000ec,0x000000eb,0x000000eb,0x00000000, + 0x00000001,0x0004003d,0x0000000d,0x000000ed,0x0000003e,0x0007004f,0x0000001c,0x000000ee, + 0x000000ed,0x000000ed,0x00000002,0x00000003,0x0007000c,0x0000001c,0x000000ef,0x00000001, + 0x00000025,0x000000ec,0x000000ee,0x0003003e,0x000000ea,0x000000ef,0x00050041,0x00000013, + 0x000000f1,0x000000ea,0x00000081,0x0004003d,0x00000008,0x000000f2,0x000000f1,0x00050041, + 0x00000013,0x000000f3,0x000000ea,0x00000084,0x0004003d,0x00000008,0x000000f4,0x000000f3, + 0x0007000c,0x00000008,0x000000f5,0x00000001,0x00000025,0x000000f2,0x000000f4,0x0003003e, + 0x000000f0,0x000000f5,0x0004003d,0x00000008,0x000000f6,0x000000f0,0x000200fe,0x000000f6, + 0x00010038,0x00050036,0x00000008,0x00000043,0x00000000,0x00000041,0x00030037,0x0000002d, + 0x00000042,0x000200f8,0x00000044,0x00050041,0x00000013,0x000000f9,0x00000042,0x00000081, + 0x0004003d,0x00000008,0x000000fa,0x000000f9,0x00050041,0x00000013,0x000000fb,0x00000042, + 0x00000084,0x0004003d,0x00000008,0x000000fc,0x000000fb,0x0007000c,0x00000008,0x000000fd, + 0x00000001,0x00000025,0x000000fa,0x000000fc,0x00050041,0x00000013,0x000000fe,0x00000042, + 0x0000008f,0x0004003d,0x00000008,0x000000ff,0x000000fe,0x0007000c,0x00000008,0x00000100, + 0x00000001,0x00000025,0x000000fd,0x000000ff,0x000200fe,0x00000100,0x00010038,0x00050036, + 0x00000008,0x00000046,0x00000000,0x00000041,0x00030037,0x0000002d,0x00000045,0x000200f8, + 0x00000047,0x00050041,0x00000013,0x00000103,0x00000045,0x00000081,0x0004003d,0x00000008, + 0x00000104,0x00000103,0x00050041,0x00000013,0x00000105,0x00000045,0x00000084,0x0004003d, + 0x00000008,0x00000106,0x00000105,0x0007000c,0x00000008,0x00000107,0x00000001,0x00000028, + 0x00000104,0x00000106,0x00050041,0x00000013,0x00000108,0x00000045,0x0000008f,0x0004003d, + 0x00000008,0x00000109,0x00000108,0x0007000c,0x00000008,0x0000010a,0x00000001,0x00000028, + 0x00000107,0x00000109,0x000200fe,0x0000010a,0x00010038,0x00050036,0x00000008,0x00000049, + 0x00000000,0x00000041,0x00030037,0x0000002d,0x00000048,0x000200f8,0x0000004a,0x0004003b, + 0x00000013,0x00000111,0x00000007,0x0004003b,0x00000013,0x00000112,0x00000007,0x0004003b, + 0x00000013,0x00000113,0x00000007,0x0004003d,0x00000022,0x0000010d,0x00000048,0x0003003e, + 0x00000111,0x0000010e,0x0003003e,0x00000112,0x0000010f,0x0003003e,0x00000113,0x00000110, + 0x00070039,0x00000022,0x00000114,0x00000027,0x00000111,0x00000112,0x00000113,0x00050094, + 0x00000008,0x00000115,0x0000010d,0x00000114,0x000200fe,0x00000115,0x00010038,0x00050036, + 0x00000008,0x0000004c,0x00000000,0x00000041,0x00030037,0x0000002d,0x0000004b,0x000200f8, + 0x0000004d,0x0004003b,0x0000002d,0x00000118,0x00000007,0x0004003b,0x0000002d,0x0000011b, + 0x00000007,0x0004003d,0x00000022,0x00000119,0x0000004b,0x0003003e,0x00000118,0x00000119, + 0x00050039,0x00000008,0x0000011a,0x00000046,0x00000118,0x0004003d,0x00000022,0x0000011c, + 0x0000004b,0x0003003e,0x0000011b,0x0000011c,0x00050039,0x00000008,0x0000011d,0x00000043, + 0x0000011b,0x00050083,0x00000008,0x0000011e,0x0000011a,0x0000011d,0x000200fe,0x0000011e, + 0x00010038,0x00050036,0x00000022,0x00000050,0x00000000,0x0000004e,0x00030037,0x0000002d, + 0x0000004f,0x000200f8,0x00000051,0x0004003b,0x00000013,0x00000121,0x00000007,0x0004003b, + 0x0000002d,0x00000122,0x00000007,0x0004003b,0x00000013,0x00000125,0x00000007,0x0004003b, + 0x0000002d,0x00000126,0x00000007,0x0004003b,0x00000013,0x00000129,0x00000007,0x0004003b, + 0x0000002d,0x0000012a,0x00000007,0x0004003d,0x00000022,0x00000123,0x0000004f,0x0003003e, + 0x00000122,0x00000123,0x00050039,0x00000008,0x00000124,0x00000049,0x00000122,0x0003003e, + 0x00000121,0x00000124,0x0004003d,0x00000022,0x00000127,0x0000004f,0x0003003e,0x00000126, + 0x00000127,0x00050039,0x00000008,0x00000128,0x00000043,0x00000126,0x0003003e,0x00000125, + 0x00000128,0x0004003d,0x00000022,0x0000012b,0x0000004f,0x0003003e,0x0000012a,0x0000012b, + 0x00050039,0x00000008,0x0000012c,0x00000046,0x0000012a,0x0003003e,0x00000129,0x0000012c, + 0x0004003d,0x00000008,0x0000012d,0x00000125,0x000500b8,0x000000bb,0x0000012e,0x0000012d, + 0x000000bc,0x000300f7,0x00000130,0x00000000,0x000400fa,0x0000012e,0x0000012f,0x00000130, + 0x000200f8,0x0000012f,0x0004003d,0x00000008,0x00000131,0x00000121,0x0004003d,0x00000022, + 0x00000132,0x0000004f,0x0004003d,0x00000008,0x00000133,0x00000121,0x00060050,0x00000022, + 0x00000134,0x00000133,0x00000133,0x00000133,0x00050083,0x00000022,0x00000135,0x00000132, + 0x00000134,0x0004003d,0x00000008,0x00000136,0x00000121,0x0005008e,0x00000022,0x00000137, + 0x00000135,0x00000136,0x0004003d,0x00000008,0x00000138,0x00000121,0x0004003d,0x00000008, + 0x00000139,0x00000125,0x00050083,0x00000008,0x0000013a,0x00000138,0x00000139,0x00060050, + 0x00000022,0x0000013b,0x0000013a,0x0000013a,0x0000013a,0x00050088,0x00000022,0x0000013c, + 0x00000137,0x0000013b,0x00060050,0x00000022,0x0000013d,0x00000131,0x00000131,0x00000131, + 0x00050081,0x00000022,0x0000013e,0x0000013d,0x0000013c,0x0003003e,0x0000004f,0x0000013e, + 0x000200f9,0x00000130,0x000200f8,0x00000130,0x0004003d,0x00000008,0x0000013f,0x00000129, + 0x000500ba,0x000000bb,0x00000140,0x0000013f,0x000000c4,0x000300f7,0x00000142,0x00000000, + 0x000400fa,0x00000140,0x00000141,0x00000142,0x000200f8,0x00000141,0x0004003d,0x00000008, + 0x00000143,0x00000121,0x0004003d,0x00000022,0x00000144,0x0000004f,0x0004003d,0x00000008, + 0x00000145,0x00000121,0x00060050,0x00000022,0x00000146,0x00000145,0x00000145,0x00000145, + 0x00050083,0x00000022,0x00000147,0x00000144,0x00000146,0x0004003d,0x00000008,0x00000148, + 0x00000121,0x00050083,0x00000008,0x00000149,0x000000c4,0x00000148,0x0005008e,0x00000022, + 0x0000014a,0x00000147,0x00000149,0x0004003d,0x00000008,0x0000014b,0x00000129,0x0004003d, + 0x00000008,0x0000014c,0x00000121,0x00050083,0x00000008,0x0000014d,0x0000014b,0x0000014c, + 0x00060050,0x00000022,0x0000014e,0x0000014d,0x0000014d,0x0000014d,0x00050088,0x00000022, + 0x0000014f,0x0000014a,0x0000014e,0x00060050,0x00000022,0x00000150,0x00000143,0x00000143, + 0x00000143,0x00050081,0x00000022,0x00000151,0x00000150,0x0000014f,0x0003003e,0x0000004f, + 0x00000151,0x000200f9,0x00000142,0x000200f8,0x00000142,0x0004003d,0x00000022,0x00000152, + 0x0000004f,0x000200fe,0x00000152,0x00010038,0x00050036,0x00000022,0x00000055,0x00000000, + 0x00000052,0x00030037,0x0000002d,0x00000053,0x00030037,0x0000002d,0x00000054,0x000200f8, + 0x00000056,0x0004003b,0x00000013,0x00000155,0x00000007,0x0004003b,0x0000002d,0x00000156, + 0x00000007,0x0004003b,0x00000013,0x00000159,0x00000007,0x0004003b,0x0000002d,0x0000015a, + 0x00000007,0x0004003b,0x00000013,0x0000015d,0x00000007,0x0004003b,0x0000002d,0x00000161, + 0x00000007,0x0004003b,0x00000013,0x00000163,0x00000007,0x0004003b,0x0000002d,0x00000167, + 0x00000007,0x0004003d,0x00000022,0x00000157,0x00000053,0x0003003e,0x00000156,0x00000157, + 0x00050039,0x00000008,0x00000158,0x00000049,0x00000156,0x0003003e,0x00000155,0x00000158, + 0x0004003d,0x00000022,0x0000015b,0x00000054,0x0003003e,0x0000015a,0x0000015b,0x00050039, + 0x00000008,0x0000015c,0x00000049,0x0000015a,0x0003003e,0x00000159,0x0000015c,0x0004003d, + 0x00000008,0x0000015e,0x00000159,0x0004003d,0x00000008,0x0000015f,0x00000155,0x00050083, + 0x00000008,0x00000160,0x0000015e,0x0000015f,0x0003003e,0x0000015d,0x00000160,0x0004003d, + 0x00000022,0x00000162,0x00000053,0x0004003d,0x00000008,0x00000164,0x0000015d,0x0003003e, + 0x00000163,0x00000164,0x00050039,0x00000022,0x00000165,0x0000002b,0x00000163,0x00050081, + 0x00000022,0x00000166,0x00000162,0x00000165,0x0003003e,0x00000161,0x00000166,0x0004003d, + 0x00000022,0x00000168,0x00000161,0x0003003e,0x00000167,0x00000168,0x00050039,0x00000022, + 0x00000169,0x00000050,0x00000167,0x000200fe,0x00000169,0x00010038,0x00050036,0x00000022, + 0x0000005b,0x00000000,0x00000057,0x00030037,0x0000002d,0x00000058,0x00030037,0x0000002d, + 0x00000059,0x00030037,0x0000002d,0x0000005a,0x000200f8,0x0000005c,0x0004003b,0x00000013, + 0x0000016c,0x00000007,0x0004003b,0x0000002d,0x0000016d,0x00000007,0x0004003b,0x00000013, + 0x00000170,0x00000007,0x0004003b,0x0000002d,0x00000171,0x00000007,0x0004003b,0x00000013, + 0x00000174,0x00000007,0x0004003b,0x0000002d,0x00000175,0x00000007,0x0004003b,0x0000002d, + 0x0000017c,0x00000007,0x0004003b,0x00000013,0x00000187,0x00000007,0x0004003b,0x0000002d, + 0x00000189,0x00000007,0x0004003b,0x0000002d,0x0000018b,0x00000007,0x0004003d,0x00000022, + 0x0000016e,0x00000058,0x0003003e,0x0000016d,0x0000016e,0x00050039,0x00000008,0x0000016f, + 0x00000043,0x0000016d,0x0003003e,0x0000016c,0x0000016f,0x0004003d,0x00000022,0x00000172, + 0x00000058,0x0003003e,0x00000171,0x00000172,0x00050039,0x00000008,0x00000173,0x0000004c, + 0x00000171,0x0003003e,0x00000170,0x00000173,0x0004003d,0x00000022,0x00000176,0x00000059, + 0x0003003e,0x00000175,0x00000176,0x00050039,0x00000008,0x00000177,0x0000004c,0x00000175, + 0x0003003e,0x00000174,0x00000177,0x0004003d,0x00000008,0x00000178,0x00000170,0x000500ba, + 0x000000bb,0x00000179,0x00000178,0x000000bc,0x000300f7,0x0000017b,0x00000000,0x000400fa, + 0x00000179,0x0000017a,0x00000186,0x000200f8,0x0000017a,0x0004003d,0x00000022,0x0000017d, + 0x00000058,0x0004003d,0x00000008,0x0000017e,0x0000016c,0x00060050,0x00000022,0x0000017f, + 0x0000017e,0x0000017e,0x0000017e,0x00050083,0x00000022,0x00000180,0x0000017d,0x0000017f, + 0x0004003d,0x00000008,0x00000181,0x00000174,0x0005008e,0x00000022,0x00000182,0x00000180, + 0x00000181,0x0004003d,0x00000008,0x00000183,0x00000170,0x00060050,0x00000022,0x00000184, + 0x00000183,0x00000183,0x00000183,0x00050088,0x00000022,0x00000185,0x00000182,0x00000184, + 0x0003003e,0x0000017c,0x00000185,0x000200f9,0x0000017b,0x000200f8,0x00000186,0x0003003e, + 0x00000187,0x000000bc,0x00050039,0x00000022,0x00000188,0x0000002b,0x00000187,0x0003003e, + 0x0000017c,0x00000188,0x000200f9,0x0000017b,0x000200f8,0x0000017b,0x0004003d,0x00000022, + 0x0000018a,0x0000017c,0x0003003e,0x00000189,0x0000018a,0x0004003d,0x00000022,0x0000018c, + 0x0000005a,0x0003003e,0x0000018b,0x0000018c,0x00060039,0x00000022,0x0000018d,0x00000055, + 0x00000189,0x0000018b,0x000200fe,0x0000018d,0x00010038,0x00050036,0x00000022,0x00000061, + 0x00000000,0x0000005d,0x00030037,0x0000002d,0x0000005e,0x00030037,0x0000002d,0x0000005f, + 0x00030037,0x00000007,0x00000060,0x000200f8,0x00000062,0x0004003b,0x0000002d,0x000001a1, + 0x00000007,0x0004003b,0x000001ae,0x000001af,0x00000007,0x0004003b,0x00000013,0x000001e8, + 0x00000007,0x0004003b,0x00000013,0x000001eb,0x00000007,0x0004003b,0x00000013,0x000001ee, + 0x00000007,0x0004003b,0x00000013,0x000001fc,0x00000007,0x0004003b,0x00000013,0x000001ff, + 0x00000007,0x0004003b,0x000001ae,0x00000204,0x00000007,0x0004003b,0x000001ae,0x0000022d, + 0x00000007,0x0004003b,0x00000013,0x0000029e,0x00000007,0x0004003b,0x00000013,0x000002a0, + 0x00000007,0x0004003b,0x0000002d,0x000002a3,0x00000007,0x0004003b,0x0000002d,0x000002a5, + 0x00000007,0x0004003b,0x0000002d,0x000002a7,0x00000007,0x0004003b,0x00000013,0x000002ae, + 0x00000007,0x0004003b,0x00000013,0x000002b0,0x00000007,0x0004003b,0x0000002d,0x000002b3, + 0x00000007,0x0004003b,0x0000002d,0x000002b5,0x00000007,0x0004003b,0x0000002d,0x000002b7, + 0x00000007,0x0004003b,0x00000013,0x000002be,0x00000007,0x0004003b,0x00000013,0x000002c0, + 0x00000007,0x0004003b,0x0000002d,0x000002c3,0x00000007,0x0004003b,0x0000002d,0x000002c5, + 0x00000007,0x0004003b,0x00000013,0x000002cc,0x00000007,0x0004003b,0x00000013,0x000002ce, + 0x00000007,0x0004003b,0x0000002d,0x000002d1,0x00000007,0x0004003b,0x0000002d,0x000002d3, + 0x00000007,0x0004003d,0x00000006,0x00000190,0x00000060,0x000300f7,0x000001a0,0x00000000, + 0x002100fb,0x00000190,0x000001a0,0x0000000b,0x00000191,0x00000001,0x00000192,0x00000002, + 0x00000193,0x00000003,0x00000194,0x00000004,0x00000195,0x00000005,0x00000196,0x00000006, + 0x00000197,0x00000007,0x00000198,0x00000008,0x00000199,0x00000009,0x0000019a,0x0000000a, + 0x0000019b,0x0000000c,0x0000019c,0x0000000d,0x0000019d,0x0000000e,0x0000019e,0x0000000f, + 0x0000019f,0x000200f8,0x00000191,0x0004003d,0x00000022,0x000001a2,0x0000005e,0x0004003d, + 0x00000022,0x000001a3,0x0000005f,0x00050085,0x00000022,0x000001a4,0x000001a2,0x000001a3, + 0x0003003e,0x000001a1,0x000001a4,0x000200f9,0x000001a0,0x000200f8,0x00000192,0x0004003d, + 0x00000022,0x000001a6,0x0000005e,0x0004003d,0x00000022,0x000001a7,0x0000005f,0x00050081, + 0x00000022,0x000001a8,0x000001a6,0x000001a7,0x0004003d,0x00000022,0x000001a9,0x0000005e, + 0x0004003d,0x00000022,0x000001aa,0x0000005f,0x00050085,0x00000022,0x000001ab,0x000001a9, + 0x000001aa,0x00050083,0x00000022,0x000001ac,0x000001a8,0x000001ab,0x0003003e,0x000001a1, + 0x000001ac,0x000200f9,0x000001a0,0x000200f8,0x00000193,0x0003003e,0x000001af,0x000000af, + 0x000200f9,0x000001b0,0x000200f8,0x000001b0,0x000400f6,0x000001b2,0x000001b3,0x00000000, + 0x000200f9,0x000001b4,0x000200f8,0x000001b4,0x0004003d,0x000000ae,0x000001b5,0x000001af, + 0x000500b1,0x000000bb,0x000001b7,0x000001b5,0x000001b6,0x000400fa,0x000001b7,0x000001b1, + 0x000001b2,0x000200f8,0x000001b1,0x0004003d,0x000000ae,0x000001b8,0x000001af,0x00050041, + 0x00000013,0x000001b9,0x0000005f,0x000001b8,0x0004003d,0x00000008,0x000001ba,0x000001b9, + 0x000500bc,0x000000bb,0x000001bc,0x000001ba,0x000001bb,0x000300f7,0x000001be,0x00000000, + 0x000400fa,0x000001bc,0x000001bd,0x000001ca,0x000200f8,0x000001bd,0x0004003d,0x000000ae, + 0x000001bf,0x000001af,0x0004003d,0x000000ae,0x000001c1,0x000001af,0x00050041,0x00000013, + 0x000001c2,0x0000005e,0x000001c1,0x0004003d,0x00000008,0x000001c3,0x000001c2,0x00050085, + 0x00000008,0x000001c4,0x000001c0,0x000001c3,0x0004003d,0x000000ae,0x000001c5,0x000001af, + 0x00050041,0x00000013,0x000001c6,0x0000005f,0x000001c5,0x0004003d,0x00000008,0x000001c7, + 0x000001c6,0x00050085,0x00000008,0x000001c8,0x000001c4,0x000001c7,0x00050041,0x00000013, + 0x000001c9,0x000001a1,0x000001bf,0x0003003e,0x000001c9,0x000001c8,0x000200f9,0x000001be, + 0x000200f8,0x000001ca,0x0004003d,0x000000ae,0x000001cb,0x000001af,0x0004003d,0x000000ae, + 0x000001cc,0x000001af,0x00050041,0x00000013,0x000001cd,0x0000005e,0x000001cc,0x0004003d, + 0x00000008,0x000001ce,0x000001cd,0x00050083,0x00000008,0x000001cf,0x000000c4,0x000001ce, + 0x00050085,0x00000008,0x000001d0,0x000001c0,0x000001cf,0x0004003d,0x000000ae,0x000001d1, + 0x000001af,0x00050041,0x00000013,0x000001d2,0x0000005f,0x000001d1,0x0004003d,0x00000008, + 0x000001d3,0x000001d2,0x00050083,0x00000008,0x000001d4,0x000000c4,0x000001d3,0x00050085, + 0x00000008,0x000001d5,0x000001d0,0x000001d4,0x00050083,0x00000008,0x000001d6,0x000000c4, + 0x000001d5,0x00050041,0x00000013,0x000001d7,0x000001a1,0x000001cb,0x0003003e,0x000001d7, + 0x000001d6,0x000200f9,0x000001be,0x000200f8,0x000001be,0x000200f9,0x000001b3,0x000200f8, + 0x000001b3,0x0004003d,0x000000ae,0x000001d8,0x000001af,0x00050080,0x000000ae,0x000001d9, + 0x000001d8,0x000000b2,0x0003003e,0x000001af,0x000001d9,0x000200f9,0x000001b0,0x000200f8, + 0x000001b2,0x000200f9,0x000001a0,0x000200f8,0x00000194,0x0004003d,0x00000022,0x000001db, + 0x0000005e,0x0004003d,0x00000022,0x000001dc,0x0000005f,0x0007000c,0x00000022,0x000001dd, + 0x00000001,0x00000025,0x000001db,0x000001dc,0x0003003e,0x000001a1,0x000001dd,0x000200f9, + 0x000001a0,0x000200f8,0x00000195,0x0004003d,0x00000022,0x000001df,0x0000005e,0x0004003d, + 0x00000022,0x000001e0,0x0000005f,0x0007000c,0x00000022,0x000001e1,0x00000001,0x00000028, + 0x000001df,0x000001e0,0x0003003e,0x000001a1,0x000001e1,0x000200f9,0x000001a0,0x000200f8, + 0x00000196,0x0004003d,0x00000022,0x000001e3,0x0000005f,0x0004003d,0x00000022,0x000001e4, + 0x0000005e,0x00060050,0x00000022,0x000001e5,0x000000c4,0x000000c4,0x000000c4,0x00050083, + 0x00000022,0x000001e6,0x000001e5,0x000001e4,0x00050088,0x00000022,0x000001e7,0x000001e3, + 0x000001e6,0x0003003e,0x000001e8,0x000000c4,0x00050039,0x00000022,0x000001e9,0x0000002b, + 0x000001e8,0x0007000c,0x00000022,0x000001ea,0x00000001,0x00000025,0x000001e7,0x000001e9, + 0x0003003e,0x000001eb,0x000000bc,0x00050039,0x00000022,0x000001ec,0x0000002b,0x000001eb, + 0x0004003d,0x00000022,0x000001ed,0x0000005f,0x0003003e,0x000001ee,0x000000bc,0x00050039, + 0x00000022,0x000001ef,0x0000002b,0x000001ee,0x000500bc,0x000000de,0x000001f0,0x000001ed, + 0x000001ef,0x000600a9,0x00000022,0x000001f1,0x000001f0,0x000001ec,0x000001ea,0x0003003e, + 0x000001a1,0x000001f1,0x000200f9,0x000001a0,0x000200f8,0x00000197,0x0004003d,0x00000022, + 0x000001f3,0x0000005f,0x00060050,0x00000022,0x000001f4,0x000000c4,0x000000c4,0x000000c4, + 0x00050083,0x00000022,0x000001f5,0x000001f4,0x000001f3,0x0004003d,0x00000022,0x000001f6, + 0x0000005e,0x00050088,0x00000022,0x000001f7,0x000001f5,0x000001f6,0x00060050,0x00000022, + 0x000001f8,0x000000c4,0x000000c4,0x000000c4,0x0007000c,0x00000022,0x000001f9,0x00000001, + 0x00000025,0x000001f7,0x000001f8,0x00060050,0x00000022,0x000001fa,0x000000c4,0x000000c4, + 0x000000c4,0x00050083,0x00000022,0x000001fb,0x000001fa,0x000001f9,0x0003003e,0x000001fc, + 0x000000c4,0x00050039,0x00000022,0x000001fd,0x0000002b,0x000001fc,0x0004003d,0x00000022, + 0x000001fe,0x0000005f,0x0003003e,0x000001ff,0x000000c4,0x00050039,0x00000022,0x00000200, + 0x0000002b,0x000001ff,0x000500be,0x000000de,0x00000201,0x000001fe,0x00000200,0x000600a9, + 0x00000022,0x00000202,0x00000201,0x000001fd,0x000001fb,0x0003003e,0x000001a1,0x00000202, + 0x000200f9,0x000001a0,0x000200f8,0x00000198,0x0003003e,0x00000204,0x000000af,0x000200f9, + 0x00000205,0x000200f8,0x00000205,0x000400f6,0x00000207,0x00000208,0x00000000,0x000200f9, + 0x00000209,0x000200f8,0x00000209,0x0004003d,0x000000ae,0x0000020a,0x00000204,0x000500b1, + 0x000000bb,0x0000020b,0x0000020a,0x000001b6,0x000400fa,0x0000020b,0x00000206,0x00000207, + 0x000200f8,0x00000206,0x0004003d,0x000000ae,0x0000020c,0x00000204,0x00050041,0x00000013, + 0x0000020d,0x0000005e,0x0000020c,0x0004003d,0x00000008,0x0000020e,0x0000020d,0x000500bc, + 0x000000bb,0x0000020f,0x0000020e,0x000001bb,0x000300f7,0x00000211,0x00000000,0x000400fa, + 0x0000020f,0x00000210,0x0000021c,0x000200f8,0x00000210,0x0004003d,0x000000ae,0x00000212, + 0x00000204,0x0004003d,0x000000ae,0x00000213,0x00000204,0x00050041,0x00000013,0x00000214, + 0x0000005e,0x00000213,0x0004003d,0x00000008,0x00000215,0x00000214,0x00050085,0x00000008, + 0x00000216,0x000001c0,0x00000215,0x0004003d,0x000000ae,0x00000217,0x00000204,0x00050041, + 0x00000013,0x00000218,0x0000005f,0x00000217,0x0004003d,0x00000008,0x00000219,0x00000218, + 0x00050085,0x00000008,0x0000021a,0x00000216,0x00000219,0x00050041,0x00000013,0x0000021b, + 0x000001a1,0x00000212,0x0003003e,0x0000021b,0x0000021a,0x000200f9,0x00000211,0x000200f8, + 0x0000021c,0x0004003d,0x000000ae,0x0000021d,0x00000204,0x0004003d,0x000000ae,0x0000021e, + 0x00000204,0x00050041,0x00000013,0x0000021f,0x0000005e,0x0000021e,0x0004003d,0x00000008, + 0x00000220,0x0000021f,0x00050083,0x00000008,0x00000221,0x000000c4,0x00000220,0x00050085, + 0x00000008,0x00000222,0x000001c0,0x00000221,0x0004003d,0x000000ae,0x00000223,0x00000204, + 0x00050041,0x00000013,0x00000224,0x0000005f,0x00000223,0x0004003d,0x00000008,0x00000225, + 0x00000224,0x00050083,0x00000008,0x00000226,0x000000c4,0x00000225,0x00050085,0x00000008, + 0x00000227,0x00000222,0x00000226,0x00050083,0x00000008,0x00000228,0x000000c4,0x00000227, + 0x00050041,0x00000013,0x00000229,0x000001a1,0x0000021d,0x0003003e,0x00000229,0x00000228, + 0x000200f9,0x00000211,0x000200f8,0x00000211,0x000200f9,0x00000208,0x000200f8,0x00000208, + 0x0004003d,0x000000ae,0x0000022a,0x00000204,0x00050080,0x000000ae,0x0000022b,0x0000022a, + 0x000000b2,0x0003003e,0x00000204,0x0000022b,0x000200f9,0x00000205,0x000200f8,0x00000207, + 0x000200f9,0x000001a0,0x000200f8,0x00000199,0x0003003e,0x0000022d,0x000000af,0x000200f9, + 0x0000022e,0x000200f8,0x0000022e,0x000400f6,0x00000230,0x00000231,0x00000000,0x000200f9, + 0x00000232,0x000200f8,0x00000232,0x0004003d,0x000000ae,0x00000233,0x0000022d,0x000500b1, + 0x000000bb,0x00000234,0x00000233,0x000001b6,0x000400fa,0x00000234,0x0000022f,0x00000230, + 0x000200f8,0x0000022f,0x0004003d,0x000000ae,0x00000235,0x0000022d,0x00050041,0x00000013, + 0x00000236,0x0000005e,0x00000235,0x0004003d,0x00000008,0x00000237,0x00000236,0x000500bc, + 0x000000bb,0x00000238,0x00000237,0x000001bb,0x000300f7,0x0000023a,0x00000000,0x000400fa, + 0x00000238,0x00000239,0x0000024f,0x000200f8,0x00000239,0x0004003d,0x000000ae,0x0000023b, + 0x0000022d,0x0004003d,0x000000ae,0x0000023c,0x0000022d,0x00050041,0x00000013,0x0000023d, + 0x0000005f,0x0000023c,0x0004003d,0x00000008,0x0000023e,0x0000023d,0x0004003d,0x000000ae, + 0x0000023f,0x0000022d,0x00050041,0x00000013,0x00000240,0x0000005e,0x0000023f,0x0004003d, + 0x00000008,0x00000241,0x00000240,0x00050085,0x00000008,0x00000242,0x000001c0,0x00000241, + 0x00050083,0x00000008,0x00000243,0x000000c4,0x00000242,0x0004003d,0x000000ae,0x00000244, + 0x0000022d,0x00050041,0x00000013,0x00000245,0x0000005f,0x00000244,0x0004003d,0x00000008, + 0x00000246,0x00000245,0x00050085,0x00000008,0x00000247,0x00000243,0x00000246,0x0004003d, + 0x000000ae,0x00000248,0x0000022d,0x00050041,0x00000013,0x00000249,0x0000005f,0x00000248, + 0x0004003d,0x00000008,0x0000024a,0x00000249,0x00050083,0x00000008,0x0000024b,0x000000c4, + 0x0000024a,0x00050085,0x00000008,0x0000024c,0x00000247,0x0000024b,0x00050083,0x00000008, + 0x0000024d,0x0000023e,0x0000024c,0x00050041,0x00000013,0x0000024e,0x000001a1,0x0000023b, + 0x0003003e,0x0000024e,0x0000024d,0x000200f9,0x0000023a,0x000200f8,0x0000024f,0x0004003d, + 0x000000ae,0x00000250,0x0000022d,0x00050041,0x00000013,0x00000251,0x0000005f,0x00000250, + 0x0004003d,0x00000008,0x00000252,0x00000251,0x000500bc,0x000000bb,0x00000254,0x00000252, + 0x00000253,0x000300f7,0x00000256,0x00000000,0x000400fa,0x00000254,0x00000255,0x00000274, + 0x000200f8,0x00000255,0x0004003d,0x000000ae,0x00000257,0x0000022d,0x0004003d,0x000000ae, + 0x00000258,0x0000022d,0x00050041,0x00000013,0x00000259,0x0000005f,0x00000258,0x0004003d, + 0x00000008,0x0000025a,0x00000259,0x0004003d,0x000000ae,0x0000025b,0x0000022d,0x00050041, + 0x00000013,0x0000025c,0x0000005e,0x0000025b,0x0004003d,0x00000008,0x0000025d,0x0000025c, + 0x00050085,0x00000008,0x0000025e,0x000001c0,0x0000025d,0x00050083,0x00000008,0x0000025f, + 0x0000025e,0x000000c4,0x0004003d,0x000000ae,0x00000260,0x0000022d,0x00050041,0x00000013, + 0x00000261,0x0000005f,0x00000260,0x0004003d,0x00000008,0x00000262,0x00000261,0x00050085, + 0x00000008,0x00000263,0x0000025f,0x00000262,0x0004003d,0x000000ae,0x00000265,0x0000022d, + 0x00050041,0x00000013,0x00000266,0x0000005f,0x00000265,0x0004003d,0x00000008,0x00000267, + 0x00000266,0x00050085,0x00000008,0x00000268,0x00000264,0x00000267,0x00050083,0x00000008, + 0x0000026a,0x00000268,0x00000269,0x0004003d,0x000000ae,0x0000026b,0x0000022d,0x00050041, + 0x00000013,0x0000026c,0x0000005f,0x0000026b,0x0004003d,0x00000008,0x0000026d,0x0000026c, + 0x00050085,0x00000008,0x0000026e,0x0000026a,0x0000026d,0x00050081,0x00000008,0x00000270, + 0x0000026e,0x0000026f,0x00050085,0x00000008,0x00000271,0x00000263,0x00000270,0x00050081, + 0x00000008,0x00000272,0x0000025a,0x00000271,0x00050041,0x00000013,0x00000273,0x000001a1, + 0x00000257,0x0003003e,0x00000273,0x00000272,0x000200f9,0x00000256,0x000200f8,0x00000274, + 0x0004003d,0x000000ae,0x00000275,0x0000022d,0x0004003d,0x000000ae,0x00000276,0x0000022d, + 0x00050041,0x00000013,0x00000277,0x0000005f,0x00000276,0x0004003d,0x00000008,0x00000278, + 0x00000277,0x0004003d,0x000000ae,0x00000279,0x0000022d,0x00050041,0x00000013,0x0000027a, + 0x0000005e,0x00000279,0x0004003d,0x00000008,0x0000027b,0x0000027a,0x00050085,0x00000008, + 0x0000027c,0x000001c0,0x0000027b,0x00050083,0x00000008,0x0000027d,0x0000027c,0x000000c4, + 0x0004003d,0x000000ae,0x0000027e,0x0000022d,0x00050041,0x00000013,0x0000027f,0x0000005f, + 0x0000027e,0x0004003d,0x00000008,0x00000280,0x0000027f,0x0006000c,0x00000008,0x00000281, + 0x00000001,0x0000001f,0x00000280,0x0004003d,0x000000ae,0x00000282,0x0000022d,0x00050041, + 0x00000013,0x00000283,0x0000005f,0x00000282,0x0004003d,0x00000008,0x00000284,0x00000283, + 0x00050083,0x00000008,0x00000285,0x00000281,0x00000284,0x00050085,0x00000008,0x00000286, + 0x0000027d,0x00000285,0x00050081,0x00000008,0x00000287,0x00000278,0x00000286,0x00050041, + 0x00000013,0x00000288,0x000001a1,0x00000275,0x0003003e,0x00000288,0x00000287,0x000200f9, + 0x00000256,0x000200f8,0x00000256,0x000200f9,0x0000023a,0x000200f8,0x0000023a,0x000200f9, + 0x00000231,0x000200f8,0x00000231,0x0004003d,0x000000ae,0x00000289,0x0000022d,0x00050080, + 0x000000ae,0x0000028a,0x00000289,0x000000b2,0x0003003e,0x0000022d,0x0000028a,0x000200f9, + 0x0000022e,0x000200f8,0x00000230,0x000200f9,0x000001a0,0x000200f8,0x0000019a,0x0004003d, + 0x00000022,0x0000028c,0x0000005f,0x0004003d,0x00000022,0x0000028d,0x0000005e,0x00050083, + 0x00000022,0x0000028e,0x0000028c,0x0000028d,0x0006000c,0x00000022,0x0000028f,0x00000001, + 0x00000004,0x0000028e,0x0003003e,0x000001a1,0x0000028f,0x000200f9,0x000001a0,0x000200f8, + 0x0000019b,0x0004003d,0x00000022,0x00000291,0x0000005e,0x0004003d,0x00000022,0x00000292, + 0x0000005f,0x00050081,0x00000022,0x00000293,0x00000291,0x00000292,0x0004003d,0x00000022, + 0x00000294,0x0000005e,0x0005008e,0x00000022,0x00000295,0x00000294,0x000001c0,0x0004003d, + 0x00000022,0x00000296,0x0000005f,0x00050085,0x00000022,0x00000297,0x00000295,0x00000296, + 0x00050083,0x00000022,0x00000298,0x00000293,0x00000297,0x0003003e,0x000001a1,0x00000298, + 0x000200f9,0x000001a0,0x000200f8,0x0000019c,0x000300f7,0x0000029c,0x00000000,0x000400fa, + 0x0000029a,0x0000029b,0x0000029c,0x000200f8,0x0000029b,0x0004003d,0x00000022,0x0000029d, + 0x0000005e,0x0003003e,0x0000029e,0x000000bc,0x00050039,0x00000022,0x0000029f,0x0000002b, + 0x0000029e,0x0003003e,0x000002a0,0x000000c4,0x00050039,0x00000022,0x000002a1,0x0000002b, + 0x000002a0,0x0008000c,0x00000022,0x000002a2,0x00000001,0x0000002b,0x0000029d,0x0000029f, + 0x000002a1,0x0003003e,0x0000005e,0x000002a2,0x0004003d,0x00000022,0x000002a4,0x0000005e, + 0x0003003e,0x000002a3,0x000002a4,0x0004003d,0x00000022,0x000002a6,0x0000005f,0x0003003e, + 0x000002a5,0x000002a6,0x0004003d,0x00000022,0x000002a8,0x0000005f,0x0003003e,0x000002a7, + 0x000002a8,0x00070039,0x00000022,0x000002a9,0x0000005b,0x000002a3,0x000002a5,0x000002a7, + 0x0003003e,0x000001a1,0x000002a9,0x000200f9,0x000001a0,0x000200f8,0x0000029c,0x000200f9, + 0x0000019d,0x000200f8,0x0000019d,0x000300f7,0x000002ac,0x00000000,0x000400fa,0x0000029a, + 0x000002ab,0x000002ac,0x000200f8,0x000002ab,0x0004003d,0x00000022,0x000002ad,0x0000005e, + 0x0003003e,0x000002ae,0x000000bc,0x00050039,0x00000022,0x000002af,0x0000002b,0x000002ae, + 0x0003003e,0x000002b0,0x000000c4,0x00050039,0x00000022,0x000002b1,0x0000002b,0x000002b0, + 0x0008000c,0x00000022,0x000002b2,0x00000001,0x0000002b,0x000002ad,0x000002af,0x000002b1, + 0x0003003e,0x0000005e,0x000002b2,0x0004003d,0x00000022,0x000002b4,0x0000005f,0x0003003e, + 0x000002b3,0x000002b4,0x0004003d,0x00000022,0x000002b6,0x0000005e,0x0003003e,0x000002b5, + 0x000002b6,0x0004003d,0x00000022,0x000002b8,0x0000005f,0x0003003e,0x000002b7,0x000002b8, + 0x00070039,0x00000022,0x000002b9,0x0000005b,0x000002b3,0x000002b5,0x000002b7,0x0003003e, + 0x000001a1,0x000002b9,0x000200f9,0x000001a0,0x000200f8,0x000002ac,0x000200f9,0x0000019e, + 0x000200f8,0x0000019e,0x000300f7,0x000002bc,0x00000000,0x000400fa,0x0000029a,0x000002bb, + 0x000002bc,0x000200f8,0x000002bb,0x0004003d,0x00000022,0x000002bd,0x0000005e,0x0003003e, + 0x000002be,0x000000bc,0x00050039,0x00000022,0x000002bf,0x0000002b,0x000002be,0x0003003e, + 0x000002c0,0x000000c4,0x00050039,0x00000022,0x000002c1,0x0000002b,0x000002c0,0x0008000c, + 0x00000022,0x000002c2,0x00000001,0x0000002b,0x000002bd,0x000002bf,0x000002c1,0x0003003e, + 0x0000005e,0x000002c2,0x0004003d,0x00000022,0x000002c4,0x0000005e,0x0003003e,0x000002c3, + 0x000002c4,0x0004003d,0x00000022,0x000002c6,0x0000005f,0x0003003e,0x000002c5,0x000002c6, + 0x00060039,0x00000022,0x000002c7,0x00000055,0x000002c3,0x000002c5,0x0003003e,0x000001a1, + 0x000002c7,0x000200f9,0x000001a0,0x000200f8,0x000002bc,0x000200f9,0x0000019f,0x000200f8, + 0x0000019f,0x000300f7,0x000002ca,0x00000000,0x000400fa,0x0000029a,0x000002c9,0x000002ca, + 0x000200f8,0x000002c9,0x0004003d,0x00000022,0x000002cb,0x0000005e,0x0003003e,0x000002cc, + 0x000000bc,0x00050039,0x00000022,0x000002cd,0x0000002b,0x000002cc,0x0003003e,0x000002ce, + 0x000000c4,0x00050039,0x00000022,0x000002cf,0x0000002b,0x000002ce,0x0008000c,0x00000022, + 0x000002d0,0x00000001,0x0000002b,0x000002cb,0x000002cd,0x000002cf,0x0003003e,0x0000005e, + 0x000002d0,0x0004003d,0x00000022,0x000002d2,0x0000005f,0x0003003e,0x000002d1,0x000002d2, + 0x0004003d,0x00000022,0x000002d4,0x0000005e,0x0003003e,0x000002d3,0x000002d4,0x00060039, + 0x00000022,0x000002d5,0x00000055,0x000002d1,0x000002d3,0x0003003e,0x000001a1,0x000002d5, + 0x000200f9,0x000001a0,0x000200f8,0x000002ca,0x000200f9,0x000001a0,0x000200f8,0x000001a0, + 0x0004003d,0x00000022,0x000002d8,0x000001a1,0x000200fe,0x000002d8,0x00010038,0x00050036, + 0x0000000d,0x00000067,0x00000000,0x00000063,0x00030037,0x0000000e,0x00000064,0x00030037, + 0x0000000e,0x00000065,0x00030037,0x00000007,0x00000066,0x000200f8,0x00000068,0x0004003b, + 0x0000002d,0x000002db,0x00000007,0x0004003b,0x0000002d,0x000002dc,0x00000007,0x0004003b, + 0x0000002d,0x000002df,0x00000007,0x0004003b,0x00000007,0x000002e2,0x00000007,0x0004003b, + 0x00000013,0x000002e5,0x00000007,0x0004003b,0x0000002d,0x000002eb,0x00000007,0x0004003b, + 0x00000013,0x000002f4,0x00000007,0x0004003b,0x00000013,0x000002f6,0x00000007,0x0004003b, + 0x00000013,0x000002f7,0x00000007,0x0004003b,0x0000002d,0x000002f9,0x00000007,0x0004003b, + 0x0000002d,0x000002fb,0x00000007,0x0004003b,0x0000002d,0x000002fe,0x00000007,0x0004003b, + 0x0000002d,0x0000030d,0x00000007,0x0004003b,0x00000013,0x0000030e,0x00000007,0x0004003d, + 0x0000000d,0x000002dd,0x00000064,0x0008004f,0x00000022,0x000002de,0x000002dd,0x000002dd, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x000002dc,0x000002de,0x0004003d,0x0000000d, + 0x000002e0,0x00000065,0x0008004f,0x00000022,0x000002e1,0x000002e0,0x000002e0,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x000002df,0x000002e1,0x0004003d,0x00000006,0x000002e3, + 0x00000066,0x0003003e,0x000002e2,0x000002e3,0x00070039,0x00000022,0x000002e4,0x00000061, + 0x000002dc,0x000002df,0x000002e2,0x0003003e,0x000002db,0x000002e4,0x00050041,0x00000013, + 0x000002e6,0x00000064,0x000000a7,0x0004003d,0x00000008,0x000002e7,0x000002e6,0x00050041, + 0x00000013,0x000002e8,0x00000065,0x000000a7,0x0004003d,0x00000008,0x000002e9,0x000002e8, + 0x00050085,0x00000008,0x000002ea,0x000002e7,0x000002e9,0x0003003e,0x000002e5,0x000002ea, + 0x00050041,0x00000013,0x000002ec,0x00000064,0x000000a7,0x0004003d,0x00000008,0x000002ed, + 0x000002ec,0x0004003d,0x00000008,0x000002ee,0x000002e5,0x00050083,0x00000008,0x000002ef, + 0x000002ed,0x000002ee,0x00050041,0x00000013,0x000002f0,0x00000065,0x000000a7,0x0004003d, + 0x00000008,0x000002f1,0x000002f0,0x0004003d,0x00000008,0x000002f2,0x000002e5,0x00050083, + 0x00000008,0x000002f3,0x000002f1,0x000002f2,0x0004003d,0x00000008,0x000002f5,0x000002e5, + 0x0003003e,0x000002f4,0x000002f5,0x0003003e,0x000002f6,0x000002ef,0x0003003e,0x000002f7, + 0x000002f3,0x00070039,0x00000022,0x000002f8,0x00000027,0x000002f4,0x000002f6,0x000002f7, + 0x0003003e,0x000002eb,0x000002f8,0x0004003d,0x00000022,0x000002fa,0x000002db,0x0003003e, + 0x000002f9,0x000002fa,0x0004003d,0x0000000d,0x000002fc,0x00000064,0x0008004f,0x00000022, + 0x000002fd,0x000002fc,0x000002fc,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002fb, + 0x000002fd,0x0004003d,0x0000000d,0x000002ff,0x00000065,0x0008004f,0x00000022,0x00000300, + 0x000002ff,0x000002ff,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002fe,0x00000300, + 0x00070039,0x00000033,0x00000301,0x00000038,0x000002f9,0x000002fb,0x000002fe,0x0004003d, + 0x00000022,0x00000302,0x000002eb,0x00050091,0x00000022,0x00000303,0x00000301,0x00000302, + 0x00050041,0x00000013,0x00000304,0x00000065,0x000000a7,0x0004003d,0x00000008,0x00000305, + 0x00000304,0x00050041,0x00000013,0x00000306,0x00000064,0x000000a7,0x0004003d,0x00000008, + 0x00000307,0x00000306,0x00050083,0x00000008,0x00000308,0x000000c4,0x00000307,0x00050085, + 0x00000008,0x00000309,0x00000305,0x00000308,0x00050041,0x00000013,0x0000030a,0x00000064, + 0x000000a7,0x0004003d,0x00000008,0x0000030b,0x0000030a,0x00050081,0x00000008,0x0000030c, + 0x00000309,0x0000030b,0x0003003e,0x0000030d,0x00000303,0x0003003e,0x0000030e,0x0000030c, + 0x00060039,0x0000000d,0x0000030f,0x00000031,0x0000030d,0x0000030e,0x000200fe,0x0000030f, + 0x00010038,0x00050036,0x0000000d,0x0000006a,0x00000000,0x0000000f,0x00030037,0x0000000e, + 0x00000069,0x000200f8,0x0000006b,0x0004003b,0x0000000e,0x00000317,0x00000007,0x0004003b, + 0x00000013,0x00000322,0x00000007,0x0004003b,0x00000013,0x00000326,0x00000007,0x0004003b, + 0x00000013,0x00000332,0x00000007,0x0004003b,0x00000013,0x00000336,0x00000007,0x0004003b, + 0x00000013,0x00000339,0x00000007,0x0004003b,0x00000013,0x00000348,0x00000007,0x0004003b, + 0x00000013,0x0000035c,0x00000007,0x0004003b,0x0000000e,0x00000361,0x00000007,0x0004003b, + 0x00000013,0x0000036b,0x00000007,0x00050041,0x00000013,0x00000312,0x00000069,0x000000a7, + 0x0004003d,0x00000008,0x00000313,0x00000312,0x000500be,0x000000bb,0x00000314,0x00000313, + 0x000000bc,0x000300f7,0x00000316,0x00000000,0x000400fa,0x00000314,0x00000315,0x0000031b, + 0x000200f8,0x00000315,0x0004003d,0x0000000d,0x00000318,0x00000069,0x0003003e,0x00000317, + 0x00000318,0x00050039,0x0000000d,0x00000319,0x00000011,0x00000317,0x000200fe,0x00000319, + 0x000200f8,0x0000031b,0x00050041,0x00000013,0x0000031c,0x00000069,0x000000a7,0x0004003d, + 0x00000008,0x0000031d,0x0000031c,0x000500ba,0x000000bb,0x0000031f,0x0000031d,0x0000031e, + 0x000300f7,0x00000321,0x00000000,0x000400fa,0x0000031f,0x00000320,0x0000035b,0x000200f8, + 0x00000320,0x00050041,0x00000013,0x00000323,0x00000069,0x0000008f,0x0004003d,0x00000008, + 0x00000324,0x00000323,0x000500ba,0x000000bb,0x00000325,0x00000324,0x000000bc,0x000300f7, + 0x00000328,0x00000000,0x000400fa,0x00000325,0x00000327,0x0000032b,0x000200f8,0x00000327, + 0x00050041,0x00000013,0x00000329,0x00000069,0x00000081,0x0004003d,0x00000008,0x0000032a, + 0x00000329,0x0003003e,0x00000326,0x0000032a,0x000200f9,0x00000328,0x000200f8,0x0000032b, + 0x0004003d,0x0000000d,0x0000032c,0x00000069,0x0007004f,0x0000001c,0x0000032d,0x0000032c, + 0x0000032c,0x00000000,0x00000001,0x0006000c,0x00000008,0x0000032e,0x00000001,0x00000042, + 0x0000032d,0x0003003e,0x00000326,0x0000032e,0x000200f9,0x00000328,0x000200f8,0x00000328, + 0x0004003d,0x00000008,0x0000032f,0x00000326,0x0003003e,0x00000322,0x0000032f,0x0004003d, + 0x00000008,0x00000330,0x00000322,0x0008000c,0x00000008,0x00000331,0x00000001,0x0000002b, + 0x00000330,0x000000bc,0x000000c4,0x0003003e,0x00000322,0x00000331,0x00050041,0x00000013, + 0x00000333,0x00000069,0x0000008f,0x0004003d,0x00000008,0x00000334,0x00000333,0x0006000c, + 0x00000008,0x00000335,0x00000001,0x00000004,0x00000334,0x0003003e,0x00000332,0x00000335, + 0x0004003d,0x00000008,0x00000337,0x00000332,0x000500ba,0x000000bb,0x00000338,0x00000337, + 0x000000c4,0x000300f7,0x0000033b,0x00000000,0x000400fa,0x00000338,0x0000033a,0x00000341, + 0x000200f8,0x0000033a,0x0004003d,0x00000008,0x0000033d,0x00000322,0x00050085,0x00000008, + 0x0000033e,0x0000033c,0x0000033d,0x00050081,0x00000008,0x00000340,0x0000033e,0x0000033f, + 0x0003003e,0x00000339,0x00000340,0x000200f9,0x0000033b,0x000200f8,0x00000341,0x0004003d, + 0x00000008,0x00000343,0x00000322,0x00050085,0x00000008,0x00000344,0x00000342,0x00000343, + 0x0004003d,0x00000008,0x00000345,0x00000332,0x00050081,0x00000008,0x00000346,0x00000344, + 0x00000345,0x0003003e,0x00000339,0x00000346,0x000200f9,0x0000033b,0x000200f8,0x0000033b, + 0x0004003d,0x00000008,0x00000347,0x00000339,0x0003003e,0x00000336,0x00000347,0x00050041, + 0x00000013,0x00000349,0x00000069,0x000000a7,0x0004003d,0x00000008,0x0000034a,0x00000349, + 0x0004007f,0x00000008,0x0000034b,0x0000034a,0x0003003e,0x00000348,0x0000034b,0x0004003d, + 0x0000034c,0x0000034f,0x0000034e,0x0004003d,0x00000350,0x00000353,0x00000352,0x00050056, + 0x00000354,0x00000355,0x0000034f,0x00000353,0x0004003d,0x00000008,0x00000356,0x00000336, + 0x0004003d,0x00000008,0x00000357,0x00000348,0x00050050,0x0000001c,0x00000358,0x00000356, + 0x00000357,0x00070058,0x0000000d,0x00000359,0x00000355,0x00000358,0x00000002,0x000000bc, + 0x000200fe,0x00000359,0x000200f8,0x0000035b,0x00050041,0x00000013,0x0000035d,0x00000069, + 0x000000a7,0x0004003d,0x00000008,0x0000035e,0x0000035d,0x0004007f,0x00000008,0x0000035f, + 0x0000035e,0x00050083,0x00000008,0x00000360,0x0000035f,0x000001c0,0x0003003e,0x0000035c, + 0x00000360,0x0004003d,0x0000034c,0x00000363,0x00000362,0x0004003d,0x00000350,0x00000365, + 0x00000364,0x00050056,0x00000354,0x00000366,0x00000363,0x00000365,0x0004003d,0x0000000d, + 0x00000367,0x00000069,0x0007004f,0x0000001c,0x00000368,0x00000367,0x00000367,0x00000000, + 0x00000001,0x0004003d,0x00000008,0x00000369,0x0000035c,0x00070058,0x0000000d,0x0000036a, + 0x00000366,0x00000368,0x00000002,0x00000369,0x0003003e,0x00000361,0x0000036a,0x00050041, + 0x00000013,0x0000036c,0x00000069,0x0000008f,0x0004003d,0x00000008,0x0000036d,0x0000036c, + 0x0003003e,0x0000036b,0x0000036d,0x0004003d,0x00000008,0x0000036e,0x0000036b,0x00050041, + 0x00000013,0x0000036f,0x00000361,0x000000a7,0x0004003d,0x00000008,0x00000370,0x0000036f, + 0x00050085,0x00000008,0x00000371,0x00000370,0x0000036e,0x00050041,0x00000013,0x00000372, + 0x00000361,0x000000a7,0x0003003e,0x00000372,0x00000371,0x0004003d,0x0000000d,0x00000373, + 0x00000361,0x000200fe,0x00000373,0x000200f8,0x00000321,0x000100ff,0x000200f8,0x00000316, + 0x000100ff,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.vert.h b/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.vert.h new file mode 100644 index 00000000..555c708c --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_interior_triangles.vert.h @@ -0,0 +1,434 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_interior_triangles_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x000001e4,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000e000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x000000bf,0x000000c7,0x000000ca, + 0x000000dc,0x00000107,0x00000117,0x00000138,0x00000149,0x000001d5,0x00030003,0x00000002, + 0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65, + 0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47, + 0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576, + 0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669, + 0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x746e695f, + 0x5f6f745f,0x666c6168,0x3b316928,0x00000000,0x00030005,0x0000000a,0x00000078,0x00070005, + 0x00000013,0x656b616d,0x6f6c665f,0x78327461,0x66762832,0x00003b34,0x00030005,0x00000012, + 0x00000078,0x00080005,0x0000001a,0x625f6469,0x5f737469,0x665f6f74,0x75283631,0x31753b31, + 0x0000003b,0x00040005,0x00000018,0x69426469,0x00007374,0x00070005,0x00000019,0x68746170, + 0x72474449,0x6c756e61,0x74697261,0x00000079,0x000e0005,0x00000022,0x646e6966,0x696c635f, + 0x65725f70,0x635f7463,0x7265766f,0x5f656761,0x74736964,0x65636e61,0x666d2873,0x763b3232, + 0x763b3266,0x003b3266,0x00080005,0x0000001f,0x70696c63,0x74636552,0x65766e49,0x4d657372, + 0x69727461,0x00000078,0x00090005,0x00000020,0x70696c63,0x74636552,0x65766e49,0x54657372, + 0x736e6172,0x6574616c,0x00000000,0x00060005,0x00000021,0x65786970,0x736f506c,0x6f697469, + 0x0000006e,0x000d0005,0x0000002b,0x61706e75,0x695f6b63,0x7265746e,0x5f726f69,0x61697274, + 0x656c676e,0x7265765f,0x28786574,0x3b336676,0x663b3175,0x00003b31,0x00060005,0x00000028, + 0x61697274,0x656c676e,0x74726556,0x00007865,0x00050005,0x00000029,0x5074756f,0x49687461, + 0x00000044,0x00070005,0x0000002a,0x5774756f,0x69646e69,0x6557676e,0x74686769,0x00000000, + 0x00060005,0x00000056,0x70696c63,0x74636552,0x69574141,0x00687464,0x00030005,0x0000006c, + 0x00000072,0x00060005,0x00000070,0x70696c63,0x74636552,0x726f6f43,0x00000064,0x00030005, + 0x00000093,0x0000004d,0x00050005,0x00000096,0x68746150,0x66667542,0x00007265,0x00050006, + 0x00000096,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000098,0x5058455f,0x4554524f, + 0x61705f44,0x75426874,0x72656666,0x00000000,0x00040005,0x000000a0,0x61726170,0x0000006d, + 0x00050005,0x000000a3,0x68746170,0x61746144,0x00000000,0x00050005,0x000000a9,0x6e617274, + 0x74616c73,0x00000065,0x00040005,0x000000b3,0x61726170,0x0000006d,0x00050005,0x000000bd, + 0x7265765f,0x49786574,0x00000044,0x00060005,0x000000bf,0x565f6c67,0x65747265,0x646e4978, + 0x00007865,0x00050005,0x000000c1,0x736e695f,0x636e6174,0x00444965,0x00070005,0x000000c3, + 0x756f6873,0x6944646c,0x72616373,0x72655664,0x00786574,0x00060005,0x000000c5,0x74726576, + 0x6f507865,0x69746973,0x00006e6f,0x00090005,0x000000c7,0x5058455f,0x4554524f,0x5f615f44, + 0x61697274,0x656c676e,0x74726556,0x00007865,0x00040005,0x000000c8,0x68746170,0x00004449, + 0x00060005,0x000000ca,0x69775f76,0x6e69646e,0x69655767,0x00746867,0x00040005,0x000000cb, + 0x61726170,0x0000006d,0x00040005,0x000000cd,0x61726170,0x0000006d,0x00040005,0x000000ce, + 0x61726170,0x0000006d,0x00050005,0x000000d3,0x6e696170,0x74614474,0x00000061,0x00050005, + 0x000000d5,0x6e696150,0x66754274,0x00726566,0x00050006,0x000000d5,0x00000000,0x6c61765f, + 0x00736575,0x00080005,0x000000d7,0x5058455f,0x4554524f,0x61705f44,0x42746e69,0x65666675, + 0x00000072,0x00050005,0x000000dc,0x61705f76,0x44496874,0x00000000,0x00080005,0x000000de, + 0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x000000de, + 0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006, + 0x000000de,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x000b0006,0x000000de,0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372, + 0x70776569,0x5874726f,0x00000000,0x000b0006,0x000000de,0x00000003,0x646e6572,0x61547265, + 0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x000000de, + 0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x000000de, + 0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x000000de, + 0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006,0x000000de,0x00000007, + 0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006,0x000000de,0x00000008, + 0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006, + 0x000000de,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000, + 0x00080006,0x000000de,0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079, + 0x00080006,0x000000de,0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575, + 0x00050005,0x000000e0,0x66696e75,0x736d726f,0x00000000,0x00040005,0x000000e2,0x61726170, + 0x0000006d,0x00040005,0x000000e4,0x61726170,0x0000006d,0x00050005,0x000000f2,0x6e696170, + 0x70795474,0x00000065,0x00060005,0x000000f7,0x616e456b,0x43656c62,0x7070696c,0x00676e69, + 0x00050005,0x000000fa,0x70696c63,0x69424449,0x00007374,0x00050005,0x00000107,0x6c635f76, + 0x44497069,0x00000000,0x00040005,0x00000108,0x61726170,0x0000006d,0x00040005,0x0000010a, + 0x61726170,0x0000006d,0x00080005,0x00000114,0x616e456b,0x41656c62,0x6e617664,0x42646563, + 0x646e656c,0x00000000,0x00050005,0x00000117,0x6c625f76,0x4d646e65,0x0065646f,0x00050005, + 0x0000011e,0x67617266,0x726f6f43,0x00000064,0x00060005,0x00000120,0x616e456b,0x43656c62, + 0x5270696c,0x00746365,0x00080005,0x00000123,0x70696c63,0x74636552,0x65766e49,0x4d657372, + 0x69727461,0x00000078,0x00060005,0x00000125,0x6e696150,0x78754174,0x66667542,0x00007265, + 0x00050006,0x00000125,0x00000000,0x6c61765f,0x00736575,0x00090005,0x00000127,0x5058455f, + 0x4554524f,0x61705f44,0x41746e69,0x75427875,0x72656666,0x00000000,0x00040005,0x0000012b, + 0x61726170,0x0000006d,0x00090005,0x00000130,0x70696c63,0x74636552,0x65766e49,0x54657372, + 0x736e6172,0x6574616c,0x00000000,0x00050005,0x00000138,0x6c635f76,0x65527069,0x00007463, + 0x00040005,0x00000139,0x61726170,0x0000006d,0x00040005,0x0000013b,0x61726170,0x0000006d, + 0x00040005,0x0000013e,0x61726170,0x0000006d,0x00040005,0x00000145,0x6f6c6f63,0x00000072, + 0x00040005,0x00000149,0x61705f76,0x00746e69,0x00050005,0x00000151,0x6574756f,0x696c4372, + 0x00444970,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005,0x00000156,0x61726170, + 0x0000006d,0x00050005,0x0000015d,0x6e696170,0x74614d74,0x00786972,0x00040005,0x00000160, + 0x61726170,0x0000006d,0x00060005,0x00000164,0x6e696170,0x61725474,0x616c736e,0x00006574, + 0x00050005,0x0000016a,0x6e696170,0x6f6f4374,0x00006472,0x00060005,0x0000017d,0x64617267, + 0x746e6569,0x6e617053,0x00000000,0x00040005,0x0000019e,0x6361706f,0x00797469,0x00030005, + 0x000001a2,0x00646f6c,0x00030005,0x000001b2,0x00736f70,0x00060005,0x000001d3,0x505f6c67, + 0x65567265,0x78657472,0x00000000,0x00060006,0x000001d3,0x00000000,0x505f6c67,0x7469736f, + 0x006e6f69,0x00070006,0x000001d3,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000, + 0x00070006,0x000001d3,0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006, + 0x000001d3,0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x000001d5, + 0x00000000,0x00060005,0x000001d8,0x616e456b,0x45656c62,0x4f6e6576,0x00006464,0x00080005, + 0x000001d9,0x616e456b,0x4e656c62,0x65747365,0x696c4364,0x6e697070,0x00000067,0x00080005, + 0x000001da,0x616e456b,0x48656c62,0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00060005, + 0x000001db,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c,0x00090005,0x000001dc,0x726f426b, + 0x65776f72,0x766f4364,0x67617265,0x65725065,0x73736170,0x00000000,0x00090005,0x000001df, + 0x5058455f,0x4554524f,0x65745f44,0x65567373,0x78657472,0x74786554,0x00657275,0x00060005, + 0x000001e1,0x746e6f43,0x4272756f,0x65666675,0x00000072,0x00050006,0x000001e1,0x00000000, + 0x6c61765f,0x00736575,0x00080005,0x000001e3,0x5058455f,0x4554524f,0x6f635f44,0x756f746e, + 0x66754272,0x00726566,0x00030047,0x0000000b,0x00000000,0x00030047,0x0000001a,0x00000000, + 0x00030047,0x0000002a,0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047,0x00000030, + 0x00000000,0x00030047,0x00000052,0x00000000,0x00030047,0x00000053,0x00000000,0x00040047, + 0x00000095,0x00000006,0x00000010,0x00040048,0x00000096,0x00000000,0x00000018,0x00050048, + 0x00000096,0x00000000,0x00000023,0x00000000,0x00030047,0x00000096,0x00000003,0x00040047, + 0x00000098,0x00000022,0x00000000,0x00040047,0x00000098,0x00000021,0x00000003,0x00030047, + 0x000000b4,0x00000000,0x00040047,0x000000bf,0x0000000b,0x0000002a,0x00040047,0x000000c7, + 0x0000001e,0x00000000,0x00030047,0x000000ca,0x00000000,0x00030047,0x000000ca,0x0000000e, + 0x00040047,0x000000ca,0x0000001e,0x00000001,0x00030047,0x000000ce,0x00000000,0x00040047, + 0x000000d4,0x00000006,0x00000008,0x00040048,0x000000d5,0x00000000,0x00000018,0x00050048, + 0x000000d5,0x00000000,0x00000023,0x00000000,0x00030047,0x000000d5,0x00000003,0x00040047, + 0x000000d7,0x00000022,0x00000000,0x00040047,0x000000d7,0x00000021,0x00000004,0x00030047, + 0x000000dc,0x00000000,0x00030047,0x000000dc,0x0000000e,0x00040047,0x000000dc,0x0000001e, + 0x00000003,0x00050048,0x000000de,0x00000000,0x00000023,0x00000000,0x00050048,0x000000de, + 0x00000001,0x00000023,0x00000004,0x00050048,0x000000de,0x00000002,0x00000023,0x00000008, + 0x00050048,0x000000de,0x00000003,0x00000023,0x0000000c,0x00050048,0x000000de,0x00000004, + 0x00000023,0x00000010,0x00050048,0x000000de,0x00000005,0x00000023,0x00000014,0x00050048, + 0x000000de,0x00000006,0x00000023,0x00000018,0x00050048,0x000000de,0x00000007,0x00000023, + 0x0000001c,0x00050048,0x000000de,0x00000008,0x00000023,0x00000020,0x00050048,0x000000de, + 0x00000009,0x00000023,0x00000030,0x00050048,0x000000de,0x0000000a,0x00000023,0x00000034, + 0x00050048,0x000000de,0x0000000b,0x00000023,0x00000038,0x00030047,0x000000de,0x00000002, + 0x00040047,0x000000e0,0x00000022,0x00000000,0x00040047,0x000000e0,0x00000021,0x00000007, + 0x00030047,0x000000e8,0x00000000,0x00030047,0x000000f0,0x00000000,0x00030047,0x000000f1, + 0x00000000,0x00040047,0x000000f7,0x00000001,0x00000000,0x00030047,0x00000107,0x00000000, + 0x00030047,0x00000107,0x0000000e,0x00040047,0x00000107,0x0000001e,0x00000004,0x00030047, + 0x0000010d,0x00000000,0x00030047,0x00000112,0x00000000,0x00030047,0x00000113,0x00000000, + 0x00040047,0x00000114,0x00000001,0x00000002,0x00030047,0x00000117,0x00000000,0x00030047, + 0x00000117,0x0000000e,0x00040047,0x00000117,0x0000001e,0x00000006,0x00040047,0x00000120, + 0x00000001,0x00000001,0x00040047,0x00000124,0x00000006,0x00000010,0x00040048,0x00000125, + 0x00000000,0x00000018,0x00050048,0x00000125,0x00000000,0x00000023,0x00000000,0x00030047, + 0x00000125,0x00000003,0x00040047,0x00000127,0x00000022,0x00000000,0x00040047,0x00000127, + 0x00000021,0x00000005,0x00040047,0x00000138,0x0000001e,0x00000005,0x00030047,0x00000145, + 0x00000000,0x00040047,0x00000149,0x0000001e,0x00000000,0x00030047,0x0000014a,0x00000000, + 0x00030047,0x00000151,0x00000000,0x00030047,0x00000159,0x00000000,0x00030047,0x0000015a, + 0x00000000,0x00030047,0x0000015b,0x00000000,0x00050048,0x000001d3,0x00000000,0x0000000b, + 0x00000000,0x00050048,0x000001d3,0x00000001,0x0000000b,0x00000001,0x00050048,0x000001d3, + 0x00000002,0x0000000b,0x00000003,0x00050048,0x000001d3,0x00000003,0x0000000b,0x00000004, + 0x00030047,0x000001d3,0x00000002,0x00040047,0x000001d8,0x00000001,0x00000003,0x00040047, + 0x000001d9,0x00000001,0x00000004,0x00040047,0x000001da,0x00000001,0x00000005,0x00040047, + 0x000001db,0x00000001,0x00000006,0x00040047,0x000001dc,0x00000001,0x00000007,0x00040047, + 0x000001df,0x00000022,0x00000000,0x00040047,0x000001df,0x00000021,0x00000000,0x00040047, + 0x000001e0,0x00000006,0x00000010,0x00040048,0x000001e1,0x00000000,0x00000018,0x00050048, + 0x000001e1,0x00000000,0x00000023,0x00000000,0x00030047,0x000001e1,0x00000003,0x00040047, + 0x000001e3,0x00000022,0x00000000,0x00040047,0x000001e3,0x00000021,0x00000006,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d,0x00000008,0x00000004,0x00040020, + 0x0000000e,0x00000007,0x0000000d,0x00040017,0x0000000f,0x00000008,0x00000002,0x00040018, + 0x00000010,0x0000000f,0x00000002,0x00040021,0x00000011,0x00000010,0x0000000e,0x00040015, + 0x00000015,0x00000020,0x00000000,0x00040020,0x00000016,0x00000007,0x00000015,0x00050021, + 0x00000017,0x00000008,0x00000016,0x00000016,0x00040020,0x0000001c,0x00000007,0x00000010, + 0x00040020,0x0000001d,0x00000007,0x0000000f,0x00060021,0x0000001e,0x0000000d,0x0000001c, + 0x0000001d,0x0000001d,0x00040017,0x00000024,0x00000008,0x00000003,0x00040020,0x00000025, + 0x00000007,0x00000024,0x00040020,0x00000026,0x00000007,0x00000008,0x00060021,0x00000027, + 0x0000000f,0x00000025,0x00000016,0x00000026,0x0004002b,0x00000008,0x00000037,0x3f800000, + 0x0004002b,0x00000008,0x00000038,0x00000000,0x0004002b,0x00000015,0x00000043,0x00000000, + 0x00020014,0x00000044,0x0004002b,0x00000015,0x0000004b,0x000003ff,0x0004002b,0x00000006, + 0x00000057,0x00000000,0x0004002b,0x00000006,0x0000005b,0x00000001,0x0004002b,0x00000015, + 0x00000065,0x00000001,0x0004002b,0x00000008,0x00000084,0x3f000000,0x0004002b,0x00000015, + 0x0000008d,0x00000002,0x0004002b,0x00000015,0x00000091,0x0000ffff,0x00040017,0x00000094, + 0x00000015,0x00000004,0x0003001d,0x00000095,0x00000094,0x0003001e,0x00000096,0x00000095, + 0x00040020,0x00000097,0x00000002,0x00000096,0x0004003b,0x00000097,0x00000098,0x00000002, + 0x0004002b,0x00000015,0x0000009a,0x00000004,0x00040020,0x0000009c,0x00000002,0x00000094, + 0x00040020,0x000000a2,0x00000007,0x00000094,0x00040017,0x000000aa,0x00000015,0x00000002, + 0x0004002b,0x00000006,0x000000b1,0x00000010,0x00040020,0x000000be,0x00000001,0x00000006, + 0x0004003b,0x000000be,0x000000bf,0x00000001,0x00040020,0x000000c2,0x00000007,0x00000044, + 0x0003002a,0x00000044,0x000000c4,0x00040020,0x000000c6,0x00000001,0x00000024,0x0004003b, + 0x000000c6,0x000000c7,0x00000001,0x00040020,0x000000c9,0x00000003,0x00000008,0x0004003b, + 0x000000c9,0x000000ca,0x00000003,0x00040020,0x000000d2,0x00000007,0x000000aa,0x0003001d, + 0x000000d4,0x000000aa,0x0003001e,0x000000d5,0x000000d4,0x00040020,0x000000d6,0x00000002, + 0x000000d5,0x0004003b,0x000000d6,0x000000d7,0x00000002,0x00040020,0x000000d9,0x00000002, + 0x000000aa,0x0004003b,0x000000c9,0x000000dc,0x00000003,0x00040017,0x000000dd,0x00000006, + 0x00000004,0x000e001e,0x000000de,0x00000008,0x00000008,0x00000008,0x00000008,0x00000015, + 0x00000015,0x00000015,0x00000015,0x000000dd,0x00000015,0x00000015,0x00000008,0x00040020, + 0x000000df,0x00000002,0x000000de,0x0004003b,0x000000df,0x000000e0,0x00000002,0x0004002b, + 0x00000006,0x000000e1,0x0000000a,0x00040020,0x000000e5,0x00000002,0x00000015,0x0004002b, + 0x00000015,0x000000eb,0x00000200,0x0004002b,0x00000015,0x000000f5,0x0000000f,0x00030031, + 0x00000044,0x000000f7,0x0004003b,0x000000c9,0x00000107,0x00000003,0x00030031,0x00000044, + 0x00000114,0x0004003b,0x000000c9,0x00000117,0x00000003,0x0004002b,0x00000006,0x0000011a, + 0x00000004,0x00030031,0x00000044,0x00000120,0x0003001d,0x00000124,0x0000000d,0x0003001e, + 0x00000125,0x00000124,0x00040020,0x00000126,0x00000002,0x00000125,0x0004003b,0x00000126, + 0x00000127,0x00000002,0x00040020,0x0000012c,0x00000002,0x0000000d,0x0004002b,0x00000015, + 0x00000133,0x00000003,0x00040020,0x00000137,0x00000003,0x0000000d,0x0004003b,0x00000137, + 0x00000138,0x00000003,0x0004003b,0x00000137,0x00000149,0x00000003,0x0004002b,0x00000008, + 0x00000181,0x3f666666,0x0004002b,0x00000008,0x00000185,0x40000000,0x0004002b,0x00000008, + 0x000001aa,0xc0000000,0x0004002b,0x00000006,0x000001b5,0x00000002,0x00040020,0x000001b6, + 0x00000002,0x00000008,0x0004002b,0x00000006,0x000001bd,0x00000003,0x0004002b,0x00000006, + 0x000001c8,0x0000000b,0x0004001c,0x000001d2,0x00000008,0x00000065,0x0006001e,0x000001d3, + 0x0000000d,0x00000008,0x000001d2,0x000001d2,0x00040020,0x000001d4,0x00000003,0x000001d3, + 0x0004003b,0x000001d4,0x000001d5,0x00000003,0x00030031,0x00000044,0x000001d8,0x00030031, + 0x00000044,0x000001d9,0x00030031,0x00000044,0x000001da,0x00030031,0x00000044,0x000001db, + 0x00030031,0x00000044,0x000001dc,0x00090019,0x000001dd,0x00000015,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001de,0x00000000,0x000001dd, + 0x0004003b,0x000001de,0x000001df,0x00000000,0x0003001d,0x000001e0,0x00000094,0x0003001e, + 0x000001e1,0x000001e0,0x00040020,0x000001e2,0x00000002,0x000001e1,0x0004003b,0x000001e2, + 0x000001e3,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000007,0x000000bd,0x00000007,0x0004003b,0x00000007,0x000000c1, + 0x00000007,0x0004003b,0x000000c2,0x000000c3,0x00000007,0x0004003b,0x0000001d,0x000000c5, + 0x00000007,0x0004003b,0x00000016,0x000000c8,0x00000007,0x0004003b,0x00000025,0x000000cb, + 0x00000007,0x0004003b,0x00000016,0x000000cd,0x00000007,0x0004003b,0x00000026,0x000000ce, + 0x00000007,0x0004003b,0x000000d2,0x000000d3,0x00000007,0x0004003b,0x00000016,0x000000e2, + 0x00000007,0x0004003b,0x00000016,0x000000e4,0x00000007,0x0004003b,0x00000016,0x000000f2, + 0x00000007,0x0004003b,0x00000016,0x000000fa,0x00000007,0x0004003b,0x00000016,0x000000fd, + 0x00000007,0x0004003b,0x00000016,0x00000108,0x00000007,0x0004003b,0x00000016,0x0000010a, + 0x00000007,0x0004003b,0x0000001d,0x0000011e,0x00000007,0x0004003b,0x0000001c,0x00000123, + 0x00000007,0x0004003b,0x0000000e,0x0000012b,0x00000007,0x0004003b,0x0000000e,0x00000130, + 0x00000007,0x0004003b,0x0000001c,0x00000139,0x00000007,0x0004003b,0x0000001d,0x0000013b, + 0x00000007,0x0004003b,0x0000001d,0x0000013e,0x00000007,0x0004003b,0x0000000e,0x00000145, + 0x00000007,0x0004003b,0x00000026,0x00000151,0x00000007,0x0004003b,0x00000016,0x00000155, + 0x00000007,0x0004003b,0x00000016,0x00000156,0x00000007,0x0004003b,0x0000001c,0x0000015d, + 0x00000007,0x0004003b,0x0000000e,0x00000160,0x00000007,0x0004003b,0x0000000e,0x00000164, + 0x00000007,0x0004003b,0x0000001d,0x0000016a,0x00000007,0x0004003b,0x00000026,0x0000017d, + 0x00000007,0x0004003b,0x00000026,0x0000019e,0x00000007,0x0004003b,0x00000026,0x000001a2, + 0x00000007,0x0004003b,0x0000000e,0x000001b2,0x00000007,0x0004003d,0x00000006,0x000000c0, + 0x000000bf,0x0003003e,0x000000bd,0x000000c0,0x0003003e,0x000000c1,0x00000057,0x0003003e, + 0x000000c3,0x000000c4,0x0004003d,0x00000024,0x000000cc,0x000000c7,0x0003003e,0x000000cb, + 0x000000cc,0x00070039,0x0000000f,0x000000cf,0x0000002b,0x000000cb,0x000000cd,0x000000ce, + 0x0004003d,0x00000015,0x000000d0,0x000000cd,0x0003003e,0x000000c8,0x000000d0,0x0004003d, + 0x00000008,0x000000d1,0x000000ce,0x0003003e,0x000000ca,0x000000d1,0x0003003e,0x000000c5, + 0x000000cf,0x0004003d,0x00000015,0x000000d8,0x000000c8,0x00060041,0x000000d9,0x000000da, + 0x000000d7,0x00000057,0x000000d8,0x0004003d,0x000000aa,0x000000db,0x000000da,0x0003003e, + 0x000000d3,0x000000db,0x0004003d,0x00000015,0x000000e3,0x000000c8,0x0003003e,0x000000e2, + 0x000000e3,0x00050041,0x000000e5,0x000000e6,0x000000e0,0x000000e1,0x0004003d,0x00000015, + 0x000000e7,0x000000e6,0x0003003e,0x000000e4,0x000000e7,0x00060039,0x00000008,0x000000e8, + 0x0000001a,0x000000e2,0x000000e4,0x0003003e,0x000000dc,0x000000e8,0x00050041,0x00000016, + 0x000000e9,0x000000d3,0x00000043,0x0004003d,0x00000015,0x000000ea,0x000000e9,0x000500c7, + 0x00000015,0x000000ec,0x000000ea,0x000000eb,0x000500ab,0x00000044,0x000000ed,0x000000ec, + 0x00000043,0x000300f7,0x000000ef,0x00000000,0x000400fa,0x000000ed,0x000000ee,0x000000ef, + 0x000200f8,0x000000ee,0x0004003d,0x00000008,0x000000f0,0x000000dc,0x0004007f,0x00000008, + 0x000000f1,0x000000f0,0x0003003e,0x000000dc,0x000000f1,0x000200f9,0x000000ef,0x000200f8, + 0x000000ef,0x00050041,0x00000016,0x000000f3,0x000000d3,0x00000043,0x0004003d,0x00000015, + 0x000000f4,0x000000f3,0x000500c7,0x00000015,0x000000f6,0x000000f4,0x000000f5,0x0003003e, + 0x000000f2,0x000000f6,0x000300f7,0x000000f9,0x00000000,0x000400fa,0x000000f7,0x000000f8, + 0x000000f9,0x000200f8,0x000000f8,0x0004003d,0x00000015,0x000000fb,0x000000f2,0x000500aa, + 0x00000044,0x000000fc,0x000000fb,0x00000043,0x000300f7,0x000000ff,0x00000000,0x000400fa, + 0x000000fc,0x000000fe,0x00000102,0x000200f8,0x000000fe,0x00050041,0x00000016,0x00000100, + 0x000000d3,0x00000065,0x0004003d,0x00000015,0x00000101,0x00000100,0x0003003e,0x000000fd, + 0x00000101,0x000200f9,0x000000ff,0x000200f8,0x00000102,0x00050041,0x00000016,0x00000103, + 0x000000d3,0x00000043,0x0004003d,0x00000015,0x00000104,0x00000103,0x0003003e,0x000000fd, + 0x00000104,0x000200f9,0x000000ff,0x000200f8,0x000000ff,0x0004003d,0x00000015,0x00000105, + 0x000000fd,0x000500c2,0x00000015,0x00000106,0x00000105,0x000000b1,0x0003003e,0x000000fa, + 0x00000106,0x0004003d,0x00000015,0x00000109,0x000000fa,0x0003003e,0x00000108,0x00000109, + 0x00050041,0x000000e5,0x0000010b,0x000000e0,0x000000e1,0x0004003d,0x00000015,0x0000010c, + 0x0000010b,0x0003003e,0x0000010a,0x0000010c,0x00060039,0x00000008,0x0000010d,0x0000001a, + 0x00000108,0x0000010a,0x0003003e,0x00000107,0x0000010d,0x0004003d,0x00000015,0x0000010e, + 0x000000f2,0x000500aa,0x00000044,0x0000010f,0x0000010e,0x00000043,0x000300f7,0x00000111, + 0x00000000,0x000400fa,0x0000010f,0x00000110,0x00000111,0x000200f8,0x00000110,0x0004003d, + 0x00000008,0x00000112,0x00000107,0x0004007f,0x00000008,0x00000113,0x00000112,0x0003003e, + 0x00000107,0x00000113,0x000200f9,0x00000111,0x000200f8,0x00000111,0x000200f9,0x000000f9, + 0x000200f8,0x000000f9,0x000300f7,0x00000116,0x00000000,0x000400fa,0x00000114,0x00000115, + 0x00000116,0x000200f8,0x00000115,0x00050041,0x00000016,0x00000118,0x000000d3,0x00000043, + 0x0004003d,0x00000015,0x00000119,0x00000118,0x000500c2,0x00000015,0x0000011b,0x00000119, + 0x0000011a,0x000500c7,0x00000015,0x0000011c,0x0000011b,0x000000f5,0x00040070,0x00000008, + 0x0000011d,0x0000011c,0x0003003e,0x00000117,0x0000011d,0x000200f9,0x00000116,0x000200f8, + 0x00000116,0x0004003d,0x0000000f,0x0000011f,0x000000c5,0x0003003e,0x0000011e,0x0000011f, + 0x000300f7,0x00000122,0x00000000,0x000400fa,0x00000120,0x00000121,0x00000122,0x000200f8, + 0x00000121,0x0004003d,0x00000015,0x00000128,0x000000c8,0x00050084,0x00000015,0x00000129, + 0x00000128,0x0000009a,0x00050080,0x00000015,0x0000012a,0x00000129,0x0000008d,0x00060041, + 0x0000012c,0x0000012d,0x00000127,0x00000057,0x0000012a,0x0004003d,0x0000000d,0x0000012e, + 0x0000012d,0x0003003e,0x0000012b,0x0000012e,0x00050039,0x00000010,0x0000012f,0x00000013, + 0x0000012b,0x0003003e,0x00000123,0x0000012f,0x0004003d,0x00000015,0x00000131,0x000000c8, + 0x00050084,0x00000015,0x00000132,0x00000131,0x0000009a,0x00050080,0x00000015,0x00000134, + 0x00000132,0x00000133,0x00060041,0x0000012c,0x00000135,0x00000127,0x00000057,0x00000134, + 0x0004003d,0x0000000d,0x00000136,0x00000135,0x0003003e,0x00000130,0x00000136,0x0004003d, + 0x00000010,0x0000013a,0x00000123,0x0003003e,0x00000139,0x0000013a,0x0004003d,0x0000000d, + 0x0000013c,0x00000130,0x0007004f,0x0000000f,0x0000013d,0x0000013c,0x0000013c,0x00000000, + 0x00000001,0x0003003e,0x0000013b,0x0000013d,0x0004003d,0x0000000f,0x0000013f,0x0000011e, + 0x0003003e,0x0000013e,0x0000013f,0x00070039,0x0000000d,0x00000140,0x00000022,0x00000139, + 0x0000013b,0x0000013e,0x0003003e,0x00000138,0x00000140,0x000200f9,0x00000122,0x000200f8, + 0x00000122,0x0004003d,0x00000015,0x00000141,0x000000f2,0x000500aa,0x00000044,0x00000142, + 0x00000141,0x00000065,0x000300f7,0x00000144,0x00000000,0x000400fa,0x00000142,0x00000143, + 0x0000014b,0x000200f8,0x00000143,0x00050041,0x00000016,0x00000146,0x000000d3,0x00000065, + 0x0004003d,0x00000015,0x00000147,0x00000146,0x0006000c,0x0000000d,0x00000148,0x00000001, + 0x00000040,0x00000147,0x0003003e,0x00000145,0x00000148,0x0004003d,0x0000000d,0x0000014a, + 0x00000145,0x0003003e,0x00000149,0x0000014a,0x000200f9,0x00000144,0x000200f8,0x0000014b, + 0x0004003d,0x00000015,0x0000014c,0x000000f2,0x000500aa,0x00000044,0x0000014d,0x0000014c, + 0x00000043,0x000500a7,0x00000044,0x0000014e,0x000000f7,0x0000014d,0x000300f7,0x00000150, + 0x00000000,0x000400fa,0x0000014e,0x0000014f,0x0000015c,0x000200f8,0x0000014f,0x00050041, + 0x00000016,0x00000152,0x000000d3,0x00000043,0x0004003d,0x00000015,0x00000153,0x00000152, + 0x000500c2,0x00000015,0x00000154,0x00000153,0x000000b1,0x0003003e,0x00000155,0x00000154, + 0x00050041,0x000000e5,0x00000157,0x000000e0,0x000000e1,0x0004003d,0x00000015,0x00000158, + 0x00000157,0x0003003e,0x00000156,0x00000158,0x00060039,0x00000008,0x00000159,0x0000001a, + 0x00000155,0x00000156,0x0003003e,0x00000151,0x00000159,0x0004003d,0x00000008,0x0000015a, + 0x00000151,0x00070050,0x0000000d,0x0000015b,0x0000015a,0x00000038,0x00000038,0x00000038, + 0x0003003e,0x00000149,0x0000015b,0x000200f9,0x00000150,0x000200f8,0x0000015c,0x0004003d, + 0x00000015,0x0000015e,0x000000c8,0x00050084,0x00000015,0x0000015f,0x0000015e,0x0000009a, + 0x00060041,0x0000012c,0x00000161,0x00000127,0x00000057,0x0000015f,0x0004003d,0x0000000d, + 0x00000162,0x00000161,0x0003003e,0x00000160,0x00000162,0x00050039,0x00000010,0x00000163, + 0x00000013,0x00000160,0x0003003e,0x0000015d,0x00000163,0x0004003d,0x00000015,0x00000165, + 0x000000c8,0x00050084,0x00000015,0x00000166,0x00000165,0x0000009a,0x00050080,0x00000015, + 0x00000167,0x00000166,0x00000065,0x00060041,0x0000012c,0x00000168,0x00000127,0x00000057, + 0x00000167,0x0004003d,0x0000000d,0x00000169,0x00000168,0x0003003e,0x00000164,0x00000169, + 0x0004003d,0x00000010,0x0000016b,0x0000015d,0x0004003d,0x0000000f,0x0000016c,0x0000011e, + 0x00050091,0x0000000f,0x0000016d,0x0000016b,0x0000016c,0x0004003d,0x0000000d,0x0000016e, + 0x00000164,0x0007004f,0x0000000f,0x0000016f,0x0000016e,0x0000016e,0x00000000,0x00000001, + 0x00050081,0x0000000f,0x00000170,0x0000016d,0x0000016f,0x0003003e,0x0000016a,0x00000170, + 0x0004003d,0x00000015,0x00000171,0x000000f2,0x000500aa,0x00000044,0x00000172,0x00000171, + 0x0000008d,0x0004003d,0x00000015,0x00000173,0x000000f2,0x000500aa,0x00000044,0x00000174, + 0x00000173,0x00000133,0x000500a6,0x00000044,0x00000175,0x00000172,0x00000174,0x000300f7, + 0x00000177,0x00000000,0x000400fa,0x00000175,0x00000176,0x0000019d,0x000200f8,0x00000176, + 0x00050041,0x00000016,0x00000178,0x000000d3,0x00000065,0x0004003d,0x00000015,0x00000179, + 0x00000178,0x0004007c,0x00000008,0x0000017a,0x00000179,0x0004007f,0x00000008,0x0000017b, + 0x0000017a,0x00050041,0x000000c9,0x0000017c,0x00000149,0x00000133,0x0003003e,0x0000017c, + 0x0000017b,0x00050041,0x00000026,0x0000017e,0x00000164,0x0000008d,0x0004003d,0x00000008, + 0x0000017f,0x0000017e,0x0003003e,0x0000017d,0x0000017f,0x0004003d,0x00000008,0x00000180, + 0x0000017d,0x000500ba,0x00000044,0x00000182,0x00000180,0x00000181,0x000300f7,0x00000184, + 0x00000000,0x000400fa,0x00000182,0x00000183,0x00000187,0x000200f8,0x00000183,0x00050041, + 0x000000c9,0x00000186,0x00000149,0x0000008d,0x0003003e,0x00000186,0x00000185,0x000200f9, + 0x00000184,0x000200f8,0x00000187,0x00050041,0x00000026,0x00000188,0x00000164,0x00000133, + 0x0004003d,0x00000008,0x00000189,0x00000188,0x00050041,0x000000c9,0x0000018a,0x00000149, + 0x0000008d,0x0003003e,0x0000018a,0x00000189,0x000200f9,0x00000184,0x000200f8,0x00000184, + 0x0004003d,0x00000015,0x0000018b,0x000000f2,0x000500aa,0x00000044,0x0000018c,0x0000018b, + 0x0000008d,0x000300f7,0x0000018e,0x00000000,0x000400fa,0x0000018c,0x0000018d,0x00000193, + 0x000200f8,0x0000018d,0x00050041,0x000000c9,0x0000018f,0x00000149,0x00000065,0x0003003e, + 0x0000018f,0x00000038,0x00050041,0x00000026,0x00000190,0x0000016a,0x00000043,0x0004003d, + 0x00000008,0x00000191,0x00000190,0x00050041,0x000000c9,0x00000192,0x00000149,0x00000043, + 0x0003003e,0x00000192,0x00000191,0x000200f9,0x0000018e,0x000200f8,0x00000193,0x00050041, + 0x000000c9,0x00000194,0x00000149,0x0000008d,0x0004003d,0x00000008,0x00000195,0x00000194, + 0x0004007f,0x00000008,0x00000196,0x00000195,0x00050041,0x000000c9,0x00000197,0x00000149, + 0x0000008d,0x0003003e,0x00000197,0x00000196,0x0004003d,0x0000000f,0x00000198,0x0000016a, + 0x00050041,0x000000c9,0x00000199,0x00000149,0x00000043,0x00050051,0x00000008,0x0000019a, + 0x00000198,0x00000000,0x0003003e,0x00000199,0x0000019a,0x00050041,0x000000c9,0x0000019b, + 0x00000149,0x00000065,0x00050051,0x00000008,0x0000019c,0x00000198,0x00000001,0x0003003e, + 0x0000019b,0x0000019c,0x000200f9,0x0000018e,0x000200f8,0x0000018e,0x000200f9,0x00000177, + 0x000200f8,0x0000019d,0x00050041,0x00000016,0x0000019f,0x000000d3,0x00000065,0x0004003d, + 0x00000015,0x000001a0,0x0000019f,0x0004007c,0x00000008,0x000001a1,0x000001a0,0x0003003e, + 0x0000019e,0x000001a1,0x00050041,0x00000026,0x000001a3,0x00000164,0x0000008d,0x0004003d, + 0x00000008,0x000001a4,0x000001a3,0x0003003e,0x000001a2,0x000001a4,0x00050041,0x00000026, + 0x000001a5,0x0000016a,0x00000043,0x0004003d,0x00000008,0x000001a6,0x000001a5,0x00050041, + 0x00000026,0x000001a7,0x0000016a,0x00000065,0x0004003d,0x00000008,0x000001a8,0x000001a7, + 0x0004003d,0x00000008,0x000001a9,0x0000019e,0x0004003d,0x00000008,0x000001ab,0x000001a2, + 0x00050083,0x00000008,0x000001ac,0x000001aa,0x000001ab,0x00070050,0x0000000d,0x000001ad, + 0x000001a6,0x000001a8,0x000001a9,0x000001ac,0x0003003e,0x00000149,0x000001ad,0x000200f9, + 0x00000177,0x000200f8,0x00000177,0x000200f9,0x00000150,0x000200f8,0x00000150,0x000200f9, + 0x00000144,0x000200f8,0x00000144,0x0004003d,0x00000044,0x000001ae,0x000000c3,0x000400a8, + 0x00000044,0x000001af,0x000001ae,0x000300f7,0x000001b1,0x00000000,0x000400fa,0x000001af, + 0x000001b0,0x000001c7,0x000200f8,0x000001b0,0x00050041,0x00000026,0x000001b3,0x000000c5, + 0x00000043,0x0004003d,0x00000008,0x000001b4,0x000001b3,0x00050041,0x000001b6,0x000001b7, + 0x000000e0,0x000001b5,0x0004003d,0x00000008,0x000001b8,0x000001b7,0x00050085,0x00000008, + 0x000001b9,0x000001b4,0x000001b8,0x00050083,0x00000008,0x000001ba,0x000001b9,0x00000037, + 0x00050041,0x00000026,0x000001bb,0x000000c5,0x00000065,0x0004003d,0x00000008,0x000001bc, + 0x000001bb,0x00050041,0x000001b6,0x000001be,0x000000e0,0x000001bd,0x0004003d,0x00000008, + 0x000001bf,0x000001be,0x0004007f,0x00000008,0x000001c0,0x000001bf,0x00050085,0x00000008, + 0x000001c1,0x000001bc,0x000001c0,0x00050041,0x000001b6,0x000001c2,0x000000e0,0x000001bd, + 0x0004003d,0x00000008,0x000001c3,0x000001c2,0x0006000c,0x00000008,0x000001c4,0x00000001, + 0x00000006,0x000001c3,0x00050081,0x00000008,0x000001c5,0x000001c1,0x000001c4,0x00070050, + 0x0000000d,0x000001c6,0x000001ba,0x000001c5,0x00000038,0x00000037,0x0003003e,0x000001b2, + 0x000001c6,0x000200f9,0x000001b1,0x000200f8,0x000001c7,0x00050041,0x000001b6,0x000001c9, + 0x000000e0,0x000001c8,0x0004003d,0x00000008,0x000001ca,0x000001c9,0x00050041,0x000001b6, + 0x000001cb,0x000000e0,0x000001c8,0x0004003d,0x00000008,0x000001cc,0x000001cb,0x00050041, + 0x000001b6,0x000001cd,0x000000e0,0x000001c8,0x0004003d,0x00000008,0x000001ce,0x000001cd, + 0x00050041,0x000001b6,0x000001cf,0x000000e0,0x000001c8,0x0004003d,0x00000008,0x000001d0, + 0x000001cf,0x00070050,0x0000000d,0x000001d1,0x000001ca,0x000001cc,0x000001ce,0x000001d0, + 0x0003003e,0x000001b2,0x000001d1,0x000200f9,0x000001b1,0x000200f8,0x000001b1,0x0004003d, + 0x0000000d,0x000001d6,0x000001b2,0x00050041,0x00000137,0x000001d7,0x000001d5,0x00000057, + 0x0003003e,0x000001d7,0x000001d6,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b, + 0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003b, + 0x00000026,0x0000002f,0x00000007,0x0004003d,0x00000006,0x0000002d,0x0000000a,0x0004006f, + 0x00000008,0x0000002e,0x0000002d,0x0003003e,0x0000002f,0x0000002e,0x0004003d,0x00000008, + 0x00000030,0x0000002f,0x000200fe,0x00000030,0x00010038,0x00050036,0x00000010,0x00000013, + 0x00000000,0x00000011,0x00030037,0x0000000e,0x00000012,0x000200f8,0x00000014,0x0004003d, + 0x0000000d,0x00000033,0x00000012,0x0007004f,0x0000000f,0x00000034,0x00000033,0x00000033, + 0x00000000,0x00000001,0x0004003d,0x0000000d,0x00000035,0x00000012,0x0007004f,0x0000000f, + 0x00000036,0x00000035,0x00000035,0x00000002,0x00000003,0x00050051,0x00000008,0x00000039, + 0x00000034,0x00000000,0x00050051,0x00000008,0x0000003a,0x00000034,0x00000001,0x00050051, + 0x00000008,0x0000003b,0x00000036,0x00000000,0x00050051,0x00000008,0x0000003c,0x00000036, + 0x00000001,0x00050050,0x0000000f,0x0000003d,0x00000039,0x0000003a,0x00050050,0x0000000f, + 0x0000003e,0x0000003b,0x0000003c,0x00050050,0x00000010,0x0000003f,0x0000003d,0x0000003e, + 0x000200fe,0x0000003f,0x00010038,0x00050036,0x00000008,0x0000001a,0x00000000,0x00000017, + 0x00030037,0x00000016,0x00000018,0x00030037,0x00000016,0x00000019,0x000200f8,0x0000001b, + 0x0004003b,0x00000026,0x00000046,0x00000007,0x0004003b,0x00000026,0x00000052,0x00000007, + 0x0004003d,0x00000015,0x00000042,0x00000018,0x000500aa,0x00000044,0x00000045,0x00000042, + 0x00000043,0x000300f7,0x00000048,0x00000000,0x000400fa,0x00000045,0x00000047,0x00000049, + 0x000200f8,0x00000047,0x0003003e,0x00000046,0x00000038,0x000200f9,0x00000048,0x000200f8, + 0x00000049,0x0004003d,0x00000015,0x0000004a,0x00000018,0x00050080,0x00000015,0x0000004c, + 0x0000004a,0x0000004b,0x0004003d,0x00000015,0x0000004d,0x00000019,0x00050084,0x00000015, + 0x0000004e,0x0000004c,0x0000004d,0x0006000c,0x0000000f,0x0000004f,0x00000001,0x0000003e, + 0x0000004e,0x00050051,0x00000008,0x00000050,0x0000004f,0x00000000,0x0003003e,0x00000046, + 0x00000050,0x000200f9,0x00000048,0x000200f8,0x00000048,0x0004003d,0x00000008,0x00000051, + 0x00000046,0x0003003e,0x00000052,0x00000051,0x0004003d,0x00000008,0x00000053,0x00000052, + 0x000200fe,0x00000053,0x00010038,0x00050036,0x0000000d,0x00000022,0x00000000,0x0000001e, + 0x00030037,0x0000001c,0x0000001f,0x00030037,0x0000001d,0x00000020,0x00030037,0x0000001d, + 0x00000021,0x000200f8,0x00000023,0x0004003b,0x0000001d,0x00000056,0x00000007,0x0004003b, + 0x0000001d,0x0000006c,0x00000007,0x0004003b,0x0000001d,0x00000070,0x00000007,0x00050041, + 0x0000001d,0x00000058,0x0000001f,0x00000057,0x0004003d,0x0000000f,0x00000059,0x00000058, + 0x0006000c,0x0000000f,0x0000005a,0x00000001,0x00000004,0x00000059,0x00050041,0x0000001d, + 0x0000005c,0x0000001f,0x0000005b,0x0004003d,0x0000000f,0x0000005d,0x0000005c,0x0006000c, + 0x0000000f,0x0000005e,0x00000001,0x00000004,0x0000005d,0x00050081,0x0000000f,0x0000005f, + 0x0000005a,0x0000005e,0x0003003e,0x00000056,0x0000005f,0x00050041,0x00000026,0x00000060, + 0x00000056,0x00000043,0x0004003d,0x00000008,0x00000061,0x00000060,0x000500b7,0x00000044, + 0x00000062,0x00000061,0x00000038,0x000300f7,0x00000064,0x00000000,0x000400fa,0x00000062, + 0x00000063,0x00000064,0x000200f8,0x00000063,0x00050041,0x00000026,0x00000066,0x00000056, + 0x00000065,0x0004003d,0x00000008,0x00000067,0x00000066,0x000500b7,0x00000044,0x00000068, + 0x00000067,0x00000038,0x000200f9,0x00000064,0x000200f8,0x00000064,0x000700f5,0x00000044, + 0x00000069,0x00000062,0x00000023,0x00000068,0x00000063,0x000300f7,0x0000006b,0x00000000, + 0x000400fa,0x00000069,0x0000006a,0x00000088,0x000200f8,0x0000006a,0x0004003d,0x0000000f, + 0x0000006d,0x00000056,0x00050050,0x0000000f,0x0000006e,0x00000037,0x00000037,0x00050088, + 0x0000000f,0x0000006f,0x0000006e,0x0000006d,0x0003003e,0x0000006c,0x0000006f,0x0004003d, + 0x00000010,0x00000071,0x0000001f,0x0004003d,0x0000000f,0x00000072,0x00000021,0x00050091, + 0x0000000f,0x00000073,0x00000071,0x00000072,0x0004003d,0x0000000f,0x00000074,0x00000020, + 0x00050081,0x0000000f,0x00000075,0x00000073,0x00000074,0x0003003e,0x00000070,0x00000075, + 0x0004003d,0x0000000f,0x00000076,0x00000070,0x0004003d,0x0000000f,0x00000077,0x00000070, + 0x0004007f,0x0000000f,0x00000078,0x00000077,0x00050051,0x00000008,0x00000079,0x00000076, + 0x00000000,0x00050051,0x00000008,0x0000007a,0x00000076,0x00000001,0x00050051,0x00000008, + 0x0000007b,0x00000078,0x00000000,0x00050051,0x00000008,0x0000007c,0x00000078,0x00000001, + 0x00070050,0x0000000d,0x0000007d,0x00000079,0x0000007a,0x0000007b,0x0000007c,0x0004003d, + 0x0000000f,0x0000007e,0x0000006c,0x0009004f,0x0000000d,0x0000007f,0x0000007e,0x0000007e, + 0x00000000,0x00000001,0x00000000,0x00000001,0x00050085,0x0000000d,0x00000080,0x0000007d, + 0x0000007f,0x0004003d,0x0000000f,0x00000081,0x0000006c,0x0009004f,0x0000000d,0x00000082, + 0x00000081,0x00000081,0x00000000,0x00000001,0x00000000,0x00000001,0x00050081,0x0000000d, + 0x00000083,0x00000080,0x00000082,0x00070050,0x0000000d,0x00000085,0x00000084,0x00000084, + 0x00000084,0x00000084,0x00050081,0x0000000d,0x00000086,0x00000083,0x00000085,0x000200fe, + 0x00000086,0x000200f8,0x00000088,0x0004003d,0x0000000f,0x00000089,0x00000020,0x0009004f, + 0x0000000d,0x0000008a,0x00000089,0x00000089,0x00000000,0x00000001,0x00000000,0x00000001, + 0x000200fe,0x0000008a,0x000200f8,0x0000006b,0x000100ff,0x00010038,0x00050036,0x0000000f, + 0x0000002b,0x00000000,0x00000027,0x00030037,0x00000025,0x00000028,0x00030037,0x00000016, + 0x00000029,0x00030037,0x00000026,0x0000002a,0x000200f8,0x0000002c,0x0004003b,0x0000001c, + 0x00000093,0x00000007,0x0004003b,0x0000000e,0x000000a0,0x00000007,0x0004003b,0x000000a2, + 0x000000a3,0x00000007,0x0004003b,0x0000001d,0x000000a9,0x00000007,0x0004003b,0x00000007, + 0x000000b3,0x00000007,0x00050041,0x00000026,0x0000008e,0x00000028,0x0000008d,0x0004003d, + 0x00000008,0x0000008f,0x0000008e,0x0004007c,0x00000015,0x00000090,0x0000008f,0x000500c7, + 0x00000015,0x00000092,0x00000090,0x00000091,0x0003003e,0x00000029,0x00000092,0x0004003d, + 0x00000015,0x00000099,0x00000029,0x00050084,0x00000015,0x0000009b,0x00000099,0x0000009a, + 0x00060041,0x0000009c,0x0000009d,0x00000098,0x00000057,0x0000009b,0x0004003d,0x00000094, + 0x0000009e,0x0000009d,0x0004007c,0x0000000d,0x0000009f,0x0000009e,0x0003003e,0x000000a0, + 0x0000009f,0x00050039,0x00000010,0x000000a1,0x00000013,0x000000a0,0x0003003e,0x00000093, + 0x000000a1,0x0004003d,0x00000015,0x000000a4,0x00000029,0x00050084,0x00000015,0x000000a5, + 0x000000a4,0x0000009a,0x00050080,0x00000015,0x000000a6,0x000000a5,0x00000065,0x00060041, + 0x0000009c,0x000000a7,0x00000098,0x00000057,0x000000a6,0x0004003d,0x00000094,0x000000a8, + 0x000000a7,0x0003003e,0x000000a3,0x000000a8,0x0004003d,0x00000094,0x000000ab,0x000000a3, + 0x0007004f,0x000000aa,0x000000ac,0x000000ab,0x000000ab,0x00000000,0x00000001,0x0004007c, + 0x0000000f,0x000000ad,0x000000ac,0x0003003e,0x000000a9,0x000000ad,0x00050041,0x00000026, + 0x000000ae,0x00000028,0x0000008d,0x0004003d,0x00000008,0x000000af,0x000000ae,0x0004007c, + 0x00000006,0x000000b0,0x000000af,0x000500c3,0x00000006,0x000000b2,0x000000b0,0x000000b1, + 0x0003003e,0x000000b3,0x000000b2,0x00050039,0x00000008,0x000000b4,0x0000000b,0x000000b3, + 0x0003003e,0x0000002a,0x000000b4,0x0004003d,0x00000010,0x000000b5,0x00000093,0x0004003d, + 0x00000024,0x000000b6,0x00000028,0x0007004f,0x0000000f,0x000000b7,0x000000b6,0x000000b6, + 0x00000000,0x00000001,0x00050091,0x0000000f,0x000000b8,0x000000b5,0x000000b7,0x0004003d, + 0x0000000f,0x000000b9,0x000000a9,0x00050081,0x0000000f,0x000000ba,0x000000b8,0x000000b9, + 0x000200fe,0x000000ba,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_path.frag.h b/defold-rive/include/generated/shaders/spirv/draw_path.frag.h new file mode 100644 index 00000000..cbd7f099 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_path.frag.h @@ -0,0 +1,1159 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_path_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x000004ac,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000028,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000f000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000039a, + 0x000003a7,0x000003ba,0x000003e8,0x000003f6,0x00000417,0x0000042a,0x00000432,0x00000457, + 0x0000047c,0x00030010,0x00000004,0x00000007,0x00030003,0x00000002,0x000001cc,0x000a0004, + 0x415f4c47,0x735f4252,0x65646168,0x74735f72,0x6761726f,0x75625f65,0x72656666,0x6a626f5f, + 0x00746365,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00080005,0x0000000b,0x74736163,0x6e69755f,0x6f745f74,0x6c61685f, + 0x31752866,0x0000003b,0x00030005,0x0000000a,0x00000078,0x00090005,0x00000011,0x74736163, + 0x6f6c665f,0x5f347461,0x685f6f74,0x34666c61,0x34667628,0x0000003b,0x00040005,0x00000010, + 0x777a7978,0x00000000,0x00080005,0x00000016,0x74736163,0x6c61685f,0x6f745f66,0x6873755f, + 0x2874726f,0x003b3166,0x00030005,0x00000015,0x00000078,0x00060005,0x0000001a,0x656b616d, + 0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000019,0x00000078,0x00070005,0x00000020, + 0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x0000001e,0x00000078, + 0x00030005,0x0000001f,0x00000079,0x00080005,0x00000027,0x656b616d,0x6c61685f,0x66283366, + 0x31663b31,0x3b31663b,0x00000000,0x00030005,0x00000024,0x00000078,0x00030005,0x00000025, + 0x00000079,0x00030005,0x00000026,0x0000007a,0x00060005,0x0000002b,0x656b616d,0x6c61685f, + 0x66283366,0x00003b31,0x00030005,0x0000002a,0x00000078,0x00080005,0x00000032,0x656b616d, + 0x6c61685f,0x66283466,0x31663b31,0x3b31663b,0x003b3166,0x00030005,0x0000002e,0x00000078, + 0x00030005,0x0000002f,0x00000079,0x00030005,0x00000030,0x0000007a,0x00030005,0x00000031, + 0x00000077,0x00070005,0x00000038,0x656b616d,0x6c61685f,0x76283466,0x663b3366,0x00003b31, + 0x00030005,0x00000036,0x007a7978,0x00030005,0x00000037,0x00000077,0x00090005,0x0000003f, + 0x656b616d,0x6c61685f,0x33783366,0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005, + 0x0000003c,0x00000061,0x00030005,0x0000003d,0x00000062,0x00030005,0x0000003e,0x00000063, + 0x00060005,0x00000042,0x756d6e75,0x7069746c,0x7628796c,0x003b3466,0x00040005,0x00000041, + 0x6f6c6f63,0x00000072,0x00060005,0x00000046,0x5f6e696d,0x756c6176,0x66762865,0x00003b34, + 0x00040005,0x00000045,0x346e696d,0x00000000,0x00050005,0x0000004a,0x766e696d,0x66762833, + 0x00003b33,0x00030005,0x00000049,0x00000063,0x00050005,0x0000004d,0x7678616d,0x66762833, + 0x00003b33,0x00030005,0x0000004c,0x00000063,0x00050005,0x00000050,0x766d756c,0x66762833, + 0x00003b33,0x00030005,0x0000004f,0x00000063,0x00050005,0x00000053,0x76746173,0x66762833, + 0x00003b33,0x00030005,0x00000052,0x00000063,0x00060005,0x00000057,0x70696c63,0x6c6f635f, + 0x7628726f,0x003b3366,0x00040005,0x00000056,0x6f6c6f63,0x00000072,0x00070005,0x0000005c, + 0x5f746573,0x286d756c,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005a,0x73616263, + 0x00000065,0x00040005,0x0000005b,0x6d756c63,0x00000000,0x00090005,0x00000062,0x5f746573, + 0x5f6d756c,0x28746173,0x3b336676,0x3b336676,0x3b336676,0x00000000,0x00040005,0x0000005f, + 0x73616263,0x00000065,0x00040005,0x00000060,0x74617363,0x00000000,0x00040005,0x00000061, + 0x6d756c63,0x00000000,0x000b0005,0x00000068,0x61766461,0x6465636e,0x656c625f,0x635f646e, + 0x6666656f,0x66762873,0x66763b33,0x31753b33,0x0000003b,0x00030005,0x00000065,0x00637273, + 0x00030005,0x00000066,0x00747364,0x00040005,0x00000067,0x65646f6d,0x00000000,0x00090005, + 0x0000006e,0x61766461,0x6465636e,0x656c625f,0x7628646e,0x763b3466,0x753b3466,0x00003b31, + 0x00030005,0x0000006b,0x00637273,0x00030005,0x0000006c,0x00747364,0x00040005,0x0000006d, + 0x65646f6d,0x00000000,0x00080005,0x00000071,0x646e6966,0x6961705f,0x635f746e,0x726f6c6f, + 0x34667628,0x0000003b,0x00040005,0x00000070,0x6e696170,0x00000074,0x00030005,0x00000086, + 0x00746572,0x00030005,0x00000090,0x00746572,0x00030005,0x0000009b,0x00746572,0x00030005, + 0x000000a5,0x00746572,0x00030005,0x000000b2,0x00746572,0x00030005,0x000000c0,0x00746572, + 0x00040005,0x000000ea,0x61726170,0x0000006d,0x00040005,0x000000ef,0x61726170,0x0000006d, + 0x00040005,0x000000fd,0x326e696d,0x00000000,0x00040005,0x00000103,0x316e696d,0x00000000, + 0x00040005,0x00000124,0x61726170,0x0000006d,0x00040005,0x00000125,0x61726170,0x0000006d, + 0x00040005,0x00000126,0x61726170,0x0000006d,0x00040005,0x0000012b,0x61726170,0x0000006d, + 0x00040005,0x0000012e,0x61726170,0x0000006d,0x00030005,0x00000134,0x006d756c,0x00040005, + 0x00000135,0x61726170,0x0000006d,0x00040005,0x00000138,0x636e696d,0x00006c6f,0x00040005, + 0x00000139,0x61726170,0x0000006d,0x00040005,0x0000013c,0x6378616d,0x00006c6f,0x00040005, + 0x0000013d,0x61726170,0x0000006d,0x00040005,0x00000168,0x7361626c,0x00000065,0x00040005, + 0x00000169,0x61726170,0x0000006d,0x00040005,0x0000016c,0x6d756c6c,0x00000000,0x00040005, + 0x0000016d,0x61726170,0x0000006d,0x00040005,0x00000170,0x6669646c,0x00000066,0x00040005, + 0x00000174,0x6f6c6f63,0x00000072,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005, + 0x0000017a,0x61726170,0x0000006d,0x00040005,0x0000017f,0x626e696d,0x00657361,0x00040005, + 0x00000180,0x61726170,0x0000006d,0x00040005,0x00000183,0x73616273,0x00000065,0x00040005, + 0x00000184,0x61726170,0x0000006d,0x00040005,0x00000187,0x74617373,0x00000000,0x00040005, + 0x00000188,0x61726170,0x0000006d,0x00040005,0x0000018f,0x6f6c6f63,0x00000072,0x00040005, + 0x0000019a,0x61726170,0x0000006d,0x00040005,0x0000019c,0x61726170,0x0000006d,0x00040005, + 0x0000019e,0x61726170,0x0000006d,0x00040005,0x000001b4,0x66656f63,0x00007366,0x00030005, + 0x000001c2,0x00000069,0x00040005,0x000001fb,0x61726170,0x0000006d,0x00040005,0x000001fe, + 0x61726170,0x0000006d,0x00040005,0x00000201,0x61726170,0x0000006d,0x00040005,0x0000020f, + 0x61726170,0x0000006d,0x00040005,0x00000212,0x61726170,0x0000006d,0x00030005,0x00000217, + 0x00000069,0x00030005,0x00000240,0x00000069,0x00080005,0x000002ad,0x616e456b,0x48656c62, + 0x6c424c53,0x4d646e65,0x7365646f,0x00000000,0x00040005,0x000002b1,0x61726170,0x0000006d, + 0x00040005,0x000002b3,0x61726170,0x0000006d,0x00040005,0x000002b6,0x61726170,0x0000006d, + 0x00040005,0x000002b8,0x61726170,0x0000006d,0x00040005,0x000002ba,0x61726170,0x0000006d, + 0x00040005,0x000002c1,0x61726170,0x0000006d,0x00040005,0x000002c3,0x61726170,0x0000006d, + 0x00040005,0x000002c6,0x61726170,0x0000006d,0x00040005,0x000002c8,0x61726170,0x0000006d, + 0x00040005,0x000002ca,0x61726170,0x0000006d,0x00040005,0x000002d1,0x61726170,0x0000006d, + 0x00040005,0x000002d3,0x61726170,0x0000006d,0x00040005,0x000002d6,0x61726170,0x0000006d, + 0x00040005,0x000002d8,0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d, + 0x00040005,0x000002e1,0x61726170,0x0000006d,0x00040005,0x000002e4,0x61726170,0x0000006d, + 0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005,0x000002ee,0x66656f63,0x00007366, + 0x00040005,0x000002ef,0x61726170,0x0000006d,0x00040005,0x000002f2,0x61726170,0x0000006d, + 0x00040005,0x000002f5,0x61726170,0x0000006d,0x00030005,0x000002f8,0x00616473,0x00030005, + 0x000002fe,0x00000070,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005,0x00000309, + 0x61726170,0x0000006d,0x00040005,0x0000030a,0x61726170,0x0000006d,0x00040005,0x0000030c, + 0x61726170,0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d,0x00040005,0x00000311, + 0x61726170,0x0000006d,0x00040005,0x00000320,0x61726170,0x0000006d,0x00040005,0x00000321, + 0x61726170,0x0000006d,0x00040005,0x0000032a,0x61726170,0x0000006d,0x00030005,0x00000335, + 0x00000074,0x00040005,0x00000345,0x6e617073,0x00000000,0x00030005,0x00000349,0x00000078, + 0x00030005,0x0000035b,0x00776f72,0x00080005,0x00000361,0x5058455f,0x4554524f,0x72675f44, + 0x65546461,0x72757478,0x00000065,0x00050005,0x00000365,0x64617267,0x706d6153,0x0072656c, + 0x00030005,0x0000036f,0x00646f6c,0x00040005,0x00000374,0x6f6c6f63,0x00000072,0x00080005, + 0x00000375,0x5058455f,0x4554524f,0x6d695f44,0x54656761,0x75747865,0x00006572,0x00060005, + 0x00000377,0x67616d69,0x6d615365,0x72656c70,0x00000000,0x00040005,0x0000037e,0x6361706f, + 0x00797469,0x00060005,0x00000389,0x65766f63,0x65676172,0x61746144,0x00000000,0x00080005, + 0x0000038c,0x5f6e695f,0x65766f63,0x65676172,0x6e756f43,0x66754274,0x00726566,0x00070005, + 0x00000394,0x65766f63,0x65676172,0x66667542,0x44497265,0x00000000,0x00060005,0x00000397, + 0x65766f63,0x65676172,0x6e756f43,0x00000074,0x00050005,0x0000039a,0x61705f76,0x44496874, + 0x00000000,0x00040005,0x000003a3,0x61726170,0x0000006d,0x00060005,0x000003a7,0x64655f76, + 0x69446567,0x6e617473,0x00006563,0x00070005,0x000003ba,0x65766f63,0x65676172,0x6e756f43, + 0x66754274,0x00726566,0x00040005,0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003bd, + 0x61726170,0x0000006d,0x00060005,0x000003c3,0x6f6c436b,0x69776b63,0x69466573,0x00006c6c, + 0x00050005,0x000003c6,0x65766f63,0x65676172,0x00000000,0x00040005,0x000003c8,0x61726170, + 0x0000006d,0x00040005,0x000003ca,0x61726170,0x0000006d,0x00060005,0x000003d0,0x616e456b, + 0x45656c62,0x4f6e6576,0x00006464,0x00040005,0x000003de,0x61726170,0x0000006d,0x00040005, + 0x000003e2,0x61726170,0x0000006d,0x00060005,0x000003e5,0x616e456b,0x43656c62,0x7070696c, + 0x00676e69,0x00050005,0x000003e8,0x6c635f76,0x44497069,0x00000000,0x00040005,0x000003ee, + 0x70696c63,0x00004449,0x00080005,0x000003f1,0x616e456b,0x4e656c62,0x65747365,0x696c4364, + 0x6e697070,0x00000067,0x00050005,0x000003f4,0x6574756f,0x696c4372,0x00444970,0x00040005, + 0x000003f6,0x61705f76,0x00746e69,0x00050005,0x000003fd,0x70696c63,0x61746144,0x00000000, + 0x00060005,0x000003fe,0x5f6e695f,0x70696c63,0x66667542,0x00007265,0x00060005,0x00000403, + 0x70696c63,0x746e6f43,0x49746e65,0x00000044,0x00070005,0x0000040b,0x6574756f,0x696c4372, + 0x766f4370,0x67617265,0x00000065,0x00070005,0x00000417,0x61726373,0x43686374,0x726f6c6f, + 0x66667542,0x00007265,0x00040005,0x00000418,0x61726170,0x0000006d,0x00040005,0x0000041a, + 0x61726170,0x0000006d,0x00040005,0x0000041b,0x61726170,0x0000006d,0x00040005,0x0000041c, + 0x61726170,0x0000006d,0x00080005,0x00000421,0x5f6e695f,0x61726373,0x43686374,0x726f6c6f, + 0x66667542,0x00007265,0x00050005,0x0000042a,0x70696c63,0x66667542,0x00007265,0x00040005, + 0x0000042b,0x61726170,0x0000006d,0x00040005,0x0000042d,0x61726170,0x0000006d,0x00050005, + 0x00000432,0x6f6c6f63,0x66754272,0x00726566,0x00060005,0x00000433,0x5f6e695f,0x6f6c6f63, + 0x66754272,0x00726566,0x00050005,0x0000043d,0x70696c63,0x61746144,0x00000000,0x00060005, + 0x00000442,0x70696c63,0x746e6f43,0x49746e65,0x00000044,0x00040005,0x00000450,0x61726170, + 0x0000006d,0x00060005,0x00000453,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00070005, + 0x00000456,0x70696c63,0x74636552,0x65766f43,0x65676172,0x00000000,0x00050005,0x00000457, + 0x6c635f76,0x65527069,0x00007463,0x00040005,0x00000458,0x61726170,0x0000006d,0x00040005, + 0x0000045b,0x61726170,0x0000006d,0x00040005,0x0000045e,0x61726170,0x0000006d,0x00040005, + 0x00000462,0x6f6c6f63,0x00000072,0x00040005,0x00000463,0x61726170,0x0000006d,0x00050005, + 0x00000470,0x43747364,0x726f6c6f,0x00000000,0x00080005,0x00000479,0x616e456b,0x41656c62, + 0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005,0x0000047c,0x6c625f76,0x4d646e65, + 0x0065646f,0x00040005,0x0000047e,0x61726170,0x0000006d,0x00040005,0x00000484,0x61726170, + 0x0000006d,0x00040005,0x00000487,0x61726170,0x0000006d,0x00040005,0x0000048a,0x61726170, + 0x0000006d,0x00040005,0x0000048c,0x61726170,0x0000006d,0x00040005,0x0000048d,0x61726170, + 0x0000006d,0x00090005,0x000004a7,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065, + 0x73736170,0x00000000,0x00080005,0x000004a9,0x5058455f,0x4554524f,0x6c465f44,0x55687375, + 0x6f66696e,0x00736d72,0x00090006,0x000004a9,0x00000000,0x64617267,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00090006,0x000004a9,0x00000001,0x73736574,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x000004a9,0x00000002,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006, + 0x000004a9,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00080006,0x000004a9,0x00000004,0x646e6572,0x61547265,0x74656772, + 0x74646957,0x00000068,0x00080006,0x000004a9,0x00000005,0x646e6572,0x61547265,0x74656772, + 0x67696548,0x00007468,0x00070006,0x000004a9,0x00000006,0x6f6c6f63,0x656c4372,0x61567261, + 0x0065756c,0x00080006,0x000004a9,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672, + 0x00006575,0x000a0006,0x000004a9,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055, + 0x6f426574,0x73646e75,0x00000000,0x00090006,0x000004a9,0x00000009,0x65766f63,0x65676172, + 0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x000004a9,0x0000000a,0x68746170, + 0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x000004a9,0x0000000b,0x74726576, + 0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x000004ab,0x66696e75,0x736d726f, + 0x00000000,0x00030047,0x0000000b,0x00000000,0x00030047,0x00000011,0x00000000,0x00030047, + 0x00000016,0x00000000,0x00030047,0x00000015,0x00000000,0x00030047,0x0000001a,0x00000000, + 0x00030047,0x00000019,0x00000000,0x00030047,0x00000020,0x00000000,0x00030047,0x0000001e, + 0x00000000,0x00030047,0x0000001f,0x00000000,0x00030047,0x00000027,0x00000000,0x00030047, + 0x00000024,0x00000000,0x00030047,0x00000025,0x00000000,0x00030047,0x00000026,0x00000000, + 0x00030047,0x0000002b,0x00000000,0x00030047,0x0000002a,0x00000000,0x00030047,0x00000032, + 0x00000000,0x00030047,0x0000002e,0x00000000,0x00030047,0x0000002f,0x00000000,0x00030047, + 0x00000030,0x00000000,0x00030047,0x00000031,0x00000000,0x00030047,0x00000038,0x00000000, + 0x00030047,0x00000036,0x00000000,0x00030047,0x00000037,0x00000000,0x00030047,0x0000003f, + 0x00000000,0x00030047,0x0000003c,0x00000000,0x00030047,0x0000003d,0x00000000,0x00030047, + 0x0000003e,0x00000000,0x00030047,0x00000042,0x00000000,0x00030047,0x00000041,0x00000000, + 0x00030047,0x00000046,0x00000000,0x00030047,0x00000045,0x00000000,0x00030047,0x0000004a, + 0x00000000,0x00030047,0x00000049,0x00000000,0x00030047,0x0000004d,0x00000000,0x00030047, + 0x0000004c,0x00000000,0x00030047,0x00000050,0x00000000,0x00030047,0x0000004f,0x00000000, + 0x00030047,0x00000053,0x00000000,0x00030047,0x00000052,0x00000000,0x00030047,0x00000057, + 0x00000000,0x00030047,0x00000056,0x00000000,0x00030047,0x0000005c,0x00000000,0x00030047, + 0x0000005a,0x00000000,0x00030047,0x0000005b,0x00000000,0x00030047,0x00000062,0x00000000, + 0x00030047,0x0000005f,0x00000000,0x00030047,0x00000060,0x00000000,0x00030047,0x00000061, + 0x00000000,0x00030047,0x00000068,0x00000000,0x00030047,0x00000065,0x00000000,0x00030047, + 0x00000066,0x00000000,0x00030047,0x00000067,0x00000000,0x00030047,0x0000006e,0x00000000, + 0x00030047,0x0000006b,0x00000000,0x00030047,0x0000006c,0x00000000,0x00030047,0x0000006d, + 0x00000000,0x00030047,0x00000071,0x00000000,0x00030047,0x00000075,0x00000000,0x00030047, + 0x00000076,0x00000000,0x00030047,0x0000007a,0x00000000,0x00030047,0x0000007b,0x00000000, + 0x00030047,0x0000007e,0x00000000,0x00030047,0x0000007f,0x00000000,0x00030047,0x00000082, + 0x00000000,0x00030047,0x00000086,0x00000000,0x00030047,0x00000087,0x00000000,0x00030047, + 0x0000008a,0x00000000,0x00030047,0x0000008d,0x00000000,0x00030047,0x00000090,0x00000000, + 0x00030047,0x00000091,0x00000000,0x00030047,0x00000093,0x00000000,0x00030047,0x00000095, + 0x00000000,0x00030047,0x00000098,0x00000000,0x00030047,0x0000009b,0x00000000,0x00030047, + 0x0000009c,0x00000000,0x00030047,0x0000009e,0x00000000,0x00030047,0x000000a0,0x00000000, + 0x00030047,0x000000a2,0x00000000,0x00030047,0x000000a5,0x00000000,0x00030047,0x000000a6, + 0x00000000,0x00030047,0x000000a8,0x00000000,0x00030047,0x000000aa,0x00000000,0x00030047, + 0x000000ac,0x00000000,0x00030047,0x000000af,0x00000000,0x00030047,0x000000b2,0x00000000, + 0x00030047,0x000000b3,0x00000000,0x00030047,0x000000ba,0x00000000,0x00030047,0x000000bc, + 0x00000000,0x00030047,0x000000c0,0x00000000,0x00030047,0x000000c3,0x00000000,0x00030047, + 0x000000c6,0x00000000,0x00030047,0x000000c9,0x00000000,0x00030047,0x000000cb,0x00000000, + 0x00030047,0x000000d1,0x00000000,0x00030047,0x000000d6,0x00000000,0x00030047,0x000000dd, + 0x00000000,0x00030047,0x000000de,0x00000000,0x00030047,0x000000df,0x00000000,0x00030047, + 0x000000e0,0x00000000,0x00030047,0x000000e1,0x00000000,0x00030047,0x000000e8,0x00000000, + 0x00030047,0x000000e9,0x00000000,0x00030047,0x000000ea,0x00000000,0x00030047,0x000000eb, + 0x00000000,0x00030047,0x000000ec,0x00000000,0x00030047,0x000000ed,0x00000000,0x00030047, + 0x000000ef,0x00000000,0x00030047,0x000000f0,0x00000000,0x00030047,0x000000f2,0x00000000, + 0x00030047,0x000000f3,0x00000000,0x00030047,0x000000fa,0x00000000,0x00030047,0x000000fd, + 0x00000000,0x00030047,0x000000fe,0x00000000,0x00030047,0x000000ff,0x00000000,0x00030047, + 0x00000100,0x00000000,0x00030047,0x00000101,0x00000000,0x00030047,0x00000102,0x00000000, + 0x00030047,0x00000103,0x00000000,0x00030047,0x00000105,0x00000000,0x00030047,0x00000107, + 0x00000000,0x00030047,0x00000108,0x00000000,0x00030047,0x00000109,0x00000000,0x00030047, + 0x0000010d,0x00000000,0x00030047,0x0000010f,0x00000000,0x00030047,0x00000110,0x00000000, + 0x00030047,0x00000112,0x00000000,0x00030047,0x00000113,0x00000000,0x00030047,0x00000117, + 0x00000000,0x00030047,0x00000119,0x00000000,0x00030047,0x0000011a,0x00000000,0x00030047, + 0x0000011c,0x00000000,0x00030047,0x0000011d,0x00000000,0x00030047,0x00000120,0x00000000, + 0x00030047,0x00000124,0x00000000,0x00030047,0x00000125,0x00000000,0x00030047,0x00000126, + 0x00000000,0x00030047,0x00000127,0x00000000,0x00030047,0x00000128,0x00000000,0x00030047, + 0x0000012b,0x00000000,0x00030047,0x0000012c,0x00000000,0x00030047,0x0000012d,0x00000000, + 0x00030047,0x0000012e,0x00000000,0x00030047,0x0000012f,0x00000000,0x00030047,0x00000130, + 0x00000000,0x00030047,0x00000131,0x00000000,0x00030047,0x00000134,0x00000000,0x00030047, + 0x00000135,0x00000000,0x00030047,0x00000136,0x00000000,0x00030047,0x00000137,0x00000000, + 0x00030047,0x00000138,0x00000000,0x00030047,0x00000139,0x00000000,0x00030047,0x0000013a, + 0x00000000,0x00030047,0x0000013b,0x00000000,0x00030047,0x0000013c,0x00000000,0x00030047, + 0x0000013d,0x00000000,0x00030047,0x0000013e,0x00000000,0x00030047,0x0000013f,0x00000000, + 0x00030047,0x00000140,0x00000000,0x00030047,0x00000144,0x00000000,0x00030047,0x00000145, + 0x00000000,0x00030047,0x00000146,0x00000000,0x00030047,0x00000147,0x00000000,0x00030047, + 0x00000148,0x00000000,0x00030047,0x00000149,0x00000000,0x00030047,0x0000014a,0x00000000, + 0x00030047,0x0000014b,0x00000000,0x00030047,0x0000014c,0x00000000,0x00030047,0x0000014d, + 0x00000000,0x00030047,0x0000014e,0x00000000,0x00030047,0x0000014f,0x00000000,0x00030047, + 0x00000150,0x00000000,0x00030047,0x00000151,0x00000000,0x00030047,0x00000152,0x00000000, + 0x00030047,0x00000156,0x00000000,0x00030047,0x00000157,0x00000000,0x00030047,0x00000158, + 0x00000000,0x00030047,0x00000159,0x00000000,0x00030047,0x0000015a,0x00000000,0x00030047, + 0x0000015b,0x00000000,0x00030047,0x0000015c,0x00000000,0x00030047,0x0000015d,0x00000000, + 0x00030047,0x0000015e,0x00000000,0x00030047,0x0000015f,0x00000000,0x00030047,0x00000160, + 0x00000000,0x00030047,0x00000161,0x00000000,0x00030047,0x00000162,0x00000000,0x00030047, + 0x00000163,0x00000000,0x00030047,0x00000164,0x00000000,0x00030047,0x00000165,0x00000000, + 0x00030047,0x00000168,0x00000000,0x00030047,0x00000169,0x00000000,0x00030047,0x0000016a, + 0x00000000,0x00030047,0x0000016b,0x00000000,0x00030047,0x0000016c,0x00000000,0x00030047, + 0x0000016d,0x00000000,0x00030047,0x0000016e,0x00000000,0x00030047,0x0000016f,0x00000000, + 0x00030047,0x00000170,0x00000000,0x00030047,0x00000171,0x00000000,0x00030047,0x00000172, + 0x00000000,0x00030047,0x00000173,0x00000000,0x00030047,0x00000174,0x00000000,0x00030047, + 0x00000175,0x00000000,0x00030047,0x00000176,0x00000000,0x00030047,0x00000177,0x00000000, + 0x00030047,0x00000178,0x00000000,0x00030047,0x00000179,0x00000000,0x00030047,0x0000017a, + 0x00000000,0x00030047,0x0000017b,0x00000000,0x00030047,0x0000017c,0x00000000,0x00030047, + 0x0000017f,0x00000000,0x00030047,0x00000180,0x00000000,0x00030047,0x00000181,0x00000000, + 0x00030047,0x00000182,0x00000000,0x00030047,0x00000183,0x00000000,0x00030047,0x00000184, + 0x00000000,0x00030047,0x00000185,0x00000000,0x00030047,0x00000186,0x00000000,0x00030047, + 0x00000187,0x00000000,0x00030047,0x00000188,0x00000000,0x00030047,0x00000189,0x00000000, + 0x00030047,0x0000018a,0x00000000,0x00030047,0x0000018b,0x00000000,0x00030047,0x0000018f, + 0x00000000,0x00030047,0x00000190,0x00000000,0x00030047,0x00000191,0x00000000,0x00030047, + 0x00000192,0x00000000,0x00030047,0x00000193,0x00000000,0x00030047,0x00000194,0x00000000, + 0x00030047,0x00000195,0x00000000,0x00030047,0x00000196,0x00000000,0x00030047,0x00000197, + 0x00000000,0x00030047,0x00000198,0x00000000,0x00030047,0x0000019a,0x00000000,0x00030047, + 0x0000019b,0x00000000,0x00030047,0x0000019c,0x00000000,0x00030047,0x0000019d,0x00000000, + 0x00030047,0x0000019e,0x00000000,0x00030047,0x0000019f,0x00000000,0x00030047,0x000001a0, + 0x00000000,0x00030047,0x000001a3,0x00000000,0x00030047,0x000001b4,0x00000000,0x00030047, + 0x000001b5,0x00000000,0x00030047,0x000001b6,0x00000000,0x00030047,0x000001b7,0x00000000, + 0x00030047,0x000001b9,0x00000000,0x00030047,0x000001ba,0x00000000,0x00030047,0x000001bb, + 0x00000000,0x00030047,0x000001bc,0x00000000,0x00030047,0x000001bd,0x00000000,0x00030047, + 0x000001be,0x00000000,0x00030047,0x000001bf,0x00000000,0x00030047,0x000001cd,0x00000000, + 0x00030047,0x000001d6,0x00000000,0x00030047,0x000001d7,0x00000000,0x00030047,0x000001da, + 0x00000000,0x00030047,0x000001db,0x00000000,0x00030047,0x000001e1,0x00000000,0x00030047, + 0x000001e2,0x00000000,0x00030047,0x000001e3,0x00000000,0x00030047,0x000001e6,0x00000000, + 0x00030047,0x000001e7,0x00000000,0x00030047,0x000001e8,0x00000000,0x00030047,0x000001e9, + 0x00000000,0x00030047,0x000001ee,0x00000000,0x00030047,0x000001ef,0x00000000,0x00030047, + 0x000001f0,0x00000000,0x00030047,0x000001f2,0x00000000,0x00030047,0x000001f3,0x00000000, + 0x00030047,0x000001f4,0x00000000,0x00030047,0x000001f6,0x00000000,0x00030047,0x000001f7, + 0x00000000,0x00030047,0x000001f8,0x00000000,0x00030047,0x000001f9,0x00000000,0x00030047, + 0x000001fa,0x00000000,0x00030047,0x000001fb,0x00000000,0x00030047,0x000001fc,0x00000000, + 0x00030047,0x000001fd,0x00000000,0x00030047,0x000001fe,0x00000000,0x00030047,0x000001ff, + 0x00000000,0x00030047,0x00000200,0x00000000,0x00030047,0x00000201,0x00000000,0x00030047, + 0x00000202,0x00000000,0x00030047,0x00000203,0x00000000,0x00030047,0x00000204,0x00000000, + 0x00030047,0x00000206,0x00000000,0x00030047,0x00000207,0x00000000,0x00030047,0x00000208, + 0x00000000,0x00030047,0x00000209,0x00000000,0x00030047,0x0000020a,0x00000000,0x00030047, + 0x0000020b,0x00000000,0x00030047,0x0000020c,0x00000000,0x00030047,0x0000020d,0x00000000, + 0x00030047,0x0000020e,0x00000000,0x00030047,0x0000020f,0x00000000,0x00030047,0x00000210, + 0x00000000,0x00030047,0x00000211,0x00000000,0x00030047,0x00000212,0x00000000,0x00030047, + 0x00000213,0x00000000,0x00030047,0x00000214,0x00000000,0x00030047,0x00000215,0x00000000, + 0x00030047,0x00000221,0x00000000,0x00030047,0x00000228,0x00000000,0x00030047,0x00000229, + 0x00000000,0x00030047,0x0000022c,0x00000000,0x00030047,0x0000022d,0x00000000,0x00030047, + 0x00000233,0x00000000,0x00030047,0x00000234,0x00000000,0x00030047,0x00000235,0x00000000, + 0x00030047,0x00000238,0x00000000,0x00030047,0x00000239,0x00000000,0x00030047,0x0000023a, + 0x00000000,0x00030047,0x0000023b,0x00000000,0x00030047,0x0000024a,0x00000000,0x00030047, + 0x00000251,0x00000000,0x00030047,0x00000254,0x00000000,0x00030047,0x00000255,0x00000000, + 0x00030047,0x00000256,0x00000000,0x00030047,0x00000259,0x00000000,0x00030047,0x0000025a, + 0x00000000,0x00030047,0x0000025d,0x00000000,0x00030047,0x0000025e,0x00000000,0x00030047, + 0x0000025f,0x00000000,0x00030047,0x00000260,0x00000000,0x00030047,0x00000265,0x00000000, + 0x00030047,0x0000026d,0x00000000,0x00030047,0x00000270,0x00000000,0x00030047,0x00000271, + 0x00000000,0x00030047,0x00000272,0x00000000,0x00030047,0x00000275,0x00000000,0x00030047, + 0x00000276,0x00000000,0x00030047,0x0000027a,0x00000000,0x00030047,0x0000027b,0x00000000, + 0x00030047,0x0000027d,0x00000000,0x00030047,0x00000280,0x00000000,0x00030047,0x00000281, + 0x00000000,0x00030047,0x00000283,0x00000000,0x00030047,0x00000284,0x00000000,0x00030047, + 0x00000285,0x00000000,0x00030047,0x0000028b,0x00000000,0x00030047,0x0000028e,0x00000000, + 0x00030047,0x0000028f,0x00000000,0x00030047,0x00000290,0x00000000,0x00030047,0x00000293, + 0x00000000,0x00030047,0x00000294,0x00000000,0x00030047,0x00000297,0x00000000,0x00030047, + 0x00000298,0x00000000,0x00030047,0x00000299,0x00000000,0x00030047,0x0000029a,0x00000000, + 0x00030047,0x0000029f,0x00000000,0x00030047,0x000002a0,0x00000000,0x00030047,0x000002a1, + 0x00000000,0x00030047,0x000002a2,0x00000000,0x00030047,0x000002a4,0x00000000,0x00030047, + 0x000002a5,0x00000000,0x00030047,0x000002a6,0x00000000,0x00030047,0x000002a7,0x00000000, + 0x00030047,0x000002a8,0x00000000,0x00030047,0x000002a9,0x00000000,0x00030047,0x000002aa, + 0x00000000,0x00030047,0x000002ab,0x00000000,0x00040047,0x000002ad,0x00000001,0x00000005, + 0x00030047,0x000002b0,0x00000000,0x00030047,0x000002b1,0x00000000,0x00030047,0x000002b2, + 0x00000000,0x00030047,0x000002b3,0x00000000,0x00030047,0x000002b4,0x00000000,0x00030047, + 0x000002b5,0x00000000,0x00030047,0x000002b6,0x00000000,0x00030047,0x000002b7,0x00000000, + 0x00030047,0x000002b8,0x00000000,0x00030047,0x000002b9,0x00000000,0x00030047,0x000002ba, + 0x00000000,0x00030047,0x000002bb,0x00000000,0x00030047,0x000002bc,0x00000000,0x00030047, + 0x000002c0,0x00000000,0x00030047,0x000002c1,0x00000000,0x00030047,0x000002c2,0x00000000, + 0x00030047,0x000002c3,0x00000000,0x00030047,0x000002c4,0x00000000,0x00030047,0x000002c5, + 0x00000000,0x00030047,0x000002c6,0x00000000,0x00030047,0x000002c7,0x00000000,0x00030047, + 0x000002c8,0x00000000,0x00030047,0x000002c9,0x00000000,0x00030047,0x000002ca,0x00000000, + 0x00030047,0x000002cb,0x00000000,0x00030047,0x000002cc,0x00000000,0x00030047,0x000002d0, + 0x00000000,0x00030047,0x000002d1,0x00000000,0x00030047,0x000002d2,0x00000000,0x00030047, + 0x000002d3,0x00000000,0x00030047,0x000002d4,0x00000000,0x00030047,0x000002d5,0x00000000, + 0x00030047,0x000002d6,0x00000000,0x00030047,0x000002d7,0x00000000,0x00030047,0x000002d8, + 0x00000000,0x00030047,0x000002d9,0x00000000,0x00030047,0x000002da,0x00000000,0x00030047, + 0x000002de,0x00000000,0x00030047,0x000002df,0x00000000,0x00030047,0x000002e0,0x00000000, + 0x00030047,0x000002e1,0x00000000,0x00030047,0x000002e2,0x00000000,0x00030047,0x000002e3, + 0x00000000,0x00030047,0x000002e4,0x00000000,0x00030047,0x000002e5,0x00000000,0x00030047, + 0x000002e6,0x00000000,0x00030047,0x000002e7,0x00000000,0x00030047,0x000002e8,0x00000000, + 0x00030047,0x000002eb,0x00000000,0x00030047,0x000002ee,0x00000000,0x00030047,0x000002ef, + 0x00000000,0x00030047,0x000002f0,0x00000000,0x00030047,0x000002f1,0x00000000,0x00030047, + 0x000002f2,0x00000000,0x00030047,0x000002f3,0x00000000,0x00030047,0x000002f4,0x00000000, + 0x00030047,0x000002f5,0x00000000,0x00030047,0x000002f6,0x00000000,0x00030047,0x000002f7, + 0x00000000,0x00030047,0x000002f8,0x00000000,0x00030047,0x000002fa,0x00000000,0x00030047, + 0x000002fc,0x00000000,0x00030047,0x000002fd,0x00000000,0x00030047,0x000002fe,0x00000000, + 0x00030047,0x00000300,0x00000000,0x00030047,0x00000301,0x00000000,0x00030047,0x00000302, + 0x00000000,0x00030047,0x00000304,0x00000000,0x00030047,0x00000305,0x00000000,0x00030047, + 0x00000306,0x00000000,0x00030047,0x00000307,0x00000000,0x00030047,0x00000308,0x00000000, + 0x00030047,0x00000309,0x00000000,0x00030047,0x0000030a,0x00000000,0x00030047,0x0000030b, + 0x00000000,0x00030047,0x0000030c,0x00000000,0x00030047,0x0000030d,0x00000000,0x00030047, + 0x0000030e,0x00000000,0x00030047,0x0000030f,0x00000000,0x00030047,0x00000310,0x00000000, + 0x00030047,0x00000311,0x00000000,0x00030047,0x00000312,0x00000000,0x00030047,0x00000313, + 0x00000000,0x00030047,0x00000314,0x00000000,0x00030047,0x00000315,0x00000000,0x00030047, + 0x00000316,0x00000000,0x00030047,0x00000318,0x00000000,0x00030047,0x0000031a,0x00000000, + 0x00030047,0x0000031b,0x00000000,0x00030047,0x0000031c,0x00000000,0x00030047,0x0000031e, + 0x00000000,0x00030047,0x0000031f,0x00000000,0x00030047,0x00000320,0x00000000,0x00030047, + 0x00000321,0x00000000,0x00030047,0x00000322,0x00000000,0x00030047,0x0000032c,0x00000000, + 0x00030047,0x00000361,0x00000000,0x00040047,0x00000361,0x00000022,0x00000000,0x00040047, + 0x00000361,0x00000021,0x00000001,0x00030047,0x00000362,0x00000000,0x00030047,0x00000365, + 0x00000000,0x00040047,0x00000365,0x00000022,0x00000002,0x00040047,0x00000365,0x00000021, + 0x00000001,0x00030047,0x00000366,0x00000000,0x00030047,0x0000036c,0x00000000,0x00030047, + 0x0000036f,0x00000000,0x00030047,0x00000374,0x00000000,0x00030047,0x00000375,0x00000000, + 0x00040047,0x00000375,0x00000022,0x00000001,0x00040047,0x00000375,0x00000021,0x00000002, + 0x00030047,0x00000376,0x00000000,0x00030047,0x00000377,0x00000000,0x00040047,0x00000377, + 0x00000022,0x00000002,0x00040047,0x00000377,0x00000021,0x00000002,0x00030047,0x00000378, + 0x00000000,0x00030047,0x0000037c,0x00000000,0x00030047,0x0000037d,0x00000000,0x00030047, + 0x0000037e,0x00000000,0x00030047,0x00000381,0x00000000,0x00030047,0x00000383,0x00000000, + 0x00030047,0x00000384,0x00000000,0x00030047,0x00000386,0x00000000,0x00030047,0x00000389, + 0x00000000,0x00040047,0x0000038c,0x00000022,0x00000003,0x00040047,0x0000038c,0x00000021, + 0x00000003,0x00040047,0x0000038c,0x0000002b,0x00000003,0x00030047,0x00000394,0x00000000, + 0x00030047,0x00000396,0x00000000,0x00030047,0x00000397,0x00000000,0x00030047,0x00000398, + 0x00000000,0x00030047,0x0000039a,0x00000000,0x00030047,0x0000039a,0x0000000e,0x00040047, + 0x0000039a,0x0000001e,0x00000003,0x00030047,0x0000039b,0x00000000,0x00030047,0x0000039d, + 0x00000000,0x00030047,0x000003a1,0x00000000,0x00030047,0x000003a3,0x00000000,0x00030047, + 0x000003a4,0x00000000,0x00030047,0x000003a5,0x00000000,0x00030047,0x000003a7,0x00000000, + 0x00040047,0x000003a7,0x0000001e,0x00000002,0x00030047,0x000003a9,0x00000000,0x00030047, + 0x000003ae,0x00000000,0x00030047,0x000003b0,0x00000000,0x00030047,0x000003b1,0x00000000, + 0x00030047,0x000003b2,0x00000000,0x00030047,0x000003b3,0x00000000,0x00030047,0x000003b6, + 0x00000000,0x00030047,0x000003b7,0x00000000,0x00030047,0x000003b8,0x00000000,0x00040047, + 0x000003ba,0x0000001e,0x00000003,0x00030047,0x000003bb,0x00000000,0x00030047,0x000003bc, + 0x00000000,0x00030047,0x000003bd,0x00000000,0x00030047,0x000003be,0x00000000,0x00030047, + 0x000003bf,0x00000000,0x00030047,0x000003c0,0x00000000,0x00040047,0x000003c3,0x00000001, + 0x00000006,0x00030047,0x000003c6,0x00000000,0x00030047,0x000003c7,0x00000000,0x00030047, + 0x000003c8,0x00000000,0x00030047,0x000003c9,0x00000000,0x00030047,0x000003ca,0x00000000, + 0x00030047,0x000003cb,0x00000000,0x00030047,0x000003cc,0x00000000,0x00030047,0x000003ce, + 0x00000000,0x00030047,0x000003cf,0x00000000,0x00040047,0x000003d0,0x00000001,0x00000003, + 0x00030047,0x000003d3,0x00000000,0x00030047,0x000003d8,0x00000000,0x00030047,0x000003d9, + 0x00000000,0x00030047,0x000003da,0x00000000,0x00030047,0x000003db,0x00000000,0x00030047, + 0x000003dc,0x00000000,0x00030047,0x000003dd,0x00000000,0x00030047,0x000003de,0x00000000, + 0x00030047,0x000003df,0x00000000,0x00030047,0x000003e0,0x00000000,0x00030047,0x000003e1, + 0x00000000,0x00030047,0x000003e2,0x00000000,0x00030047,0x000003e3,0x00000000,0x00030047, + 0x000003e4,0x00000000,0x00040047,0x000003e5,0x00000001,0x00000000,0x00030047,0x000003e8, + 0x00000000,0x00030047,0x000003e8,0x0000000e,0x00040047,0x000003e8,0x0000001e,0x00000004, + 0x00030047,0x000003e9,0x00000000,0x00030047,0x000003ee,0x00000000,0x00030047,0x000003ef, + 0x00000000,0x00030047,0x000003f0,0x00000000,0x00040047,0x000003f1,0x00000001,0x00000004, + 0x00030047,0x000003f4,0x00000000,0x00040047,0x000003f6,0x0000001e,0x00000000,0x00030047, + 0x000003f9,0x00000000,0x00030047,0x000003fd,0x00000000,0x00040047,0x000003fe,0x00000022, + 0x00000003,0x00040047,0x000003fe,0x00000021,0x00000001,0x00040047,0x000003fe,0x0000002b, + 0x00000001,0x00030047,0x00000403,0x00000000,0x00030047,0x00000405,0x00000000,0x00030047, + 0x00000406,0x00000000,0x00030047,0x00000407,0x00000000,0x00030047,0x0000040b,0x00000000, + 0x00030047,0x0000040c,0x00000000,0x00030047,0x0000040d,0x00000000,0x00030047,0x0000040f, + 0x00000000,0x00030047,0x00000413,0x00000000,0x00030047,0x00000415,0x00000000,0x00030047, + 0x00000417,0x00000000,0x00040047,0x00000417,0x0000001e,0x00000002,0x00030047,0x00000418, + 0x00000000,0x00030047,0x00000419,0x00000000,0x00030047,0x0000041a,0x00000000,0x00030047, + 0x0000041b,0x00000000,0x00030047,0x0000041c,0x00000000,0x00030047,0x0000041d,0x00000000, + 0x00030047,0x00000421,0x00000000,0x00040047,0x00000421,0x00000022,0x00000003,0x00040047, + 0x00000421,0x00000021,0x00000002,0x00040047,0x00000421,0x0000002b,0x00000002,0x00030047, + 0x00000422,0x00000000,0x00030047,0x00000423,0x00000000,0x00030047,0x00000424,0x00000000, + 0x00030047,0x00000425,0x00000000,0x00030047,0x00000426,0x00000000,0x00030047,0x00000427, + 0x00000000,0x00030047,0x00000428,0x00000000,0x00030047,0x00000429,0x00000000,0x00040047, + 0x0000042a,0x0000001e,0x00000001,0x00030047,0x0000042b,0x00000000,0x00030047,0x0000042c, + 0x00000000,0x00030047,0x0000042d,0x00000000,0x00030047,0x0000042e,0x00000000,0x00030047, + 0x0000042f,0x00000000,0x00030047,0x00000430,0x00000000,0x00030047,0x00000432,0x00000000, + 0x00040047,0x00000432,0x0000001e,0x00000000,0x00030047,0x00000433,0x00000000,0x00040047, + 0x00000433,0x00000022,0x00000003,0x00040047,0x00000433,0x00000021,0x00000000,0x00040047, + 0x00000433,0x0000002b,0x00000000,0x00030047,0x00000434,0x00000000,0x00030047,0x00000435, + 0x00000000,0x00030047,0x00000439,0x00000000,0x00030047,0x0000043d,0x00000000,0x00030047, + 0x00000442,0x00000000,0x00030047,0x00000444,0x00000000,0x00030047,0x00000445,0x00000000, + 0x00030047,0x00000446,0x00000000,0x00030047,0x00000448,0x00000000,0x00030047,0x0000044c, + 0x00000000,0x00030047,0x0000044d,0x00000000,0x00030047,0x0000044e,0x00000000,0x00030047, + 0x00000450,0x00000000,0x00030047,0x00000451,0x00000000,0x00030047,0x00000452,0x00000000, + 0x00040047,0x00000453,0x00000001,0x00000001,0x00030047,0x00000456,0x00000000,0x00040047, + 0x00000457,0x0000001e,0x00000005,0x00030047,0x0000045a,0x00000000,0x00030047,0x0000045b, + 0x00000000,0x00030047,0x0000045c,0x00000000,0x00030047,0x0000045d,0x00000000,0x00030047, + 0x0000045e,0x00000000,0x00030047,0x0000045f,0x00000000,0x00030047,0x00000460,0x00000000, + 0x00030047,0x00000461,0x00000000,0x00030047,0x00000462,0x00000000,0x00030047,0x00000465, + 0x00000000,0x00030047,0x00000466,0x00000000,0x00030047,0x00000468,0x00000000,0x00030047, + 0x00000469,0x00000000,0x00030047,0x0000046b,0x00000000,0x00030047,0x0000046c,0x00000000, + 0x00030047,0x00000470,0x00000000,0x00030047,0x00000471,0x00000000,0x00030047,0x00000472, + 0x00000000,0x00030047,0x00000473,0x00000000,0x00030047,0x00000475,0x00000000,0x00030047, + 0x00000476,0x00000000,0x00030047,0x00000477,0x00000000,0x00030047,0x00000478,0x00000000, + 0x00040047,0x00000479,0x00000001,0x00000002,0x00030047,0x0000047c,0x00000000,0x00030047, + 0x0000047c,0x0000000e,0x00040047,0x0000047c,0x0000001e,0x00000006,0x00030047,0x0000047d, + 0x00000000,0x00030047,0x0000047f,0x00000000,0x00030047,0x00000484,0x00000000,0x00030047, + 0x00000485,0x00000000,0x00030047,0x00000486,0x00000000,0x00030047,0x00000487,0x00000000, + 0x00030047,0x00000488,0x00000000,0x00030047,0x00000489,0x00000000,0x00030047,0x0000048a, + 0x00000000,0x00030047,0x0000048b,0x00000000,0x00030047,0x0000048c,0x00000000,0x00030047, + 0x0000048d,0x00000000,0x00030047,0x0000048e,0x00000000,0x00030047,0x00000491,0x00000000, + 0x00030047,0x00000492,0x00000000,0x00030047,0x00000493,0x00000000,0x00030047,0x00000494, + 0x00000000,0x00030047,0x0000049b,0x00000000,0x00030047,0x0000049c,0x00000000,0x00030047, + 0x0000049e,0x00000000,0x00030047,0x0000049f,0x00000000,0x00030047,0x000004a0,0x00000000, + 0x00030047,0x000004a1,0x00000000,0x00030047,0x000004a2,0x00000000,0x00040047,0x000004a7, + 0x00000001,0x00000007,0x00050048,0x000004a9,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000004a9,0x00000001,0x00000023,0x00000004,0x00050048,0x000004a9,0x00000002,0x00000023, + 0x00000008,0x00050048,0x000004a9,0x00000003,0x00000023,0x0000000c,0x00050048,0x000004a9, + 0x00000004,0x00000023,0x00000010,0x00050048,0x000004a9,0x00000005,0x00000023,0x00000014, + 0x00050048,0x000004a9,0x00000006,0x00000023,0x00000018,0x00050048,0x000004a9,0x00000007, + 0x00000023,0x0000001c,0x00050048,0x000004a9,0x00000008,0x00000023,0x00000020,0x00050048, + 0x000004a9,0x00000009,0x00000023,0x00000030,0x00050048,0x000004a9,0x0000000a,0x00000023, + 0x00000034,0x00050048,0x000004a9,0x0000000b,0x00000023,0x00000038,0x00030047,0x000004a9, + 0x00000002,0x00040047,0x000004ab,0x00000022,0x00000000,0x00040047,0x000004ab,0x00000021, + 0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008, + 0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d,0x00000008, + 0x00000004,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f,0x0000000d, + 0x0000000e,0x00040020,0x00000013,0x00000007,0x00000008,0x00040021,0x00000014,0x00000006, + 0x00000013,0x00040021,0x00000018,0x00000008,0x00000013,0x00040017,0x0000001c,0x00000008, + 0x00000002,0x00050021,0x0000001d,0x0000001c,0x00000013,0x00000013,0x00040017,0x00000022, + 0x00000008,0x00000003,0x00060021,0x00000023,0x00000022,0x00000013,0x00000013,0x00000013, + 0x00040021,0x00000029,0x00000022,0x00000013,0x00070021,0x0000002d,0x0000000d,0x00000013, + 0x00000013,0x00000013,0x00000013,0x00040020,0x00000034,0x00000007,0x00000022,0x00050021, + 0x00000035,0x0000000d,0x00000034,0x00000013,0x00040018,0x0000003a,0x00000022,0x00000003, + 0x00060021,0x0000003b,0x0000003a,0x00000034,0x00000034,0x00000034,0x00040021,0x00000044, + 0x00000008,0x0000000e,0x00040021,0x00000048,0x00000008,0x00000034,0x00040021,0x00000055, + 0x00000022,0x00000034,0x00050021,0x00000059,0x00000022,0x00000034,0x00000034,0x00060021, + 0x0000005e,0x00000022,0x00000034,0x00000034,0x00000034,0x00060021,0x00000064,0x00000022, + 0x00000034,0x00000034,0x00000007,0x00060021,0x0000006a,0x0000000d,0x0000000e,0x0000000e, + 0x00000007,0x00040020,0x00000085,0x00000007,0x0000001c,0x0004002b,0x00000006,0x00000088, + 0x00000000,0x0004002b,0x00000006,0x0000008b,0x00000001,0x0004002b,0x00000006,0x00000096, + 0x00000002,0x0004002b,0x00000006,0x000000ad,0x00000003,0x00040020,0x000000bf,0x00000007, + 0x0000003a,0x00040015,0x000000c1,0x00000020,0x00000001,0x0004002b,0x000000c1,0x000000c2, + 0x00000000,0x0004002b,0x000000c1,0x000000c5,0x00000001,0x0004002b,0x000000c1,0x000000c8, + 0x00000002,0x00020014,0x000000ce,0x0004002b,0x00000008,0x000000cf,0x00000000,0x0004002b, + 0x00000008,0x000000d7,0x3f800000,0x0004002b,0x00000008,0x000000ee,0x3f7f7f7f,0x00040017, + 0x000000f1,0x000000ce,0x00000003,0x0004002b,0x00000008,0x00000121,0x3e99999a,0x0004002b, + 0x00000008,0x00000122,0x3f170a3d,0x0004002b,0x00000008,0x00000123,0x3de147ae,0x00040020, + 0x000001c1,0x00000007,0x000000c1,0x0004002b,0x000000c1,0x000001c9,0x00000003,0x0004002b, + 0x00000008,0x000001ce,0x3f000000,0x0004002b,0x00000008,0x000001d3,0x40000000,0x0004002b, + 0x00000008,0x00000266,0x3e800000,0x0004002b,0x00000008,0x00000277,0x41800000,0x0004002b, + 0x00000008,0x0000027c,0x41400000,0x0004002b,0x00000008,0x00000282,0x40400000,0x00030031, + 0x000000ce,0x000002ad,0x0004002b,0x00000008,0x00000331,0xbf800000,0x0004002b,0x00000008, + 0x0000034f,0x3f7f8000,0x0004002b,0x00000008,0x00000352,0x3a800000,0x0004002b,0x00000008, + 0x00000355,0x3b000000,0x00090019,0x0000035f,0x00000008,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x00000360,0x00000000,0x0000035f,0x0004003b, + 0x00000360,0x00000361,0x00000000,0x0002001a,0x00000363,0x00040020,0x00000364,0x00000000, + 0x00000363,0x0004003b,0x00000364,0x00000365,0x00000000,0x0003001b,0x00000367,0x0000035f, + 0x0004003b,0x00000360,0x00000375,0x00000000,0x0004003b,0x00000364,0x00000377,0x00000000, + 0x00090019,0x0000038a,0x00000006,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x0000038b,0x00000000,0x0000038a,0x0004003b,0x0000038b,0x0000038c, + 0x00000000,0x00040017,0x0000038e,0x000000c1,0x00000002,0x0005002c,0x0000038e,0x0000038f, + 0x000000c2,0x000000c2,0x00040017,0x00000390,0x00000006,0x00000004,0x00040020,0x00000399, + 0x00000001,0x00000008,0x0004003b,0x00000399,0x0000039a,0x00000001,0x00040020,0x000003a6, + 0x00000001,0x0000001c,0x0004003b,0x000003a6,0x000003a7,0x00000001,0x00040020,0x000003b9, + 0x00000003,0x00000390,0x0004003b,0x000003b9,0x000003ba,0x00000003,0x00040020,0x000003c1, + 0x00000003,0x00000006,0x00030031,0x000000ce,0x000003c3,0x00030031,0x000000ce,0x000003d0, + 0x00030031,0x000000ce,0x000003e5,0x0004003b,0x00000399,0x000003e8,0x00000001,0x00030031, + 0x000000ce,0x000003f1,0x00040020,0x000003f5,0x00000001,0x0000000d,0x0004003b,0x000003f5, + 0x000003f6,0x00000001,0x0004003b,0x0000038b,0x000003fe,0x00000000,0x00040020,0x00000416, + 0x00000003,0x0000000d,0x0004003b,0x00000416,0x00000417,0x00000003,0x00090019,0x0000041f, + 0x00000008,0x00000006,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020, + 0x00000420,0x00000000,0x0000041f,0x0004003b,0x00000420,0x00000421,0x00000000,0x0004003b, + 0x000003b9,0x0000042a,0x00000003,0x0004003b,0x00000416,0x00000432,0x00000003,0x0004003b, + 0x00000420,0x00000433,0x00000000,0x00030031,0x000000ce,0x00000453,0x0004003b,0x000003f5, + 0x00000457,0x00000001,0x00030031,0x000000ce,0x00000479,0x0004003b,0x00000399,0x0000047c, + 0x00000001,0x00030031,0x000000ce,0x000004a7,0x00040017,0x000004a8,0x000000c1,0x00000004, + 0x000e001e,0x000004a9,0x00000008,0x00000008,0x00000008,0x00000008,0x00000006,0x00000006, + 0x00000006,0x00000006,0x000004a8,0x00000006,0x00000006,0x00000008,0x00040020,0x000004aa, + 0x00000002,0x000004a9,0x0004003b,0x000004aa,0x000004ab,0x00000002,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000085,0x00000389, + 0x00000007,0x0004003b,0x00000013,0x00000394,0x00000007,0x0004003b,0x00000013,0x00000397, + 0x00000007,0x0004003b,0x00000013,0x0000039d,0x00000007,0x0004003b,0x00000013,0x000003a3, + 0x00000007,0x0004003b,0x00000013,0x000003bb,0x00000007,0x0004003b,0x00000013,0x000003bd, + 0x00000007,0x0004003b,0x00000013,0x000003c6,0x00000007,0x0004003b,0x00000013,0x000003c8, + 0x00000007,0x0004003b,0x00000013,0x000003ca,0x00000007,0x0004003b,0x00000013,0x000003de, + 0x00000007,0x0004003b,0x00000013,0x000003e2,0x00000007,0x0004003b,0x00000013,0x000003ee, + 0x00000007,0x0004003b,0x00000013,0x000003f4,0x00000007,0x0004003b,0x00000085,0x000003fd, + 0x00000007,0x0004003b,0x00000013,0x00000403,0x00000007,0x0004003b,0x00000013,0x0000040b, + 0x00000007,0x0004003b,0x00000013,0x0000040f,0x00000007,0x0004003b,0x00000013,0x00000418, + 0x00000007,0x0004003b,0x00000013,0x0000041a,0x00000007,0x0004003b,0x00000013,0x0000041b, + 0x00000007,0x0004003b,0x00000013,0x0000041c,0x00000007,0x0004003b,0x00000013,0x0000042b, + 0x00000007,0x0004003b,0x00000013,0x0000042d,0x00000007,0x0004003b,0x00000085,0x0000043d, + 0x00000007,0x0004003b,0x00000013,0x00000442,0x00000007,0x0004003b,0x00000013,0x00000448, + 0x00000007,0x0004003b,0x00000013,0x00000450,0x00000007,0x0004003b,0x00000013,0x00000456, + 0x00000007,0x0004003b,0x0000000e,0x00000458,0x00000007,0x0004003b,0x0000000e,0x0000045b, + 0x00000007,0x0004003b,0x00000013,0x0000045e,0x00000007,0x0004003b,0x0000000e,0x00000462, + 0x00000007,0x0004003b,0x0000000e,0x00000463,0x00000007,0x0004003b,0x0000000e,0x00000470, + 0x00000007,0x0004003b,0x00000007,0x0000047e,0x00000007,0x0004003b,0x0000000e,0x00000484, + 0x00000007,0x0004003b,0x00000013,0x00000487,0x00000007,0x0004003b,0x0000000e,0x0000048a, + 0x00000007,0x0004003b,0x0000000e,0x0000048c,0x00000007,0x0004003b,0x00000007,0x0000048d, + 0x00000007,0x0004003d,0x0000038a,0x0000038d,0x0000038c,0x00050062,0x00000390,0x00000391, + 0x0000038d,0x0000038f,0x00050051,0x00000006,0x00000392,0x00000391,0x00000000,0x0006000c, + 0x0000001c,0x00000393,0x00000001,0x0000003e,0x00000392,0x0003003e,0x00000389,0x00000393, + 0x00050041,0x00000013,0x00000395,0x00000389,0x0000008b,0x0004003d,0x00000008,0x00000396, + 0x00000395,0x0003003e,0x00000394,0x00000396,0x0004003d,0x00000008,0x00000398,0x00000394, + 0x0004003d,0x00000008,0x0000039b,0x0000039a,0x000500b4,0x000000ce,0x0000039c,0x00000398, + 0x0000039b,0x000300f7,0x0000039f,0x00000000,0x000400fa,0x0000039c,0x0000039e,0x000003a2, + 0x000200f8,0x0000039e,0x00050041,0x00000013,0x000003a0,0x00000389,0x00000088,0x0004003d, + 0x00000008,0x000003a1,0x000003a0,0x0003003e,0x0000039d,0x000003a1,0x000200f9,0x0000039f, + 0x000200f8,0x000003a2,0x0003003e,0x000003a3,0x000000cf,0x00050039,0x00000008,0x000003a4, + 0x0000001a,0x000003a3,0x0003003e,0x0000039d,0x000003a4,0x000200f9,0x0000039f,0x000200f8, + 0x0000039f,0x0004003d,0x00000008,0x000003a5,0x0000039d,0x0003003e,0x00000397,0x000003a5, + 0x00050041,0x00000399,0x000003a8,0x000003a7,0x0000008b,0x0004003d,0x00000008,0x000003a9, + 0x000003a8,0x000500be,0x000000ce,0x000003aa,0x000003a9,0x000000cf,0x000300f7,0x000003ac, + 0x00000000,0x000400fa,0x000003aa,0x000003ab,0x000003b4,0x000200f8,0x000003ab,0x00050041, + 0x00000399,0x000003ad,0x000003a7,0x00000088,0x0004003d,0x00000008,0x000003ae,0x000003ad, + 0x00050041,0x00000399,0x000003af,0x000003a7,0x0000008b,0x0004003d,0x00000008,0x000003b0, + 0x000003af,0x0007000c,0x00000008,0x000003b1,0x00000001,0x00000025,0x000003ae,0x000003b0, + 0x0004003d,0x00000008,0x000003b2,0x00000397,0x0007000c,0x00000008,0x000003b3,0x00000001, + 0x00000028,0x000003b1,0x000003b2,0x0003003e,0x00000397,0x000003b3,0x000200f9,0x000003ac, + 0x000200f8,0x000003b4,0x00050041,0x00000399,0x000003b5,0x000003a7,0x00000088,0x0004003d, + 0x00000008,0x000003b6,0x000003b5,0x0004003d,0x00000008,0x000003b7,0x00000397,0x00050081, + 0x00000008,0x000003b8,0x000003b7,0x000003b6,0x0003003e,0x00000397,0x000003b8,0x000200f9, + 0x000003ac,0x000200f8,0x000003ac,0x0004003d,0x00000008,0x000003bc,0x00000397,0x0003003e, + 0x000003bb,0x000003bc,0x0004003d,0x00000008,0x000003be,0x0000039a,0x0003003e,0x000003bd, + 0x000003be,0x00060039,0x0000001c,0x000003bf,0x00000020,0x000003bb,0x000003bd,0x0006000c, + 0x00000006,0x000003c0,0x00000001,0x0000003a,0x000003bf,0x00050041,0x000003c1,0x000003c2, + 0x000003ba,0x00000088,0x0003003e,0x000003c2,0x000003c0,0x000300f7,0x000003c5,0x00000000, + 0x000400fa,0x000003c3,0x000003c4,0x000003cd,0x000200f8,0x000003c4,0x0004003d,0x00000008, + 0x000003c7,0x00000397,0x0003003e,0x000003c8,0x000000cf,0x00050039,0x00000008,0x000003c9, + 0x0000001a,0x000003c8,0x0003003e,0x000003ca,0x000000d7,0x00050039,0x00000008,0x000003cb, + 0x0000001a,0x000003ca,0x0008000c,0x00000008,0x000003cc,0x00000001,0x0000002b,0x000003c7, + 0x000003c9,0x000003cb,0x0003003e,0x000003c6,0x000003cc,0x000200f9,0x000003c5,0x000200f8, + 0x000003cd,0x0004003d,0x00000008,0x000003ce,0x00000397,0x0006000c,0x00000008,0x000003cf, + 0x00000001,0x00000004,0x000003ce,0x0003003e,0x000003c6,0x000003cf,0x000300f7,0x000003d2, + 0x00000000,0x000400fa,0x000003d0,0x000003d1,0x000003d2,0x000200f8,0x000003d1,0x0004003d, + 0x00000008,0x000003d3,0x0000039a,0x000500b8,0x000000ce,0x000003d4,0x000003d3,0x000000cf, + 0x000200f9,0x000003d2,0x000200f8,0x000003d2,0x000700f5,0x000000ce,0x000003d5,0x000003d0, + 0x000003cd,0x000003d4,0x000003d1,0x000300f7,0x000003d7,0x00000000,0x000400fa,0x000003d5, + 0x000003d6,0x000003d7,0x000200f8,0x000003d6,0x0004003d,0x00000008,0x000003d8,0x000003c6, + 0x00050085,0x00000008,0x000003d9,0x000003d8,0x000001ce,0x0006000c,0x00000008,0x000003da, + 0x00000001,0x0000000a,0x000003d9,0x00050085,0x00000008,0x000003db,0x000003da,0x000001d3, + 0x00050081,0x00000008,0x000003dc,0x000003db,0x00000331,0x0006000c,0x00000008,0x000003dd, + 0x00000001,0x00000004,0x000003dc,0x0003003e,0x000003de,0x000003dd,0x00050039,0x00000008, + 0x000003df,0x0000001a,0x000003de,0x00050083,0x00000008,0x000003e0,0x000000d7,0x000003df, + 0x0003003e,0x000003c6,0x000003e0,0x000200f9,0x000003d7,0x000200f8,0x000003d7,0x0004003d, + 0x00000008,0x000003e1,0x000003c6,0x0003003e,0x000003e2,0x000000d7,0x00050039,0x00000008, + 0x000003e3,0x0000001a,0x000003e2,0x0007000c,0x00000008,0x000003e4,0x00000001,0x00000025, + 0x000003e1,0x000003e3,0x0003003e,0x000003c6,0x000003e4,0x000200f9,0x000003c5,0x000200f8, + 0x000003c5,0x000300f7,0x000003e7,0x00000000,0x000400fa,0x000003e5,0x000003e6,0x000003e7, + 0x000200f8,0x000003e6,0x0004003d,0x00000008,0x000003e9,0x000003e8,0x000500b8,0x000000ce, + 0x000003ea,0x000003e9,0x000000cf,0x000200f9,0x000003e7,0x000200f8,0x000003e7,0x000700f5, + 0x000000ce,0x000003eb,0x000003e5,0x000003c5,0x000003ea,0x000003e6,0x000300f7,0x000003ed, + 0x00000000,0x000400fa,0x000003eb,0x000003ec,0x00000436,0x000200f8,0x000003ec,0x0004003d, + 0x00000008,0x000003ef,0x000003e8,0x0004007f,0x00000008,0x000003f0,0x000003ef,0x0003003e, + 0x000003ee,0x000003f0,0x000300f7,0x000003f3,0x00000000,0x000400fa,0x000003f1,0x000003f2, + 0x000003f3,0x000200f8,0x000003f2,0x00050041,0x00000399,0x000003f7,0x000003f6,0x00000088, + 0x0004003d,0x00000008,0x000003f8,0x000003f7,0x0003003e,0x000003f4,0x000003f8,0x0004003d, + 0x00000008,0x000003f9,0x000003f4,0x000500b7,0x000000ce,0x000003fa,0x000003f9,0x000000cf, + 0x000300f7,0x000003fc,0x00000000,0x000400fa,0x000003fa,0x000003fb,0x000003fc,0x000200f8, + 0x000003fb,0x0004003d,0x0000038a,0x000003ff,0x000003fe,0x00050062,0x00000390,0x00000400, + 0x000003ff,0x0000038f,0x00050051,0x00000006,0x00000401,0x00000400,0x00000000,0x0006000c, + 0x0000001c,0x00000402,0x00000001,0x0000003e,0x00000401,0x0003003e,0x000003fd,0x00000402, + 0x00050041,0x00000013,0x00000404,0x000003fd,0x0000008b,0x0004003d,0x00000008,0x00000405, + 0x00000404,0x0003003e,0x00000403,0x00000405,0x0004003d,0x00000008,0x00000406,0x00000403, + 0x0004003d,0x00000008,0x00000407,0x000003ee,0x000500b7,0x000000ce,0x00000408,0x00000406, + 0x00000407,0x000300f7,0x0000040a,0x00000000,0x000400fa,0x00000408,0x00000409,0x0000041e, + 0x000200f8,0x00000409,0x0004003d,0x00000008,0x0000040c,0x00000403,0x0004003d,0x00000008, + 0x0000040d,0x000003f4,0x000500b4,0x000000ce,0x0000040e,0x0000040c,0x0000040d,0x000300f7, + 0x00000411,0x00000000,0x000400fa,0x0000040e,0x00000410,0x00000414,0x000200f8,0x00000410, + 0x00050041,0x00000013,0x00000412,0x000003fd,0x00000088,0x0004003d,0x00000008,0x00000413, + 0x00000412,0x0003003e,0x0000040f,0x00000413,0x000200f9,0x00000411,0x000200f8,0x00000414, + 0x0003003e,0x0000040f,0x000000cf,0x000200f9,0x00000411,0x000200f8,0x00000411,0x0004003d, + 0x00000008,0x00000415,0x0000040f,0x0003003e,0x0000040b,0x00000415,0x0004003d,0x00000008, + 0x00000419,0x0000040b,0x0003003e,0x00000418,0x00000419,0x0003003e,0x0000041a,0x000000cf, + 0x0003003e,0x0000041b,0x000000cf,0x0003003e,0x0000041c,0x000000cf,0x00080039,0x0000000d, + 0x0000041d,0x00000032,0x00000418,0x0000041a,0x0000041b,0x0000041c,0x0003003e,0x00000417, + 0x0000041d,0x000200f9,0x0000040a,0x000200f8,0x0000041e,0x0004003d,0x0000041f,0x00000422, + 0x00000421,0x00050062,0x0000000d,0x00000423,0x00000422,0x0000038f,0x00050051,0x00000008, + 0x00000424,0x00000423,0x00000000,0x0003003e,0x0000040b,0x00000424,0x0004003d,0x0000041f, + 0x00000425,0x00000421,0x00050062,0x0000000d,0x00000426,0x00000425,0x0000038f,0x0003003e, + 0x00000417,0x00000426,0x000200f9,0x0000040a,0x000200f8,0x0000040a,0x0004003d,0x00000008, + 0x00000427,0x000003c6,0x0004003d,0x00000008,0x00000428,0x0000040b,0x0007000c,0x00000008, + 0x00000429,0x00000001,0x00000025,0x00000427,0x00000428,0x0003003e,0x000003c6,0x00000429, + 0x000200f9,0x000003fc,0x000200f8,0x000003fc,0x000200f9,0x000003f3,0x000200f8,0x000003f3, + 0x0004003d,0x00000008,0x0000042c,0x000003c6,0x0003003e,0x0000042b,0x0000042c,0x0004003d, + 0x00000008,0x0000042e,0x000003ee,0x0003003e,0x0000042d,0x0000042e,0x00060039,0x0000001c, + 0x0000042f,0x00000020,0x0000042b,0x0000042d,0x0006000c,0x00000006,0x00000430,0x00000001, + 0x0000003a,0x0000042f,0x00050041,0x000003c1,0x00000431,0x0000042a,0x00000088,0x0003003e, + 0x00000431,0x00000430,0x0004003d,0x0000041f,0x00000434,0x00000433,0x00050062,0x0000000d, + 0x00000435,0x00000434,0x0000038f,0x0003003e,0x00000432,0x00000435,0x000200f9,0x000003ed, + 0x000200f8,0x00000436,0x000300f7,0x00000438,0x00000000,0x000400fa,0x000003e5,0x00000437, + 0x00000438,0x000200f8,0x00000437,0x0004003d,0x00000008,0x00000439,0x000003e8,0x000500b7, + 0x000000ce,0x0000043a,0x00000439,0x000000cf,0x000300f7,0x0000043c,0x00000000,0x000400fa, + 0x0000043a,0x0000043b,0x0000043c,0x000200f8,0x0000043b,0x0004003d,0x0000038a,0x0000043e, + 0x000003fe,0x00050062,0x00000390,0x0000043f,0x0000043e,0x0000038f,0x00050051,0x00000006, + 0x00000440,0x0000043f,0x00000000,0x0006000c,0x0000001c,0x00000441,0x00000001,0x0000003e, + 0x00000440,0x0003003e,0x0000043d,0x00000441,0x00050041,0x00000013,0x00000443,0x0000043d, + 0x0000008b,0x0004003d,0x00000008,0x00000444,0x00000443,0x0003003e,0x00000442,0x00000444, + 0x0004003d,0x00000008,0x00000445,0x00000442,0x0004003d,0x00000008,0x00000446,0x000003e8, + 0x000500b4,0x000000ce,0x00000447,0x00000445,0x00000446,0x000300f7,0x0000044a,0x00000000, + 0x000400fa,0x00000447,0x00000449,0x0000044f,0x000200f8,0x00000449,0x00050041,0x00000013, + 0x0000044b,0x0000043d,0x00000088,0x0004003d,0x00000008,0x0000044c,0x0000044b,0x0004003d, + 0x00000008,0x0000044d,0x000003c6,0x0007000c,0x00000008,0x0000044e,0x00000001,0x00000025, + 0x0000044c,0x0000044d,0x0003003e,0x00000448,0x0000044e,0x000200f9,0x0000044a,0x000200f8, + 0x0000044f,0x0003003e,0x00000450,0x000000cf,0x00050039,0x00000008,0x00000451,0x0000001a, + 0x00000450,0x0003003e,0x00000448,0x00000451,0x000200f9,0x0000044a,0x000200f8,0x0000044a, + 0x0004003d,0x00000008,0x00000452,0x00000448,0x0003003e,0x000003c6,0x00000452,0x000200f9, + 0x0000043c,0x000200f8,0x0000043c,0x000200f9,0x00000438,0x000200f8,0x00000438,0x000300f7, + 0x00000455,0x00000000,0x000400fa,0x00000453,0x00000454,0x00000455,0x000200f8,0x00000454, + 0x0004003d,0x0000000d,0x00000459,0x00000457,0x0003003e,0x00000458,0x00000459,0x00050039, + 0x0000000d,0x0000045a,0x00000011,0x00000458,0x0003003e,0x0000045b,0x0000045a,0x00050039, + 0x00000008,0x0000045c,0x00000046,0x0000045b,0x0003003e,0x00000456,0x0000045c,0x0004003d, + 0x00000008,0x0000045d,0x00000456,0x0003003e,0x0000045e,0x000000cf,0x00050039,0x00000008, + 0x0000045f,0x0000001a,0x0000045e,0x0004003d,0x00000008,0x00000460,0x000003c6,0x0008000c, + 0x00000008,0x00000461,0x00000001,0x0000002b,0x0000045d,0x0000045f,0x00000460,0x0003003e, + 0x000003c6,0x00000461,0x000200f9,0x00000455,0x000200f8,0x00000455,0x0004003d,0x0000000d, + 0x00000464,0x000003f6,0x0003003e,0x00000463,0x00000464,0x00050039,0x0000000d,0x00000465, + 0x00000071,0x00000463,0x0003003e,0x00000462,0x00000465,0x0004003d,0x00000008,0x00000466, + 0x000003c6,0x00050041,0x00000013,0x00000467,0x00000462,0x000000ad,0x0004003d,0x00000008, + 0x00000468,0x00000467,0x00050085,0x00000008,0x00000469,0x00000468,0x00000466,0x00050041, + 0x00000013,0x0000046a,0x00000462,0x000000ad,0x0003003e,0x0000046a,0x00000469,0x0004003d, + 0x00000008,0x0000046b,0x00000394,0x0004003d,0x00000008,0x0000046c,0x0000039a,0x000500b7, + 0x000000ce,0x0000046d,0x0000046b,0x0000046c,0x000300f7,0x0000046f,0x00000000,0x000400fa, + 0x0000046d,0x0000046e,0x00000474,0x000200f8,0x0000046e,0x0004003d,0x0000041f,0x00000471, + 0x00000433,0x00050062,0x0000000d,0x00000472,0x00000471,0x0000038f,0x0003003e,0x00000470, + 0x00000472,0x0004003d,0x0000000d,0x00000473,0x00000470,0x0003003e,0x00000417,0x00000473, + 0x000200f9,0x0000046f,0x000200f8,0x00000474,0x0004003d,0x0000041f,0x00000475,0x00000421, + 0x00050062,0x0000000d,0x00000476,0x00000475,0x0000038f,0x0003003e,0x00000470,0x00000476, + 0x0004003d,0x0000041f,0x00000477,0x00000421,0x00050062,0x0000000d,0x00000478,0x00000477, + 0x0000038f,0x0003003e,0x00000417,0x00000478,0x000200f9,0x0000046f,0x000200f8,0x0000046f, + 0x000300f7,0x0000047b,0x00000000,0x000400fa,0x00000479,0x0000047a,0x0000047b,0x000200f8, + 0x0000047a,0x0004003d,0x00000008,0x0000047d,0x0000047c,0x0003003e,0x0000047e,0x00000088, + 0x00050039,0x00000008,0x0000047f,0x0000000b,0x0000047e,0x000500b7,0x000000ce,0x00000480, + 0x0000047d,0x0000047f,0x000200f9,0x0000047b,0x000200f8,0x0000047b,0x000700f5,0x000000ce, + 0x00000481,0x00000479,0x0000046f,0x00000480,0x0000047a,0x000300f7,0x00000483,0x00000000, + 0x000400fa,0x00000481,0x00000482,0x0000048f,0x000200f8,0x00000482,0x0004003d,0x0000000d, + 0x00000485,0x00000470,0x0003003e,0x00000484,0x00000485,0x00050039,0x0000000d,0x00000486, + 0x00000042,0x00000484,0x0004003d,0x00000008,0x00000488,0x0000047c,0x0003003e,0x00000487, + 0x00000488,0x00050039,0x00000006,0x00000489,0x00000016,0x00000487,0x0004003d,0x0000000d, + 0x0000048b,0x00000462,0x0003003e,0x0000048a,0x0000048b,0x0003003e,0x0000048c,0x00000486, + 0x0003003e,0x0000048d,0x00000489,0x00070039,0x0000000d,0x0000048e,0x0000006e,0x0000048a, + 0x0000048c,0x0000048d,0x0003003e,0x00000462,0x0000048e,0x000200f9,0x00000483,0x000200f8, + 0x0000048f,0x00050041,0x00000013,0x00000490,0x00000462,0x000000ad,0x0004003d,0x00000008, + 0x00000491,0x00000490,0x0004003d,0x0000000d,0x00000492,0x00000462,0x0008004f,0x00000022, + 0x00000493,0x00000492,0x00000492,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000022, + 0x00000494,0x00000493,0x00000491,0x00050041,0x00000013,0x00000495,0x00000462,0x00000088, + 0x00050051,0x00000008,0x00000496,0x00000494,0x00000000,0x0003003e,0x00000495,0x00000496, + 0x00050041,0x00000013,0x00000497,0x00000462,0x0000008b,0x00050051,0x00000008,0x00000498, + 0x00000494,0x00000001,0x0003003e,0x00000497,0x00000498,0x00050041,0x00000013,0x00000499, + 0x00000462,0x00000096,0x00050051,0x00000008,0x0000049a,0x00000494,0x00000002,0x0003003e, + 0x00000499,0x0000049a,0x0004003d,0x0000000d,0x0000049b,0x00000462,0x0004003d,0x0000000d, + 0x0000049c,0x00000470,0x00050041,0x00000013,0x0000049d,0x00000462,0x000000ad,0x0004003d, + 0x00000008,0x0000049e,0x0000049d,0x00050083,0x00000008,0x0000049f,0x000000d7,0x0000049e, + 0x0005008e,0x0000000d,0x000004a0,0x0000049c,0x0000049f,0x00050081,0x0000000d,0x000004a1, + 0x0000049b,0x000004a0,0x0003003e,0x00000462,0x000004a1,0x000200f9,0x00000483,0x000200f8, + 0x00000483,0x0004003d,0x0000000d,0x000004a2,0x00000462,0x0003003e,0x00000432,0x000004a2, + 0x0004003d,0x0000038a,0x000004a3,0x000003fe,0x00050062,0x00000390,0x000004a4,0x000004a3, + 0x0000038f,0x00050051,0x00000006,0x000004a5,0x000004a4,0x00000000,0x00050041,0x000003c1, + 0x000004a6,0x0000042a,0x00000088,0x0003003e,0x000004a6,0x000004a5,0x000200f9,0x000003ed, + 0x000200f8,0x000003ed,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003b,0x00000013, + 0x00000075,0x00000007,0x0004003d,0x00000006,0x00000073,0x0000000a,0x00040070,0x00000008, + 0x00000074,0x00000073,0x0003003e,0x00000075,0x00000074,0x0004003d,0x00000008,0x00000076, + 0x00000075,0x000200fe,0x00000076,0x00010038,0x00050036,0x0000000d,0x00000011,0x00000000, + 0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012,0x0004003b,0x0000000e, + 0x0000007a,0x00000007,0x0004003d,0x0000000d,0x00000079,0x00000010,0x0003003e,0x0000007a, + 0x00000079,0x0004003d,0x0000000d,0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038, + 0x00050036,0x00000006,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013,0x00000015, + 0x000200f8,0x00000017,0x0004003d,0x00000008,0x0000007e,0x00000015,0x0004006d,0x00000006, + 0x0000007f,0x0000007e,0x000200fe,0x0000007f,0x00010038,0x00050036,0x00000008,0x0000001a, + 0x00000000,0x00000018,0x00030037,0x00000013,0x00000019,0x000200f8,0x0000001b,0x0004003d, + 0x00000008,0x00000082,0x00000019,0x000200fe,0x00000082,0x00010038,0x00050036,0x0000001c, + 0x00000020,0x00000000,0x0000001d,0x00030037,0x00000013,0x0000001e,0x00030037,0x00000013, + 0x0000001f,0x000200f8,0x00000021,0x0004003b,0x00000085,0x00000086,0x00000007,0x0004003d, + 0x00000008,0x00000087,0x0000001e,0x00050041,0x00000013,0x00000089,0x00000086,0x00000088, + 0x0003003e,0x00000089,0x00000087,0x0004003d,0x00000008,0x0000008a,0x0000001f,0x00050041, + 0x00000013,0x0000008c,0x00000086,0x0000008b,0x0003003e,0x0000008c,0x0000008a,0x0004003d, + 0x0000001c,0x0000008d,0x00000086,0x000200fe,0x0000008d,0x00010038,0x00050036,0x00000022, + 0x00000027,0x00000000,0x00000023,0x00030037,0x00000013,0x00000024,0x00030037,0x00000013, + 0x00000025,0x00030037,0x00000013,0x00000026,0x000200f8,0x00000028,0x0004003b,0x00000034, + 0x00000090,0x00000007,0x0004003d,0x00000008,0x00000091,0x00000024,0x00050041,0x00000013, + 0x00000092,0x00000090,0x00000088,0x0003003e,0x00000092,0x00000091,0x0004003d,0x00000008, + 0x00000093,0x00000025,0x00050041,0x00000013,0x00000094,0x00000090,0x0000008b,0x0003003e, + 0x00000094,0x00000093,0x0004003d,0x00000008,0x00000095,0x00000026,0x00050041,0x00000013, + 0x00000097,0x00000090,0x00000096,0x0003003e,0x00000097,0x00000095,0x0004003d,0x00000022, + 0x00000098,0x00000090,0x000200fe,0x00000098,0x00010038,0x00050036,0x00000022,0x0000002b, + 0x00000000,0x00000029,0x00030037,0x00000013,0x0000002a,0x000200f8,0x0000002c,0x0004003b, + 0x00000034,0x0000009b,0x00000007,0x0004003d,0x00000008,0x0000009c,0x0000002a,0x00050041, + 0x00000013,0x0000009d,0x0000009b,0x00000088,0x0003003e,0x0000009d,0x0000009c,0x0004003d, + 0x00000008,0x0000009e,0x0000002a,0x00050041,0x00000013,0x0000009f,0x0000009b,0x0000008b, + 0x0003003e,0x0000009f,0x0000009e,0x0004003d,0x00000008,0x000000a0,0x0000002a,0x00050041, + 0x00000013,0x000000a1,0x0000009b,0x00000096,0x0003003e,0x000000a1,0x000000a0,0x0004003d, + 0x00000022,0x000000a2,0x0000009b,0x000200fe,0x000000a2,0x00010038,0x00050036,0x0000000d, + 0x00000032,0x00000000,0x0000002d,0x00030037,0x00000013,0x0000002e,0x00030037,0x00000013, + 0x0000002f,0x00030037,0x00000013,0x00000030,0x00030037,0x00000013,0x00000031,0x000200f8, + 0x00000033,0x0004003b,0x0000000e,0x000000a5,0x00000007,0x0004003d,0x00000008,0x000000a6, + 0x0000002e,0x00050041,0x00000013,0x000000a7,0x000000a5,0x00000088,0x0003003e,0x000000a7, + 0x000000a6,0x0004003d,0x00000008,0x000000a8,0x0000002f,0x00050041,0x00000013,0x000000a9, + 0x000000a5,0x0000008b,0x0003003e,0x000000a9,0x000000a8,0x0004003d,0x00000008,0x000000aa, + 0x00000030,0x00050041,0x00000013,0x000000ab,0x000000a5,0x00000096,0x0003003e,0x000000ab, + 0x000000aa,0x0004003d,0x00000008,0x000000ac,0x00000031,0x00050041,0x00000013,0x000000ae, + 0x000000a5,0x000000ad,0x0003003e,0x000000ae,0x000000ac,0x0004003d,0x0000000d,0x000000af, + 0x000000a5,0x000200fe,0x000000af,0x00010038,0x00050036,0x0000000d,0x00000038,0x00000000, + 0x00000035,0x00030037,0x00000034,0x00000036,0x00030037,0x00000013,0x00000037,0x000200f8, + 0x00000039,0x0004003b,0x0000000e,0x000000b2,0x00000007,0x0004003d,0x00000022,0x000000b3, + 0x00000036,0x00050041,0x00000013,0x000000b4,0x000000b2,0x00000088,0x00050051,0x00000008, + 0x000000b5,0x000000b3,0x00000000,0x0003003e,0x000000b4,0x000000b5,0x00050041,0x00000013, + 0x000000b6,0x000000b2,0x0000008b,0x00050051,0x00000008,0x000000b7,0x000000b3,0x00000001, + 0x0003003e,0x000000b6,0x000000b7,0x00050041,0x00000013,0x000000b8,0x000000b2,0x00000096, + 0x00050051,0x00000008,0x000000b9,0x000000b3,0x00000002,0x0003003e,0x000000b8,0x000000b9, + 0x0004003d,0x00000008,0x000000ba,0x00000037,0x00050041,0x00000013,0x000000bb,0x000000b2, + 0x000000ad,0x0003003e,0x000000bb,0x000000ba,0x0004003d,0x0000000d,0x000000bc,0x000000b2, + 0x000200fe,0x000000bc,0x00010038,0x00050036,0x0000003a,0x0000003f,0x00000000,0x0000003b, + 0x00030037,0x00000034,0x0000003c,0x00030037,0x00000034,0x0000003d,0x00030037,0x00000034, + 0x0000003e,0x000200f8,0x00000040,0x0004003b,0x000000bf,0x000000c0,0x00000007,0x0004003d, + 0x00000022,0x000000c3,0x0000003c,0x00050041,0x00000034,0x000000c4,0x000000c0,0x000000c2, + 0x0003003e,0x000000c4,0x000000c3,0x0004003d,0x00000022,0x000000c6,0x0000003d,0x00050041, + 0x00000034,0x000000c7,0x000000c0,0x000000c5,0x0003003e,0x000000c7,0x000000c6,0x0004003d, + 0x00000022,0x000000c9,0x0000003e,0x00050041,0x00000034,0x000000ca,0x000000c0,0x000000c8, + 0x0003003e,0x000000ca,0x000000c9,0x0004003d,0x0000003a,0x000000cb,0x000000c0,0x000200fe, + 0x000000cb,0x00010038,0x00050036,0x0000000d,0x00000042,0x00000000,0x0000000f,0x00030037, + 0x0000000e,0x00000041,0x000200f8,0x00000043,0x0004003b,0x00000013,0x000000ea,0x00000007, + 0x0004003b,0x00000013,0x000000ef,0x00000007,0x00050041,0x00000013,0x000000d0,0x00000041, + 0x000000ad,0x0004003d,0x00000008,0x000000d1,0x000000d0,0x000500b8,0x000000ce,0x000000d2, + 0x000000cf,0x000000d1,0x000300f7,0x000000d4,0x00000000,0x000400fa,0x000000d2,0x000000d3, + 0x000000d4,0x000200f8,0x000000d3,0x00050041,0x00000013,0x000000d5,0x00000041,0x000000ad, + 0x0004003d,0x00000008,0x000000d6,0x000000d5,0x000500b8,0x000000ce,0x000000d8,0x000000d6, + 0x000000d7,0x000200f9,0x000000d4,0x000200f8,0x000000d4,0x000700f5,0x000000ce,0x000000d9, + 0x000000d2,0x00000043,0x000000d8,0x000000d3,0x000300f7,0x000000db,0x00000000,0x000400fa, + 0x000000d9,0x000000da,0x000000db,0x000200f8,0x000000da,0x00050041,0x00000013,0x000000dc, + 0x00000041,0x000000ad,0x0004003d,0x00000008,0x000000dd,0x000000dc,0x00050088,0x00000008, + 0x000000de,0x000000d7,0x000000dd,0x0004003d,0x0000000d,0x000000df,0x00000041,0x0008004f, + 0x00000022,0x000000e0,0x000000df,0x000000df,0x00000000,0x00000001,0x00000002,0x0005008e, + 0x00000022,0x000000e1,0x000000e0,0x000000de,0x00050041,0x00000013,0x000000e2,0x00000041, + 0x00000088,0x00050051,0x00000008,0x000000e3,0x000000e1,0x00000000,0x0003003e,0x000000e2, + 0x000000e3,0x00050041,0x00000013,0x000000e4,0x00000041,0x0000008b,0x00050051,0x00000008, + 0x000000e5,0x000000e1,0x00000001,0x0003003e,0x000000e4,0x000000e5,0x00050041,0x00000013, + 0x000000e6,0x00000041,0x00000096,0x00050051,0x00000008,0x000000e7,0x000000e1,0x00000002, + 0x0003003e,0x000000e6,0x000000e7,0x0004003d,0x0000000d,0x000000e8,0x00000041,0x0008004f, + 0x00000022,0x000000e9,0x000000e8,0x000000e8,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x000000ea,0x000000d7,0x00050039,0x00000022,0x000000eb,0x0000002b,0x000000ea,0x0004003d, + 0x0000000d,0x000000ec,0x00000041,0x0008004f,0x00000022,0x000000ed,0x000000ec,0x000000ec, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x000000ef,0x000000ee,0x00050039,0x00000022, + 0x000000f0,0x0000002b,0x000000ef,0x000500ba,0x000000f1,0x000000f2,0x000000ed,0x000000f0, + 0x000600a9,0x00000022,0x000000f3,0x000000f2,0x000000eb,0x000000e9,0x00050041,0x00000013, + 0x000000f4,0x00000041,0x00000088,0x00050051,0x00000008,0x000000f5,0x000000f3,0x00000000, + 0x0003003e,0x000000f4,0x000000f5,0x00050041,0x00000013,0x000000f6,0x00000041,0x0000008b, + 0x00050051,0x00000008,0x000000f7,0x000000f3,0x00000001,0x0003003e,0x000000f6,0x000000f7, + 0x00050041,0x00000013,0x000000f8,0x00000041,0x00000096,0x00050051,0x00000008,0x000000f9, + 0x000000f3,0x00000002,0x0003003e,0x000000f8,0x000000f9,0x000200f9,0x000000db,0x000200f8, + 0x000000db,0x0004003d,0x0000000d,0x000000fa,0x00000041,0x000200fe,0x000000fa,0x00010038, + 0x00050036,0x00000008,0x00000046,0x00000000,0x00000044,0x00030037,0x0000000e,0x00000045, + 0x000200f8,0x00000047,0x0004003b,0x00000085,0x000000fd,0x00000007,0x0004003b,0x00000013, + 0x00000103,0x00000007,0x0004003d,0x0000000d,0x000000fe,0x00000045,0x0007004f,0x0000001c, + 0x000000ff,0x000000fe,0x000000fe,0x00000000,0x00000001,0x0004003d,0x0000000d,0x00000100, + 0x00000045,0x0007004f,0x0000001c,0x00000101,0x00000100,0x00000100,0x00000002,0x00000003, + 0x0007000c,0x0000001c,0x00000102,0x00000001,0x00000025,0x000000ff,0x00000101,0x0003003e, + 0x000000fd,0x00000102,0x00050041,0x00000013,0x00000104,0x000000fd,0x00000088,0x0004003d, + 0x00000008,0x00000105,0x00000104,0x00050041,0x00000013,0x00000106,0x000000fd,0x0000008b, + 0x0004003d,0x00000008,0x00000107,0x00000106,0x0007000c,0x00000008,0x00000108,0x00000001, + 0x00000025,0x00000105,0x00000107,0x0003003e,0x00000103,0x00000108,0x0004003d,0x00000008, + 0x00000109,0x00000103,0x000200fe,0x00000109,0x00010038,0x00050036,0x00000008,0x0000004a, + 0x00000000,0x00000048,0x00030037,0x00000034,0x00000049,0x000200f8,0x0000004b,0x00050041, + 0x00000013,0x0000010c,0x00000049,0x00000088,0x0004003d,0x00000008,0x0000010d,0x0000010c, + 0x00050041,0x00000013,0x0000010e,0x00000049,0x0000008b,0x0004003d,0x00000008,0x0000010f, + 0x0000010e,0x0007000c,0x00000008,0x00000110,0x00000001,0x00000025,0x0000010d,0x0000010f, + 0x00050041,0x00000013,0x00000111,0x00000049,0x00000096,0x0004003d,0x00000008,0x00000112, + 0x00000111,0x0007000c,0x00000008,0x00000113,0x00000001,0x00000025,0x00000110,0x00000112, + 0x000200fe,0x00000113,0x00010038,0x00050036,0x00000008,0x0000004d,0x00000000,0x00000048, + 0x00030037,0x00000034,0x0000004c,0x000200f8,0x0000004e,0x00050041,0x00000013,0x00000116, + 0x0000004c,0x00000088,0x0004003d,0x00000008,0x00000117,0x00000116,0x00050041,0x00000013, + 0x00000118,0x0000004c,0x0000008b,0x0004003d,0x00000008,0x00000119,0x00000118,0x0007000c, + 0x00000008,0x0000011a,0x00000001,0x00000028,0x00000117,0x00000119,0x00050041,0x00000013, + 0x0000011b,0x0000004c,0x00000096,0x0004003d,0x00000008,0x0000011c,0x0000011b,0x0007000c, + 0x00000008,0x0000011d,0x00000001,0x00000028,0x0000011a,0x0000011c,0x000200fe,0x0000011d, + 0x00010038,0x00050036,0x00000008,0x00000050,0x00000000,0x00000048,0x00030037,0x00000034, + 0x0000004f,0x000200f8,0x00000051,0x0004003b,0x00000013,0x00000124,0x00000007,0x0004003b, + 0x00000013,0x00000125,0x00000007,0x0004003b,0x00000013,0x00000126,0x00000007,0x0004003d, + 0x00000022,0x00000120,0x0000004f,0x0003003e,0x00000124,0x00000121,0x0003003e,0x00000125, + 0x00000122,0x0003003e,0x00000126,0x00000123,0x00070039,0x00000022,0x00000127,0x00000027, + 0x00000124,0x00000125,0x00000126,0x00050094,0x00000008,0x00000128,0x00000120,0x00000127, + 0x000200fe,0x00000128,0x00010038,0x00050036,0x00000008,0x00000053,0x00000000,0x00000048, + 0x00030037,0x00000034,0x00000052,0x000200f8,0x00000054,0x0004003b,0x00000034,0x0000012b, + 0x00000007,0x0004003b,0x00000034,0x0000012e,0x00000007,0x0004003d,0x00000022,0x0000012c, + 0x00000052,0x0003003e,0x0000012b,0x0000012c,0x00050039,0x00000008,0x0000012d,0x0000004d, + 0x0000012b,0x0004003d,0x00000022,0x0000012f,0x00000052,0x0003003e,0x0000012e,0x0000012f, + 0x00050039,0x00000008,0x00000130,0x0000004a,0x0000012e,0x00050083,0x00000008,0x00000131, + 0x0000012d,0x00000130,0x000200fe,0x00000131,0x00010038,0x00050036,0x00000022,0x00000057, + 0x00000000,0x00000055,0x00030037,0x00000034,0x00000056,0x000200f8,0x00000058,0x0004003b, + 0x00000013,0x00000134,0x00000007,0x0004003b,0x00000034,0x00000135,0x00000007,0x0004003b, + 0x00000013,0x00000138,0x00000007,0x0004003b,0x00000034,0x00000139,0x00000007,0x0004003b, + 0x00000013,0x0000013c,0x00000007,0x0004003b,0x00000034,0x0000013d,0x00000007,0x0004003d, + 0x00000022,0x00000136,0x00000056,0x0003003e,0x00000135,0x00000136,0x00050039,0x00000008, + 0x00000137,0x00000050,0x00000135,0x0003003e,0x00000134,0x00000137,0x0004003d,0x00000022, + 0x0000013a,0x00000056,0x0003003e,0x00000139,0x0000013a,0x00050039,0x00000008,0x0000013b, + 0x0000004a,0x00000139,0x0003003e,0x00000138,0x0000013b,0x0004003d,0x00000022,0x0000013e, + 0x00000056,0x0003003e,0x0000013d,0x0000013e,0x00050039,0x00000008,0x0000013f,0x0000004d, + 0x0000013d,0x0003003e,0x0000013c,0x0000013f,0x0004003d,0x00000008,0x00000140,0x00000138, + 0x000500b8,0x000000ce,0x00000141,0x00000140,0x000000cf,0x000300f7,0x00000143,0x00000000, + 0x000400fa,0x00000141,0x00000142,0x00000143,0x000200f8,0x00000142,0x0004003d,0x00000008, + 0x00000144,0x00000134,0x0004003d,0x00000022,0x00000145,0x00000056,0x0004003d,0x00000008, + 0x00000146,0x00000134,0x00060050,0x00000022,0x00000147,0x00000146,0x00000146,0x00000146, + 0x00050083,0x00000022,0x00000148,0x00000145,0x00000147,0x0004003d,0x00000008,0x00000149, + 0x00000134,0x0005008e,0x00000022,0x0000014a,0x00000148,0x00000149,0x0004003d,0x00000008, + 0x0000014b,0x00000134,0x0004003d,0x00000008,0x0000014c,0x00000138,0x00050083,0x00000008, + 0x0000014d,0x0000014b,0x0000014c,0x00060050,0x00000022,0x0000014e,0x0000014d,0x0000014d, + 0x0000014d,0x00050088,0x00000022,0x0000014f,0x0000014a,0x0000014e,0x00060050,0x00000022, + 0x00000150,0x00000144,0x00000144,0x00000144,0x00050081,0x00000022,0x00000151,0x00000150, + 0x0000014f,0x0003003e,0x00000056,0x00000151,0x000200f9,0x00000143,0x000200f8,0x00000143, + 0x0004003d,0x00000008,0x00000152,0x0000013c,0x000500ba,0x000000ce,0x00000153,0x00000152, + 0x000000d7,0x000300f7,0x00000155,0x00000000,0x000400fa,0x00000153,0x00000154,0x00000155, + 0x000200f8,0x00000154,0x0004003d,0x00000008,0x00000156,0x00000134,0x0004003d,0x00000022, + 0x00000157,0x00000056,0x0004003d,0x00000008,0x00000158,0x00000134,0x00060050,0x00000022, + 0x00000159,0x00000158,0x00000158,0x00000158,0x00050083,0x00000022,0x0000015a,0x00000157, + 0x00000159,0x0004003d,0x00000008,0x0000015b,0x00000134,0x00050083,0x00000008,0x0000015c, + 0x000000d7,0x0000015b,0x0005008e,0x00000022,0x0000015d,0x0000015a,0x0000015c,0x0004003d, + 0x00000008,0x0000015e,0x0000013c,0x0004003d,0x00000008,0x0000015f,0x00000134,0x00050083, + 0x00000008,0x00000160,0x0000015e,0x0000015f,0x00060050,0x00000022,0x00000161,0x00000160, + 0x00000160,0x00000160,0x00050088,0x00000022,0x00000162,0x0000015d,0x00000161,0x00060050, + 0x00000022,0x00000163,0x00000156,0x00000156,0x00000156,0x00050081,0x00000022,0x00000164, + 0x00000163,0x00000162,0x0003003e,0x00000056,0x00000164,0x000200f9,0x00000155,0x000200f8, + 0x00000155,0x0004003d,0x00000022,0x00000165,0x00000056,0x000200fe,0x00000165,0x00010038, + 0x00050036,0x00000022,0x0000005c,0x00000000,0x00000059,0x00030037,0x00000034,0x0000005a, + 0x00030037,0x00000034,0x0000005b,0x000200f8,0x0000005d,0x0004003b,0x00000013,0x00000168, + 0x00000007,0x0004003b,0x00000034,0x00000169,0x00000007,0x0004003b,0x00000013,0x0000016c, + 0x00000007,0x0004003b,0x00000034,0x0000016d,0x00000007,0x0004003b,0x00000013,0x00000170, + 0x00000007,0x0004003b,0x00000034,0x00000174,0x00000007,0x0004003b,0x00000013,0x00000176, + 0x00000007,0x0004003b,0x00000034,0x0000017a,0x00000007,0x0004003d,0x00000022,0x0000016a, + 0x0000005a,0x0003003e,0x00000169,0x0000016a,0x00050039,0x00000008,0x0000016b,0x00000050, + 0x00000169,0x0003003e,0x00000168,0x0000016b,0x0004003d,0x00000022,0x0000016e,0x0000005b, + 0x0003003e,0x0000016d,0x0000016e,0x00050039,0x00000008,0x0000016f,0x00000050,0x0000016d, + 0x0003003e,0x0000016c,0x0000016f,0x0004003d,0x00000008,0x00000171,0x0000016c,0x0004003d, + 0x00000008,0x00000172,0x00000168,0x00050083,0x00000008,0x00000173,0x00000171,0x00000172, + 0x0003003e,0x00000170,0x00000173,0x0004003d,0x00000022,0x00000175,0x0000005a,0x0004003d, + 0x00000008,0x00000177,0x00000170,0x0003003e,0x00000176,0x00000177,0x00050039,0x00000022, + 0x00000178,0x0000002b,0x00000176,0x00050081,0x00000022,0x00000179,0x00000175,0x00000178, + 0x0003003e,0x00000174,0x00000179,0x0004003d,0x00000022,0x0000017b,0x00000174,0x0003003e, + 0x0000017a,0x0000017b,0x00050039,0x00000022,0x0000017c,0x00000057,0x0000017a,0x000200fe, + 0x0000017c,0x00010038,0x00050036,0x00000022,0x00000062,0x00000000,0x0000005e,0x00030037, + 0x00000034,0x0000005f,0x00030037,0x00000034,0x00000060,0x00030037,0x00000034,0x00000061, + 0x000200f8,0x00000063,0x0004003b,0x00000013,0x0000017f,0x00000007,0x0004003b,0x00000034, + 0x00000180,0x00000007,0x0004003b,0x00000013,0x00000183,0x00000007,0x0004003b,0x00000034, + 0x00000184,0x00000007,0x0004003b,0x00000013,0x00000187,0x00000007,0x0004003b,0x00000034, + 0x00000188,0x00000007,0x0004003b,0x00000034,0x0000018f,0x00000007,0x0004003b,0x00000013, + 0x0000019a,0x00000007,0x0004003b,0x00000034,0x0000019c,0x00000007,0x0004003b,0x00000034, + 0x0000019e,0x00000007,0x0004003d,0x00000022,0x00000181,0x0000005f,0x0003003e,0x00000180, + 0x00000181,0x00050039,0x00000008,0x00000182,0x0000004a,0x00000180,0x0003003e,0x0000017f, + 0x00000182,0x0004003d,0x00000022,0x00000185,0x0000005f,0x0003003e,0x00000184,0x00000185, + 0x00050039,0x00000008,0x00000186,0x00000053,0x00000184,0x0003003e,0x00000183,0x00000186, + 0x0004003d,0x00000022,0x00000189,0x00000060,0x0003003e,0x00000188,0x00000189,0x00050039, + 0x00000008,0x0000018a,0x00000053,0x00000188,0x0003003e,0x00000187,0x0000018a,0x0004003d, + 0x00000008,0x0000018b,0x00000183,0x000500ba,0x000000ce,0x0000018c,0x0000018b,0x000000cf, + 0x000300f7,0x0000018e,0x00000000,0x000400fa,0x0000018c,0x0000018d,0x00000199,0x000200f8, + 0x0000018d,0x0004003d,0x00000022,0x00000190,0x0000005f,0x0004003d,0x00000008,0x00000191, + 0x0000017f,0x00060050,0x00000022,0x00000192,0x00000191,0x00000191,0x00000191,0x00050083, + 0x00000022,0x00000193,0x00000190,0x00000192,0x0004003d,0x00000008,0x00000194,0x00000187, + 0x0005008e,0x00000022,0x00000195,0x00000193,0x00000194,0x0004003d,0x00000008,0x00000196, + 0x00000183,0x00060050,0x00000022,0x00000197,0x00000196,0x00000196,0x00000196,0x00050088, + 0x00000022,0x00000198,0x00000195,0x00000197,0x0003003e,0x0000018f,0x00000198,0x000200f9, + 0x0000018e,0x000200f8,0x00000199,0x0003003e,0x0000019a,0x000000cf,0x00050039,0x00000022, + 0x0000019b,0x0000002b,0x0000019a,0x0003003e,0x0000018f,0x0000019b,0x000200f9,0x0000018e, + 0x000200f8,0x0000018e,0x0004003d,0x00000022,0x0000019d,0x0000018f,0x0003003e,0x0000019c, + 0x0000019d,0x0004003d,0x00000022,0x0000019f,0x00000061,0x0003003e,0x0000019e,0x0000019f, + 0x00060039,0x00000022,0x000001a0,0x0000005c,0x0000019c,0x0000019e,0x000200fe,0x000001a0, + 0x00010038,0x00050036,0x00000022,0x00000068,0x00000000,0x00000064,0x00030037,0x00000034, + 0x00000065,0x00030037,0x00000034,0x00000066,0x00030037,0x00000007,0x00000067,0x000200f8, + 0x00000069,0x0004003b,0x00000034,0x000001b4,0x00000007,0x0004003b,0x000001c1,0x000001c2, + 0x00000007,0x0004003b,0x00000013,0x000001fb,0x00000007,0x0004003b,0x00000013,0x000001fe, + 0x00000007,0x0004003b,0x00000013,0x00000201,0x00000007,0x0004003b,0x00000013,0x0000020f, + 0x00000007,0x0004003b,0x00000013,0x00000212,0x00000007,0x0004003b,0x000001c1,0x00000217, + 0x00000007,0x0004003b,0x000001c1,0x00000240,0x00000007,0x0004003b,0x00000013,0x000002b1, + 0x00000007,0x0004003b,0x00000013,0x000002b3,0x00000007,0x0004003b,0x00000034,0x000002b6, + 0x00000007,0x0004003b,0x00000034,0x000002b8,0x00000007,0x0004003b,0x00000034,0x000002ba, + 0x00000007,0x0004003b,0x00000013,0x000002c1,0x00000007,0x0004003b,0x00000013,0x000002c3, + 0x00000007,0x0004003b,0x00000034,0x000002c6,0x00000007,0x0004003b,0x00000034,0x000002c8, + 0x00000007,0x0004003b,0x00000034,0x000002ca,0x00000007,0x0004003b,0x00000013,0x000002d1, + 0x00000007,0x0004003b,0x00000013,0x000002d3,0x00000007,0x0004003b,0x00000034,0x000002d6, + 0x00000007,0x0004003b,0x00000034,0x000002d8,0x00000007,0x0004003b,0x00000013,0x000002df, + 0x00000007,0x0004003b,0x00000013,0x000002e1,0x00000007,0x0004003b,0x00000034,0x000002e4, + 0x00000007,0x0004003b,0x00000034,0x000002e6,0x00000007,0x0004003d,0x00000006,0x000001a3, + 0x00000067,0x000300f7,0x000001b3,0x00000000,0x002100fb,0x000001a3,0x000001b3,0x0000000b, + 0x000001a4,0x00000001,0x000001a5,0x00000002,0x000001a6,0x00000003,0x000001a7,0x00000004, + 0x000001a8,0x00000005,0x000001a9,0x00000006,0x000001aa,0x00000007,0x000001ab,0x00000008, + 0x000001ac,0x00000009,0x000001ad,0x0000000a,0x000001ae,0x0000000c,0x000001af,0x0000000d, + 0x000001b0,0x0000000e,0x000001b1,0x0000000f,0x000001b2,0x000200f8,0x000001a4,0x0004003d, + 0x00000022,0x000001b5,0x00000065,0x0004003d,0x00000022,0x000001b6,0x00000066,0x00050085, + 0x00000022,0x000001b7,0x000001b5,0x000001b6,0x0003003e,0x000001b4,0x000001b7,0x000200f9, + 0x000001b3,0x000200f8,0x000001a5,0x0004003d,0x00000022,0x000001b9,0x00000065,0x0004003d, + 0x00000022,0x000001ba,0x00000066,0x00050081,0x00000022,0x000001bb,0x000001b9,0x000001ba, + 0x0004003d,0x00000022,0x000001bc,0x00000065,0x0004003d,0x00000022,0x000001bd,0x00000066, + 0x00050085,0x00000022,0x000001be,0x000001bc,0x000001bd,0x00050083,0x00000022,0x000001bf, + 0x000001bb,0x000001be,0x0003003e,0x000001b4,0x000001bf,0x000200f9,0x000001b3,0x000200f8, + 0x000001a6,0x0003003e,0x000001c2,0x000000c2,0x000200f9,0x000001c3,0x000200f8,0x000001c3, + 0x000400f6,0x000001c5,0x000001c6,0x00000000,0x000200f9,0x000001c7,0x000200f8,0x000001c7, + 0x0004003d,0x000000c1,0x000001c8,0x000001c2,0x000500b1,0x000000ce,0x000001ca,0x000001c8, + 0x000001c9,0x000400fa,0x000001ca,0x000001c4,0x000001c5,0x000200f8,0x000001c4,0x0004003d, + 0x000000c1,0x000001cb,0x000001c2,0x00050041,0x00000013,0x000001cc,0x00000066,0x000001cb, + 0x0004003d,0x00000008,0x000001cd,0x000001cc,0x000500bc,0x000000ce,0x000001cf,0x000001cd, + 0x000001ce,0x000300f7,0x000001d1,0x00000000,0x000400fa,0x000001cf,0x000001d0,0x000001dd, + 0x000200f8,0x000001d0,0x0004003d,0x000000c1,0x000001d2,0x000001c2,0x0004003d,0x000000c1, + 0x000001d4,0x000001c2,0x00050041,0x00000013,0x000001d5,0x00000065,0x000001d4,0x0004003d, + 0x00000008,0x000001d6,0x000001d5,0x00050085,0x00000008,0x000001d7,0x000001d3,0x000001d6, + 0x0004003d,0x000000c1,0x000001d8,0x000001c2,0x00050041,0x00000013,0x000001d9,0x00000066, + 0x000001d8,0x0004003d,0x00000008,0x000001da,0x000001d9,0x00050085,0x00000008,0x000001db, + 0x000001d7,0x000001da,0x00050041,0x00000013,0x000001dc,0x000001b4,0x000001d2,0x0003003e, + 0x000001dc,0x000001db,0x000200f9,0x000001d1,0x000200f8,0x000001dd,0x0004003d,0x000000c1, + 0x000001de,0x000001c2,0x0004003d,0x000000c1,0x000001df,0x000001c2,0x00050041,0x00000013, + 0x000001e0,0x00000065,0x000001df,0x0004003d,0x00000008,0x000001e1,0x000001e0,0x00050083, + 0x00000008,0x000001e2,0x000000d7,0x000001e1,0x00050085,0x00000008,0x000001e3,0x000001d3, + 0x000001e2,0x0004003d,0x000000c1,0x000001e4,0x000001c2,0x00050041,0x00000013,0x000001e5, + 0x00000066,0x000001e4,0x0004003d,0x00000008,0x000001e6,0x000001e5,0x00050083,0x00000008, + 0x000001e7,0x000000d7,0x000001e6,0x00050085,0x00000008,0x000001e8,0x000001e3,0x000001e7, + 0x00050083,0x00000008,0x000001e9,0x000000d7,0x000001e8,0x00050041,0x00000013,0x000001ea, + 0x000001b4,0x000001de,0x0003003e,0x000001ea,0x000001e9,0x000200f9,0x000001d1,0x000200f8, + 0x000001d1,0x000200f9,0x000001c6,0x000200f8,0x000001c6,0x0004003d,0x000000c1,0x000001eb, + 0x000001c2,0x00050080,0x000000c1,0x000001ec,0x000001eb,0x000000c5,0x0003003e,0x000001c2, + 0x000001ec,0x000200f9,0x000001c3,0x000200f8,0x000001c5,0x000200f9,0x000001b3,0x000200f8, + 0x000001a7,0x0004003d,0x00000022,0x000001ee,0x00000065,0x0004003d,0x00000022,0x000001ef, + 0x00000066,0x0007000c,0x00000022,0x000001f0,0x00000001,0x00000025,0x000001ee,0x000001ef, + 0x0003003e,0x000001b4,0x000001f0,0x000200f9,0x000001b3,0x000200f8,0x000001a8,0x0004003d, + 0x00000022,0x000001f2,0x00000065,0x0004003d,0x00000022,0x000001f3,0x00000066,0x0007000c, + 0x00000022,0x000001f4,0x00000001,0x00000028,0x000001f2,0x000001f3,0x0003003e,0x000001b4, + 0x000001f4,0x000200f9,0x000001b3,0x000200f8,0x000001a9,0x0004003d,0x00000022,0x000001f6, + 0x00000066,0x0004003d,0x00000022,0x000001f7,0x00000065,0x00060050,0x00000022,0x000001f8, + 0x000000d7,0x000000d7,0x000000d7,0x00050083,0x00000022,0x000001f9,0x000001f8,0x000001f7, + 0x00050088,0x00000022,0x000001fa,0x000001f6,0x000001f9,0x0003003e,0x000001fb,0x000000d7, + 0x00050039,0x00000022,0x000001fc,0x0000002b,0x000001fb,0x0007000c,0x00000022,0x000001fd, + 0x00000001,0x00000025,0x000001fa,0x000001fc,0x0003003e,0x000001fe,0x000000cf,0x00050039, + 0x00000022,0x000001ff,0x0000002b,0x000001fe,0x0004003d,0x00000022,0x00000200,0x00000066, + 0x0003003e,0x00000201,0x000000cf,0x00050039,0x00000022,0x00000202,0x0000002b,0x00000201, + 0x000500bc,0x000000f1,0x00000203,0x00000200,0x00000202,0x000600a9,0x00000022,0x00000204, + 0x00000203,0x000001ff,0x000001fd,0x0003003e,0x000001b4,0x00000204,0x000200f9,0x000001b3, + 0x000200f8,0x000001aa,0x0004003d,0x00000022,0x00000206,0x00000066,0x00060050,0x00000022, + 0x00000207,0x000000d7,0x000000d7,0x000000d7,0x00050083,0x00000022,0x00000208,0x00000207, + 0x00000206,0x0004003d,0x00000022,0x00000209,0x00000065,0x00050088,0x00000022,0x0000020a, + 0x00000208,0x00000209,0x00060050,0x00000022,0x0000020b,0x000000d7,0x000000d7,0x000000d7, + 0x0007000c,0x00000022,0x0000020c,0x00000001,0x00000025,0x0000020a,0x0000020b,0x00060050, + 0x00000022,0x0000020d,0x000000d7,0x000000d7,0x000000d7,0x00050083,0x00000022,0x0000020e, + 0x0000020d,0x0000020c,0x0003003e,0x0000020f,0x000000d7,0x00050039,0x00000022,0x00000210, + 0x0000002b,0x0000020f,0x0004003d,0x00000022,0x00000211,0x00000066,0x0003003e,0x00000212, + 0x000000d7,0x00050039,0x00000022,0x00000213,0x0000002b,0x00000212,0x000500be,0x000000f1, + 0x00000214,0x00000211,0x00000213,0x000600a9,0x00000022,0x00000215,0x00000214,0x00000210, + 0x0000020e,0x0003003e,0x000001b4,0x00000215,0x000200f9,0x000001b3,0x000200f8,0x000001ab, + 0x0003003e,0x00000217,0x000000c2,0x000200f9,0x00000218,0x000200f8,0x00000218,0x000400f6, + 0x0000021a,0x0000021b,0x00000000,0x000200f9,0x0000021c,0x000200f8,0x0000021c,0x0004003d, + 0x000000c1,0x0000021d,0x00000217,0x000500b1,0x000000ce,0x0000021e,0x0000021d,0x000001c9, + 0x000400fa,0x0000021e,0x00000219,0x0000021a,0x000200f8,0x00000219,0x0004003d,0x000000c1, + 0x0000021f,0x00000217,0x00050041,0x00000013,0x00000220,0x00000065,0x0000021f,0x0004003d, + 0x00000008,0x00000221,0x00000220,0x000500bc,0x000000ce,0x00000222,0x00000221,0x000001ce, + 0x000300f7,0x00000224,0x00000000,0x000400fa,0x00000222,0x00000223,0x0000022f,0x000200f8, + 0x00000223,0x0004003d,0x000000c1,0x00000225,0x00000217,0x0004003d,0x000000c1,0x00000226, + 0x00000217,0x00050041,0x00000013,0x00000227,0x00000065,0x00000226,0x0004003d,0x00000008, + 0x00000228,0x00000227,0x00050085,0x00000008,0x00000229,0x000001d3,0x00000228,0x0004003d, + 0x000000c1,0x0000022a,0x00000217,0x00050041,0x00000013,0x0000022b,0x00000066,0x0000022a, + 0x0004003d,0x00000008,0x0000022c,0x0000022b,0x00050085,0x00000008,0x0000022d,0x00000229, + 0x0000022c,0x00050041,0x00000013,0x0000022e,0x000001b4,0x00000225,0x0003003e,0x0000022e, + 0x0000022d,0x000200f9,0x00000224,0x000200f8,0x0000022f,0x0004003d,0x000000c1,0x00000230, + 0x00000217,0x0004003d,0x000000c1,0x00000231,0x00000217,0x00050041,0x00000013,0x00000232, + 0x00000065,0x00000231,0x0004003d,0x00000008,0x00000233,0x00000232,0x00050083,0x00000008, + 0x00000234,0x000000d7,0x00000233,0x00050085,0x00000008,0x00000235,0x000001d3,0x00000234, + 0x0004003d,0x000000c1,0x00000236,0x00000217,0x00050041,0x00000013,0x00000237,0x00000066, + 0x00000236,0x0004003d,0x00000008,0x00000238,0x00000237,0x00050083,0x00000008,0x00000239, + 0x000000d7,0x00000238,0x00050085,0x00000008,0x0000023a,0x00000235,0x00000239,0x00050083, + 0x00000008,0x0000023b,0x000000d7,0x0000023a,0x00050041,0x00000013,0x0000023c,0x000001b4, + 0x00000230,0x0003003e,0x0000023c,0x0000023b,0x000200f9,0x00000224,0x000200f8,0x00000224, + 0x000200f9,0x0000021b,0x000200f8,0x0000021b,0x0004003d,0x000000c1,0x0000023d,0x00000217, + 0x00050080,0x000000c1,0x0000023e,0x0000023d,0x000000c5,0x0003003e,0x00000217,0x0000023e, + 0x000200f9,0x00000218,0x000200f8,0x0000021a,0x000200f9,0x000001b3,0x000200f8,0x000001ac, + 0x0003003e,0x00000240,0x000000c2,0x000200f9,0x00000241,0x000200f8,0x00000241,0x000400f6, + 0x00000243,0x00000244,0x00000000,0x000200f9,0x00000245,0x000200f8,0x00000245,0x0004003d, + 0x000000c1,0x00000246,0x00000240,0x000500b1,0x000000ce,0x00000247,0x00000246,0x000001c9, + 0x000400fa,0x00000247,0x00000242,0x00000243,0x000200f8,0x00000242,0x0004003d,0x000000c1, + 0x00000248,0x00000240,0x00050041,0x00000013,0x00000249,0x00000065,0x00000248,0x0004003d, + 0x00000008,0x0000024a,0x00000249,0x000500bc,0x000000ce,0x0000024b,0x0000024a,0x000001ce, + 0x000300f7,0x0000024d,0x00000000,0x000400fa,0x0000024b,0x0000024c,0x00000262,0x000200f8, + 0x0000024c,0x0004003d,0x000000c1,0x0000024e,0x00000240,0x0004003d,0x000000c1,0x0000024f, + 0x00000240,0x00050041,0x00000013,0x00000250,0x00000066,0x0000024f,0x0004003d,0x00000008, + 0x00000251,0x00000250,0x0004003d,0x000000c1,0x00000252,0x00000240,0x00050041,0x00000013, + 0x00000253,0x00000065,0x00000252,0x0004003d,0x00000008,0x00000254,0x00000253,0x00050085, + 0x00000008,0x00000255,0x000001d3,0x00000254,0x00050083,0x00000008,0x00000256,0x000000d7, + 0x00000255,0x0004003d,0x000000c1,0x00000257,0x00000240,0x00050041,0x00000013,0x00000258, + 0x00000066,0x00000257,0x0004003d,0x00000008,0x00000259,0x00000258,0x00050085,0x00000008, + 0x0000025a,0x00000256,0x00000259,0x0004003d,0x000000c1,0x0000025b,0x00000240,0x00050041, + 0x00000013,0x0000025c,0x00000066,0x0000025b,0x0004003d,0x00000008,0x0000025d,0x0000025c, + 0x00050083,0x00000008,0x0000025e,0x000000d7,0x0000025d,0x00050085,0x00000008,0x0000025f, + 0x0000025a,0x0000025e,0x00050083,0x00000008,0x00000260,0x00000251,0x0000025f,0x00050041, + 0x00000013,0x00000261,0x000001b4,0x0000024e,0x0003003e,0x00000261,0x00000260,0x000200f9, + 0x0000024d,0x000200f8,0x00000262,0x0004003d,0x000000c1,0x00000263,0x00000240,0x00050041, + 0x00000013,0x00000264,0x00000066,0x00000263,0x0004003d,0x00000008,0x00000265,0x00000264, + 0x000500bc,0x000000ce,0x00000267,0x00000265,0x00000266,0x000300f7,0x00000269,0x00000000, + 0x000400fa,0x00000267,0x00000268,0x00000287,0x000200f8,0x00000268,0x0004003d,0x000000c1, + 0x0000026a,0x00000240,0x0004003d,0x000000c1,0x0000026b,0x00000240,0x00050041,0x00000013, + 0x0000026c,0x00000066,0x0000026b,0x0004003d,0x00000008,0x0000026d,0x0000026c,0x0004003d, + 0x000000c1,0x0000026e,0x00000240,0x00050041,0x00000013,0x0000026f,0x00000065,0x0000026e, + 0x0004003d,0x00000008,0x00000270,0x0000026f,0x00050085,0x00000008,0x00000271,0x000001d3, + 0x00000270,0x00050083,0x00000008,0x00000272,0x00000271,0x000000d7,0x0004003d,0x000000c1, + 0x00000273,0x00000240,0x00050041,0x00000013,0x00000274,0x00000066,0x00000273,0x0004003d, + 0x00000008,0x00000275,0x00000274,0x00050085,0x00000008,0x00000276,0x00000272,0x00000275, + 0x0004003d,0x000000c1,0x00000278,0x00000240,0x00050041,0x00000013,0x00000279,0x00000066, + 0x00000278,0x0004003d,0x00000008,0x0000027a,0x00000279,0x00050085,0x00000008,0x0000027b, + 0x00000277,0x0000027a,0x00050083,0x00000008,0x0000027d,0x0000027b,0x0000027c,0x0004003d, + 0x000000c1,0x0000027e,0x00000240,0x00050041,0x00000013,0x0000027f,0x00000066,0x0000027e, + 0x0004003d,0x00000008,0x00000280,0x0000027f,0x00050085,0x00000008,0x00000281,0x0000027d, + 0x00000280,0x00050081,0x00000008,0x00000283,0x00000281,0x00000282,0x00050085,0x00000008, + 0x00000284,0x00000276,0x00000283,0x00050081,0x00000008,0x00000285,0x0000026d,0x00000284, + 0x00050041,0x00000013,0x00000286,0x000001b4,0x0000026a,0x0003003e,0x00000286,0x00000285, + 0x000200f9,0x00000269,0x000200f8,0x00000287,0x0004003d,0x000000c1,0x00000288,0x00000240, + 0x0004003d,0x000000c1,0x00000289,0x00000240,0x00050041,0x00000013,0x0000028a,0x00000066, + 0x00000289,0x0004003d,0x00000008,0x0000028b,0x0000028a,0x0004003d,0x000000c1,0x0000028c, + 0x00000240,0x00050041,0x00000013,0x0000028d,0x00000065,0x0000028c,0x0004003d,0x00000008, + 0x0000028e,0x0000028d,0x00050085,0x00000008,0x0000028f,0x000001d3,0x0000028e,0x00050083, + 0x00000008,0x00000290,0x0000028f,0x000000d7,0x0004003d,0x000000c1,0x00000291,0x00000240, + 0x00050041,0x00000013,0x00000292,0x00000066,0x00000291,0x0004003d,0x00000008,0x00000293, + 0x00000292,0x0006000c,0x00000008,0x00000294,0x00000001,0x0000001f,0x00000293,0x0004003d, + 0x000000c1,0x00000295,0x00000240,0x00050041,0x00000013,0x00000296,0x00000066,0x00000295, + 0x0004003d,0x00000008,0x00000297,0x00000296,0x00050083,0x00000008,0x00000298,0x00000294, + 0x00000297,0x00050085,0x00000008,0x00000299,0x00000290,0x00000298,0x00050081,0x00000008, + 0x0000029a,0x0000028b,0x00000299,0x00050041,0x00000013,0x0000029b,0x000001b4,0x00000288, + 0x0003003e,0x0000029b,0x0000029a,0x000200f9,0x00000269,0x000200f8,0x00000269,0x000200f9, + 0x0000024d,0x000200f8,0x0000024d,0x000200f9,0x00000244,0x000200f8,0x00000244,0x0004003d, + 0x000000c1,0x0000029c,0x00000240,0x00050080,0x000000c1,0x0000029d,0x0000029c,0x000000c5, + 0x0003003e,0x00000240,0x0000029d,0x000200f9,0x00000241,0x000200f8,0x00000243,0x000200f9, + 0x000001b3,0x000200f8,0x000001ad,0x0004003d,0x00000022,0x0000029f,0x00000066,0x0004003d, + 0x00000022,0x000002a0,0x00000065,0x00050083,0x00000022,0x000002a1,0x0000029f,0x000002a0, + 0x0006000c,0x00000022,0x000002a2,0x00000001,0x00000004,0x000002a1,0x0003003e,0x000001b4, + 0x000002a2,0x000200f9,0x000001b3,0x000200f8,0x000001ae,0x0004003d,0x00000022,0x000002a4, + 0x00000065,0x0004003d,0x00000022,0x000002a5,0x00000066,0x00050081,0x00000022,0x000002a6, + 0x000002a4,0x000002a5,0x0004003d,0x00000022,0x000002a7,0x00000065,0x0005008e,0x00000022, + 0x000002a8,0x000002a7,0x000001d3,0x0004003d,0x00000022,0x000002a9,0x00000066,0x00050085, + 0x00000022,0x000002aa,0x000002a8,0x000002a9,0x00050083,0x00000022,0x000002ab,0x000002a6, + 0x000002aa,0x0003003e,0x000001b4,0x000002ab,0x000200f9,0x000001b3,0x000200f8,0x000001af, + 0x000300f7,0x000002af,0x00000000,0x000400fa,0x000002ad,0x000002ae,0x000002af,0x000200f8, + 0x000002ae,0x0004003d,0x00000022,0x000002b0,0x00000065,0x0003003e,0x000002b1,0x000000cf, + 0x00050039,0x00000022,0x000002b2,0x0000002b,0x000002b1,0x0003003e,0x000002b3,0x000000d7, + 0x00050039,0x00000022,0x000002b4,0x0000002b,0x000002b3,0x0008000c,0x00000022,0x000002b5, + 0x00000001,0x0000002b,0x000002b0,0x000002b2,0x000002b4,0x0003003e,0x00000065,0x000002b5, + 0x0004003d,0x00000022,0x000002b7,0x00000065,0x0003003e,0x000002b6,0x000002b7,0x0004003d, + 0x00000022,0x000002b9,0x00000066,0x0003003e,0x000002b8,0x000002b9,0x0004003d,0x00000022, + 0x000002bb,0x00000066,0x0003003e,0x000002ba,0x000002bb,0x00070039,0x00000022,0x000002bc, + 0x00000062,0x000002b6,0x000002b8,0x000002ba,0x0003003e,0x000001b4,0x000002bc,0x000200f9, + 0x000001b3,0x000200f8,0x000002af,0x000200f9,0x000001b0,0x000200f8,0x000001b0,0x000300f7, + 0x000002bf,0x00000000,0x000400fa,0x000002ad,0x000002be,0x000002bf,0x000200f8,0x000002be, + 0x0004003d,0x00000022,0x000002c0,0x00000065,0x0003003e,0x000002c1,0x000000cf,0x00050039, + 0x00000022,0x000002c2,0x0000002b,0x000002c1,0x0003003e,0x000002c3,0x000000d7,0x00050039, + 0x00000022,0x000002c4,0x0000002b,0x000002c3,0x0008000c,0x00000022,0x000002c5,0x00000001, + 0x0000002b,0x000002c0,0x000002c2,0x000002c4,0x0003003e,0x00000065,0x000002c5,0x0004003d, + 0x00000022,0x000002c7,0x00000066,0x0003003e,0x000002c6,0x000002c7,0x0004003d,0x00000022, + 0x000002c9,0x00000065,0x0003003e,0x000002c8,0x000002c9,0x0004003d,0x00000022,0x000002cb, + 0x00000066,0x0003003e,0x000002ca,0x000002cb,0x00070039,0x00000022,0x000002cc,0x00000062, + 0x000002c6,0x000002c8,0x000002ca,0x0003003e,0x000001b4,0x000002cc,0x000200f9,0x000001b3, + 0x000200f8,0x000002bf,0x000200f9,0x000001b1,0x000200f8,0x000001b1,0x000300f7,0x000002cf, + 0x00000000,0x000400fa,0x000002ad,0x000002ce,0x000002cf,0x000200f8,0x000002ce,0x0004003d, + 0x00000022,0x000002d0,0x00000065,0x0003003e,0x000002d1,0x000000cf,0x00050039,0x00000022, + 0x000002d2,0x0000002b,0x000002d1,0x0003003e,0x000002d3,0x000000d7,0x00050039,0x00000022, + 0x000002d4,0x0000002b,0x000002d3,0x0008000c,0x00000022,0x000002d5,0x00000001,0x0000002b, + 0x000002d0,0x000002d2,0x000002d4,0x0003003e,0x00000065,0x000002d5,0x0004003d,0x00000022, + 0x000002d7,0x00000065,0x0003003e,0x000002d6,0x000002d7,0x0004003d,0x00000022,0x000002d9, + 0x00000066,0x0003003e,0x000002d8,0x000002d9,0x00060039,0x00000022,0x000002da,0x0000005c, + 0x000002d6,0x000002d8,0x0003003e,0x000001b4,0x000002da,0x000200f9,0x000001b3,0x000200f8, + 0x000002cf,0x000200f9,0x000001b2,0x000200f8,0x000001b2,0x000300f7,0x000002dd,0x00000000, + 0x000400fa,0x000002ad,0x000002dc,0x000002dd,0x000200f8,0x000002dc,0x0004003d,0x00000022, + 0x000002de,0x00000065,0x0003003e,0x000002df,0x000000cf,0x00050039,0x00000022,0x000002e0, + 0x0000002b,0x000002df,0x0003003e,0x000002e1,0x000000d7,0x00050039,0x00000022,0x000002e2, + 0x0000002b,0x000002e1,0x0008000c,0x00000022,0x000002e3,0x00000001,0x0000002b,0x000002de, + 0x000002e0,0x000002e2,0x0003003e,0x00000065,0x000002e3,0x0004003d,0x00000022,0x000002e5, + 0x00000066,0x0003003e,0x000002e4,0x000002e5,0x0004003d,0x00000022,0x000002e7,0x00000065, + 0x0003003e,0x000002e6,0x000002e7,0x00060039,0x00000022,0x000002e8,0x0000005c,0x000002e4, + 0x000002e6,0x0003003e,0x000001b4,0x000002e8,0x000200f9,0x000001b3,0x000200f8,0x000002dd, + 0x000200f9,0x000001b3,0x000200f8,0x000001b3,0x0004003d,0x00000022,0x000002eb,0x000001b4, + 0x000200fe,0x000002eb,0x00010038,0x00050036,0x0000000d,0x0000006e,0x00000000,0x0000006a, + 0x00030037,0x0000000e,0x0000006b,0x00030037,0x0000000e,0x0000006c,0x00030037,0x00000007, + 0x0000006d,0x000200f8,0x0000006f,0x0004003b,0x00000034,0x000002ee,0x00000007,0x0004003b, + 0x00000034,0x000002ef,0x00000007,0x0004003b,0x00000034,0x000002f2,0x00000007,0x0004003b, + 0x00000007,0x000002f5,0x00000007,0x0004003b,0x00000013,0x000002f8,0x00000007,0x0004003b, + 0x00000034,0x000002fe,0x00000007,0x0004003b,0x00000013,0x00000307,0x00000007,0x0004003b, + 0x00000013,0x00000309,0x00000007,0x0004003b,0x00000013,0x0000030a,0x00000007,0x0004003b, + 0x00000034,0x0000030c,0x00000007,0x0004003b,0x00000034,0x0000030e,0x00000007,0x0004003b, + 0x00000034,0x00000311,0x00000007,0x0004003b,0x00000034,0x00000320,0x00000007,0x0004003b, + 0x00000013,0x00000321,0x00000007,0x0004003d,0x0000000d,0x000002f0,0x0000006b,0x0008004f, + 0x00000022,0x000002f1,0x000002f0,0x000002f0,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x000002ef,0x000002f1,0x0004003d,0x0000000d,0x000002f3,0x0000006c,0x0008004f,0x00000022, + 0x000002f4,0x000002f3,0x000002f3,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002f2, + 0x000002f4,0x0004003d,0x00000006,0x000002f6,0x0000006d,0x0003003e,0x000002f5,0x000002f6, + 0x00070039,0x00000022,0x000002f7,0x00000068,0x000002ef,0x000002f2,0x000002f5,0x0003003e, + 0x000002ee,0x000002f7,0x00050041,0x00000013,0x000002f9,0x0000006b,0x000000ad,0x0004003d, + 0x00000008,0x000002fa,0x000002f9,0x00050041,0x00000013,0x000002fb,0x0000006c,0x000000ad, + 0x0004003d,0x00000008,0x000002fc,0x000002fb,0x00050085,0x00000008,0x000002fd,0x000002fa, + 0x000002fc,0x0003003e,0x000002f8,0x000002fd,0x00050041,0x00000013,0x000002ff,0x0000006b, + 0x000000ad,0x0004003d,0x00000008,0x00000300,0x000002ff,0x0004003d,0x00000008,0x00000301, + 0x000002f8,0x00050083,0x00000008,0x00000302,0x00000300,0x00000301,0x00050041,0x00000013, + 0x00000303,0x0000006c,0x000000ad,0x0004003d,0x00000008,0x00000304,0x00000303,0x0004003d, + 0x00000008,0x00000305,0x000002f8,0x00050083,0x00000008,0x00000306,0x00000304,0x00000305, + 0x0004003d,0x00000008,0x00000308,0x000002f8,0x0003003e,0x00000307,0x00000308,0x0003003e, + 0x00000309,0x00000302,0x0003003e,0x0000030a,0x00000306,0x00070039,0x00000022,0x0000030b, + 0x00000027,0x00000307,0x00000309,0x0000030a,0x0003003e,0x000002fe,0x0000030b,0x0004003d, + 0x00000022,0x0000030d,0x000002ee,0x0003003e,0x0000030c,0x0000030d,0x0004003d,0x0000000d, + 0x0000030f,0x0000006b,0x0008004f,0x00000022,0x00000310,0x0000030f,0x0000030f,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x0000030e,0x00000310,0x0004003d,0x0000000d,0x00000312, + 0x0000006c,0x0008004f,0x00000022,0x00000313,0x00000312,0x00000312,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x00000311,0x00000313,0x00070039,0x0000003a,0x00000314,0x0000003f, + 0x0000030c,0x0000030e,0x00000311,0x0004003d,0x00000022,0x00000315,0x000002fe,0x00050091, + 0x00000022,0x00000316,0x00000314,0x00000315,0x00050041,0x00000013,0x00000317,0x0000006c, + 0x000000ad,0x0004003d,0x00000008,0x00000318,0x00000317,0x00050041,0x00000013,0x00000319, + 0x0000006b,0x000000ad,0x0004003d,0x00000008,0x0000031a,0x00000319,0x00050083,0x00000008, + 0x0000031b,0x000000d7,0x0000031a,0x00050085,0x00000008,0x0000031c,0x00000318,0x0000031b, + 0x00050041,0x00000013,0x0000031d,0x0000006b,0x000000ad,0x0004003d,0x00000008,0x0000031e, + 0x0000031d,0x00050081,0x00000008,0x0000031f,0x0000031c,0x0000031e,0x0003003e,0x00000320, + 0x00000316,0x0003003e,0x00000321,0x0000031f,0x00060039,0x0000000d,0x00000322,0x00000038, + 0x00000320,0x00000321,0x000200fe,0x00000322,0x00010038,0x00050036,0x0000000d,0x00000071, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000070,0x000200f8,0x00000072,0x0004003b, + 0x0000000e,0x0000032a,0x00000007,0x0004003b,0x00000013,0x00000335,0x00000007,0x0004003b, + 0x00000013,0x00000339,0x00000007,0x0004003b,0x00000013,0x00000345,0x00000007,0x0004003b, + 0x00000013,0x00000349,0x00000007,0x0004003b,0x00000013,0x0000034c,0x00000007,0x0004003b, + 0x00000013,0x0000035b,0x00000007,0x0004003b,0x00000013,0x0000036f,0x00000007,0x0004003b, + 0x0000000e,0x00000374,0x00000007,0x0004003b,0x00000013,0x0000037e,0x00000007,0x00050041, + 0x00000013,0x00000325,0x00000070,0x000000ad,0x0004003d,0x00000008,0x00000326,0x00000325, + 0x000500be,0x000000ce,0x00000327,0x00000326,0x000000cf,0x000300f7,0x00000329,0x00000000, + 0x000400fa,0x00000327,0x00000328,0x0000032e,0x000200f8,0x00000328,0x0004003d,0x0000000d, + 0x0000032b,0x00000070,0x0003003e,0x0000032a,0x0000032b,0x00050039,0x0000000d,0x0000032c, + 0x00000011,0x0000032a,0x000200fe,0x0000032c,0x000200f8,0x0000032e,0x00050041,0x00000013, + 0x0000032f,0x00000070,0x000000ad,0x0004003d,0x00000008,0x00000330,0x0000032f,0x000500ba, + 0x000000ce,0x00000332,0x00000330,0x00000331,0x000300f7,0x00000334,0x00000000,0x000400fa, + 0x00000332,0x00000333,0x0000036e,0x000200f8,0x00000333,0x00050041,0x00000013,0x00000336, + 0x00000070,0x00000096,0x0004003d,0x00000008,0x00000337,0x00000336,0x000500ba,0x000000ce, + 0x00000338,0x00000337,0x000000cf,0x000300f7,0x0000033b,0x00000000,0x000400fa,0x00000338, + 0x0000033a,0x0000033e,0x000200f8,0x0000033a,0x00050041,0x00000013,0x0000033c,0x00000070, + 0x00000088,0x0004003d,0x00000008,0x0000033d,0x0000033c,0x0003003e,0x00000339,0x0000033d, + 0x000200f9,0x0000033b,0x000200f8,0x0000033e,0x0004003d,0x0000000d,0x0000033f,0x00000070, + 0x0007004f,0x0000001c,0x00000340,0x0000033f,0x0000033f,0x00000000,0x00000001,0x0006000c, + 0x00000008,0x00000341,0x00000001,0x00000042,0x00000340,0x0003003e,0x00000339,0x00000341, + 0x000200f9,0x0000033b,0x000200f8,0x0000033b,0x0004003d,0x00000008,0x00000342,0x00000339, + 0x0003003e,0x00000335,0x00000342,0x0004003d,0x00000008,0x00000343,0x00000335,0x0008000c, + 0x00000008,0x00000344,0x00000001,0x0000002b,0x00000343,0x000000cf,0x000000d7,0x0003003e, + 0x00000335,0x00000344,0x00050041,0x00000013,0x00000346,0x00000070,0x00000096,0x0004003d, + 0x00000008,0x00000347,0x00000346,0x0006000c,0x00000008,0x00000348,0x00000001,0x00000004, + 0x00000347,0x0003003e,0x00000345,0x00000348,0x0004003d,0x00000008,0x0000034a,0x00000345, + 0x000500ba,0x000000ce,0x0000034b,0x0000034a,0x000000d7,0x000300f7,0x0000034e,0x00000000, + 0x000400fa,0x0000034b,0x0000034d,0x00000354,0x000200f8,0x0000034d,0x0004003d,0x00000008, + 0x00000350,0x00000335,0x00050085,0x00000008,0x00000351,0x0000034f,0x00000350,0x00050081, + 0x00000008,0x00000353,0x00000351,0x00000352,0x0003003e,0x0000034c,0x00000353,0x000200f9, + 0x0000034e,0x000200f8,0x00000354,0x0004003d,0x00000008,0x00000356,0x00000335,0x00050085, + 0x00000008,0x00000357,0x00000355,0x00000356,0x0004003d,0x00000008,0x00000358,0x00000345, + 0x00050081,0x00000008,0x00000359,0x00000357,0x00000358,0x0003003e,0x0000034c,0x00000359, + 0x000200f9,0x0000034e,0x000200f8,0x0000034e,0x0004003d,0x00000008,0x0000035a,0x0000034c, + 0x0003003e,0x00000349,0x0000035a,0x00050041,0x00000013,0x0000035c,0x00000070,0x000000ad, + 0x0004003d,0x00000008,0x0000035d,0x0000035c,0x0004007f,0x00000008,0x0000035e,0x0000035d, + 0x0003003e,0x0000035b,0x0000035e,0x0004003d,0x0000035f,0x00000362,0x00000361,0x0004003d, + 0x00000363,0x00000366,0x00000365,0x00050056,0x00000367,0x00000368,0x00000362,0x00000366, + 0x0004003d,0x00000008,0x00000369,0x00000349,0x0004003d,0x00000008,0x0000036a,0x0000035b, + 0x00050050,0x0000001c,0x0000036b,0x00000369,0x0000036a,0x00070058,0x0000000d,0x0000036c, + 0x00000368,0x0000036b,0x00000002,0x000000cf,0x000200fe,0x0000036c,0x000200f8,0x0000036e, + 0x00050041,0x00000013,0x00000370,0x00000070,0x000000ad,0x0004003d,0x00000008,0x00000371, + 0x00000370,0x0004007f,0x00000008,0x00000372,0x00000371,0x00050083,0x00000008,0x00000373, + 0x00000372,0x000001d3,0x0003003e,0x0000036f,0x00000373,0x0004003d,0x0000035f,0x00000376, + 0x00000375,0x0004003d,0x00000363,0x00000378,0x00000377,0x00050056,0x00000367,0x00000379, + 0x00000376,0x00000378,0x0004003d,0x0000000d,0x0000037a,0x00000070,0x0007004f,0x0000001c, + 0x0000037b,0x0000037a,0x0000037a,0x00000000,0x00000001,0x0004003d,0x00000008,0x0000037c, + 0x0000036f,0x00070058,0x0000000d,0x0000037d,0x00000379,0x0000037b,0x00000002,0x0000037c, + 0x0003003e,0x00000374,0x0000037d,0x00050041,0x00000013,0x0000037f,0x00000070,0x00000096, + 0x0004003d,0x00000008,0x00000380,0x0000037f,0x0003003e,0x0000037e,0x00000380,0x0004003d, + 0x00000008,0x00000381,0x0000037e,0x00050041,0x00000013,0x00000382,0x00000374,0x000000ad, + 0x0004003d,0x00000008,0x00000383,0x00000382,0x00050085,0x00000008,0x00000384,0x00000383, + 0x00000381,0x00050041,0x00000013,0x00000385,0x00000374,0x000000ad,0x0003003e,0x00000385, + 0x00000384,0x0004003d,0x0000000d,0x00000386,0x00000374,0x000200fe,0x00000386,0x000200f8, + 0x00000334,0x000100ff,0x000200f8,0x00000329,0x000100ff,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/draw_path.vert.h b/defold-rive/include/generated/shaders/spirv/draw_path.vert.h new file mode 100644 index 00000000..67cbe3be --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/draw_path.vert.h @@ -0,0 +1,858 @@ + // 1114.3.0 + #pragma once +const uint32_t draw_path_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x00000418,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0010000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x000002f5,0x000002f8,0x000002fc, + 0x000002fd,0x00000301,0x0000031b,0x00000347,0x00000357,0x00000377,0x00000388,0x00000410, + 0x00030003,0x00000002,0x000001cc,0x000a0004,0x415f4c47,0x735f4252,0x65646168,0x74735f72, + 0x6761726f,0x75625f65,0x72656666,0x6a626f5f,0x00746365,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00080005,0x0000000a, + 0x74736163,0x6f6c665f,0x745f7461,0x61685f6f,0x6628666c,0x00003b31,0x00030005,0x00000009, + 0x00000078,0x00090005,0x00000010,0x74736163,0x6f6c665f,0x5f327461,0x685f6f74,0x32666c61, + 0x32667628,0x0000003b,0x00030005,0x0000000f,0x00007978,0x00060005,0x00000013,0x656b616d, + 0x6c61685f,0x31662866,0x0000003b,0x00030005,0x00000012,0x00000078,0x00070005,0x00000018, + 0x656b616d,0x6c61685f,0x66283266,0x31663b31,0x0000003b,0x00030005,0x00000016,0x00000078, + 0x00030005,0x00000017,0x00000079,0x00070005,0x0000001f,0x656b616d,0x6f6c665f,0x78327461, + 0x66762832,0x00003b34,0x00030005,0x0000001e,0x00000078,0x00080005,0x00000025,0x746e6f63, + 0x5f72756f,0x61746164,0x7864695f,0x3b317528,0x00000000,0x00070005,0x00000024,0x746e6f63, + 0x4972756f,0x74695744,0x616c4668,0x00007367,0x00080005,0x0000002a,0x625f6469,0x5f737469, + 0x665f6f74,0x75283631,0x31753b31,0x0000003b,0x00040005,0x00000028,0x69426469,0x00007374, + 0x00070005,0x00000029,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x000e0005, + 0x00000031,0x646e6966,0x696c635f,0x65725f70,0x635f7463,0x7265766f,0x5f656761,0x74736964, + 0x65636e61,0x666d2873,0x763b3232,0x763b3266,0x003b3266,0x00080005,0x0000002e,0x70696c63, + 0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078,0x00090005,0x0000002f,0x70696c63, + 0x74636552,0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00060005,0x00000030, + 0x65786970,0x736f506c,0x6f697469,0x0000006e,0x00080005,0x00000038,0x73736574,0x7865745f, + 0x635f6c65,0x64726f6f,0x3b316928,0x00000000,0x00050005,0x00000037,0x65786574,0x646e496c, + 0x00007865,0x000a0005,0x0000003d,0x686e616d,0x61747461,0x69705f6e,0x5f6c6578,0x74646977, + 0x666d2868,0x763b3232,0x003b3266,0x00030005,0x0000003b,0x0000004d,0x00050005,0x0000003c, + 0x6d726f6e,0x7a696c61,0x00006465,0x00100005,0x00000047,0x61706e75,0x745f6b63,0x65737365, + 0x74616c6c,0x705f6465,0x5f687461,0x74726576,0x76287865,0x763b3466,0x693b3466,0x31753b31, + 0x3266763b,0x3266763b,0x0000003b,0x00060005,0x00000041,0x63746170,0x72655668,0x44786574, + 0x00617461,0x00070005,0x00000042,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174, + 0x00050005,0x00000043,0x736e695f,0x636e6174,0x00444965,0x00050005,0x00000044,0x5074756f, + 0x49687461,0x00000044,0x00070005,0x00000045,0x5674756f,0x65747265,0x736f5078,0x6f697469, + 0x0000006e,0x00060005,0x00000046,0x4574756f,0x44656764,0x61747369,0x0065636e,0x00030005, + 0x00000056,0x00746572,0x00060005,0x00000087,0x70696c63,0x74636552,0x69574141,0x00687464, + 0x00030005,0x0000009c,0x00000072,0x00060005,0x000000a0,0x70696c63,0x74636552,0x726f6f43, + 0x00000064,0x00030005,0x000000c6,0x00000076,0x00060005,0x000000d8,0x61636f6c,0x7265566c, + 0x49786574,0x00000044,0x00040005,0x000000dc,0x7374756f,0x00007465,0x00060005,0x000000df, + 0x6c6c6966,0x65766f43,0x65676172,0x00000000,0x00070005,0x000000e3,0x63746170,0x67655368, + 0x746e656d,0x6e617053,0x00000000,0x00050005,0x000000ea,0x74726576,0x79547865,0x00006570, + 0x00070005,0x000000f0,0x74726576,0x44497865,0x6f436e4f,0x756f746e,0x00000072,0x00060005, + 0x000000f5,0x73736574,0x74726556,0x64497865,0x00000078,0x00060005,0x000000fd,0x73736574, + 0x74726556,0x61447865,0x00006174,0x00090005,0x00000100,0x5058455f,0x4554524f,0x65745f44, + 0x65567373,0x78657472,0x74786554,0x00657275,0x00040005,0x00000102,0x61726170,0x0000006d, + 0x00070005,0x00000106,0x746e6f63,0x4972756f,0x74695744,0x616c4668,0x00007367,0x00050005, + 0x00000109,0x746e6f63,0x4472756f,0x00617461,0x00060005,0x0000010b,0x746e6f43,0x4272756f, + 0x65666675,0x00000072,0x00050006,0x0000010b,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x0000010d,0x5058455f,0x4554524f,0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00040005, + 0x0000010e,0x61726170,0x0000006d,0x00050005,0x00000114,0x7064696d,0x746e696f,0x00000000, + 0x00060005,0x0000011c,0x74726576,0x6e497865,0x30786564,0x00000000,0x00030005,0x0000011f, + 0x0000004d,0x00050005,0x00000121,0x68746150,0x66667542,0x00007265,0x00050006,0x00000121, + 0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000123,0x5058455f,0x4554524f,0x61705f44, + 0x75426874,0x72656666,0x00000000,0x00040005,0x0000012a,0x61726170,0x0000006d,0x00050005, + 0x0000012c,0x68746170,0x61746144,0x00000000,0x00050005,0x00000132,0x6e617274,0x74616c73, + 0x00000065,0x00060005,0x00000136,0x6f727473,0x6152656b,0x73756964,0x00000000,0x00070005, + 0x0000013a,0x7272696d,0x6465726f,0x746e6f43,0x4672756f,0x0067616c,0x00090005,0x00000153, + 0x6c706572,0x6d656361,0x54746e65,0x56737365,0x65747265,0x74614478,0x00000061,0x00040005, + 0x00000155,0x61726170,0x0000006d,0x00050005,0x00000163,0x6c437369,0x6465736f,0x00000000, + 0x00040005,0x00000173,0x61726170,0x0000006d,0x00040005,0x0000017e,0x74656874,0x00000061, + 0x00040005,0x00000182,0x6d726f6e,0x00000000,0x00040005,0x00000189,0x6769726f,0x00006e69, + 0x00050005,0x000001a6,0x61526161,0x73756964,0x00000000,0x00040005,0x000001a7,0x61726170, + 0x0000006d,0x00040005,0x000001a9,0x61726170,0x0000006d,0x00060005,0x000001ad,0x626f6c67, + 0x6f436c61,0x61726576,0x00006567,0x00040005,0x000001b3,0x61726170,0x0000006d,0x00040005, + 0x000001b6,0x61726170,0x0000006d,0x00060005,0x000001bb,0x74726576,0x664f7865,0x74657366, + 0x00000000,0x00030005,0x000001c1,0x00000078,0x00040005,0x000001d5,0x61726170,0x0000006d, + 0x00050005,0x000001d7,0x6e696f6a,0x65707954,0x00000000,0x00040005,0x000001df,0x6b656570, + 0x00726944,0x00070005,0x000001f0,0x6568746f,0x696f4a72,0x7865546e,0x6f436c65,0x0064726f, + 0x00040005,0x000001f4,0x61726170,0x0000006d,0x00060005,0x000001f6,0x6568746f,0x696f4a72, + 0x7461446e,0x00000061,0x00060005,0x000001fa,0x6568746f,0x696f4a72,0x6568546e,0x00006174, + 0x00050005,0x000001fe,0x6e696f6a,0x6c676e41,0x00000065,0x00040005,0x0000020b,0x61547369, + 0x0000306e,0x00050005,0x0000020f,0x654c7369,0x6f4a7466,0x00006e69,0x00050005,0x00000213, + 0x65736962,0x68547463,0x00617465,0x00050005,0x0000021d,0x65736962,0x726f7463,0x00000000, + 0x00070005,0x00000224,0x65736962,0x69507463,0x576c6578,0x68746469,0x00000000,0x00040005, + 0x00000225,0x61726170,0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d,0x00050005, + 0x0000022a,0x6574696d,0x74615272,0x00006f69,0x00070005,0x0000023d,0x6574696d,0x766e4972, + 0x65737265,0x696d694c,0x00000074,0x00050005,0x00000243,0x70696c63,0x69646152,0x00007375, + 0x00060005,0x00000251,0x70696c63,0x61524141,0x73756964,0x00000000,0x00060005,0x0000025c, + 0x6f727473,0x4141656b,0x64696152,0x00007375,0x00040005,0x00000260,0x706f6c73,0x00000000, + 0x00060005,0x0000026d,0x6574696d,0x52414172,0x75696461,0x00000073,0x00060005,0x00000276, + 0x65736962,0x41417463,0x7366664f,0x00007465,0x00030005,0x0000027a,0x0000006b,0x00030005, + 0x0000028e,0x00007470,0x00060005,0x00000293,0x70696c63,0x74736944,0x65636e61,0x00000000, + 0x00040005,0x000002a1,0x61726170,0x0000006d,0x00040005,0x000002a6,0x61726170,0x0000006d, + 0x00040005,0x000002b0,0x61726170,0x0000006d,0x00090005,0x000002b4,0x74736f70,0x6e617254, + 0x726f6673,0x7265566d,0x4f786574,0x65736666,0x00000074,0x00040005,0x000002db,0x61726170, + 0x0000006d,0x00040005,0x000002dd,0x61726170,0x0000006d,0x00050005,0x000002f3,0x7265765f, + 0x49786574,0x00000044,0x00060005,0x000002f5,0x565f6c67,0x65747265,0x646e4978,0x00007865, + 0x00050005,0x000002f7,0x736e695f,0x636e6174,0x00444965,0x00070005,0x000002f8,0x495f6c67, + 0x6174736e,0x4965636e,0x7865646e,0x00000000,0x00070005,0x000002fa,0x756f6873,0x6944646c, + 0x72616373,0x72655664,0x00786574,0x00090005,0x000002fc,0x5058455f,0x4554524f,0x5f615f44, + 0x63746170,0x72655668,0x44786574,0x00617461,0x000a0005,0x000002fd,0x5058455f,0x4554524f, + 0x5f615f44,0x7272696d,0x6465726f,0x74726556,0x61447865,0x00006174,0x00040005,0x000002fe, + 0x68746170,0x00004449,0x00060005,0x000002ff,0x74726576,0x6f507865,0x69746973,0x00006e6f, + 0x00060005,0x00000301,0x64655f76,0x69446567,0x6e617473,0x00006563,0x00040005,0x00000302, + 0x61726170,0x0000006d,0x00040005,0x00000304,0x61726170,0x0000006d,0x00040005,0x00000306, + 0x61726170,0x0000006d,0x00040005,0x00000308,0x61726170,0x0000006d,0x00040005,0x00000309, + 0x61726170,0x0000006d,0x00040005,0x0000030a,0x61726170,0x0000006d,0x00050005,0x00000311, + 0x6e696170,0x74614474,0x00000061,0x00050005,0x00000313,0x6e696150,0x66754274,0x00726566, + 0x00050006,0x00000313,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000315,0x5058455f, + 0x4554524f,0x61705f44,0x42746e69,0x65666675,0x00000072,0x00050005,0x0000031b,0x61705f76, + 0x44496874,0x00000000,0x00080005,0x0000031d,0x5058455f,0x4554524f,0x6c465f44,0x55687375, + 0x6f66696e,0x00736d72,0x00090006,0x0000031d,0x00000000,0x64617267,0x65766e49,0x56657372, + 0x70776569,0x5974726f,0x00000000,0x00090006,0x0000031d,0x00000001,0x73736574,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x0000031d,0x00000002,0x646e6572, + 0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006, + 0x0000031d,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x00080006,0x0000031d,0x00000004,0x646e6572,0x61547265,0x74656772, + 0x74646957,0x00000068,0x00080006,0x0000031d,0x00000005,0x646e6572,0x61547265,0x74656772, + 0x67696548,0x00007468,0x00070006,0x0000031d,0x00000006,0x6f6c6f63,0x656c4372,0x61567261, + 0x0065756c,0x00080006,0x0000031d,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672, + 0x00006575,0x000a0006,0x0000031d,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055, + 0x6f426574,0x73646e75,0x00000000,0x00090006,0x0000031d,0x00000009,0x65766f63,0x65676172, + 0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x0000031d,0x0000000a,0x68746170, + 0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x0000031d,0x0000000b,0x74726576, + 0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x0000031f,0x66696e75,0x736d726f, + 0x00000000,0x00040005,0x00000321,0x61726170,0x0000006d,0x00040005,0x00000323,0x61726170, + 0x0000006d,0x00050005,0x00000331,0x6e696170,0x70795474,0x00000065,0x00060005,0x00000336, + 0x616e456b,0x43656c62,0x7070696c,0x00676e69,0x00050005,0x00000339,0x70696c63,0x69424449, + 0x00007374,0x00050005,0x00000347,0x6c635f76,0x44497069,0x00000000,0x00040005,0x00000348, + 0x61726170,0x0000006d,0x00040005,0x0000034a,0x61726170,0x0000006d,0x00080005,0x00000354, + 0x616e456b,0x41656c62,0x6e617664,0x42646563,0x646e656c,0x00000000,0x00050005,0x00000357, + 0x6c625f76,0x4d646e65,0x0065646f,0x00050005,0x0000035e,0x67617266,0x726f6f43,0x00000064, + 0x00060005,0x00000360,0x616e456b,0x43656c62,0x5270696c,0x00746365,0x00080005,0x00000363, + 0x70696c63,0x74636552,0x65766e49,0x4d657372,0x69727461,0x00000078,0x00060005,0x00000365, + 0x6e696150,0x78754174,0x66667542,0x00007265,0x00050006,0x00000365,0x00000000,0x6c61765f, + 0x00736575,0x00090005,0x00000367,0x5058455f,0x4554524f,0x61705f44,0x41746e69,0x75427875, + 0x72656666,0x00000000,0x00040005,0x0000036b,0x61726170,0x0000006d,0x00090005,0x00000370, + 0x70696c63,0x74636552,0x65766e49,0x54657372,0x736e6172,0x6574616c,0x00000000,0x00050005, + 0x00000377,0x6c635f76,0x65527069,0x00007463,0x00040005,0x00000378,0x61726170,0x0000006d, + 0x00040005,0x0000037a,0x61726170,0x0000006d,0x00040005,0x0000037d,0x61726170,0x0000006d, + 0x00040005,0x00000384,0x6f6c6f63,0x00000072,0x00040005,0x00000388,0x61705f76,0x00746e69, + 0x00050005,0x00000390,0x6574756f,0x696c4372,0x00444970,0x00040005,0x00000394,0x61726170, + 0x0000006d,0x00040005,0x00000395,0x61726170,0x0000006d,0x00050005,0x0000039c,0x6e696170, + 0x74614d74,0x00786972,0x00040005,0x0000039f,0x61726170,0x0000006d,0x00060005,0x000003a3, + 0x6e696170,0x61725474,0x616c736e,0x00006574,0x00050005,0x000003a9,0x6e696170,0x6f6f4374, + 0x00006472,0x00060005,0x000003bc,0x64617267,0x746e6569,0x6e617053,0x00000000,0x00040005, + 0x000003dc,0x6361706f,0x00797469,0x00030005,0x000003e0,0x00646f6c,0x00030005,0x000003f0, + 0x00736f70,0x00060005,0x0000040e,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006, + 0x0000040e,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x0000040e,0x00000001, + 0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x0000040e,0x00000002,0x435f6c67, + 0x4470696c,0x61747369,0x0065636e,0x00070006,0x0000040e,0x00000003,0x435f6c67,0x446c6c75, + 0x61747369,0x0065636e,0x00030005,0x00000410,0x00000000,0x00060005,0x00000413,0x616e456b, + 0x45656c62,0x4f6e6576,0x00006464,0x00080005,0x00000414,0x616e456b,0x4e656c62,0x65747365, + 0x696c4364,0x6e697070,0x00000067,0x00080005,0x00000415,0x616e456b,0x48656c62,0x6c424c53, + 0x4d646e65,0x7365646f,0x00000000,0x00060005,0x00000416,0x6f6c436b,0x69776b63,0x69466573, + 0x00006c6c,0x00090005,0x00000417,0x726f426b,0x65776f72,0x766f4364,0x67617265,0x65725065, + 0x73736170,0x00000000,0x00030047,0x0000000a,0x00000000,0x00030047,0x00000010,0x00000000, + 0x00030047,0x00000013,0x00000000,0x00030047,0x00000012,0x00000000,0x00030047,0x00000018, + 0x00000000,0x00030047,0x00000016,0x00000000,0x00030047,0x00000017,0x00000000,0x00030047, + 0x0000002a,0x00000000,0x00030047,0x00000046,0x00000000,0x00030047,0x0000004a,0x00000000, + 0x00030047,0x0000004b,0x00000000,0x00030047,0x0000004f,0x00000000,0x00030047,0x00000050, + 0x00000000,0x00030047,0x00000053,0x00000000,0x00030047,0x00000056,0x00000000,0x00030047, + 0x00000057,0x00000000,0x00030047,0x0000005a,0x00000000,0x00030047,0x0000005d,0x00000000, + 0x00030047,0x00000083,0x00000000,0x00030047,0x00000084,0x00000000,0x00040047,0x00000100, + 0x00000022,0x00000000,0x00040047,0x00000100,0x00000021,0x00000000,0x00040047,0x0000010a, + 0x00000006,0x00000010,0x00040048,0x0000010b,0x00000000,0x00000018,0x00050048,0x0000010b, + 0x00000000,0x00000023,0x00000000,0x00030047,0x0000010b,0x00000003,0x00040047,0x0000010d, + 0x00000022,0x00000000,0x00040047,0x0000010d,0x00000021,0x00000006,0x00040047,0x00000120, + 0x00000006,0x00000010,0x00040048,0x00000121,0x00000000,0x00000018,0x00050048,0x00000121, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000121,0x00000003,0x00040047,0x00000123, + 0x00000022,0x00000000,0x00040047,0x00000123,0x00000021,0x00000003,0x00030047,0x000001ad, + 0x00000000,0x00030047,0x000001b5,0x00000000,0x00030047,0x000001b8,0x00000000,0x00030047, + 0x000001b9,0x00000000,0x00030047,0x000001d6,0x00000000,0x00030047,0x000002a3,0x00000000, + 0x00030047,0x000002a8,0x00000000,0x00030047,0x000002aa,0x00000000,0x00030047,0x000002ab, + 0x00000000,0x00030047,0x000002ac,0x00000000,0x00030047,0x000002ae,0x00000000,0x00030047, + 0x000002b0,0x00000000,0x00030047,0x000002b1,0x00000000,0x00030047,0x000002b2,0x00000000, + 0x00030047,0x000002db,0x00000000,0x00030047,0x000002dd,0x00000000,0x00030047,0x000002de, + 0x00000000,0x00040047,0x000002f5,0x0000000b,0x0000002a,0x00040047,0x000002f8,0x0000000b, + 0x0000002b,0x00040047,0x000002fc,0x0000001e,0x00000000,0x00040047,0x000002fd,0x0000001e, + 0x00000001,0x00030047,0x00000301,0x00000000,0x00040047,0x00000301,0x0000001e,0x00000002, + 0x00030047,0x0000030a,0x00000000,0x00040047,0x00000312,0x00000006,0x00000008,0x00040048, + 0x00000313,0x00000000,0x00000018,0x00050048,0x00000313,0x00000000,0x00000023,0x00000000, + 0x00030047,0x00000313,0x00000003,0x00040047,0x00000315,0x00000022,0x00000000,0x00040047, + 0x00000315,0x00000021,0x00000004,0x00030047,0x0000031b,0x00000000,0x00030047,0x0000031b, + 0x0000000e,0x00040047,0x0000031b,0x0000001e,0x00000003,0x00050048,0x0000031d,0x00000000, + 0x00000023,0x00000000,0x00050048,0x0000031d,0x00000001,0x00000023,0x00000004,0x00050048, + 0x0000031d,0x00000002,0x00000023,0x00000008,0x00050048,0x0000031d,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x0000031d,0x00000004,0x00000023,0x00000010,0x00050048,0x0000031d, + 0x00000005,0x00000023,0x00000014,0x00050048,0x0000031d,0x00000006,0x00000023,0x00000018, + 0x00050048,0x0000031d,0x00000007,0x00000023,0x0000001c,0x00050048,0x0000031d,0x00000008, + 0x00000023,0x00000020,0x00050048,0x0000031d,0x00000009,0x00000023,0x00000030,0x00050048, + 0x0000031d,0x0000000a,0x00000023,0x00000034,0x00050048,0x0000031d,0x0000000b,0x00000023, + 0x00000038,0x00030047,0x0000031d,0x00000002,0x00040047,0x0000031f,0x00000022,0x00000000, + 0x00040047,0x0000031f,0x00000021,0x00000007,0x00030047,0x00000327,0x00000000,0x00030047, + 0x0000032f,0x00000000,0x00030047,0x00000330,0x00000000,0x00040047,0x00000336,0x00000001, + 0x00000000,0x00030047,0x00000347,0x00000000,0x00030047,0x00000347,0x0000000e,0x00040047, + 0x00000347,0x0000001e,0x00000004,0x00030047,0x0000034d,0x00000000,0x00030047,0x00000352, + 0x00000000,0x00030047,0x00000353,0x00000000,0x00040047,0x00000354,0x00000001,0x00000002, + 0x00030047,0x00000357,0x00000000,0x00030047,0x00000357,0x0000000e,0x00040047,0x00000357, + 0x0000001e,0x00000006,0x00040047,0x00000360,0x00000001,0x00000001,0x00040047,0x00000364, + 0x00000006,0x00000010,0x00040048,0x00000365,0x00000000,0x00000018,0x00050048,0x00000365, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000365,0x00000003,0x00040047,0x00000367, + 0x00000022,0x00000000,0x00040047,0x00000367,0x00000021,0x00000005,0x00040047,0x00000377, + 0x0000001e,0x00000005,0x00030047,0x00000384,0x00000000,0x00040047,0x00000388,0x0000001e, + 0x00000000,0x00030047,0x00000389,0x00000000,0x00030047,0x00000390,0x00000000,0x00030047, + 0x00000398,0x00000000,0x00030047,0x00000399,0x00000000,0x00030047,0x0000039a,0x00000000, + 0x00050048,0x0000040e,0x00000000,0x0000000b,0x00000000,0x00050048,0x0000040e,0x00000001, + 0x0000000b,0x00000001,0x00050048,0x0000040e,0x00000002,0x0000000b,0x00000003,0x00050048, + 0x0000040e,0x00000003,0x0000000b,0x00000004,0x00030047,0x0000040e,0x00000002,0x00040047, + 0x00000413,0x00000001,0x00000003,0x00040047,0x00000414,0x00000001,0x00000004,0x00040047, + 0x00000415,0x00000001,0x00000005,0x00040047,0x00000416,0x00000001,0x00000006,0x00040047, + 0x00000417,0x00000001,0x00000007,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021, + 0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002,0x00040020, + 0x0000000d,0x00000007,0x0000000c,0x00040021,0x0000000e,0x0000000c,0x0000000d,0x00050021, + 0x00000015,0x0000000c,0x00000007,0x00000007,0x00040017,0x0000001a,0x00000006,0x00000004, + 0x00040020,0x0000001b,0x00000007,0x0000001a,0x00040018,0x0000001c,0x0000000c,0x00000002, + 0x00040021,0x0000001d,0x0000001c,0x0000001b,0x00040015,0x00000021,0x00000020,0x00000000, + 0x00040020,0x00000022,0x00000007,0x00000021,0x00040021,0x00000023,0x00000021,0x00000022, + 0x00050021,0x00000027,0x00000006,0x00000022,0x00000022,0x00040020,0x0000002c,0x00000007, + 0x0000001c,0x00060021,0x0000002d,0x0000001a,0x0000002c,0x0000000d,0x0000000d,0x00040015, + 0x00000033,0x00000020,0x00000001,0x00040020,0x00000034,0x00000007,0x00000033,0x00040017, + 0x00000035,0x00000033,0x00000002,0x00040021,0x00000036,0x00000035,0x00000034,0x00050021, + 0x0000003a,0x00000006,0x0000002c,0x0000000d,0x00020014,0x0000003f,0x00090021,0x00000040, + 0x0000003f,0x0000001b,0x0000001b,0x00000034,0x00000022,0x0000000d,0x0000000d,0x0004002b, + 0x00000021,0x00000058,0x00000000,0x0004002b,0x00000021,0x0000005b,0x00000001,0x0004002b, + 0x00000006,0x00000064,0x3f800000,0x0004002b,0x00000006,0x00000065,0x00000000,0x0004002b, + 0x00000021,0x00000070,0x0000ffff,0x0004002b,0x00000021,0x0000007c,0x000003ff,0x0004002b, + 0x00000033,0x00000088,0x00000000,0x0004002b,0x00000033,0x0000008c,0x00000001,0x0004002b, + 0x00000006,0x000000b4,0x3f000000,0x0004002b,0x00000033,0x000000be,0x000007ff,0x0004002b, + 0x00000033,0x000000c1,0x0000000b,0x0004002b,0x00000021,0x000000e0,0x00000002,0x0004002b, + 0x00000021,0x000000e4,0x00000003,0x0004002b,0x00000033,0x000000e8,0x00000002,0x0004002b, + 0x00000033,0x000000ee,0x00000003,0x00040017,0x000000fb,0x00000021,0x00000004,0x00040020, + 0x000000fc,0x00000007,0x000000fb,0x00090019,0x000000fe,0x00000021,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000ff,0x00000000,0x000000fe, + 0x0004003b,0x000000ff,0x00000100,0x00000000,0x0003001d,0x0000010a,0x000000fb,0x0003001e, + 0x0000010b,0x0000010a,0x00040020,0x0000010c,0x00000002,0x0000010b,0x0004003b,0x0000010c, + 0x0000010d,0x00000002,0x00040020,0x00000111,0x00000002,0x000000fb,0x00040017,0x00000115, + 0x00000021,0x00000002,0x0003001d,0x00000120,0x000000fb,0x0003001e,0x00000121,0x00000120, + 0x00040020,0x00000122,0x00000002,0x00000121,0x0004003b,0x00000122,0x00000123,0x00000002, + 0x0004002b,0x00000021,0x00000125,0x00000004,0x0004002b,0x00000021,0x0000013c,0x02000000, + 0x0004002b,0x00000021,0x0000015b,0x0200ffff,0x00040020,0x00000162,0x00000007,0x0000003f, + 0x0004002b,0x00000021,0x0000017a,0xfdffffff,0x0004002b,0x00000021,0x00000197,0x00400000, + 0x0004002b,0x00000021,0x0000019f,0x00200000,0x0004002b,0x00000006,0x000001c8,0x40000000, + 0x0004002b,0x00000021,0x000001d9,0x30000000,0x0004002b,0x00000021,0x000001e1,0x01000000, + 0x00040020,0x000001ef,0x00000007,0x00000035,0x0004002b,0x00000006,0x00000204,0x40490fdb, + 0x0004002b,0x00000006,0x00000208,0x40c90fdb,0x0004002b,0x00000006,0x00000218,0xbf000000, + 0x0004002b,0x00000021,0x00000234,0x20000000,0x0004002b,0x00000006,0x00000237,0x3e800000, + 0x0004002b,0x00000021,0x0000023f,0x08000000,0x0004002b,0x00000021,0x00000257,0x00800000, + 0x0004002b,0x00000006,0x00000262,0x3e000000,0x0004002b,0x00000006,0x000002af,0x38d1b717, + 0x0003002a,0x0000003f,0x000002be,0x0004002b,0x00000021,0x000002d2,0x04000000,0x0004002b, + 0x00000006,0x000002da,0xbf800000,0x0004002b,0x00000021,0x000002e0,0x80000000,0x00030029, + 0x0000003f,0x000002f0,0x00040020,0x000002f4,0x00000001,0x00000033,0x0004003b,0x000002f4, + 0x000002f5,0x00000001,0x0004003b,0x000002f4,0x000002f8,0x00000001,0x00040020,0x000002fb, + 0x00000001,0x0000001a,0x0004003b,0x000002fb,0x000002fc,0x00000001,0x0004003b,0x000002fb, + 0x000002fd,0x00000001,0x00040020,0x00000300,0x00000003,0x0000000c,0x0004003b,0x00000300, + 0x00000301,0x00000003,0x00040020,0x00000310,0x00000007,0x00000115,0x0003001d,0x00000312, + 0x00000115,0x0003001e,0x00000313,0x00000312,0x00040020,0x00000314,0x00000002,0x00000313, + 0x0004003b,0x00000314,0x00000315,0x00000002,0x00040020,0x00000317,0x00000002,0x00000115, + 0x00040020,0x0000031a,0x00000003,0x00000006,0x0004003b,0x0000031a,0x0000031b,0x00000003, + 0x00040017,0x0000031c,0x00000033,0x00000004,0x000e001e,0x0000031d,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000021,0x00000021,0x00000021,0x00000021,0x0000031c,0x00000021, + 0x00000021,0x00000006,0x00040020,0x0000031e,0x00000002,0x0000031d,0x0004003b,0x0000031e, + 0x0000031f,0x00000002,0x0004002b,0x00000033,0x00000320,0x0000000a,0x00040020,0x00000324, + 0x00000002,0x00000021,0x0004002b,0x00000021,0x0000032a,0x00000200,0x0004002b,0x00000021, + 0x00000334,0x0000000f,0x00030031,0x0000003f,0x00000336,0x0004002b,0x00000033,0x00000345, + 0x00000010,0x0004003b,0x0000031a,0x00000347,0x00000003,0x00030031,0x0000003f,0x00000354, + 0x0004003b,0x0000031a,0x00000357,0x00000003,0x0004002b,0x00000033,0x0000035a,0x00000004, + 0x00030031,0x0000003f,0x00000360,0x0003001d,0x00000364,0x0000001a,0x0003001e,0x00000365, + 0x00000364,0x00040020,0x00000366,0x00000002,0x00000365,0x0004003b,0x00000366,0x00000367, + 0x00000002,0x00040020,0x0000036c,0x00000002,0x0000001a,0x00040020,0x00000376,0x00000003, + 0x0000001a,0x0004003b,0x00000376,0x00000377,0x00000003,0x0004003b,0x00000376,0x00000388, + 0x00000003,0x0004002b,0x00000006,0x000003c0,0x3f666666,0x0004002b,0x00000006,0x000003e8, + 0xc0000000,0x00040020,0x000003f3,0x00000002,0x00000006,0x0004001c,0x0000040d,0x00000006, + 0x0000005b,0x0006001e,0x0000040e,0x0000001a,0x00000006,0x0000040d,0x0000040d,0x00040020, + 0x0000040f,0x00000003,0x0000040e,0x0004003b,0x0000040f,0x00000410,0x00000003,0x00030031, + 0x0000003f,0x00000413,0x00030031,0x0000003f,0x00000414,0x00030031,0x0000003f,0x00000415, + 0x00030031,0x0000003f,0x00000416,0x00030031,0x0000003f,0x00000417,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000034,0x000002f3, + 0x00000007,0x0004003b,0x00000034,0x000002f7,0x00000007,0x0004003b,0x00000162,0x000002fa, + 0x00000007,0x0004003b,0x00000022,0x000002fe,0x00000007,0x0004003b,0x0000000d,0x000002ff, + 0x00000007,0x0004003b,0x0000001b,0x00000302,0x00000007,0x0004003b,0x0000001b,0x00000304, + 0x00000007,0x0004003b,0x00000034,0x00000306,0x00000007,0x0004003b,0x00000022,0x00000308, + 0x00000007,0x0004003b,0x0000000d,0x00000309,0x00000007,0x0004003b,0x0000000d,0x0000030a, + 0x00000007,0x0004003b,0x00000310,0x00000311,0x00000007,0x0004003b,0x00000022,0x00000321, + 0x00000007,0x0004003b,0x00000022,0x00000323,0x00000007,0x0004003b,0x00000022,0x00000331, + 0x00000007,0x0004003b,0x00000022,0x00000339,0x00000007,0x0004003b,0x00000022,0x0000033c, + 0x00000007,0x0004003b,0x00000022,0x00000348,0x00000007,0x0004003b,0x00000022,0x0000034a, + 0x00000007,0x0004003b,0x0000000d,0x0000035e,0x00000007,0x0004003b,0x0000002c,0x00000363, + 0x00000007,0x0004003b,0x0000001b,0x0000036b,0x00000007,0x0004003b,0x0000001b,0x00000370, + 0x00000007,0x0004003b,0x0000002c,0x00000378,0x00000007,0x0004003b,0x0000000d,0x0000037a, + 0x00000007,0x0004003b,0x0000000d,0x0000037d,0x00000007,0x0004003b,0x0000001b,0x00000384, + 0x00000007,0x0004003b,0x00000007,0x00000390,0x00000007,0x0004003b,0x00000022,0x00000394, + 0x00000007,0x0004003b,0x00000022,0x00000395,0x00000007,0x0004003b,0x0000002c,0x0000039c, + 0x00000007,0x0004003b,0x0000001b,0x0000039f,0x00000007,0x0004003b,0x0000001b,0x000003a3, + 0x00000007,0x0004003b,0x0000000d,0x000003a9,0x00000007,0x0004003b,0x00000007,0x000003bc, + 0x00000007,0x0004003b,0x00000007,0x000003dc,0x00000007,0x0004003b,0x00000007,0x000003e0, + 0x00000007,0x0004003b,0x0000001b,0x000003f0,0x00000007,0x0004003d,0x00000033,0x000002f6, + 0x000002f5,0x0003003e,0x000002f3,0x000002f6,0x0004003d,0x00000033,0x000002f9,0x000002f8, + 0x0003003e,0x000002f7,0x000002f9,0x0003003e,0x000002fa,0x000002be,0x0004003d,0x0000001a, + 0x00000303,0x000002fc,0x0003003e,0x00000302,0x00000303,0x0004003d,0x0000001a,0x00000305, + 0x000002fd,0x0003003e,0x00000304,0x00000305,0x0004003d,0x00000033,0x00000307,0x000002f7, + 0x0003003e,0x00000306,0x00000307,0x000a0039,0x0000003f,0x0000030b,0x00000047,0x00000302, + 0x00000304,0x00000306,0x00000308,0x00000309,0x0000030a,0x0004003d,0x00000021,0x0000030c, + 0x00000308,0x0003003e,0x000002fe,0x0000030c,0x0004003d,0x0000000c,0x0000030d,0x00000309, + 0x0003003e,0x000002ff,0x0000030d,0x0004003d,0x0000000c,0x0000030e,0x0000030a,0x0003003e, + 0x00000301,0x0000030e,0x000400a8,0x0000003f,0x0000030f,0x0000030b,0x0003003e,0x000002fa, + 0x0000030f,0x0004003d,0x00000021,0x00000316,0x000002fe,0x00060041,0x00000317,0x00000318, + 0x00000315,0x00000088,0x00000316,0x0004003d,0x00000115,0x00000319,0x00000318,0x0003003e, + 0x00000311,0x00000319,0x0004003d,0x00000021,0x00000322,0x000002fe,0x0003003e,0x00000321, + 0x00000322,0x00050041,0x00000324,0x00000325,0x0000031f,0x00000320,0x0004003d,0x00000021, + 0x00000326,0x00000325,0x0003003e,0x00000323,0x00000326,0x00060039,0x00000006,0x00000327, + 0x0000002a,0x00000321,0x00000323,0x0003003e,0x0000031b,0x00000327,0x00050041,0x00000022, + 0x00000328,0x00000311,0x00000058,0x0004003d,0x00000021,0x00000329,0x00000328,0x000500c7, + 0x00000021,0x0000032b,0x00000329,0x0000032a,0x000500ab,0x0000003f,0x0000032c,0x0000032b, + 0x00000058,0x000300f7,0x0000032e,0x00000000,0x000400fa,0x0000032c,0x0000032d,0x0000032e, + 0x000200f8,0x0000032d,0x0004003d,0x00000006,0x0000032f,0x0000031b,0x0004007f,0x00000006, + 0x00000330,0x0000032f,0x0003003e,0x0000031b,0x00000330,0x000200f9,0x0000032e,0x000200f8, + 0x0000032e,0x00050041,0x00000022,0x00000332,0x00000311,0x00000058,0x0004003d,0x00000021, + 0x00000333,0x00000332,0x000500c7,0x00000021,0x00000335,0x00000333,0x00000334,0x0003003e, + 0x00000331,0x00000335,0x000300f7,0x00000338,0x00000000,0x000400fa,0x00000336,0x00000337, + 0x00000338,0x000200f8,0x00000337,0x0004003d,0x00000021,0x0000033a,0x00000331,0x000500aa, + 0x0000003f,0x0000033b,0x0000033a,0x00000058,0x000300f7,0x0000033e,0x00000000,0x000400fa, + 0x0000033b,0x0000033d,0x00000341,0x000200f8,0x0000033d,0x00050041,0x00000022,0x0000033f, + 0x00000311,0x0000005b,0x0004003d,0x00000021,0x00000340,0x0000033f,0x0003003e,0x0000033c, + 0x00000340,0x000200f9,0x0000033e,0x000200f8,0x00000341,0x00050041,0x00000022,0x00000342, + 0x00000311,0x00000058,0x0004003d,0x00000021,0x00000343,0x00000342,0x0003003e,0x0000033c, + 0x00000343,0x000200f9,0x0000033e,0x000200f8,0x0000033e,0x0004003d,0x00000021,0x00000344, + 0x0000033c,0x000500c2,0x00000021,0x00000346,0x00000344,0x00000345,0x0003003e,0x00000339, + 0x00000346,0x0004003d,0x00000021,0x00000349,0x00000339,0x0003003e,0x00000348,0x00000349, + 0x00050041,0x00000324,0x0000034b,0x0000031f,0x00000320,0x0004003d,0x00000021,0x0000034c, + 0x0000034b,0x0003003e,0x0000034a,0x0000034c,0x00060039,0x00000006,0x0000034d,0x0000002a, + 0x00000348,0x0000034a,0x0003003e,0x00000347,0x0000034d,0x0004003d,0x00000021,0x0000034e, + 0x00000331,0x000500aa,0x0000003f,0x0000034f,0x0000034e,0x00000058,0x000300f7,0x00000351, + 0x00000000,0x000400fa,0x0000034f,0x00000350,0x00000351,0x000200f8,0x00000350,0x0004003d, + 0x00000006,0x00000352,0x00000347,0x0004007f,0x00000006,0x00000353,0x00000352,0x0003003e, + 0x00000347,0x00000353,0x000200f9,0x00000351,0x000200f8,0x00000351,0x000200f9,0x00000338, + 0x000200f8,0x00000338,0x000300f7,0x00000356,0x00000000,0x000400fa,0x00000354,0x00000355, + 0x00000356,0x000200f8,0x00000355,0x00050041,0x00000022,0x00000358,0x00000311,0x00000058, + 0x0004003d,0x00000021,0x00000359,0x00000358,0x000500c2,0x00000021,0x0000035b,0x00000359, + 0x0000035a,0x000500c7,0x00000021,0x0000035c,0x0000035b,0x00000334,0x00040070,0x00000006, + 0x0000035d,0x0000035c,0x0003003e,0x00000357,0x0000035d,0x000200f9,0x00000356,0x000200f8, + 0x00000356,0x0004003d,0x0000000c,0x0000035f,0x000002ff,0x0003003e,0x0000035e,0x0000035f, + 0x000300f7,0x00000362,0x00000000,0x000400fa,0x00000360,0x00000361,0x00000362,0x000200f8, + 0x00000361,0x0004003d,0x00000021,0x00000368,0x000002fe,0x00050084,0x00000021,0x00000369, + 0x00000368,0x00000125,0x00050080,0x00000021,0x0000036a,0x00000369,0x000000e0,0x00060041, + 0x0000036c,0x0000036d,0x00000367,0x00000088,0x0000036a,0x0004003d,0x0000001a,0x0000036e, + 0x0000036d,0x0003003e,0x0000036b,0x0000036e,0x00050039,0x0000001c,0x0000036f,0x0000001f, + 0x0000036b,0x0003003e,0x00000363,0x0000036f,0x0004003d,0x00000021,0x00000371,0x000002fe, + 0x00050084,0x00000021,0x00000372,0x00000371,0x00000125,0x00050080,0x00000021,0x00000373, + 0x00000372,0x000000e4,0x00060041,0x0000036c,0x00000374,0x00000367,0x00000088,0x00000373, + 0x0004003d,0x0000001a,0x00000375,0x00000374,0x0003003e,0x00000370,0x00000375,0x0004003d, + 0x0000001c,0x00000379,0x00000363,0x0003003e,0x00000378,0x00000379,0x0004003d,0x0000001a, + 0x0000037b,0x00000370,0x0007004f,0x0000000c,0x0000037c,0x0000037b,0x0000037b,0x00000000, + 0x00000001,0x0003003e,0x0000037a,0x0000037c,0x0004003d,0x0000000c,0x0000037e,0x0000035e, + 0x0003003e,0x0000037d,0x0000037e,0x00070039,0x0000001a,0x0000037f,0x00000031,0x00000378, + 0x0000037a,0x0000037d,0x0003003e,0x00000377,0x0000037f,0x000200f9,0x00000362,0x000200f8, + 0x00000362,0x0004003d,0x00000021,0x00000380,0x00000331,0x000500aa,0x0000003f,0x00000381, + 0x00000380,0x0000005b,0x000300f7,0x00000383,0x00000000,0x000400fa,0x00000381,0x00000382, + 0x0000038a,0x000200f8,0x00000382,0x00050041,0x00000022,0x00000385,0x00000311,0x0000005b, + 0x0004003d,0x00000021,0x00000386,0x00000385,0x0006000c,0x0000001a,0x00000387,0x00000001, + 0x00000040,0x00000386,0x0003003e,0x00000384,0x00000387,0x0004003d,0x0000001a,0x00000389, + 0x00000384,0x0003003e,0x00000388,0x00000389,0x000200f9,0x00000383,0x000200f8,0x0000038a, + 0x0004003d,0x00000021,0x0000038b,0x00000331,0x000500aa,0x0000003f,0x0000038c,0x0000038b, + 0x00000058,0x000500a7,0x0000003f,0x0000038d,0x00000336,0x0000038c,0x000300f7,0x0000038f, + 0x00000000,0x000400fa,0x0000038d,0x0000038e,0x0000039b,0x000200f8,0x0000038e,0x00050041, + 0x00000022,0x00000391,0x00000311,0x00000058,0x0004003d,0x00000021,0x00000392,0x00000391, + 0x000500c2,0x00000021,0x00000393,0x00000392,0x00000345,0x0003003e,0x00000394,0x00000393, + 0x00050041,0x00000324,0x00000396,0x0000031f,0x00000320,0x0004003d,0x00000021,0x00000397, + 0x00000396,0x0003003e,0x00000395,0x00000397,0x00060039,0x00000006,0x00000398,0x0000002a, + 0x00000394,0x00000395,0x0003003e,0x00000390,0x00000398,0x0004003d,0x00000006,0x00000399, + 0x00000390,0x00070050,0x0000001a,0x0000039a,0x00000399,0x00000065,0x00000065,0x00000065, + 0x0003003e,0x00000388,0x0000039a,0x000200f9,0x0000038f,0x000200f8,0x0000039b,0x0004003d, + 0x00000021,0x0000039d,0x000002fe,0x00050084,0x00000021,0x0000039e,0x0000039d,0x00000125, + 0x00060041,0x0000036c,0x000003a0,0x00000367,0x00000088,0x0000039e,0x0004003d,0x0000001a, + 0x000003a1,0x000003a0,0x0003003e,0x0000039f,0x000003a1,0x00050039,0x0000001c,0x000003a2, + 0x0000001f,0x0000039f,0x0003003e,0x0000039c,0x000003a2,0x0004003d,0x00000021,0x000003a4, + 0x000002fe,0x00050084,0x00000021,0x000003a5,0x000003a4,0x00000125,0x00050080,0x00000021, + 0x000003a6,0x000003a5,0x0000005b,0x00060041,0x0000036c,0x000003a7,0x00000367,0x00000088, + 0x000003a6,0x0004003d,0x0000001a,0x000003a8,0x000003a7,0x0003003e,0x000003a3,0x000003a8, + 0x0004003d,0x0000001c,0x000003aa,0x0000039c,0x0004003d,0x0000000c,0x000003ab,0x0000035e, + 0x00050091,0x0000000c,0x000003ac,0x000003aa,0x000003ab,0x0004003d,0x0000001a,0x000003ad, + 0x000003a3,0x0007004f,0x0000000c,0x000003ae,0x000003ad,0x000003ad,0x00000000,0x00000001, + 0x00050081,0x0000000c,0x000003af,0x000003ac,0x000003ae,0x0003003e,0x000003a9,0x000003af, + 0x0004003d,0x00000021,0x000003b0,0x00000331,0x000500aa,0x0000003f,0x000003b1,0x000003b0, + 0x000000e0,0x0004003d,0x00000021,0x000003b2,0x00000331,0x000500aa,0x0000003f,0x000003b3, + 0x000003b2,0x000000e4,0x000500a6,0x0000003f,0x000003b4,0x000003b1,0x000003b3,0x000300f7, + 0x000003b6,0x00000000,0x000400fa,0x000003b4,0x000003b5,0x000003db,0x000200f8,0x000003b5, + 0x00050041,0x00000022,0x000003b7,0x00000311,0x0000005b,0x0004003d,0x00000021,0x000003b8, + 0x000003b7,0x0004007c,0x00000006,0x000003b9,0x000003b8,0x0004007f,0x00000006,0x000003ba, + 0x000003b9,0x00050041,0x0000031a,0x000003bb,0x00000388,0x000000e4,0x0003003e,0x000003bb, + 0x000003ba,0x00050041,0x00000007,0x000003bd,0x000003a3,0x000000e0,0x0004003d,0x00000006, + 0x000003be,0x000003bd,0x0003003e,0x000003bc,0x000003be,0x0004003d,0x00000006,0x000003bf, + 0x000003bc,0x000500ba,0x0000003f,0x000003c1,0x000003bf,0x000003c0,0x000300f7,0x000003c3, + 0x00000000,0x000400fa,0x000003c1,0x000003c2,0x000003c5,0x000200f8,0x000003c2,0x00050041, + 0x0000031a,0x000003c4,0x00000388,0x000000e0,0x0003003e,0x000003c4,0x000001c8,0x000200f9, + 0x000003c3,0x000200f8,0x000003c5,0x00050041,0x00000007,0x000003c6,0x000003a3,0x000000e4, + 0x0004003d,0x00000006,0x000003c7,0x000003c6,0x00050041,0x0000031a,0x000003c8,0x00000388, + 0x000000e0,0x0003003e,0x000003c8,0x000003c7,0x000200f9,0x000003c3,0x000200f8,0x000003c3, + 0x0004003d,0x00000021,0x000003c9,0x00000331,0x000500aa,0x0000003f,0x000003ca,0x000003c9, + 0x000000e0,0x000300f7,0x000003cc,0x00000000,0x000400fa,0x000003ca,0x000003cb,0x000003d1, + 0x000200f8,0x000003cb,0x00050041,0x0000031a,0x000003cd,0x00000388,0x0000005b,0x0003003e, + 0x000003cd,0x00000065,0x00050041,0x00000007,0x000003ce,0x000003a9,0x00000058,0x0004003d, + 0x00000006,0x000003cf,0x000003ce,0x00050041,0x0000031a,0x000003d0,0x00000388,0x00000058, + 0x0003003e,0x000003d0,0x000003cf,0x000200f9,0x000003cc,0x000200f8,0x000003d1,0x00050041, + 0x0000031a,0x000003d2,0x00000388,0x000000e0,0x0004003d,0x00000006,0x000003d3,0x000003d2, + 0x0004007f,0x00000006,0x000003d4,0x000003d3,0x00050041,0x0000031a,0x000003d5,0x00000388, + 0x000000e0,0x0003003e,0x000003d5,0x000003d4,0x0004003d,0x0000000c,0x000003d6,0x000003a9, + 0x00050041,0x0000031a,0x000003d7,0x00000388,0x00000058,0x00050051,0x00000006,0x000003d8, + 0x000003d6,0x00000000,0x0003003e,0x000003d7,0x000003d8,0x00050041,0x0000031a,0x000003d9, + 0x00000388,0x0000005b,0x00050051,0x00000006,0x000003da,0x000003d6,0x00000001,0x0003003e, + 0x000003d9,0x000003da,0x000200f9,0x000003cc,0x000200f8,0x000003cc,0x000200f9,0x000003b6, + 0x000200f8,0x000003db,0x00050041,0x00000022,0x000003dd,0x00000311,0x0000005b,0x0004003d, + 0x00000021,0x000003de,0x000003dd,0x0004007c,0x00000006,0x000003df,0x000003de,0x0003003e, + 0x000003dc,0x000003df,0x00050041,0x00000007,0x000003e1,0x000003a3,0x000000e0,0x0004003d, + 0x00000006,0x000003e2,0x000003e1,0x0003003e,0x000003e0,0x000003e2,0x00050041,0x00000007, + 0x000003e3,0x000003a9,0x00000058,0x0004003d,0x00000006,0x000003e4,0x000003e3,0x00050041, + 0x00000007,0x000003e5,0x000003a9,0x0000005b,0x0004003d,0x00000006,0x000003e6,0x000003e5, + 0x0004003d,0x00000006,0x000003e7,0x000003dc,0x0004003d,0x00000006,0x000003e9,0x000003e0, + 0x00050083,0x00000006,0x000003ea,0x000003e8,0x000003e9,0x00070050,0x0000001a,0x000003eb, + 0x000003e4,0x000003e6,0x000003e7,0x000003ea,0x0003003e,0x00000388,0x000003eb,0x000200f9, + 0x000003b6,0x000200f8,0x000003b6,0x000200f9,0x0000038f,0x000200f8,0x0000038f,0x000200f9, + 0x00000383,0x000200f8,0x00000383,0x0004003d,0x0000003f,0x000003ec,0x000002fa,0x000400a8, + 0x0000003f,0x000003ed,0x000003ec,0x000300f7,0x000003ef,0x00000000,0x000400fa,0x000003ed, + 0x000003ee,0x00000403,0x000200f8,0x000003ee,0x00050041,0x00000007,0x000003f1,0x000002ff, + 0x00000058,0x0004003d,0x00000006,0x000003f2,0x000003f1,0x00050041,0x000003f3,0x000003f4, + 0x0000031f,0x000000e8,0x0004003d,0x00000006,0x000003f5,0x000003f4,0x00050085,0x00000006, + 0x000003f6,0x000003f2,0x000003f5,0x00050083,0x00000006,0x000003f7,0x000003f6,0x00000064, + 0x00050041,0x00000007,0x000003f8,0x000002ff,0x0000005b,0x0004003d,0x00000006,0x000003f9, + 0x000003f8,0x00050041,0x000003f3,0x000003fa,0x0000031f,0x000000ee,0x0004003d,0x00000006, + 0x000003fb,0x000003fa,0x0004007f,0x00000006,0x000003fc,0x000003fb,0x00050085,0x00000006, + 0x000003fd,0x000003f9,0x000003fc,0x00050041,0x000003f3,0x000003fe,0x0000031f,0x000000ee, + 0x0004003d,0x00000006,0x000003ff,0x000003fe,0x0006000c,0x00000006,0x00000400,0x00000001, + 0x00000006,0x000003ff,0x00050081,0x00000006,0x00000401,0x000003fd,0x00000400,0x00070050, + 0x0000001a,0x00000402,0x000003f7,0x00000401,0x00000065,0x00000064,0x0003003e,0x000003f0, + 0x00000402,0x000200f9,0x000003ef,0x000200f8,0x00000403,0x00050041,0x000003f3,0x00000404, + 0x0000031f,0x000000c1,0x0004003d,0x00000006,0x00000405,0x00000404,0x00050041,0x000003f3, + 0x00000406,0x0000031f,0x000000c1,0x0004003d,0x00000006,0x00000407,0x00000406,0x00050041, + 0x000003f3,0x00000408,0x0000031f,0x000000c1,0x0004003d,0x00000006,0x00000409,0x00000408, + 0x00050041,0x000003f3,0x0000040a,0x0000031f,0x000000c1,0x0004003d,0x00000006,0x0000040b, + 0x0000040a,0x00070050,0x0000001a,0x0000040c,0x00000405,0x00000407,0x00000409,0x0000040b, + 0x0003003e,0x000003f0,0x0000040c,0x000200f9,0x000003ef,0x000200f8,0x000003ef,0x0004003d, + 0x0000001a,0x00000411,0x000003f0,0x00050041,0x00000376,0x00000412,0x00000410,0x00000088, + 0x0003003e,0x00000412,0x00000411,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b, + 0x00000007,0x0000004a,0x00000007,0x0004003d,0x00000006,0x00000049,0x00000009,0x0003003e, + 0x0000004a,0x00000049,0x0004003d,0x00000006,0x0000004b,0x0000004a,0x000200fe,0x0000004b, + 0x00010038,0x00050036,0x0000000c,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x0000000f,0x000200f8,0x00000011,0x0004003b,0x0000000d,0x0000004f,0x00000007,0x0004003d, + 0x0000000c,0x0000004e,0x0000000f,0x0003003e,0x0000004f,0x0000004e,0x0004003d,0x0000000c, + 0x00000050,0x0000004f,0x000200fe,0x00000050,0x00010038,0x00050036,0x00000006,0x00000013, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000012,0x000200f8,0x00000014,0x0004003d, + 0x00000006,0x00000053,0x00000012,0x000200fe,0x00000053,0x00010038,0x00050036,0x0000000c, + 0x00000018,0x00000000,0x00000015,0x00030037,0x00000007,0x00000016,0x00030037,0x00000007, + 0x00000017,0x000200f8,0x00000019,0x0004003b,0x0000000d,0x00000056,0x00000007,0x0004003d, + 0x00000006,0x00000057,0x00000016,0x00050041,0x00000007,0x00000059,0x00000056,0x00000058, + 0x0003003e,0x00000059,0x00000057,0x0004003d,0x00000006,0x0000005a,0x00000017,0x00050041, + 0x00000007,0x0000005c,0x00000056,0x0000005b,0x0003003e,0x0000005c,0x0000005a,0x0004003d, + 0x0000000c,0x0000005d,0x00000056,0x000200fe,0x0000005d,0x00010038,0x00050036,0x0000001c, + 0x0000001f,0x00000000,0x0000001d,0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020, + 0x0004003d,0x0000001a,0x00000060,0x0000001e,0x0007004f,0x0000000c,0x00000061,0x00000060, + 0x00000060,0x00000000,0x00000001,0x0004003d,0x0000001a,0x00000062,0x0000001e,0x0007004f, + 0x0000000c,0x00000063,0x00000062,0x00000062,0x00000002,0x00000003,0x00050051,0x00000006, + 0x00000066,0x00000061,0x00000000,0x00050051,0x00000006,0x00000067,0x00000061,0x00000001, + 0x00050051,0x00000006,0x00000068,0x00000063,0x00000000,0x00050051,0x00000006,0x00000069, + 0x00000063,0x00000001,0x00050050,0x0000000c,0x0000006a,0x00000066,0x00000067,0x00050050, + 0x0000000c,0x0000006b,0x00000068,0x00000069,0x00050050,0x0000001c,0x0000006c,0x0000006a, + 0x0000006b,0x000200fe,0x0000006c,0x00010038,0x00050036,0x00000021,0x00000025,0x00000000, + 0x00000023,0x00030037,0x00000022,0x00000024,0x000200f8,0x00000026,0x0004003d,0x00000021, + 0x0000006f,0x00000024,0x000500c7,0x00000021,0x00000071,0x0000006f,0x00000070,0x00050082, + 0x00000021,0x00000072,0x00000071,0x0000005b,0x000200fe,0x00000072,0x00010038,0x00050036, + 0x00000006,0x0000002a,0x00000000,0x00000027,0x00030037,0x00000022,0x00000028,0x00030037, + 0x00000022,0x00000029,0x000200f8,0x0000002b,0x0004003b,0x00000007,0x00000077,0x00000007, + 0x0004003b,0x00000007,0x00000083,0x00000007,0x0004003d,0x00000021,0x00000075,0x00000028, + 0x000500aa,0x0000003f,0x00000076,0x00000075,0x00000058,0x000300f7,0x00000079,0x00000000, + 0x000400fa,0x00000076,0x00000078,0x0000007a,0x000200f8,0x00000078,0x0003003e,0x00000077, + 0x00000065,0x000200f9,0x00000079,0x000200f8,0x0000007a,0x0004003d,0x00000021,0x0000007b, + 0x00000028,0x00050080,0x00000021,0x0000007d,0x0000007b,0x0000007c,0x0004003d,0x00000021, + 0x0000007e,0x00000029,0x00050084,0x00000021,0x0000007f,0x0000007d,0x0000007e,0x0006000c, + 0x0000000c,0x00000080,0x00000001,0x0000003e,0x0000007f,0x00050051,0x00000006,0x00000081, + 0x00000080,0x00000000,0x0003003e,0x00000077,0x00000081,0x000200f9,0x00000079,0x000200f8, + 0x00000079,0x0004003d,0x00000006,0x00000082,0x00000077,0x0003003e,0x00000083,0x00000082, + 0x0004003d,0x00000006,0x00000084,0x00000083,0x000200fe,0x00000084,0x00010038,0x00050036, + 0x0000001a,0x00000031,0x00000000,0x0000002d,0x00030037,0x0000002c,0x0000002e,0x00030037, + 0x0000000d,0x0000002f,0x00030037,0x0000000d,0x00000030,0x000200f8,0x00000032,0x0004003b, + 0x0000000d,0x00000087,0x00000007,0x0004003b,0x0000000d,0x0000009c,0x00000007,0x0004003b, + 0x0000000d,0x000000a0,0x00000007,0x00050041,0x0000000d,0x00000089,0x0000002e,0x00000088, + 0x0004003d,0x0000000c,0x0000008a,0x00000089,0x0006000c,0x0000000c,0x0000008b,0x00000001, + 0x00000004,0x0000008a,0x00050041,0x0000000d,0x0000008d,0x0000002e,0x0000008c,0x0004003d, + 0x0000000c,0x0000008e,0x0000008d,0x0006000c,0x0000000c,0x0000008f,0x00000001,0x00000004, + 0x0000008e,0x00050081,0x0000000c,0x00000090,0x0000008b,0x0000008f,0x0003003e,0x00000087, + 0x00000090,0x00050041,0x00000007,0x00000091,0x00000087,0x00000058,0x0004003d,0x00000006, + 0x00000092,0x00000091,0x000500b7,0x0000003f,0x00000093,0x00000092,0x00000065,0x000300f7, + 0x00000095,0x00000000,0x000400fa,0x00000093,0x00000094,0x00000095,0x000200f8,0x00000094, + 0x00050041,0x00000007,0x00000096,0x00000087,0x0000005b,0x0004003d,0x00000006,0x00000097, + 0x00000096,0x000500b7,0x0000003f,0x00000098,0x00000097,0x00000065,0x000200f9,0x00000095, + 0x000200f8,0x00000095,0x000700f5,0x0000003f,0x00000099,0x00000093,0x00000032,0x00000098, + 0x00000094,0x000300f7,0x0000009b,0x00000000,0x000400fa,0x00000099,0x0000009a,0x000000b8, + 0x000200f8,0x0000009a,0x0004003d,0x0000000c,0x0000009d,0x00000087,0x00050050,0x0000000c, + 0x0000009e,0x00000064,0x00000064,0x00050088,0x0000000c,0x0000009f,0x0000009e,0x0000009d, + 0x0003003e,0x0000009c,0x0000009f,0x0004003d,0x0000001c,0x000000a1,0x0000002e,0x0004003d, + 0x0000000c,0x000000a2,0x00000030,0x00050091,0x0000000c,0x000000a3,0x000000a1,0x000000a2, + 0x0004003d,0x0000000c,0x000000a4,0x0000002f,0x00050081,0x0000000c,0x000000a5,0x000000a3, + 0x000000a4,0x0003003e,0x000000a0,0x000000a5,0x0004003d,0x0000000c,0x000000a6,0x000000a0, + 0x0004003d,0x0000000c,0x000000a7,0x000000a0,0x0004007f,0x0000000c,0x000000a8,0x000000a7, + 0x00050051,0x00000006,0x000000a9,0x000000a6,0x00000000,0x00050051,0x00000006,0x000000aa, + 0x000000a6,0x00000001,0x00050051,0x00000006,0x000000ab,0x000000a8,0x00000000,0x00050051, + 0x00000006,0x000000ac,0x000000a8,0x00000001,0x00070050,0x0000001a,0x000000ad,0x000000a9, + 0x000000aa,0x000000ab,0x000000ac,0x0004003d,0x0000000c,0x000000ae,0x0000009c,0x0009004f, + 0x0000001a,0x000000af,0x000000ae,0x000000ae,0x00000000,0x00000001,0x00000000,0x00000001, + 0x00050085,0x0000001a,0x000000b0,0x000000ad,0x000000af,0x0004003d,0x0000000c,0x000000b1, + 0x0000009c,0x0009004f,0x0000001a,0x000000b2,0x000000b1,0x000000b1,0x00000000,0x00000001, + 0x00000000,0x00000001,0x00050081,0x0000001a,0x000000b3,0x000000b0,0x000000b2,0x00070050, + 0x0000001a,0x000000b5,0x000000b4,0x000000b4,0x000000b4,0x000000b4,0x00050081,0x0000001a, + 0x000000b6,0x000000b3,0x000000b5,0x000200fe,0x000000b6,0x000200f8,0x000000b8,0x0004003d, + 0x0000000c,0x000000b9,0x0000002f,0x0009004f,0x0000001a,0x000000ba,0x000000b9,0x000000b9, + 0x00000000,0x00000001,0x00000000,0x00000001,0x000200fe,0x000000ba,0x000200f8,0x0000009b, + 0x000100ff,0x00010038,0x00050036,0x00000035,0x00000038,0x00000000,0x00000036,0x00030037, + 0x00000034,0x00000037,0x000200f8,0x00000039,0x0004003d,0x00000033,0x000000bd,0x00000037, + 0x000500c7,0x00000033,0x000000bf,0x000000bd,0x000000be,0x0004003d,0x00000033,0x000000c0, + 0x00000037,0x000500c3,0x00000033,0x000000c2,0x000000c0,0x000000c1,0x00050050,0x00000035, + 0x000000c3,0x000000bf,0x000000c2,0x000200fe,0x000000c3,0x00010038,0x00050036,0x00000006, + 0x0000003d,0x00000000,0x0000003a,0x00030037,0x0000002c,0x0000003b,0x00030037,0x0000000d, + 0x0000003c,0x000200f8,0x0000003e,0x0004003b,0x0000000d,0x000000c6,0x00000007,0x0004003d, + 0x0000001c,0x000000c7,0x0000003b,0x0004003d,0x0000000c,0x000000c8,0x0000003c,0x00050091, + 0x0000000c,0x000000c9,0x000000c7,0x000000c8,0x0003003e,0x000000c6,0x000000c9,0x00050041, + 0x00000007,0x000000ca,0x000000c6,0x00000058,0x0004003d,0x00000006,0x000000cb,0x000000ca, + 0x0006000c,0x00000006,0x000000cc,0x00000001,0x00000004,0x000000cb,0x00050041,0x00000007, + 0x000000cd,0x000000c6,0x0000005b,0x0004003d,0x00000006,0x000000ce,0x000000cd,0x0006000c, + 0x00000006,0x000000cf,0x00000001,0x00000004,0x000000ce,0x00050081,0x00000006,0x000000d0, + 0x000000cc,0x000000cf,0x0004003d,0x0000000c,0x000000d1,0x000000c6,0x0004003d,0x0000000c, + 0x000000d2,0x000000c6,0x00050094,0x00000006,0x000000d3,0x000000d1,0x000000d2,0x00050088, + 0x00000006,0x000000d4,0x00000064,0x000000d3,0x00050085,0x00000006,0x000000d5,0x000000d0, + 0x000000d4,0x000200fe,0x000000d5,0x00010038,0x00050036,0x0000003f,0x00000047,0x00000000, + 0x00000040,0x00030037,0x0000001b,0x00000041,0x00030037,0x0000001b,0x00000042,0x00030037, + 0x00000034,0x00000043,0x00030037,0x00000022,0x00000044,0x00030037,0x0000000d,0x00000045, + 0x00030037,0x0000000d,0x00000046,0x000200f8,0x00000048,0x0004003b,0x00000034,0x000000d8, + 0x00000007,0x0004003b,0x00000007,0x000000dc,0x00000007,0x0004003b,0x00000007,0x000000df, + 0x00000007,0x0004003b,0x00000034,0x000000e3,0x00000007,0x0004003b,0x00000034,0x000000ea, + 0x00000007,0x0004003b,0x00000034,0x000000f0,0x00000007,0x0004003b,0x00000034,0x000000f5, + 0x00000007,0x0004003b,0x000000fc,0x000000fd,0x00000007,0x0004003b,0x00000034,0x00000102, + 0x00000007,0x0004003b,0x00000022,0x00000106,0x00000007,0x0004003b,0x000000fc,0x00000109, + 0x00000007,0x0004003b,0x00000022,0x0000010e,0x00000007,0x0004003b,0x0000000d,0x00000114, + 0x00000007,0x0004003b,0x00000022,0x0000011c,0x00000007,0x0004003b,0x0000002c,0x0000011f, + 0x00000007,0x0004003b,0x0000001b,0x0000012a,0x00000007,0x0004003b,0x000000fc,0x0000012c, + 0x00000007,0x0004003b,0x0000000d,0x00000132,0x00000007,0x0004003b,0x00000007,0x00000136, + 0x00000007,0x0004003b,0x00000022,0x0000013a,0x00000007,0x0004003b,0x000000fc,0x00000153, + 0x00000007,0x0004003b,0x00000034,0x00000155,0x00000007,0x0004003b,0x00000162,0x00000163, + 0x00000007,0x0004003b,0x00000034,0x00000173,0x00000007,0x0004003b,0x00000007,0x0000017e, + 0x00000007,0x0004003b,0x0000000d,0x00000182,0x00000007,0x0004003b,0x0000000d,0x00000189, + 0x00000007,0x0004003b,0x00000007,0x000001a6,0x00000007,0x0004003b,0x0000002c,0x000001a7, + 0x00000007,0x0004003b,0x0000000d,0x000001a9,0x00000007,0x0004003b,0x00000007,0x000001ad, + 0x00000007,0x0004003b,0x00000007,0x000001b3,0x00000007,0x0004003b,0x00000007,0x000001b6, + 0x00000007,0x0004003b,0x0000000d,0x000001bb,0x00000007,0x0004003b,0x00000007,0x000001c1, + 0x00000007,0x0004003b,0x0000000d,0x000001d5,0x00000007,0x0004003b,0x00000022,0x000001d7, + 0x00000007,0x0004003b,0x00000034,0x000001df,0x00000007,0x0004003b,0x000001ef,0x000001f0, + 0x00000007,0x0004003b,0x00000034,0x000001f4,0x00000007,0x0004003b,0x000000fc,0x000001f6, + 0x00000007,0x0004003b,0x00000007,0x000001fa,0x00000007,0x0004003b,0x00000007,0x000001fe, + 0x00000007,0x0004003b,0x00000162,0x0000020b,0x00000007,0x0004003b,0x00000162,0x0000020f, + 0x00000007,0x0004003b,0x00000007,0x00000213,0x00000007,0x0004003b,0x0000000d,0x0000021d, + 0x00000007,0x0004003b,0x00000007,0x00000224,0x00000007,0x0004003b,0x0000002c,0x00000225, + 0x00000007,0x0004003b,0x0000000d,0x00000227,0x00000007,0x0004003b,0x00000007,0x0000022a, + 0x00000007,0x0004003b,0x00000007,0x0000023d,0x00000007,0x0004003b,0x00000007,0x00000243, + 0x00000007,0x0004003b,0x00000007,0x00000251,0x00000007,0x0004003b,0x00000007,0x0000025c, + 0x00000007,0x0004003b,0x00000007,0x00000260,0x00000007,0x0004003b,0x00000007,0x0000026d, + 0x00000007,0x0004003b,0x0000000d,0x00000276,0x00000007,0x0004003b,0x0000000d,0x0000027a, + 0x00000007,0x0004003b,0x0000000d,0x0000028e,0x00000007,0x0004003b,0x00000007,0x00000293, + 0x00000007,0x0004003b,0x00000007,0x000002a1,0x00000007,0x0004003b,0x00000007,0x000002a6, + 0x00000007,0x0004003b,0x00000007,0x000002b0,0x00000007,0x0004003b,0x0000000d,0x000002b4, + 0x00000007,0x0004003b,0x00000007,0x000002db,0x00000007,0x0004003b,0x00000007,0x000002dd, + 0x00000007,0x00050041,0x00000007,0x000000d9,0x00000041,0x00000058,0x0004003d,0x00000006, + 0x000000da,0x000000d9,0x0004006e,0x00000033,0x000000db,0x000000da,0x0003003e,0x000000d8, + 0x000000db,0x00050041,0x00000007,0x000000dd,0x00000041,0x0000005b,0x0004003d,0x00000006, + 0x000000de,0x000000dd,0x0003003e,0x000000dc,0x000000de,0x00050041,0x00000007,0x000000e1, + 0x00000041,0x000000e0,0x0004003d,0x00000006,0x000000e2,0x000000e1,0x0003003e,0x000000df, + 0x000000e2,0x00050041,0x00000007,0x000000e5,0x00000041,0x000000e4,0x0004003d,0x00000006, + 0x000000e6,0x000000e5,0x0004007c,0x00000033,0x000000e7,0x000000e6,0x000500c3,0x00000033, + 0x000000e9,0x000000e7,0x000000e8,0x0003003e,0x000000e3,0x000000e9,0x00050041,0x00000007, + 0x000000eb,0x00000041,0x000000e4,0x0004003d,0x00000006,0x000000ec,0x000000eb,0x0004007c, + 0x00000033,0x000000ed,0x000000ec,0x000500c7,0x00000033,0x000000ef,0x000000ed,0x000000ee, + 0x0003003e,0x000000ea,0x000000ef,0x0004003d,0x00000033,0x000000f1,0x000000d8,0x0004003d, + 0x00000033,0x000000f2,0x000000e3,0x00050082,0x00000033,0x000000f3,0x000000f2,0x0000008c, + 0x0007000c,0x00000033,0x000000f4,0x00000001,0x00000027,0x000000f1,0x000000f3,0x0003003e, + 0x000000f0,0x000000f4,0x0004003d,0x00000033,0x000000f6,0x00000043,0x0004003d,0x00000033, + 0x000000f7,0x000000e3,0x00050084,0x00000033,0x000000f8,0x000000f6,0x000000f7,0x0004003d, + 0x00000033,0x000000f9,0x000000f0,0x00050080,0x00000033,0x000000fa,0x000000f8,0x000000f9, + 0x0003003e,0x000000f5,0x000000fa,0x0004003d,0x000000fe,0x00000101,0x00000100,0x0004003d, + 0x00000033,0x00000103,0x000000f5,0x0003003e,0x00000102,0x00000103,0x00050039,0x00000035, + 0x00000104,0x00000038,0x00000102,0x0007005f,0x000000fb,0x00000105,0x00000101,0x00000104, + 0x00000002,0x00000088,0x0003003e,0x000000fd,0x00000105,0x00050041,0x00000022,0x00000107, + 0x000000fd,0x000000e4,0x0004003d,0x00000021,0x00000108,0x00000107,0x0003003e,0x00000106, + 0x00000108,0x0004003d,0x00000021,0x0000010f,0x00000106,0x0003003e,0x0000010e,0x0000010f, + 0x00050039,0x00000021,0x00000110,0x00000025,0x0000010e,0x00060041,0x00000111,0x00000112, + 0x0000010d,0x00000088,0x00000110,0x0004003d,0x000000fb,0x00000113,0x00000112,0x0003003e, + 0x00000109,0x00000113,0x0004003d,0x000000fb,0x00000116,0x00000109,0x0007004f,0x00000115, + 0x00000117,0x00000116,0x00000116,0x00000000,0x00000001,0x0004007c,0x0000000c,0x00000118, + 0x00000117,0x0003003e,0x00000114,0x00000118,0x00050041,0x00000022,0x00000119,0x00000109, + 0x000000e0,0x0004003d,0x00000021,0x0000011a,0x00000119,0x000500c7,0x00000021,0x0000011b, + 0x0000011a,0x00000070,0x0003003e,0x00000044,0x0000011b,0x00050041,0x00000022,0x0000011d, + 0x00000109,0x000000e4,0x0004003d,0x00000021,0x0000011e,0x0000011d,0x0003003e,0x0000011c, + 0x0000011e,0x0004003d,0x00000021,0x00000124,0x00000044,0x00050084,0x00000021,0x00000126, + 0x00000124,0x00000125,0x00060041,0x00000111,0x00000127,0x00000123,0x00000088,0x00000126, + 0x0004003d,0x000000fb,0x00000128,0x00000127,0x0004007c,0x0000001a,0x00000129,0x00000128, + 0x0003003e,0x0000012a,0x00000129,0x00050039,0x0000001c,0x0000012b,0x0000001f,0x0000012a, + 0x0003003e,0x0000011f,0x0000012b,0x0004003d,0x00000021,0x0000012d,0x00000044,0x00050084, + 0x00000021,0x0000012e,0x0000012d,0x00000125,0x00050080,0x00000021,0x0000012f,0x0000012e, + 0x0000005b,0x00060041,0x00000111,0x00000130,0x00000123,0x00000088,0x0000012f,0x0004003d, + 0x000000fb,0x00000131,0x00000130,0x0003003e,0x0000012c,0x00000131,0x0004003d,0x000000fb, + 0x00000133,0x0000012c,0x0007004f,0x00000115,0x00000134,0x00000133,0x00000133,0x00000000, + 0x00000001,0x0004007c,0x0000000c,0x00000135,0x00000134,0x0003003e,0x00000132,0x00000135, + 0x00050041,0x00000022,0x00000137,0x0000012c,0x000000e0,0x0004003d,0x00000021,0x00000138, + 0x00000137,0x0004007c,0x00000006,0x00000139,0x00000138,0x0003003e,0x00000136,0x00000139, + 0x0004003d,0x00000021,0x0000013b,0x00000106,0x000500c7,0x00000021,0x0000013d,0x0000013b, + 0x0000013c,0x0003003e,0x0000013a,0x0000013d,0x0004003d,0x00000021,0x0000013e,0x0000013a, + 0x000500ab,0x0000003f,0x0000013f,0x0000013e,0x00000058,0x000300f7,0x00000141,0x00000000, + 0x000400fa,0x0000013f,0x00000140,0x00000141,0x000200f8,0x00000140,0x00050041,0x00000007, + 0x00000142,0x00000042,0x00000058,0x0004003d,0x00000006,0x00000143,0x00000142,0x0004006e, + 0x00000033,0x00000144,0x00000143,0x0003003e,0x000000d8,0x00000144,0x00050041,0x00000007, + 0x00000145,0x00000042,0x0000005b,0x0004003d,0x00000006,0x00000146,0x00000145,0x0003003e, + 0x000000dc,0x00000146,0x00050041,0x00000007,0x00000147,0x00000042,0x000000e0,0x0004003d, + 0x00000006,0x00000148,0x00000147,0x0003003e,0x000000df,0x00000148,0x000200f9,0x00000141, + 0x000200f8,0x00000141,0x0004003d,0x00000033,0x00000149,0x000000d8,0x0004003d,0x00000033, + 0x0000014a,0x000000f0,0x000500ab,0x0000003f,0x0000014b,0x00000149,0x0000014a,0x000300f7, + 0x0000014d,0x00000000,0x000400fa,0x0000014b,0x0000014c,0x0000014d,0x000200f8,0x0000014c, + 0x0004003d,0x00000033,0x0000014e,0x000000d8,0x0004003d,0x00000033,0x0000014f,0x000000f0, + 0x00050082,0x00000033,0x00000150,0x0000014e,0x0000014f,0x0004003d,0x00000033,0x00000151, + 0x000000f5,0x00050080,0x00000033,0x00000152,0x00000151,0x00000150,0x0003003e,0x000000f5, + 0x00000152,0x0004003d,0x000000fe,0x00000154,0x00000100,0x0004003d,0x00000033,0x00000156, + 0x000000f5,0x0003003e,0x00000155,0x00000156,0x00050039,0x00000035,0x00000157,0x00000038, + 0x00000155,0x0007005f,0x000000fb,0x00000158,0x00000154,0x00000157,0x00000002,0x00000088, + 0x0003003e,0x00000153,0x00000158,0x00050041,0x00000022,0x00000159,0x00000153,0x000000e4, + 0x0004003d,0x00000021,0x0000015a,0x00000159,0x000500c7,0x00000021,0x0000015c,0x0000015a, + 0x0000015b,0x0004003d,0x00000021,0x0000015d,0x00000106,0x000500c7,0x00000021,0x0000015e, + 0x0000015d,0x0000015b,0x000500ab,0x0000003f,0x0000015f,0x0000015c,0x0000015e,0x000300f7, + 0x00000161,0x00000000,0x000400fa,0x0000015f,0x00000160,0x00000176,0x000200f8,0x00000160, + 0x0004003d,0x00000006,0x00000164,0x00000136,0x000500b4,0x0000003f,0x00000165,0x00000164, + 0x00000065,0x000400a8,0x0000003f,0x00000166,0x00000165,0x000300f7,0x00000168,0x00000000, + 0x000400fa,0x00000166,0x00000167,0x00000168,0x000200f8,0x00000167,0x00050041,0x00000007, + 0x00000169,0x00000114,0x00000058,0x0004003d,0x00000006,0x0000016a,0x00000169,0x000500b7, + 0x0000003f,0x0000016b,0x0000016a,0x00000065,0x000200f9,0x00000168,0x000200f8,0x00000168, + 0x000700f5,0x0000003f,0x0000016c,0x00000165,0x00000160,0x0000016b,0x00000167,0x0003003e, + 0x00000163,0x0000016c,0x0004003d,0x0000003f,0x0000016d,0x00000163,0x000300f7,0x0000016f, + 0x00000000,0x000400fa,0x0000016d,0x0000016e,0x0000016f,0x000200f8,0x0000016e,0x0004003d, + 0x000000fe,0x00000170,0x00000100,0x0004003d,0x00000021,0x00000171,0x0000011c,0x0004007c, + 0x00000033,0x00000172,0x00000171,0x0003003e,0x00000173,0x00000172,0x00050039,0x00000035, + 0x00000174,0x00000038,0x00000173,0x0007005f,0x000000fb,0x00000175,0x00000170,0x00000174, + 0x00000002,0x00000088,0x0003003e,0x000000fd,0x00000175,0x000200f9,0x0000016f,0x000200f8, + 0x0000016f,0x000200f9,0x00000161,0x000200f8,0x00000176,0x0004003d,0x000000fb,0x00000177, + 0x00000153,0x0003003e,0x000000fd,0x00000177,0x000200f9,0x00000161,0x000200f8,0x00000161, + 0x00050041,0x00000022,0x00000178,0x000000fd,0x000000e4,0x0004003d,0x00000021,0x00000179, + 0x00000178,0x000500c7,0x00000021,0x0000017b,0x00000179,0x0000017a,0x0004003d,0x00000021, + 0x0000017c,0x0000013a,0x000500c5,0x00000021,0x0000017d,0x0000017b,0x0000017c,0x0003003e, + 0x00000106,0x0000017d,0x000200f9,0x0000014d,0x000200f8,0x0000014d,0x00050041,0x00000022, + 0x0000017f,0x000000fd,0x000000e0,0x0004003d,0x00000021,0x00000180,0x0000017f,0x0004007c, + 0x00000006,0x00000181,0x00000180,0x0003003e,0x0000017e,0x00000181,0x0004003d,0x00000006, + 0x00000183,0x0000017e,0x0006000c,0x00000006,0x00000184,0x00000001,0x0000000d,0x00000183, + 0x0004003d,0x00000006,0x00000185,0x0000017e,0x0006000c,0x00000006,0x00000186,0x00000001, + 0x0000000e,0x00000185,0x0004007f,0x00000006,0x00000187,0x00000186,0x00050050,0x0000000c, + 0x00000188,0x00000184,0x00000187,0x0003003e,0x00000182,0x00000188,0x0004003d,0x000000fb, + 0x0000018a,0x000000fd,0x0007004f,0x00000115,0x0000018b,0x0000018a,0x0000018a,0x00000000, + 0x00000001,0x0004007c,0x0000000c,0x0000018c,0x0000018b,0x0003003e,0x00000189,0x0000018c, + 0x0004003d,0x00000006,0x0000018d,0x00000136,0x000500b7,0x0000003f,0x0000018e,0x0000018d, + 0x00000065,0x000300f7,0x00000190,0x00000000,0x000400fa,0x0000018e,0x0000018f,0x000002c0, + 0x000200f8,0x0000018f,0x0004003d,0x0000001c,0x00000191,0x0000011f,0x0006000c,0x00000006, + 0x00000192,0x00000001,0x00000021,0x00000191,0x0006000c,0x00000006,0x00000193,0x00000001, + 0x00000006,0x00000192,0x0004003d,0x00000006,0x00000194,0x000000dc,0x00050085,0x00000006, + 0x00000195,0x00000194,0x00000193,0x0003003e,0x000000dc,0x00000195,0x0004003d,0x00000021, + 0x00000196,0x00000106,0x000500c7,0x00000021,0x00000198,0x00000196,0x00000197,0x000500ab, + 0x0000003f,0x00000199,0x00000198,0x00000058,0x000300f7,0x0000019b,0x00000000,0x000400fa, + 0x00000199,0x0000019a,0x0000019b,0x000200f8,0x0000019a,0x0004003d,0x00000006,0x0000019c, + 0x000000dc,0x0007000c,0x00000006,0x0000019d,0x00000001,0x00000025,0x0000019c,0x00000065, + 0x0003003e,0x000000dc,0x0000019d,0x000200f9,0x0000019b,0x000200f8,0x0000019b,0x0004003d, + 0x00000021,0x0000019e,0x00000106,0x000500c7,0x00000021,0x000001a0,0x0000019e,0x0000019f, + 0x000500ab,0x0000003f,0x000001a1,0x000001a0,0x00000058,0x000300f7,0x000001a3,0x00000000, + 0x000400fa,0x000001a1,0x000001a2,0x000001a3,0x000200f8,0x000001a2,0x0004003d,0x00000006, + 0x000001a4,0x000000dc,0x0007000c,0x00000006,0x000001a5,0x00000001,0x00000028,0x000001a4, + 0x00000065,0x0003003e,0x000000dc,0x000001a5,0x000200f9,0x000001a3,0x000200f8,0x000001a3, + 0x0004003d,0x0000001c,0x000001a8,0x0000011f,0x0003003e,0x000001a7,0x000001a8,0x0004003d, + 0x0000000c,0x000001aa,0x00000182,0x0003003e,0x000001a9,0x000001aa,0x00060039,0x00000006, + 0x000001ab,0x0000003d,0x000001a7,0x000001a9,0x00050085,0x00000006,0x000001ac,0x000001ab, + 0x000000b4,0x0003003e,0x000001a6,0x000001ac,0x0003003e,0x000001ad,0x00000064,0x0004003d, + 0x00000006,0x000001ae,0x000001a6,0x0004003d,0x00000006,0x000001af,0x00000136,0x000500ba, + 0x0000003f,0x000001b0,0x000001ae,0x000001af,0x000300f7,0x000001b2,0x00000000,0x000400fa, + 0x000001b0,0x000001b1,0x000001b2,0x000200f8,0x000001b1,0x0004003d,0x00000006,0x000001b4, + 0x00000136,0x0003003e,0x000001b3,0x000001b4,0x00050039,0x00000006,0x000001b5,0x0000000a, + 0x000001b3,0x0004003d,0x00000006,0x000001b7,0x000001a6,0x0003003e,0x000001b6,0x000001b7, + 0x00050039,0x00000006,0x000001b8,0x0000000a,0x000001b6,0x00050088,0x00000006,0x000001b9, + 0x000001b5,0x000001b8,0x0003003e,0x000001ad,0x000001b9,0x0004003d,0x00000006,0x000001ba, + 0x000001a6,0x0003003e,0x00000136,0x000001ba,0x000200f9,0x000001b2,0x000200f8,0x000001b2, + 0x0004003d,0x0000000c,0x000001bc,0x00000182,0x0004003d,0x00000006,0x000001bd,0x00000136, + 0x0004003d,0x00000006,0x000001be,0x000001a6,0x00050081,0x00000006,0x000001bf,0x000001bd, + 0x000001be,0x0005008e,0x0000000c,0x000001c0,0x000001bc,0x000001bf,0x0003003e,0x000001bb, + 0x000001c0,0x0004003d,0x00000006,0x000001c2,0x000000dc,0x0004003d,0x00000006,0x000001c3, + 0x00000136,0x0004003d,0x00000006,0x000001c4,0x000001a6,0x00050081,0x00000006,0x000001c5, + 0x000001c3,0x000001c4,0x00050085,0x00000006,0x000001c6,0x000001c2,0x000001c5,0x0003003e, + 0x000001c1,0x000001c6,0x0004003d,0x00000006,0x000001c7,0x000001a6,0x00050085,0x00000006, + 0x000001c9,0x000001c7,0x000001c8,0x00050088,0x00000006,0x000001ca,0x00000064,0x000001c9, + 0x0004003d,0x00000006,0x000001cb,0x000001c1,0x0004003d,0x00000006,0x000001cc,0x000001c1, + 0x0004007f,0x00000006,0x000001cd,0x000001cc,0x00050050,0x0000000c,0x000001ce,0x000001cb, + 0x000001cd,0x0004003d,0x00000006,0x000001cf,0x00000136,0x00050050,0x0000000c,0x000001d0, + 0x000001cf,0x000001cf,0x00050081,0x0000000c,0x000001d1,0x000001ce,0x000001d0,0x0005008e, + 0x0000000c,0x000001d2,0x000001d1,0x000001ca,0x00050050,0x0000000c,0x000001d3,0x000000b4, + 0x000000b4,0x00050081,0x0000000c,0x000001d4,0x000001d2,0x000001d3,0x0003003e,0x000001d5, + 0x000001d4,0x00050039,0x0000000c,0x000001d6,0x00000010,0x000001d5,0x0003003e,0x00000046, + 0x000001d6,0x0004003d,0x00000021,0x000001d8,0x00000106,0x000500c7,0x00000021,0x000001da, + 0x000001d8,0x000001d9,0x0003003e,0x000001d7,0x000001da,0x0004003d,0x00000021,0x000001db, + 0x000001d7,0x000500ab,0x0000003f,0x000001dc,0x000001db,0x00000058,0x000300f7,0x000001de, + 0x00000000,0x000400fa,0x000001dc,0x000001dd,0x000001de,0x000200f8,0x000001dd,0x0003003e, + 0x000001df,0x000000e8,0x0004003d,0x00000021,0x000001e0,0x00000106,0x000500c7,0x00000021, + 0x000001e2,0x000001e0,0x000001e1,0x000500aa,0x0000003f,0x000001e3,0x000001e2,0x00000058, + 0x000300f7,0x000001e5,0x00000000,0x000400fa,0x000001e3,0x000001e4,0x000001e5,0x000200f8, + 0x000001e4,0x0004003d,0x00000033,0x000001e6,0x000001df,0x0004007e,0x00000033,0x000001e7, + 0x000001e6,0x0003003e,0x000001df,0x000001e7,0x000200f9,0x000001e5,0x000200f8,0x000001e5, + 0x0004003d,0x00000021,0x000001e8,0x00000106,0x000500c7,0x00000021,0x000001e9,0x000001e8, + 0x0000013c,0x000500ab,0x0000003f,0x000001ea,0x000001e9,0x00000058,0x000300f7,0x000001ec, + 0x00000000,0x000400fa,0x000001ea,0x000001eb,0x000001ec,0x000200f8,0x000001eb,0x0004003d, + 0x00000033,0x000001ed,0x000001df,0x0004007e,0x00000033,0x000001ee,0x000001ed,0x0003003e, + 0x000001df,0x000001ee,0x000200f9,0x000001ec,0x000200f8,0x000001ec,0x0004003d,0x00000033, + 0x000001f1,0x000000f5,0x0004003d,0x00000033,0x000001f2,0x000001df,0x00050080,0x00000033, + 0x000001f3,0x000001f1,0x000001f2,0x0003003e,0x000001f4,0x000001f3,0x00050039,0x00000035, + 0x000001f5,0x00000038,0x000001f4,0x0003003e,0x000001f0,0x000001f5,0x0004003d,0x000000fe, + 0x000001f7,0x00000100,0x0004003d,0x00000035,0x000001f8,0x000001f0,0x0007005f,0x000000fb, + 0x000001f9,0x000001f7,0x000001f8,0x00000002,0x00000088,0x0003003e,0x000001f6,0x000001f9, + 0x00050041,0x00000022,0x000001fb,0x000001f6,0x000000e0,0x0004003d,0x00000021,0x000001fc, + 0x000001fb,0x0004007c,0x00000006,0x000001fd,0x000001fc,0x0003003e,0x000001fa,0x000001fd, + 0x0004003d,0x00000006,0x000001ff,0x000001fa,0x0004003d,0x00000006,0x00000200,0x0000017e, + 0x00050083,0x00000006,0x00000201,0x000001ff,0x00000200,0x0006000c,0x00000006,0x00000202, + 0x00000001,0x00000004,0x00000201,0x0003003e,0x000001fe,0x00000202,0x0004003d,0x00000006, + 0x00000203,0x000001fe,0x000500ba,0x0000003f,0x00000205,0x00000203,0x00000204,0x000300f7, + 0x00000207,0x00000000,0x000400fa,0x00000205,0x00000206,0x00000207,0x000200f8,0x00000206, + 0x0004003d,0x00000006,0x00000209,0x000001fe,0x00050083,0x00000006,0x0000020a,0x00000208, + 0x00000209,0x0003003e,0x000001fe,0x0000020a,0x000200f9,0x00000207,0x000200f8,0x00000207, + 0x0004003d,0x00000021,0x0000020c,0x00000106,0x000500c7,0x00000021,0x0000020d,0x0000020c, + 0x000001e1,0x000500ab,0x0000003f,0x0000020e,0x0000020d,0x00000058,0x0003003e,0x0000020b, + 0x0000020e,0x0004003d,0x00000021,0x00000210,0x00000106,0x000500c7,0x00000021,0x00000211, + 0x00000210,0x00000197,0x000500ab,0x0000003f,0x00000212,0x00000211,0x00000058,0x0003003e, + 0x0000020f,0x00000212,0x0004003d,0x00000006,0x00000214,0x000001fe,0x0004003d,0x0000003f, + 0x00000215,0x0000020b,0x0004003d,0x0000003f,0x00000216,0x0000020f,0x000500a4,0x0000003f, + 0x00000217,0x00000215,0x00000216,0x000600a9,0x00000006,0x00000219,0x00000217,0x00000218, + 0x000000b4,0x00050085,0x00000006,0x0000021a,0x00000214,0x00000219,0x0004003d,0x00000006, + 0x0000021b,0x0000017e,0x00050081,0x00000006,0x0000021c,0x0000021a,0x0000021b,0x0003003e, + 0x00000213,0x0000021c,0x0004003d,0x00000006,0x0000021e,0x00000213,0x0006000c,0x00000006, + 0x0000021f,0x00000001,0x0000000d,0x0000021e,0x0004003d,0x00000006,0x00000220,0x00000213, + 0x0006000c,0x00000006,0x00000221,0x00000001,0x0000000e,0x00000220,0x0004007f,0x00000006, + 0x00000222,0x00000221,0x00050050,0x0000000c,0x00000223,0x0000021f,0x00000222,0x0003003e, + 0x0000021d,0x00000223,0x0004003d,0x0000001c,0x00000226,0x0000011f,0x0003003e,0x00000225, + 0x00000226,0x0004003d,0x0000000c,0x00000228,0x0000021d,0x0003003e,0x00000227,0x00000228, + 0x00060039,0x00000006,0x00000229,0x0000003d,0x00000225,0x00000227,0x0003003e,0x00000224, + 0x00000229,0x0004003d,0x00000006,0x0000022b,0x000001fe,0x00050085,0x00000006,0x0000022c, + 0x0000022b,0x000000b4,0x0006000c,0x00000006,0x0000022d,0x00000001,0x0000000e,0x0000022c, + 0x0003003e,0x0000022a,0x0000022d,0x0004003d,0x00000021,0x0000022e,0x000001d7,0x000500aa, + 0x0000003f,0x0000022f,0x0000022e,0x000001d9,0x000400a8,0x0000003f,0x00000230,0x0000022f, + 0x000300f7,0x00000232,0x00000000,0x000400fa,0x00000230,0x00000231,0x00000232,0x000200f8, + 0x00000231,0x0004003d,0x00000021,0x00000233,0x000001d7,0x000500aa,0x0000003f,0x00000235, + 0x00000233,0x00000234,0x0004003d,0x00000006,0x00000236,0x0000022a,0x000500be,0x0000003f, + 0x00000238,0x00000236,0x00000237,0x000500a7,0x0000003f,0x00000239,0x00000235,0x00000238, + 0x000200f9,0x00000232,0x000200f8,0x00000232,0x000700f5,0x0000003f,0x0000023a,0x0000022f, + 0x00000207,0x00000239,0x00000231,0x000300f7,0x0000023c,0x00000000,0x000400fa,0x0000023a, + 0x0000023b,0x0000024a,0x000200f8,0x0000023b,0x0004003d,0x00000021,0x0000023e,0x00000106, + 0x000500c7,0x00000021,0x00000240,0x0000023e,0x0000023f,0x000500ab,0x0000003f,0x00000241, + 0x00000240,0x00000058,0x000600a9,0x00000006,0x00000242,0x00000241,0x00000064,0x00000237, + 0x0003003e,0x0000023d,0x00000242,0x0004003d,0x00000006,0x00000244,0x00000136,0x0004003d, + 0x00000006,0x00000245,0x0000022a,0x0004003d,0x00000006,0x00000246,0x0000023d,0x0007000c, + 0x00000006,0x00000247,0x00000001,0x00000028,0x00000245,0x00000246,0x00050088,0x00000006, + 0x00000248,0x00000064,0x00000247,0x00050085,0x00000006,0x00000249,0x00000244,0x00000248, + 0x0003003e,0x00000243,0x00000249,0x000200f9,0x0000023c,0x000200f8,0x0000024a,0x0004003d, + 0x00000006,0x0000024b,0x00000136,0x0004003d,0x00000006,0x0000024c,0x0000022a,0x00050085, + 0x00000006,0x0000024d,0x0000024b,0x0000024c,0x0004003d,0x00000006,0x0000024e,0x00000224, + 0x00050085,0x00000006,0x0000024f,0x0000024e,0x000000b4,0x00050081,0x00000006,0x00000250, + 0x0000024d,0x0000024f,0x0003003e,0x00000243,0x00000250,0x000200f9,0x0000023c,0x000200f8, + 0x0000023c,0x0004003d,0x00000006,0x00000252,0x00000243,0x0004003d,0x00000006,0x00000253, + 0x00000224,0x00050085,0x00000006,0x00000254,0x00000253,0x000000b4,0x00050081,0x00000006, + 0x00000255,0x00000252,0x00000254,0x0003003e,0x00000251,0x00000255,0x0004003d,0x00000021, + 0x00000256,0x00000106,0x000500c7,0x00000021,0x00000258,0x00000256,0x00000257,0x000500ab, + 0x0000003f,0x00000259,0x00000258,0x00000058,0x000300f7,0x0000025b,0x00000000,0x000400fa, + 0x00000259,0x0000025a,0x0000025b,0x000200f8,0x0000025a,0x0004003d,0x00000006,0x0000025d, + 0x00000136,0x0004003d,0x00000006,0x0000025e,0x000001a6,0x00050081,0x00000006,0x0000025f, + 0x0000025d,0x0000025e,0x0003003e,0x0000025c,0x0000025f,0x0004003d,0x00000006,0x00000261, + 0x000001a6,0x00050085,0x00000006,0x00000263,0x00000261,0x00000262,0x0003003e,0x00000260, + 0x00000263,0x0004003d,0x00000006,0x00000264,0x0000025c,0x0004003d,0x00000006,0x00000265, + 0x00000251,0x0004003d,0x00000006,0x00000266,0x0000022a,0x00050085,0x00000006,0x00000267, + 0x00000265,0x00000266,0x0004003d,0x00000006,0x00000268,0x00000260,0x00050081,0x00000006, + 0x00000269,0x00000267,0x00000268,0x000500bc,0x0000003f,0x0000026a,0x00000264,0x00000269, + 0x000300f7,0x0000026c,0x00000000,0x000400fa,0x0000026a,0x0000026b,0x00000275,0x000200f8, + 0x0000026b,0x0004003d,0x00000006,0x0000026e,0x0000025c,0x0004003d,0x00000006,0x0000026f, + 0x0000022a,0x00050088,0x00000006,0x00000270,0x00000064,0x0000026f,0x00050085,0x00000006, + 0x00000271,0x0000026e,0x00000270,0x0003003e,0x0000026d,0x00000271,0x0004003d,0x0000000c, + 0x00000272,0x0000021d,0x0004003d,0x00000006,0x00000273,0x0000026d,0x0005008e,0x0000000c, + 0x00000274,0x00000272,0x00000273,0x0003003e,0x000001bb,0x00000274,0x000200f9,0x0000026c, + 0x000200f8,0x00000275,0x0004003d,0x0000000c,0x00000277,0x0000021d,0x0004003d,0x00000006, + 0x00000278,0x00000251,0x0005008e,0x0000000c,0x00000279,0x00000277,0x00000278,0x0003003e, + 0x00000276,0x00000279,0x0004003d,0x0000000c,0x0000027b,0x000001bb,0x0004003d,0x0000000c, + 0x0000027c,0x000001bb,0x00050094,0x00000006,0x0000027d,0x0000027b,0x0000027c,0x0004003d, + 0x0000000c,0x0000027e,0x00000276,0x0004003d,0x0000000c,0x0000027f,0x00000276,0x00050094, + 0x00000006,0x00000280,0x0000027e,0x0000027f,0x00050050,0x0000000c,0x00000281,0x0000027d, + 0x00000280,0x0003003e,0x0000027a,0x00000281,0x0004003d,0x0000000c,0x00000282,0x0000027a, + 0x0004003d,0x0000000c,0x00000283,0x000001bb,0x0004003d,0x0000000c,0x00000284,0x00000276, + 0x00050051,0x00000006,0x00000285,0x00000283,0x00000000,0x00050051,0x00000006,0x00000286, + 0x00000283,0x00000001,0x00050051,0x00000006,0x00000287,0x00000284,0x00000000,0x00050051, + 0x00000006,0x00000288,0x00000284,0x00000001,0x00050050,0x0000000c,0x00000289,0x00000285, + 0x00000286,0x00050050,0x0000000c,0x0000028a,0x00000287,0x00000288,0x00050050,0x0000001c, + 0x0000028b,0x00000289,0x0000028a,0x0006000c,0x0000001c,0x0000028c,0x00000001,0x00000022, + 0x0000028b,0x00050090,0x0000000c,0x0000028d,0x00000282,0x0000028c,0x0003003e,0x000001bb, + 0x0000028d,0x000200f9,0x0000026c,0x000200f8,0x0000026c,0x000200f9,0x0000025b,0x000200f8, + 0x0000025b,0x0004003d,0x00000006,0x0000028f,0x000000dc,0x0006000c,0x00000006,0x00000290, + 0x00000001,0x00000004,0x0000028f,0x0004003d,0x0000000c,0x00000291,0x000001bb,0x0005008e, + 0x0000000c,0x00000292,0x00000291,0x00000290,0x0003003e,0x0000028e,0x00000292,0x0004003d, + 0x00000006,0x00000294,0x00000251,0x0004003d,0x0000000c,0x00000295,0x0000028e,0x0004003d, + 0x0000000c,0x00000296,0x0000021d,0x00050094,0x00000006,0x00000297,0x00000295,0x00000296, + 0x00050083,0x00000006,0x00000298,0x00000294,0x00000297,0x0004003d,0x00000006,0x00000299, + 0x00000224,0x00050085,0x00000006,0x0000029a,0x00000299,0x00000064,0x00050088,0x00000006, + 0x0000029b,0x00000298,0x0000029a,0x0003003e,0x00000293,0x0000029b,0x0004003d,0x00000021, + 0x0000029c,0x00000106,0x000500c7,0x00000021,0x0000029d,0x0000029c,0x00000197,0x000500ab, + 0x0000003f,0x0000029e,0x0000029d,0x00000058,0x000300f7,0x000002a0,0x00000000,0x000400fa, + 0x0000029e,0x0000029f,0x000002a5,0x000200f8,0x0000029f,0x0004003d,0x00000006,0x000002a2, + 0x00000293,0x0003003e,0x000002a1,0x000002a2,0x00050039,0x00000006,0x000002a3,0x0000000a, + 0x000002a1,0x00050041,0x00000007,0x000002a4,0x00000046,0x0000005b,0x0003003e,0x000002a4, + 0x000002a3,0x000200f9,0x000002a0,0x000200f8,0x000002a5,0x0004003d,0x00000006,0x000002a7, + 0x00000293,0x0003003e,0x000002a6,0x000002a7,0x00050039,0x00000006,0x000002a8,0x0000000a, + 0x000002a6,0x00050041,0x00000007,0x000002a9,0x00000046,0x00000058,0x0003003e,0x000002a9, + 0x000002a8,0x000200f9,0x000002a0,0x000200f8,0x000002a0,0x000200f9,0x000001de,0x000200f8, + 0x000001de,0x0004003d,0x00000006,0x000002aa,0x000001ad,0x0004003d,0x0000000c,0x000002ab, + 0x00000046,0x0005008e,0x0000000c,0x000002ac,0x000002ab,0x000002aa,0x0003003e,0x00000046, + 0x000002ac,0x00050041,0x00000007,0x000002ad,0x00000046,0x0000005b,0x0004003d,0x00000006, + 0x000002ae,0x000002ad,0x0003003e,0x000002b0,0x000002af,0x00050039,0x00000006,0x000002b1, + 0x00000013,0x000002b0,0x0007000c,0x00000006,0x000002b2,0x00000001,0x00000028,0x000002ae, + 0x000002b1,0x00050041,0x00000007,0x000002b3,0x00000046,0x0000005b,0x0003003e,0x000002b3, + 0x000002b2,0x0004003d,0x0000001c,0x000002b5,0x0000011f,0x0004003d,0x00000006,0x000002b6, + 0x000000dc,0x0004003d,0x0000000c,0x000002b7,0x000001bb,0x0005008e,0x0000000c,0x000002b8, + 0x000002b7,0x000002b6,0x00050091,0x0000000c,0x000002b9,0x000002b5,0x000002b8,0x0003003e, + 0x000002b4,0x000002b9,0x0004003d,0x00000033,0x000002ba,0x000000ea,0x000500ab,0x0000003f, + 0x000002bb,0x000002ba,0x00000088,0x000300f7,0x000002bd,0x00000000,0x000400fa,0x000002bb, + 0x000002bc,0x000002bd,0x000200f8,0x000002bc,0x000200fe,0x000002be,0x000200f8,0x000002bd, + 0x000200f9,0x00000190,0x000200f8,0x000002c0,0x0004003d,0x00000033,0x000002c1,0x000000ea, + 0x000500aa,0x0000003f,0x000002c2,0x000002c1,0x000000e8,0x000300f7,0x000002c4,0x00000000, + 0x000400fa,0x000002c2,0x000002c3,0x000002c4,0x000200f8,0x000002c3,0x0004003d,0x0000000c, + 0x000002c5,0x00000114,0x0003003e,0x00000189,0x000002c5,0x000200f9,0x000002c4,0x000200f8, + 0x000002c4,0x0004003d,0x00000006,0x000002c6,0x000000dc,0x0004003d,0x0000000c,0x000002c7, + 0x00000182,0x0005008e,0x0000000c,0x000002c8,0x000002c7,0x000002c6,0x0004003d,0x0000001c, + 0x000002c9,0x0000011f,0x0006000c,0x0000001c,0x000002ca,0x00000001,0x00000022,0x000002c9, + 0x00050090,0x0000000c,0x000002cb,0x000002c8,0x000002ca,0x0006000c,0x0000000c,0x000002cc, + 0x00000001,0x00000006,0x000002cb,0x0005008e,0x0000000c,0x000002cd,0x000002cc,0x000000b4, + 0x0003003e,0x000002b4,0x000002cd,0x0004003d,0x00000021,0x000002ce,0x00000106,0x000500c7, + 0x00000021,0x000002cf,0x000002ce,0x0000013c,0x000500ab,0x0000003f,0x000002d0,0x000002cf, + 0x00000058,0x0004003d,0x00000021,0x000002d1,0x00000106,0x000500c7,0x00000021,0x000002d3, + 0x000002d1,0x000002d2,0x000500ab,0x0000003f,0x000002d4,0x000002d3,0x00000058,0x000500a5, + 0x0000003f,0x000002d5,0x000002d0,0x000002d4,0x000300f7,0x000002d7,0x00000000,0x000400fa, + 0x000002d5,0x000002d6,0x000002d7,0x000200f8,0x000002d6,0x0004003d,0x00000006,0x000002d8, + 0x000000df,0x0004007f,0x00000006,0x000002d9,0x000002d8,0x0003003e,0x000000df,0x000002d9, + 0x000200f9,0x000002d7,0x000200f8,0x000002d7,0x0004003d,0x00000006,0x000002dc,0x000000df, + 0x0003003e,0x000002db,0x000002dc,0x0003003e,0x000002dd,0x000002da,0x00060039,0x0000000c, + 0x000002de,0x00000018,0x000002db,0x000002dd,0x0003003e,0x00000046,0x000002de,0x0004003d, + 0x00000021,0x000002df,0x00000106,0x000500c7,0x00000021,0x000002e1,0x000002df,0x000002e0, + 0x000500ab,0x0000003f,0x000002e2,0x000002e1,0x00000058,0x0004003d,0x00000033,0x000002e3, + 0x000000ea,0x000500ab,0x0000003f,0x000002e4,0x000002e3,0x0000008c,0x000500a7,0x0000003f, + 0x000002e5,0x000002e2,0x000002e4,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5, + 0x000002e6,0x000002e7,0x000200f8,0x000002e6,0x000200fe,0x000002be,0x000200f8,0x000002e7, + 0x000200f9,0x00000190,0x000200f8,0x00000190,0x0004003d,0x0000001c,0x000002e9,0x0000011f, + 0x0004003d,0x0000000c,0x000002ea,0x00000189,0x00050091,0x0000000c,0x000002eb,0x000002e9, + 0x000002ea,0x0004003d,0x0000000c,0x000002ec,0x000002b4,0x00050081,0x0000000c,0x000002ed, + 0x000002eb,0x000002ec,0x0004003d,0x0000000c,0x000002ee,0x00000132,0x00050081,0x0000000c, + 0x000002ef,0x000002ed,0x000002ee,0x0003003e,0x00000045,0x000002ef,0x000200fe,0x000002f0, + 0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/tessellate.frag.h b/defold-rive/include/generated/shaders/spirv/tessellate.frag.h new file mode 100644 index 00000000..1e7cb7bb --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/tessellate.frag.h @@ -0,0 +1,495 @@ + // 1114.3.0 + #pragma once +const uint32_t tessellate_frag[] = { + 0x07230203,0x00010000,0x0008000b,0x00000275,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x000b000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000007a,0x00000081,0x00000092, + 0x000000b1,0x000000c7,0x00000264,0x00030010,0x00000004,0x00000007,0x00030003,0x00000001, + 0x00000136,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00090005,0x0000000e,0x68636e75,0x656b6365,0x696d5f64,0x66762878, + 0x66763b32,0x31663b32,0x0000003b,0x00030005,0x0000000b,0x00000061,0x00030005,0x0000000c, + 0x00000062,0x00030005,0x0000000d,0x00000074,0x00050005,0x00000012,0x6e617461,0x66762832, + 0x00003b32,0x00030005,0x00000011,0x00000076,0x000a0005,0x0000001a,0x646e6966,0x6e61745f, + 0x746e6567,0x66762873,0x66763b32,0x66763b32,0x66763b32,0x00003b32,0x00030005,0x00000016, + 0x00003070,0x00030005,0x00000017,0x00003170,0x00030005,0x00000018,0x00003270,0x00030005, + 0x00000019,0x00003370,0x00040005,0x00000025,0x73616962,0x00000000,0x00030005,0x00000045, + 0x00000074,0x00030005,0x00000077,0x00003070,0x00040005,0x0000007a,0x30705f76,0x00003170, + 0x00030005,0x0000007d,0x00003170,0x00030005,0x00000080,0x00003270,0x00040005,0x00000081, + 0x32705f76,0x00003370,0x00030005,0x00000084,0x00003370,0x00050005,0x00000087,0x676e6174, + 0x73746e65,0x00000000,0x00040005,0x00000088,0x61726170,0x0000006d,0x00040005,0x0000008a, + 0x61726170,0x0000006d,0x00040005,0x0000008c,0x61726170,0x0000006d,0x00040005,0x0000008e, + 0x61726170,0x0000006d,0x00050005,0x00000091,0x74726576,0x64497865,0x00000078,0x00040005, + 0x00000092,0x72615f76,0x00007367,0x00070005,0x00000098,0x61746f74,0x7265566c,0x43786574, + 0x746e756f,0x00000000,0x000d0005,0x0000009c,0x6e696f6a,0x6d676553,0x43746e65,0x746e756f, + 0x646e615f,0x7261705f,0x74656d61,0x53636972,0x656d6765,0x6f43746e,0x00746e75,0x00080005, + 0x000000a1,0x61726170,0x7274656d,0x65536369,0x6e656d67,0x756f4374,0x0000746e,0x00070005, + 0x000000a6,0x6e696f6a,0x6d676553,0x43746e65,0x746e756f,0x00000000,0x00070005,0x000000ab, + 0x73646172,0x50726550,0x72616c6f,0x6d676553,0x00746e65,0x00070005,0x000000af,0x746e6f63, + 0x4972756f,0x74695744,0x616c4668,0x00007367,0x00080005,0x000000b1,0x6f635f76,0x756f746e, + 0x57444972,0x46687469,0x7367616c,0x00000000,0x00070005,0x000000b3,0x6772656d,0x65536465, + 0x6e656d67,0x756f4374,0x0000746e,0x00060005,0x000000b7,0x6772656d,0x65566465,0x78657472, + 0x00004449,0x00050005,0x000000c7,0x6f6a5f76,0x72416e69,0x00007367,0x00040005,0x00000105, + 0x74656874,0x00000061,0x00040005,0x00000116,0x61547369,0x0000306e,0x00050005,0x0000011c, + 0x73736574,0x726f6f43,0x00000064,0x00040005,0x0000012b,0x61726170,0x0000006d,0x00030005, + 0x0000013c,0x00000054,0x00040005,0x00000140,0x616c6f70,0x00005472,0x00030005,0x00000142, + 0x00000043,0x00030005,0x00000146,0x00000044,0x00030005,0x0000014a,0x00000045,0x00030005, + 0x0000014e,0x00000042,0x00030005,0x00000152,0x00000041,0x00030005,0x00000158,0x00005f42, + 0x00030005,0x0000015d,0x00005f43,0x00080005,0x00000163,0x7473616c,0x61726150,0x7274656d, + 0x65566369,0x78657472,0x00004449,0x00080005,0x00000164,0x5078616d,0x6d617261,0x69727465, + 0x72655663,0x49786574,0x00000044,0x00050005,0x00000169,0x306e6174,0x6d726f6e,0x00000000, + 0x00080005,0x0000016d,0x4167656e,0x61527362,0x65507364,0x67655372,0x746e656d,0x00000000, + 0x00060005,0x00000171,0x5278616d,0x7461746f,0x306e6f69,0x00000000,0x00030005,0x00000178, + 0x00000070,0x00070005,0x00000181,0x74736574,0x61726150,0x7274656d,0x44496369,0x00000000, + 0x00040005,0x0000018c,0x74736574,0x006e6154,0x00050005,0x00000197,0x52736f63,0x7461746f, + 0x006e6f69,0x00050005,0x0000019c,0x5278616d,0x7461746f,0x006e6f69,0x00050005,0x000001ae, + 0x61726170,0x7274656d,0x00546369,0x00070005,0x000001b2,0x7473616c,0x616c6f50,0x72655672, + 0x49786574,0x00000044,0x00040005,0x000001b6,0x74656874,0x00003061,0x00040005,0x000001cc, + 0x6d726f6e,0x00000000,0x00030005,0x000001d3,0x00000061,0x00050005,0x000001d7,0x766f5f62, + 0x325f7265,0x00000000,0x00030005,0x000001db,0x00000063,0x00060005,0x000001df,0x63736964, + 0x766f5f72,0x345f7265,0x00000000,0x00030005,0x000001e8,0x00000071,0x00040005,0x000001f4, + 0x6171355f,0x00000000,0x00040005,0x000001fa,0x746f6f72,0x00000000,0x00030005,0x00000229, + 0x00006261,0x00040005,0x0000022a,0x61726170,0x0000006d,0x00040005,0x0000022c,0x61726170, + 0x0000006d,0x00040005,0x0000022e,0x61726170,0x0000006d,0x00030005,0x00000231,0x00006362, + 0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005,0x00000234,0x61726170,0x0000006d, + 0x00040005,0x00000236,0x61726170,0x0000006d,0x00030005,0x00000239,0x00006463,0x00040005, + 0x0000023a,0x61726170,0x0000006d,0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005, + 0x0000023e,0x61726170,0x0000006d,0x00030005,0x00000241,0x00636261,0x00040005,0x00000242, + 0x61726170,0x0000006d,0x00040005,0x00000244,0x61726170,0x0000006d,0x00040005,0x00000246, + 0x61726170,0x0000006d,0x00030005,0x00000249,0x00646362,0x00040005,0x0000024a,0x61726170, + 0x0000006d,0x00040005,0x0000024c,0x61726170,0x0000006d,0x00040005,0x0000024e,0x61726170, + 0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005,0x00000253,0x61726170, + 0x0000006d,0x00040005,0x00000255,0x61726170,0x0000006d,0x00040005,0x00000260,0x61726170, + 0x0000006d,0x00030005,0x00000264,0x0064665f,0x00080005,0x00000272,0x5058455f,0x4554524f, + 0x6c465f44,0x55687375,0x6f66696e,0x00736d72,0x00090006,0x00000272,0x00000000,0x64617267, + 0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x00090006,0x00000272,0x00000001, + 0x73736574,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000,0x000b0006,0x00000272, + 0x00000002,0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5874726f, + 0x00000000,0x000b0006,0x00000272,0x00000003,0x646e6572,0x61547265,0x74656772,0x65766e49, + 0x56657372,0x70776569,0x5974726f,0x00000000,0x00080006,0x00000272,0x00000004,0x646e6572, + 0x61547265,0x74656772,0x74646957,0x00000068,0x00080006,0x00000272,0x00000005,0x646e6572, + 0x61547265,0x74656772,0x67696548,0x00007468,0x00070006,0x00000272,0x00000006,0x6f6c6f63, + 0x656c4372,0x61567261,0x0065756c,0x00080006,0x00000272,0x00000007,0x65766f63,0x65676172, + 0x61656c43,0x6c615672,0x00006575,0x000a0006,0x00000272,0x00000008,0x646e6572,0x61547265, + 0x74656772,0x61647055,0x6f426574,0x73646e75,0x00000000,0x00090006,0x00000272,0x00000009, + 0x65766f63,0x65676172,0x66667542,0x72507265,0x78696665,0x00000000,0x00080006,0x00000272, + 0x0000000a,0x68746170,0x72474449,0x6c756e61,0x74697261,0x00000079,0x00080006,0x00000272, + 0x0000000b,0x74726576,0x69447865,0x72616373,0x6c615664,0x00006575,0x00050005,0x00000274, + 0x66696e75,0x736d726f,0x00000000,0x00040047,0x0000007a,0x0000001e,0x00000000,0x00040047, + 0x00000081,0x0000001e,0x00000001,0x00040047,0x00000092,0x0000001e,0x00000002,0x00030047, + 0x000000b1,0x0000000e,0x00040047,0x000000b1,0x0000001e,0x00000004,0x00040047,0x000000c7, + 0x0000001e,0x00000003,0x00040047,0x00000264,0x0000001e,0x00000000,0x00050048,0x00000272, + 0x00000000,0x00000023,0x00000000,0x00050048,0x00000272,0x00000001,0x00000023,0x00000004, + 0x00050048,0x00000272,0x00000002,0x00000023,0x00000008,0x00050048,0x00000272,0x00000003, + 0x00000023,0x0000000c,0x00050048,0x00000272,0x00000004,0x00000023,0x00000010,0x00050048, + 0x00000272,0x00000005,0x00000023,0x00000014,0x00050048,0x00000272,0x00000006,0x00000023, + 0x00000018,0x00050048,0x00000272,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000272, + 0x00000008,0x00000023,0x00000020,0x00050048,0x00000272,0x00000009,0x00000023,0x00000030, + 0x00050048,0x00000272,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000272,0x0000000b, + 0x00000023,0x00000038,0x00030047,0x00000272,0x00000002,0x00040047,0x00000274,0x00000022, + 0x00000000,0x00040047,0x00000274,0x00000021,0x00000007,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006, + 0x00000002,0x00040020,0x00000008,0x00000007,0x00000007,0x00040020,0x00000009,0x00000007, + 0x00000006,0x00060021,0x0000000a,0x00000007,0x00000008,0x00000008,0x00000009,0x00040021, + 0x00000010,0x00000006,0x00000008,0x00040018,0x00000014,0x00000007,0x00000002,0x00070021, + 0x00000015,0x00000014,0x00000008,0x00000008,0x00000008,0x00000008,0x0004002b,0x00000006, + 0x00000026,0x00000000,0x00040015,0x00000027,0x00000020,0x00000000,0x0004002b,0x00000027, + 0x00000028,0x00000000,0x0004002b,0x00000027,0x0000002c,0x00000001,0x00020014,0x00000030, + 0x0004002b,0x00000006,0x0000003a,0x3fc90fdb,0x00040020,0x00000044,0x00000007,0x00000014, + 0x00040015,0x00000046,0x00000020,0x00000001,0x0004002b,0x00000046,0x00000047,0x00000000, + 0x00040017,0x0000004a,0x00000030,0x00000002,0x0004002b,0x00000046,0x0000005e,0x00000001, + 0x00040017,0x00000078,0x00000006,0x00000004,0x00040020,0x00000079,0x00000001,0x00000078, + 0x0004003b,0x00000079,0x0000007a,0x00000001,0x0004003b,0x00000079,0x00000081,0x00000001, + 0x0004003b,0x00000079,0x00000092,0x00000001,0x00040020,0x00000093,0x00000001,0x00000006, + 0x00040020,0x0000009b,0x00000007,0x00000027,0x0004002b,0x00000027,0x0000009d,0x00000002, + 0x0004002b,0x00000027,0x000000a3,0x000003ff,0x0004002b,0x00000046,0x000000a8,0x0000000a, + 0x0004002b,0x00000027,0x000000ac,0x00000003,0x00040020,0x000000b0,0x00000001,0x00000027, + 0x0004003b,0x000000b0,0x000000b1,0x00000001,0x0004002b,0x00000027,0x000000be,0xcfffffff, + 0x00040017,0x000000c5,0x00000006,0x00000003,0x00040020,0x000000c6,0x00000001,0x000000c5, + 0x0004003b,0x000000c6,0x000000c7,0x00000001,0x0004002b,0x00000006,0x000000ca,0x3f800000, + 0x0004002b,0x00000027,0x000000d7,0x30000000,0x0004002b,0x00000006,0x000000dd,0x40200000, + 0x0004002b,0x00000027,0x000000e1,0x01000000,0x0004002b,0x00000006,0x000000e5,0x3fc00000, + 0x0004002b,0x00000006,0x000000e8,0x40600000,0x0004002b,0x00000027,0x000000ed,0x00800000, + 0x0004002b,0x00000027,0x000000f2,0x08000000,0x0004002b,0x00000006,0x000000f7,0x40000000, + 0x0004002b,0x00000027,0x00000100,0x00400000,0x0004002b,0x00000027,0x00000101,0x00200000, + 0x00040020,0x00000115,0x00000007,0x00000030,0x0004002b,0x00000006,0x00000119,0x3f000000, + 0x0004002b,0x00000027,0x00000130,0x80000000,0x0004002b,0x00000006,0x00000153,0xc0400000, + 0x00040020,0x00000177,0x00000007,0x00000046,0x0004002b,0x00000046,0x00000179,0x00000009, + 0x0004002b,0x00000006,0x000001a3,0x40490fdb,0x0004002b,0x00000006,0x000001b9,0xbf800000, + 0x0004002b,0x00000006,0x000001f5,0xbf000000,0x00040017,0x00000262,0x00000027,0x00000004, + 0x00040020,0x00000263,0x00000003,0x00000262,0x0004003b,0x00000263,0x00000264,0x00000003, + 0x00040017,0x0000026a,0x00000027,0x00000003,0x00040017,0x00000271,0x00000046,0x00000004, + 0x000e001e,0x00000272,0x00000006,0x00000006,0x00000006,0x00000006,0x00000027,0x00000027, + 0x00000027,0x00000027,0x00000271,0x00000027,0x00000027,0x00000006,0x00040020,0x00000273, + 0x00000002,0x00000272,0x0004003b,0x00000273,0x00000274,0x00000002,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x00000077, + 0x00000007,0x0004003b,0x00000008,0x0000007d,0x00000007,0x0004003b,0x00000008,0x00000080, + 0x00000007,0x0004003b,0x00000008,0x00000084,0x00000007,0x0004003b,0x00000044,0x00000087, + 0x00000007,0x0004003b,0x00000008,0x00000088,0x00000007,0x0004003b,0x00000008,0x0000008a, + 0x00000007,0x0004003b,0x00000008,0x0000008c,0x00000007,0x0004003b,0x00000008,0x0000008e, + 0x00000007,0x0004003b,0x00000009,0x00000091,0x00000007,0x0004003b,0x00000009,0x00000098, + 0x00000007,0x0004003b,0x0000009b,0x0000009c,0x00000007,0x0004003b,0x00000009,0x000000a1, + 0x00000007,0x0004003b,0x00000009,0x000000a6,0x00000007,0x0004003b,0x00000009,0x000000ab, + 0x00000007,0x0004003b,0x0000009b,0x000000af,0x00000007,0x0004003b,0x00000009,0x000000b3, + 0x00000007,0x0004003b,0x00000009,0x000000b7,0x00000007,0x0004003b,0x00000009,0x00000105, + 0x00000007,0x0004003b,0x00000115,0x00000116,0x00000007,0x0004003b,0x00000008,0x0000011c, + 0x00000007,0x0004003b,0x00000008,0x00000123,0x00000007,0x0004003b,0x00000008,0x0000012b, + 0x00000007,0x0004003b,0x00000009,0x0000013c,0x00000007,0x0004003b,0x00000009,0x00000140, + 0x00000007,0x0004003b,0x00000008,0x00000142,0x00000007,0x0004003b,0x00000008,0x00000146, + 0x00000007,0x0004003b,0x00000008,0x0000014a,0x00000007,0x0004003b,0x00000008,0x0000014e, + 0x00000007,0x0004003b,0x00000008,0x00000152,0x00000007,0x0004003b,0x00000008,0x00000158, + 0x00000007,0x0004003b,0x00000008,0x0000015d,0x00000007,0x0004003b,0x00000009,0x00000163, + 0x00000007,0x0004003b,0x00000009,0x00000164,0x00000007,0x0004003b,0x00000008,0x00000169, + 0x00000007,0x0004003b,0x00000009,0x0000016d,0x00000007,0x0004003b,0x00000009,0x00000171, + 0x00000007,0x0004003b,0x00000177,0x00000178,0x00000007,0x0004003b,0x00000009,0x00000181, + 0x00000007,0x0004003b,0x00000008,0x0000018c,0x00000007,0x0004003b,0x00000009,0x00000197, + 0x00000007,0x0004003b,0x00000009,0x0000019c,0x00000007,0x0004003b,0x00000009,0x000001ae, + 0x00000007,0x0004003b,0x00000009,0x000001b2,0x00000007,0x0004003b,0x00000009,0x000001b6, + 0x00000007,0x0004003b,0x00000009,0x000001bf,0x00000007,0x0004003b,0x00000008,0x000001cc, + 0x00000007,0x0004003b,0x00000009,0x000001d3,0x00000007,0x0004003b,0x00000009,0x000001d7, + 0x00000007,0x0004003b,0x00000009,0x000001db,0x00000007,0x0004003b,0x00000009,0x000001df, + 0x00000007,0x0004003b,0x00000009,0x000001e8,0x00000007,0x0004003b,0x00000009,0x000001f4, + 0x00000007,0x0004003b,0x00000008,0x000001fa,0x00000007,0x0004003b,0x00000008,0x00000208, + 0x00000007,0x0004003b,0x00000009,0x00000216,0x00000007,0x0004003b,0x00000008,0x00000229, + 0x00000007,0x0004003b,0x00000008,0x0000022a,0x00000007,0x0004003b,0x00000008,0x0000022c, + 0x00000007,0x0004003b,0x00000009,0x0000022e,0x00000007,0x0004003b,0x00000008,0x00000231, + 0x00000007,0x0004003b,0x00000008,0x00000232,0x00000007,0x0004003b,0x00000008,0x00000234, + 0x00000007,0x0004003b,0x00000009,0x00000236,0x00000007,0x0004003b,0x00000008,0x00000239, + 0x00000007,0x0004003b,0x00000008,0x0000023a,0x00000007,0x0004003b,0x00000008,0x0000023c, + 0x00000007,0x0004003b,0x00000009,0x0000023e,0x00000007,0x0004003b,0x00000008,0x00000241, + 0x00000007,0x0004003b,0x00000008,0x00000242,0x00000007,0x0004003b,0x00000008,0x00000244, + 0x00000007,0x0004003b,0x00000009,0x00000246,0x00000007,0x0004003b,0x00000008,0x00000249, + 0x00000007,0x0004003b,0x00000008,0x0000024a,0x00000007,0x0004003b,0x00000008,0x0000024c, + 0x00000007,0x0004003b,0x00000009,0x0000024e,0x00000007,0x0004003b,0x00000008,0x00000251, + 0x00000007,0x0004003b,0x00000008,0x00000253,0x00000007,0x0004003b,0x00000009,0x00000255, + 0x00000007,0x0004003b,0x00000008,0x00000260,0x00000007,0x0004003d,0x00000078,0x0000007b, + 0x0000007a,0x0007004f,0x00000007,0x0000007c,0x0000007b,0x0000007b,0x00000000,0x00000001, + 0x0003003e,0x00000077,0x0000007c,0x0004003d,0x00000078,0x0000007e,0x0000007a,0x0007004f, + 0x00000007,0x0000007f,0x0000007e,0x0000007e,0x00000002,0x00000003,0x0003003e,0x0000007d, + 0x0000007f,0x0004003d,0x00000078,0x00000082,0x00000081,0x0007004f,0x00000007,0x00000083, + 0x00000082,0x00000082,0x00000000,0x00000001,0x0003003e,0x00000080,0x00000083,0x0004003d, + 0x00000078,0x00000085,0x00000081,0x0007004f,0x00000007,0x00000086,0x00000085,0x00000085, + 0x00000002,0x00000003,0x0003003e,0x00000084,0x00000086,0x0004003d,0x00000007,0x00000089, + 0x00000077,0x0003003e,0x00000088,0x00000089,0x0004003d,0x00000007,0x0000008b,0x0000007d, + 0x0003003e,0x0000008a,0x0000008b,0x0004003d,0x00000007,0x0000008d,0x00000080,0x0003003e, + 0x0000008c,0x0000008d,0x0004003d,0x00000007,0x0000008f,0x00000084,0x0003003e,0x0000008e, + 0x0000008f,0x00080039,0x00000014,0x00000090,0x0000001a,0x00000088,0x0000008a,0x0000008c, + 0x0000008e,0x0003003e,0x00000087,0x00000090,0x00050041,0x00000093,0x00000094,0x00000092, + 0x00000028,0x0004003d,0x00000006,0x00000095,0x00000094,0x0006000c,0x00000006,0x00000096, + 0x00000001,0x00000008,0x00000095,0x0007000c,0x00000006,0x00000097,0x00000001,0x00000028, + 0x00000096,0x00000026,0x0003003e,0x00000091,0x00000097,0x00050041,0x00000093,0x00000099, + 0x00000092,0x0000002c,0x0004003d,0x00000006,0x0000009a,0x00000099,0x0003003e,0x00000098, + 0x0000009a,0x00050041,0x00000093,0x0000009e,0x00000092,0x0000009d,0x0004003d,0x00000006, + 0x0000009f,0x0000009e,0x0004006d,0x00000027,0x000000a0,0x0000009f,0x0003003e,0x0000009c, + 0x000000a0,0x0004003d,0x00000027,0x000000a2,0x0000009c,0x000500c7,0x00000027,0x000000a4, + 0x000000a2,0x000000a3,0x00040070,0x00000006,0x000000a5,0x000000a4,0x0003003e,0x000000a1, + 0x000000a5,0x0004003d,0x00000027,0x000000a7,0x0000009c,0x000500c2,0x00000027,0x000000a9, + 0x000000a7,0x000000a8,0x00040070,0x00000006,0x000000aa,0x000000a9,0x0003003e,0x000000a6, + 0x000000aa,0x00050041,0x00000093,0x000000ad,0x00000092,0x000000ac,0x0004003d,0x00000006, + 0x000000ae,0x000000ad,0x0003003e,0x000000ab,0x000000ae,0x0004003d,0x00000027,0x000000b2, + 0x000000b1,0x0003003e,0x000000af,0x000000b2,0x0004003d,0x00000006,0x000000b4,0x00000098, + 0x0004003d,0x00000006,0x000000b5,0x000000a6,0x00050083,0x00000006,0x000000b6,0x000000b4, + 0x000000b5,0x0003003e,0x000000b3,0x000000b6,0x0004003d,0x00000006,0x000000b8,0x00000091, + 0x0003003e,0x000000b7,0x000000b8,0x0004003d,0x00000006,0x000000b9,0x000000b7,0x0004003d, + 0x00000006,0x000000ba,0x000000b3,0x000500bc,0x00000030,0x000000bb,0x000000b9,0x000000ba, + 0x000300f7,0x000000bd,0x00000000,0x000400fa,0x000000bb,0x000000bc,0x000000c1,0x000200f8, + 0x000000bc,0x0004003d,0x00000027,0x000000bf,0x000000af,0x000500c7,0x00000027,0x000000c0, + 0x000000bf,0x000000be,0x0003003e,0x000000af,0x000000c0,0x000200f9,0x000000bd,0x000200f8, + 0x000000c1,0x0004003d,0x00000007,0x000000c2,0x00000084,0x0003003e,0x00000080,0x000000c2, + 0x0003003e,0x0000007d,0x000000c2,0x0003003e,0x00000077,0x000000c2,0x00050041,0x00000008, + 0x000000c3,0x00000087,0x0000005e,0x0004003d,0x00000007,0x000000c4,0x000000c3,0x0004003d, + 0x000000c5,0x000000c8,0x000000c7,0x0007004f,0x00000007,0x000000c9,0x000000c8,0x000000c8, + 0x00000000,0x00000001,0x00050051,0x00000006,0x000000cb,0x000000c4,0x00000000,0x00050051, + 0x00000006,0x000000cc,0x000000c4,0x00000001,0x00050051,0x00000006,0x000000cd,0x000000c9, + 0x00000000,0x00050051,0x00000006,0x000000ce,0x000000c9,0x00000001,0x00050050,0x00000007, + 0x000000cf,0x000000cb,0x000000cc,0x00050050,0x00000007,0x000000d0,0x000000cd,0x000000ce, + 0x00050050,0x00000014,0x000000d1,0x000000cf,0x000000d0,0x0003003e,0x00000087,0x000000d1, + 0x0003003e,0x000000a1,0x000000ca,0x0004003d,0x00000006,0x000000d2,0x000000b3,0x0004003d, + 0x00000006,0x000000d3,0x000000b7,0x00050083,0x00000006,0x000000d4,0x000000d3,0x000000d2, + 0x0003003e,0x000000b7,0x000000d4,0x0004003d,0x00000006,0x000000d5,0x000000a6,0x0003003e, + 0x000000b3,0x000000d5,0x0004003d,0x00000027,0x000000d6,0x000000af,0x000500c7,0x00000027, + 0x000000d8,0x000000d6,0x000000d7,0x000500ab,0x00000030,0x000000d9,0x000000d8,0x00000028, + 0x000300f7,0x000000db,0x00000000,0x000400fa,0x000000d9,0x000000da,0x000000f0,0x000200f8, + 0x000000da,0x0004003d,0x00000006,0x000000dc,0x000000b7,0x000500b8,0x00000030,0x000000de, + 0x000000dc,0x000000dd,0x000300f7,0x000000e0,0x00000000,0x000400fa,0x000000de,0x000000df, + 0x000000e0,0x000200f8,0x000000df,0x0004003d,0x00000027,0x000000e2,0x000000af,0x000500c5, + 0x00000027,0x000000e3,0x000000e2,0x000000e1,0x0003003e,0x000000af,0x000000e3,0x000200f9, + 0x000000e0,0x000200f8,0x000000e0,0x0004003d,0x00000006,0x000000e4,0x000000b7,0x000500ba, + 0x00000030,0x000000e6,0x000000e4,0x000000e5,0x0004003d,0x00000006,0x000000e7,0x000000b7, + 0x000500b8,0x00000030,0x000000e9,0x000000e7,0x000000e8,0x000500a7,0x00000030,0x000000ea, + 0x000000e6,0x000000e9,0x000300f7,0x000000ec,0x00000000,0x000400fa,0x000000ea,0x000000eb, + 0x000000ec,0x000200f8,0x000000eb,0x0004003d,0x00000027,0x000000ee,0x000000af,0x000500c5, + 0x00000027,0x000000ef,0x000000ee,0x000000ed,0x0003003e,0x000000af,0x000000ef,0x000200f9, + 0x000000ec,0x000200f8,0x000000ec,0x000200f9,0x000000db,0x000200f8,0x000000f0,0x0004003d, + 0x00000027,0x000000f1,0x000000af,0x000500c7,0x00000027,0x000000f3,0x000000f1,0x000000f2, + 0x000500ab,0x00000030,0x000000f4,0x000000f3,0x00000028,0x000300f7,0x000000f6,0x00000000, + 0x000400fa,0x000000f4,0x000000f5,0x000000f6,0x000200f8,0x000000f5,0x0004003d,0x00000006, + 0x000000f8,0x000000b3,0x00050083,0x00000006,0x000000f9,0x000000f8,0x000000f7,0x0003003e, + 0x000000b3,0x000000f9,0x0004003d,0x00000006,0x000000fa,0x000000b7,0x00050083,0x00000006, + 0x000000fb,0x000000fa,0x000000ca,0x0003003e,0x000000b7,0x000000fb,0x000200f9,0x000000f6, + 0x000200f8,0x000000f6,0x000200f9,0x000000db,0x000200f8,0x000000db,0x00050041,0x00000093, + 0x000000fc,0x000000c7,0x0000009d,0x0004003d,0x00000006,0x000000fd,0x000000fc,0x0003003e, + 0x000000ab,0x000000fd,0x0004003d,0x00000006,0x000000fe,0x000000ab,0x000500b8,0x00000030, + 0x000000ff,0x000000fe,0x00000026,0x000600a9,0x00000027,0x00000102,0x000000ff,0x00000100, + 0x00000101,0x0004003d,0x00000027,0x00000103,0x000000af,0x000500c5,0x00000027,0x00000104, + 0x00000103,0x00000102,0x0003003e,0x000000af,0x00000104,0x000200f9,0x000000bd,0x000200f8, + 0x000000bd,0x0003003e,0x00000105,0x00000026,0x0004003d,0x00000006,0x00000106,0x000000b7, + 0x000500b4,0x00000030,0x00000107,0x00000106,0x00000026,0x0004003d,0x00000006,0x00000108, + 0x000000b7,0x0004003d,0x00000006,0x00000109,0x000000b3,0x000500b4,0x00000030,0x0000010a, + 0x00000108,0x00000109,0x000500a6,0x00000030,0x0000010b,0x00000107,0x0000010a,0x000400a8, + 0x00000030,0x0000010c,0x0000010b,0x000300f7,0x0000010e,0x00000000,0x000400fa,0x0000010c, + 0x0000010d,0x0000010e,0x000200f8,0x0000010d,0x0004003d,0x00000027,0x0000010f,0x000000af, + 0x000500c7,0x00000027,0x00000110,0x0000010f,0x000000d7,0x000500ab,0x00000030,0x00000111, + 0x00000110,0x00000028,0x000200f9,0x0000010e,0x000200f8,0x0000010e,0x000700f5,0x00000030, + 0x00000112,0x0000010b,0x000000bd,0x00000111,0x0000010d,0x000300f7,0x00000114,0x00000000, + 0x000400fa,0x00000112,0x00000113,0x0000012e,0x000200f8,0x00000113,0x0004003d,0x00000006, + 0x00000117,0x000000b7,0x0004003d,0x00000006,0x00000118,0x000000b3,0x00050085,0x00000006, + 0x0000011a,0x00000118,0x00000119,0x000500b8,0x00000030,0x0000011b,0x00000117,0x0000011a, + 0x0003003e,0x00000116,0x0000011b,0x0004003d,0x00000030,0x0000011d,0x00000116,0x0004003d, + 0x00000007,0x0000011e,0x00000077,0x0004003d,0x00000007,0x0000011f,0x00000084,0x00050050, + 0x0000004a,0x00000120,0x0000011d,0x0000011d,0x000600a9,0x00000007,0x00000121,0x00000120, + 0x0000011e,0x0000011f,0x0003003e,0x0000011c,0x00000121,0x0004003d,0x00000030,0x00000122, + 0x00000116,0x000300f7,0x00000125,0x00000000,0x000400fa,0x00000122,0x00000124,0x00000128, + 0x000200f8,0x00000124,0x00050041,0x00000008,0x00000126,0x00000087,0x00000047,0x0004003d, + 0x00000007,0x00000127,0x00000126,0x0003003e,0x00000123,0x00000127,0x000200f9,0x00000125, + 0x000200f8,0x00000128,0x00050041,0x00000008,0x00000129,0x00000087,0x0000005e,0x0004003d, + 0x00000007,0x0000012a,0x00000129,0x0003003e,0x00000123,0x0000012a,0x000200f9,0x00000125, + 0x000200f8,0x00000125,0x0004003d,0x00000007,0x0000012c,0x00000123,0x0003003e,0x0000012b, + 0x0000012c,0x00050039,0x00000006,0x0000012d,0x00000012,0x0000012b,0x0003003e,0x00000105, + 0x0000012d,0x000200f9,0x00000114,0x000200f8,0x0000012e,0x0004003d,0x00000027,0x0000012f, + 0x000000af,0x000500c7,0x00000027,0x00000131,0x0000012f,0x00000130,0x000500ab,0x00000030, + 0x00000132,0x00000131,0x00000028,0x000300f7,0x00000134,0x00000000,0x000400fa,0x00000132, + 0x00000133,0x00000136,0x000200f8,0x00000133,0x0004003d,0x00000007,0x00000135,0x0000007d, + 0x0003003e,0x0000011c,0x00000135,0x000200f9,0x00000134,0x000200f8,0x00000136,0x0004003d, + 0x00000006,0x00000137,0x000000a1,0x0004003d,0x00000006,0x00000138,0x000000b3,0x000500b4, + 0x00000030,0x00000139,0x00000137,0x00000138,0x000300f7,0x0000013b,0x00000000,0x000400fa, + 0x00000139,0x0000013a,0x00000141,0x000200f8,0x0000013a,0x0004003d,0x00000006,0x0000013d, + 0x000000b7,0x0004003d,0x00000006,0x0000013e,0x000000a1,0x00050088,0x00000006,0x0000013f, + 0x0000013d,0x0000013e,0x0003003e,0x0000013c,0x0000013f,0x0003003e,0x00000140,0x00000026, + 0x000200f9,0x0000013b,0x000200f8,0x00000141,0x0004003d,0x00000007,0x00000143,0x0000007d, + 0x0004003d,0x00000007,0x00000144,0x00000077,0x00050083,0x00000007,0x00000145,0x00000143, + 0x00000144,0x0003003e,0x00000142,0x00000145,0x0004003d,0x00000007,0x00000147,0x00000084, + 0x0004003d,0x00000007,0x00000148,0x00000077,0x00050083,0x00000007,0x00000149,0x00000147, + 0x00000148,0x0003003e,0x00000146,0x00000149,0x0004003d,0x00000007,0x0000014b,0x00000080, + 0x0004003d,0x00000007,0x0000014c,0x0000007d,0x00050083,0x00000007,0x0000014d,0x0000014b, + 0x0000014c,0x0003003e,0x0000014a,0x0000014d,0x0004003d,0x00000007,0x0000014f,0x0000014a, + 0x0004003d,0x00000007,0x00000150,0x00000142,0x00050083,0x00000007,0x00000151,0x0000014f, + 0x00000150,0x0003003e,0x0000014e,0x00000151,0x0004003d,0x00000007,0x00000154,0x0000014a, + 0x0005008e,0x00000007,0x00000155,0x00000154,0x00000153,0x0004003d,0x00000007,0x00000156, + 0x00000146,0x00050081,0x00000007,0x00000157,0x00000155,0x00000156,0x0003003e,0x00000152, + 0x00000157,0x0004003d,0x00000007,0x00000159,0x0000014e,0x0004003d,0x00000006,0x0000015a, + 0x000000a1,0x00050085,0x00000006,0x0000015b,0x0000015a,0x000000f7,0x0005008e,0x00000007, + 0x0000015c,0x00000159,0x0000015b,0x0003003e,0x00000158,0x0000015c,0x0004003d,0x00000007, + 0x0000015e,0x00000142,0x0004003d,0x00000006,0x0000015f,0x000000a1,0x0004003d,0x00000006, + 0x00000160,0x000000a1,0x00050085,0x00000006,0x00000161,0x0000015f,0x00000160,0x0005008e, + 0x00000007,0x00000162,0x0000015e,0x00000161,0x0003003e,0x0000015d,0x00000162,0x0003003e, + 0x00000163,0x00000026,0x0004003d,0x00000006,0x00000165,0x000000a1,0x00050083,0x00000006, + 0x00000166,0x00000165,0x000000ca,0x0004003d,0x00000006,0x00000167,0x000000b7,0x0007000c, + 0x00000006,0x00000168,0x00000001,0x00000025,0x00000166,0x00000167,0x0003003e,0x00000164, + 0x00000168,0x00050041,0x00000008,0x0000016a,0x00000087,0x00000047,0x0004003d,0x00000007, + 0x0000016b,0x0000016a,0x0006000c,0x00000007,0x0000016c,0x00000001,0x00000045,0x0000016b, + 0x0003003e,0x00000169,0x0000016c,0x0004003d,0x00000006,0x0000016e,0x000000ab,0x0006000c, + 0x00000006,0x0000016f,0x00000001,0x00000004,0x0000016e,0x0004007f,0x00000006,0x00000170, + 0x0000016f,0x0003003e,0x0000016d,0x00000170,0x0004003d,0x00000006,0x00000172,0x000000b7, + 0x00050081,0x00000006,0x00000173,0x000000ca,0x00000172,0x0004003d,0x00000006,0x00000174, + 0x000000ab,0x0006000c,0x00000006,0x00000175,0x00000001,0x00000004,0x00000174,0x00050085, + 0x00000006,0x00000176,0x00000173,0x00000175,0x0003003e,0x00000171,0x00000176,0x0003003e, + 0x00000178,0x00000179,0x000200f9,0x0000017a,0x000200f8,0x0000017a,0x000400f6,0x0000017c, + 0x0000017d,0x00000000,0x000200f9,0x0000017e,0x000200f8,0x0000017e,0x0004003d,0x00000046, + 0x0000017f,0x00000178,0x000500af,0x00000030,0x00000180,0x0000017f,0x00000047,0x000400fa, + 0x00000180,0x0000017b,0x0000017c,0x000200f8,0x0000017b,0x0004003d,0x00000006,0x00000182, + 0x00000163,0x0004003d,0x00000046,0x00000183,0x00000178,0x0004006f,0x00000006,0x00000184, + 0x00000183,0x0006000c,0x00000006,0x00000185,0x00000001,0x0000001d,0x00000184,0x00050081, + 0x00000006,0x00000186,0x00000182,0x00000185,0x0003003e,0x00000181,0x00000186,0x0004003d, + 0x00000006,0x00000187,0x00000181,0x0004003d,0x00000006,0x00000188,0x00000164,0x000500bc, + 0x00000030,0x00000189,0x00000187,0x00000188,0x000300f7,0x0000018b,0x00000000,0x000400fa, + 0x00000189,0x0000018a,0x0000018b,0x000200f8,0x0000018a,0x0004003d,0x00000006,0x0000018d, + 0x00000181,0x0004003d,0x00000007,0x0000018e,0x00000152,0x0005008e,0x00000007,0x0000018f, + 0x0000018e,0x0000018d,0x0004003d,0x00000007,0x00000190,0x00000158,0x00050081,0x00000007, + 0x00000191,0x0000018f,0x00000190,0x0003003e,0x0000018c,0x00000191,0x0004003d,0x00000006, + 0x00000192,0x00000181,0x0004003d,0x00000007,0x00000193,0x0000018c,0x0005008e,0x00000007, + 0x00000194,0x00000193,0x00000192,0x0004003d,0x00000007,0x00000195,0x0000015d,0x00050081, + 0x00000007,0x00000196,0x00000194,0x00000195,0x0003003e,0x0000018c,0x00000196,0x0004003d, + 0x00000007,0x00000198,0x0000018c,0x0006000c,0x00000007,0x00000199,0x00000001,0x00000045, + 0x00000198,0x0004003d,0x00000007,0x0000019a,0x00000169,0x00050094,0x00000006,0x0000019b, + 0x00000199,0x0000019a,0x0003003e,0x00000197,0x0000019b,0x0004003d,0x00000006,0x0000019d, + 0x00000181,0x0004003d,0x00000006,0x0000019e,0x0000016d,0x00050085,0x00000006,0x0000019f, + 0x0000019d,0x0000019e,0x0004003d,0x00000006,0x000001a0,0x00000171,0x00050081,0x00000006, + 0x000001a1,0x0000019f,0x000001a0,0x0003003e,0x0000019c,0x000001a1,0x0004003d,0x00000006, + 0x000001a2,0x0000019c,0x0007000c,0x00000006,0x000001a4,0x00000001,0x00000025,0x000001a2, + 0x000001a3,0x0003003e,0x0000019c,0x000001a4,0x0004003d,0x00000006,0x000001a5,0x00000197, + 0x0004003d,0x00000006,0x000001a6,0x0000019c,0x0006000c,0x00000006,0x000001a7,0x00000001, + 0x0000000e,0x000001a6,0x000500be,0x00000030,0x000001a8,0x000001a5,0x000001a7,0x000300f7, + 0x000001aa,0x00000000,0x000400fa,0x000001a8,0x000001a9,0x000001aa,0x000200f8,0x000001a9, + 0x0004003d,0x00000006,0x000001ab,0x00000181,0x0003003e,0x00000163,0x000001ab,0x000200f9, + 0x000001aa,0x000200f8,0x000001aa,0x000200f9,0x0000018b,0x000200f8,0x0000018b,0x000200f9, + 0x0000017d,0x000200f8,0x0000017d,0x0004003d,0x00000046,0x000001ac,0x00000178,0x00050082, + 0x00000046,0x000001ad,0x000001ac,0x0000005e,0x0003003e,0x00000178,0x000001ad,0x000200f9, + 0x0000017a,0x000200f8,0x0000017c,0x0004003d,0x00000006,0x000001af,0x00000163,0x0004003d, + 0x00000006,0x000001b0,0x000000a1,0x00050088,0x00000006,0x000001b1,0x000001af,0x000001b0, + 0x0003003e,0x000001ae,0x000001b1,0x0004003d,0x00000006,0x000001b3,0x000000b7,0x0004003d, + 0x00000006,0x000001b4,0x00000163,0x00050083,0x00000006,0x000001b5,0x000001b3,0x000001b4, + 0x0003003e,0x000001b2,0x000001b5,0x00050041,0x00000009,0x000001b7,0x00000169,0x00000028, + 0x0004003d,0x00000006,0x000001b8,0x000001b7,0x0008000c,0x00000006,0x000001ba,0x00000001, + 0x0000002b,0x000001b8,0x000001b9,0x000000ca,0x0006000c,0x00000006,0x000001bb,0x00000001, + 0x00000011,0x000001ba,0x0003003e,0x000001b6,0x000001bb,0x00050041,0x00000009,0x000001bc, + 0x00000169,0x0000002c,0x0004003d,0x00000006,0x000001bd,0x000001bc,0x000500be,0x00000030, + 0x000001be,0x000001bd,0x00000026,0x000300f7,0x000001c1,0x00000000,0x000400fa,0x000001be, + 0x000001c0,0x000001c3,0x000200f8,0x000001c0,0x0004003d,0x00000006,0x000001c2,0x000001b6, + 0x0003003e,0x000001bf,0x000001c2,0x000200f9,0x000001c1,0x000200f8,0x000001c3,0x0004003d, + 0x00000006,0x000001c4,0x000001b6,0x0004007f,0x00000006,0x000001c5,0x000001c4,0x0003003e, + 0x000001bf,0x000001c5,0x000200f9,0x000001c1,0x000200f8,0x000001c1,0x0004003d,0x00000006, + 0x000001c6,0x000001bf,0x0003003e,0x000001b6,0x000001c6,0x0004003d,0x00000006,0x000001c7, + 0x000001b2,0x0004003d,0x00000006,0x000001c8,0x000000ab,0x00050085,0x00000006,0x000001c9, + 0x000001c7,0x000001c8,0x0004003d,0x00000006,0x000001ca,0x000001b6,0x00050081,0x00000006, + 0x000001cb,0x000001c9,0x000001ca,0x0003003e,0x00000105,0x000001cb,0x0004003d,0x00000006, + 0x000001cd,0x00000105,0x0006000c,0x00000006,0x000001ce,0x00000001,0x0000000d,0x000001cd, + 0x0004003d,0x00000006,0x000001cf,0x00000105,0x0006000c,0x00000006,0x000001d0,0x00000001, + 0x0000000e,0x000001cf,0x0004007f,0x00000006,0x000001d1,0x000001d0,0x00050050,0x00000007, + 0x000001d2,0x000001ce,0x000001d1,0x0003003e,0x000001cc,0x000001d2,0x0004003d,0x00000007, + 0x000001d4,0x000001cc,0x0004003d,0x00000007,0x000001d5,0x00000152,0x00050094,0x00000006, + 0x000001d6,0x000001d4,0x000001d5,0x0003003e,0x000001d3,0x000001d6,0x0004003d,0x00000007, + 0x000001d8,0x000001cc,0x0004003d,0x00000007,0x000001d9,0x0000014e,0x00050094,0x00000006, + 0x000001da,0x000001d8,0x000001d9,0x0003003e,0x000001d7,0x000001da,0x0004003d,0x00000007, + 0x000001dc,0x000001cc,0x0004003d,0x00000007,0x000001dd,0x00000142,0x00050094,0x00000006, + 0x000001de,0x000001dc,0x000001dd,0x0003003e,0x000001db,0x000001de,0x0004003d,0x00000006, + 0x000001e0,0x000001d7,0x0004003d,0x00000006,0x000001e1,0x000001d7,0x00050085,0x00000006, + 0x000001e2,0x000001e0,0x000001e1,0x0004003d,0x00000006,0x000001e3,0x000001d3,0x0004003d, + 0x00000006,0x000001e4,0x000001db,0x00050085,0x00000006,0x000001e5,0x000001e3,0x000001e4, + 0x00050083,0x00000006,0x000001e6,0x000001e2,0x000001e5,0x0007000c,0x00000006,0x000001e7, + 0x00000001,0x00000028,0x000001e6,0x00000026,0x0003003e,0x000001df,0x000001e7,0x0004003d, + 0x00000006,0x000001e9,0x000001df,0x0006000c,0x00000006,0x000001ea,0x00000001,0x0000001f, + 0x000001e9,0x0003003e,0x000001e8,0x000001ea,0x0004003d,0x00000006,0x000001eb,0x000001d7, + 0x000500ba,0x00000030,0x000001ec,0x000001eb,0x00000026,0x000300f7,0x000001ee,0x00000000, + 0x000400fa,0x000001ec,0x000001ed,0x000001ee,0x000200f8,0x000001ed,0x0004003d,0x00000006, + 0x000001ef,0x000001e8,0x0004007f,0x00000006,0x000001f0,0x000001ef,0x0003003e,0x000001e8, + 0x000001f0,0x000200f9,0x000001ee,0x000200f8,0x000001ee,0x0004003d,0x00000006,0x000001f1, + 0x000001d7,0x0004003d,0x00000006,0x000001f2,0x000001e8,0x00050083,0x00000006,0x000001f3, + 0x000001f2,0x000001f1,0x0003003e,0x000001e8,0x000001f3,0x0004003d,0x00000006,0x000001f6, + 0x000001e8,0x00050085,0x00000006,0x000001f7,0x000001f5,0x000001f6,0x0004003d,0x00000006, + 0x000001f8,0x000001d3,0x00050085,0x00000006,0x000001f9,0x000001f7,0x000001f8,0x0003003e, + 0x000001f4,0x000001f9,0x0004003d,0x00000006,0x000001fb,0x000001e8,0x0004003d,0x00000006, + 0x000001fc,0x000001e8,0x00050085,0x00000006,0x000001fd,0x000001fb,0x000001fc,0x0004003d, + 0x00000006,0x000001fe,0x000001f4,0x00050081,0x00000006,0x000001ff,0x000001fd,0x000001fe, + 0x0006000c,0x00000006,0x00000200,0x00000001,0x00000004,0x000001ff,0x0004003d,0x00000006, + 0x00000201,0x000001d3,0x0004003d,0x00000006,0x00000202,0x000001db,0x00050085,0x00000006, + 0x00000203,0x00000201,0x00000202,0x0004003d,0x00000006,0x00000204,0x000001f4,0x00050081, + 0x00000006,0x00000205,0x00000203,0x00000204,0x0006000c,0x00000006,0x00000206,0x00000001, + 0x00000004,0x00000205,0x000500b8,0x00000030,0x00000207,0x00000200,0x00000206,0x000300f7, + 0x0000020a,0x00000000,0x000400fa,0x00000207,0x00000209,0x0000020e,0x000200f8,0x00000209, + 0x0004003d,0x00000006,0x0000020b,0x000001e8,0x0004003d,0x00000006,0x0000020c,0x000001d3, + 0x00050050,0x00000007,0x0000020d,0x0000020b,0x0000020c,0x0003003e,0x00000208,0x0000020d, + 0x000200f9,0x0000020a,0x000200f8,0x0000020e,0x0004003d,0x00000006,0x0000020f,0x000001db, + 0x0004003d,0x00000006,0x00000210,0x000001e8,0x00050050,0x00000007,0x00000211,0x0000020f, + 0x00000210,0x0003003e,0x00000208,0x00000211,0x000200f9,0x0000020a,0x000200f8,0x0000020a, + 0x0004003d,0x00000007,0x00000212,0x00000208,0x0003003e,0x000001fa,0x00000212,0x00050041, + 0x00000009,0x00000213,0x000001fa,0x0000002c,0x0004003d,0x00000006,0x00000214,0x00000213, + 0x000500b7,0x00000030,0x00000215,0x00000214,0x00000026,0x000300f7,0x00000218,0x00000000, + 0x000400fa,0x00000215,0x00000217,0x0000021e,0x000200f8,0x00000217,0x00050041,0x00000009, + 0x00000219,0x000001fa,0x00000028,0x0004003d,0x00000006,0x0000021a,0x00000219,0x00050041, + 0x00000009,0x0000021b,0x000001fa,0x0000002c,0x0004003d,0x00000006,0x0000021c,0x0000021b, + 0x00050088,0x00000006,0x0000021d,0x0000021a,0x0000021c,0x0003003e,0x00000216,0x0000021d, + 0x000200f9,0x00000218,0x000200f8,0x0000021e,0x0003003e,0x00000216,0x00000026,0x000200f9, + 0x00000218,0x000200f8,0x00000218,0x0004003d,0x00000006,0x0000021f,0x00000216,0x0003003e, + 0x00000140,0x0000021f,0x0004003d,0x00000006,0x00000220,0x00000140,0x0008000c,0x00000006, + 0x00000221,0x00000001,0x0000002b,0x00000220,0x00000026,0x000000ca,0x0003003e,0x00000140, + 0x00000221,0x0004003d,0x00000006,0x00000222,0x000001b2,0x000500b4,0x00000030,0x00000223, + 0x00000222,0x00000026,0x000300f7,0x00000225,0x00000000,0x000400fa,0x00000223,0x00000224, + 0x00000225,0x000200f8,0x00000224,0x0003003e,0x00000140,0x00000026,0x000200f9,0x00000225, + 0x000200f8,0x00000225,0x0004003d,0x00000006,0x00000226,0x000001ae,0x0004003d,0x00000006, + 0x00000227,0x00000140,0x0007000c,0x00000006,0x00000228,0x00000001,0x00000028,0x00000226, + 0x00000227,0x0003003e,0x0000013c,0x00000228,0x000200f9,0x0000013b,0x000200f8,0x0000013b, + 0x0004003d,0x00000007,0x0000022b,0x00000077,0x0003003e,0x0000022a,0x0000022b,0x0004003d, + 0x00000007,0x0000022d,0x0000007d,0x0003003e,0x0000022c,0x0000022d,0x0004003d,0x00000006, + 0x0000022f,0x0000013c,0x0003003e,0x0000022e,0x0000022f,0x00070039,0x00000007,0x00000230, + 0x0000000e,0x0000022a,0x0000022c,0x0000022e,0x0003003e,0x00000229,0x00000230,0x0004003d, + 0x00000007,0x00000233,0x0000007d,0x0003003e,0x00000232,0x00000233,0x0004003d,0x00000007, + 0x00000235,0x00000080,0x0003003e,0x00000234,0x00000235,0x0004003d,0x00000006,0x00000237, + 0x0000013c,0x0003003e,0x00000236,0x00000237,0x00070039,0x00000007,0x00000238,0x0000000e, + 0x00000232,0x00000234,0x00000236,0x0003003e,0x00000231,0x00000238,0x0004003d,0x00000007, + 0x0000023b,0x00000080,0x0003003e,0x0000023a,0x0000023b,0x0004003d,0x00000007,0x0000023d, + 0x00000084,0x0003003e,0x0000023c,0x0000023d,0x0004003d,0x00000006,0x0000023f,0x0000013c, + 0x0003003e,0x0000023e,0x0000023f,0x00070039,0x00000007,0x00000240,0x0000000e,0x0000023a, + 0x0000023c,0x0000023e,0x0003003e,0x00000239,0x00000240,0x0004003d,0x00000007,0x00000243, + 0x00000229,0x0003003e,0x00000242,0x00000243,0x0004003d,0x00000007,0x00000245,0x00000231, + 0x0003003e,0x00000244,0x00000245,0x0004003d,0x00000006,0x00000247,0x0000013c,0x0003003e, + 0x00000246,0x00000247,0x00070039,0x00000007,0x00000248,0x0000000e,0x00000242,0x00000244, + 0x00000246,0x0003003e,0x00000241,0x00000248,0x0004003d,0x00000007,0x0000024b,0x00000231, + 0x0003003e,0x0000024a,0x0000024b,0x0004003d,0x00000007,0x0000024d,0x00000239,0x0003003e, + 0x0000024c,0x0000024d,0x0004003d,0x00000006,0x0000024f,0x0000013c,0x0003003e,0x0000024e, + 0x0000024f,0x00070039,0x00000007,0x00000250,0x0000000e,0x0000024a,0x0000024c,0x0000024e, + 0x0003003e,0x00000249,0x00000250,0x0004003d,0x00000007,0x00000252,0x00000241,0x0003003e, + 0x00000251,0x00000252,0x0004003d,0x00000007,0x00000254,0x00000249,0x0003003e,0x00000253, + 0x00000254,0x0004003d,0x00000006,0x00000256,0x0000013c,0x0003003e,0x00000255,0x00000256, + 0x00070039,0x00000007,0x00000257,0x0000000e,0x00000251,0x00000253,0x00000255,0x0003003e, + 0x0000011c,0x00000257,0x0004003d,0x00000006,0x00000258,0x0000013c,0x0004003d,0x00000006, + 0x00000259,0x00000140,0x000500b7,0x00000030,0x0000025a,0x00000258,0x00000259,0x000300f7, + 0x0000025c,0x00000000,0x000400fa,0x0000025a,0x0000025b,0x0000025c,0x000200f8,0x0000025b, + 0x0004003d,0x00000007,0x0000025d,0x00000249,0x0004003d,0x00000007,0x0000025e,0x00000241, + 0x00050083,0x00000007,0x0000025f,0x0000025d,0x0000025e,0x0003003e,0x00000260,0x0000025f, + 0x00050039,0x00000006,0x00000261,0x00000012,0x00000260,0x0003003e,0x00000105,0x00000261, + 0x000200f9,0x0000025c,0x000200f8,0x0000025c,0x000200f9,0x00000134,0x000200f8,0x00000134, + 0x000200f9,0x00000114,0x000200f8,0x00000114,0x0004003d,0x00000007,0x00000265,0x0000011c, + 0x0004003d,0x00000006,0x00000266,0x00000105,0x00050051,0x00000006,0x00000267,0x00000265, + 0x00000000,0x00050051,0x00000006,0x00000268,0x00000265,0x00000001,0x00060050,0x000000c5, + 0x00000269,0x00000267,0x00000268,0x00000266,0x0004007c,0x0000026a,0x0000026b,0x00000269, + 0x0004003d,0x00000027,0x0000026c,0x000000af,0x00050051,0x00000027,0x0000026d,0x0000026b, + 0x00000000,0x00050051,0x00000027,0x0000026e,0x0000026b,0x00000001,0x00050051,0x00000027, + 0x0000026f,0x0000026b,0x00000002,0x00070050,0x00000262,0x00000270,0x0000026d,0x0000026e, + 0x0000026f,0x0000026c,0x0003003e,0x00000264,0x00000270,0x000100fd,0x00010038,0x00050036, + 0x00000007,0x0000000e,0x00000000,0x0000000a,0x00030037,0x00000008,0x0000000b,0x00030037, + 0x00000008,0x0000000c,0x00030037,0x00000009,0x0000000d,0x000200f8,0x0000000f,0x0004003d, + 0x00000007,0x0000001c,0x0000000c,0x0004003d,0x00000007,0x0000001d,0x0000000b,0x00050083, + 0x00000007,0x0000001e,0x0000001c,0x0000001d,0x0004003d,0x00000006,0x0000001f,0x0000000d, + 0x0005008e,0x00000007,0x00000020,0x0000001e,0x0000001f,0x0004003d,0x00000007,0x00000021, + 0x0000000b,0x00050081,0x00000007,0x00000022,0x00000020,0x00000021,0x000200fe,0x00000022, + 0x00010038,0x00050036,0x00000006,0x00000012,0x00000000,0x00000010,0x00030037,0x00000008, + 0x00000011,0x000200f8,0x00000013,0x0004003b,0x00000009,0x00000025,0x00000007,0x0003003e, + 0x00000025,0x00000026,0x00050041,0x00000009,0x00000029,0x00000011,0x00000028,0x0004003d, + 0x00000006,0x0000002a,0x00000029,0x0006000c,0x00000006,0x0000002b,0x00000001,0x00000004, + 0x0000002a,0x00050041,0x00000009,0x0000002d,0x00000011,0x0000002c,0x0004003d,0x00000006, + 0x0000002e,0x0000002d,0x0006000c,0x00000006,0x0000002f,0x00000001,0x00000004,0x0000002e, + 0x000500ba,0x00000030,0x00000031,0x0000002b,0x0000002f,0x000300f7,0x00000033,0x00000000, + 0x000400fa,0x00000031,0x00000032,0x00000033,0x000200f8,0x00000032,0x00050041,0x00000009, + 0x00000034,0x00000011,0x0000002c,0x0004003d,0x00000006,0x00000035,0x00000034,0x00050041, + 0x00000009,0x00000036,0x00000011,0x00000028,0x0004003d,0x00000006,0x00000037,0x00000036, + 0x0004007f,0x00000006,0x00000038,0x00000037,0x00050050,0x00000007,0x00000039,0x00000035, + 0x00000038,0x0003003e,0x00000011,0x00000039,0x0003003e,0x00000025,0x0000003a,0x000200f9, + 0x00000033,0x000200f8,0x00000033,0x00050041,0x00000009,0x0000003b,0x00000011,0x0000002c, + 0x0004003d,0x00000006,0x0000003c,0x0000003b,0x00050041,0x00000009,0x0000003d,0x00000011, + 0x00000028,0x0004003d,0x00000006,0x0000003e,0x0000003d,0x0007000c,0x00000006,0x0000003f, + 0x00000001,0x00000019,0x0000003c,0x0000003e,0x0004003d,0x00000006,0x00000040,0x00000025, + 0x00050081,0x00000006,0x00000041,0x0000003f,0x00000040,0x000200fe,0x00000041,0x00010038, + 0x00050036,0x00000014,0x0000001a,0x00000000,0x00000015,0x00030037,0x00000008,0x00000016, + 0x00030037,0x00000008,0x00000017,0x00030037,0x00000008,0x00000018,0x00030037,0x00000008, + 0x00000019,0x000200f8,0x0000001b,0x0004003b,0x00000044,0x00000045,0x00000007,0x0004003b, + 0x00000008,0x0000004d,0x00000007,0x0004003b,0x00000008,0x00000064,0x00000007,0x0004003d, + 0x00000007,0x00000048,0x00000016,0x0004003d,0x00000007,0x00000049,0x00000017,0x000500b7, + 0x0000004a,0x0000004b,0x00000048,0x00000049,0x0004009a,0x00000030,0x0000004c,0x0000004b, + 0x000300f7,0x0000004f,0x00000000,0x000400fa,0x0000004c,0x0000004e,0x00000051,0x000200f8, + 0x0000004e,0x0004003d,0x00000007,0x00000050,0x00000017,0x0003003e,0x0000004d,0x00000050, + 0x000200f9,0x0000004f,0x000200f8,0x00000051,0x0004003d,0x00000007,0x00000052,0x00000017, + 0x0004003d,0x00000007,0x00000053,0x00000018,0x000500b7,0x0000004a,0x00000054,0x00000052, + 0x00000053,0x0004009a,0x00000030,0x00000055,0x00000054,0x0004003d,0x00000007,0x00000056, + 0x00000018,0x0004003d,0x00000007,0x00000057,0x00000019,0x00050050,0x0000004a,0x00000058, + 0x00000055,0x00000055,0x000600a9,0x00000007,0x00000059,0x00000058,0x00000056,0x00000057, + 0x0003003e,0x0000004d,0x00000059,0x000200f9,0x0000004f,0x000200f8,0x0000004f,0x0004003d, + 0x00000007,0x0000005a,0x0000004d,0x0004003d,0x00000007,0x0000005b,0x00000016,0x00050083, + 0x00000007,0x0000005c,0x0000005a,0x0000005b,0x00050041,0x00000008,0x0000005d,0x00000045, + 0x00000047,0x0003003e,0x0000005d,0x0000005c,0x0004003d,0x00000007,0x0000005f,0x00000019, + 0x0004003d,0x00000007,0x00000060,0x00000019,0x0004003d,0x00000007,0x00000061,0x00000018, + 0x000500b7,0x0000004a,0x00000062,0x00000060,0x00000061,0x0004009a,0x00000030,0x00000063, + 0x00000062,0x000300f7,0x00000066,0x00000000,0x000400fa,0x00000063,0x00000065,0x00000068, + 0x000200f8,0x00000065,0x0004003d,0x00000007,0x00000067,0x00000018,0x0003003e,0x00000064, + 0x00000067,0x000200f9,0x00000066,0x000200f8,0x00000068,0x0004003d,0x00000007,0x00000069, + 0x00000018,0x0004003d,0x00000007,0x0000006a,0x00000017,0x000500b7,0x0000004a,0x0000006b, + 0x00000069,0x0000006a,0x0004009a,0x00000030,0x0000006c,0x0000006b,0x0004003d,0x00000007, + 0x0000006d,0x00000017,0x0004003d,0x00000007,0x0000006e,0x00000016,0x00050050,0x0000004a, + 0x0000006f,0x0000006c,0x0000006c,0x000600a9,0x00000007,0x00000070,0x0000006f,0x0000006d, + 0x0000006e,0x0003003e,0x00000064,0x00000070,0x000200f9,0x00000066,0x000200f8,0x00000066, + 0x0004003d,0x00000007,0x00000071,0x00000064,0x00050083,0x00000007,0x00000072,0x0000005f, + 0x00000071,0x00050041,0x00000008,0x00000073,0x00000045,0x0000005e,0x0003003e,0x00000073, + 0x00000072,0x0004003d,0x00000014,0x00000074,0x00000045,0x000200fe,0x00000074,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/spirv/tessellate.vert.h b/defold-rive/include/generated/shaders/spirv/tessellate.vert.h new file mode 100644 index 00000000..1a993227 --- /dev/null +++ b/defold-rive/include/generated/shaders/spirv/tessellate.vert.h @@ -0,0 +1,429 @@ + // 1114.3.0 + #pragma once +const uint32_t tessellate_vert[] = { + 0x07230203,0x00010000,0x0008000b,0x00000218,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0010000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000008b,0x00000090,0x00000097, + 0x000000a7,0x000000b8,0x0000019c,0x000001a4,0x000001ac,0x000001f0,0x000001fb,0x00000215, + 0x00030003,0x00000001,0x00000136,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000a0004,0x475f4c47, + 0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576, + 0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669, + 0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000d,0x656b616d,0x6f6c665f, + 0x78327461,0x66762832,0x00003b34,0x00030005,0x0000000c,0x00000078,0x00080005,0x00000013, + 0x746e6f63,0x5f72756f,0x61746164,0x7864695f,0x3b317528,0x00000000,0x00070005,0x00000012, + 0x746e6f63,0x4972756f,0x74695744,0x616c4668,0x00007367,0x000a0005,0x0000001b,0x646e6966, + 0x6e61745f,0x746e6567,0x66762873,0x66763b32,0x66763b32,0x66763b32,0x00003b32,0x00030005, + 0x00000017,0x00003070,0x00030005,0x00000018,0x00003170,0x00030005,0x00000019,0x00003270, + 0x00030005,0x0000001a,0x00003370,0x000a0005,0x00000020,0x69736f63,0x625f656e,0x65777465, + 0x765f6e65,0x6f746365,0x76287372,0x763b3266,0x003b3266,0x00030005,0x0000001e,0x00000061, + 0x00030005,0x0000001f,0x00000062,0x00030005,0x00000039,0x00000074,0x00050005,0x0000006d, + 0x635f6261,0x6854736f,0x00617465,0x00040005,0x00000071,0x705f6261,0x0032776f,0x00050005, + 0x00000089,0x7265765f,0x49786574,0x00000044,0x00060005,0x0000008b,0x565f6c67,0x65747265, + 0x646e4978,0x00007865,0x00050005,0x0000008d,0x736e695f,0x636e6174,0x00444965,0x00030005, + 0x0000008e,0x00003070,0x00070005,0x00000090,0x5058455f,0x4554524f,0x5f615f44,0x31703070, + 0x0000005f,0x00030005,0x00000093,0x00003170,0x00030005,0x00000096,0x00003270,0x00070005, + 0x00000097,0x5058455f,0x4554524f,0x5f615f44,0x33703270,0x0000005f,0x00030005,0x0000009a, + 0x00003370,0x00050005,0x0000009e,0x69467369,0x53747372,0x006e6170,0x00030005,0x000000a2, + 0x00000079,0x00090005,0x000000a7,0x5058455f,0x4554524f,0x5f615f44,0x6e696f6a,0x5f6e6154, + 0x5f646e61,0x00007379,0x00040005,0x000000b1,0x31783078,0x00000000,0x00070005,0x000000b8, + 0x5058455f,0x4554524f,0x5f615f44,0x73677261,0x00000000,0x00040005,0x000000c2,0x70753178, + 0x00000000,0x00030005,0x000000ce,0x00003078,0x00030005,0x000000d2,0x00003178,0x00040005, + 0x000000d6,0x726f6f63,0x00000064,0x00080005,0x000000ea,0x61726170,0x7274656d,0x65536369, + 0x6e656d67,0x756f4374,0x0000746e,0x00070005,0x000000ef,0x616c6f70,0x67655372,0x746e656d, + 0x6e756f43,0x00000074,0x00070005,0x000000f5,0x6e696f6a,0x6d676553,0x43746e65,0x746e756f, + 0x00000000,0x00070005,0x000000fa,0x746e6f63,0x4972756f,0x74695744,0x616c4668,0x00007367, + 0x00080005,0x00000109,0x5058455f,0x4554524f,0x6c465f44,0x55687375,0x6f66696e,0x00736d72, + 0x00090006,0x00000109,0x00000000,0x64617267,0x65766e49,0x56657372,0x70776569,0x5974726f, + 0x00000000,0x00090006,0x00000109,0x00000001,0x73736574,0x65766e49,0x56657372,0x70776569, + 0x5974726f,0x00000000,0x000b0006,0x00000109,0x00000002,0x646e6572,0x61547265,0x74656772, + 0x65766e49,0x56657372,0x70776569,0x5874726f,0x00000000,0x000b0006,0x00000109,0x00000003, + 0x646e6572,0x61547265,0x74656772,0x65766e49,0x56657372,0x70776569,0x5974726f,0x00000000, + 0x00080006,0x00000109,0x00000004,0x646e6572,0x61547265,0x74656772,0x74646957,0x00000068, + 0x00080006,0x00000109,0x00000005,0x646e6572,0x61547265,0x74656772,0x67696548,0x00007468, + 0x00070006,0x00000109,0x00000006,0x6f6c6f63,0x656c4372,0x61567261,0x0065756c,0x00080006, + 0x00000109,0x00000007,0x65766f63,0x65676172,0x61656c43,0x6c615672,0x00006575,0x000a0006, + 0x00000109,0x00000008,0x646e6572,0x61547265,0x74656772,0x61647055,0x6f426574,0x73646e75, + 0x00000000,0x00090006,0x00000109,0x00000009,0x65766f63,0x65676172,0x66667542,0x72507265, + 0x78696665,0x00000000,0x00080006,0x00000109,0x0000000a,0x68746170,0x72474449,0x6c756e61, + 0x74697261,0x00000079,0x00080006,0x00000109,0x0000000b,0x74726576,0x69447865,0x72616373, + 0x6c615664,0x00006575,0x00050005,0x0000010b,0x66696e75,0x736d726f,0x00000000,0x00040005, + 0x00000121,0x68746170,0x00004449,0x00060005,0x00000123,0x746e6f43,0x4272756f,0x65666675, + 0x00000072,0x00050006,0x00000123,0x00000000,0x6c61765f,0x00736575,0x00080005,0x00000125, + 0x5058455f,0x4554524f,0x6f635f44,0x756f746e,0x66754272,0x00726566,0x00040005,0x00000126, + 0x61726170,0x0000006d,0x00030005,0x0000012c,0x0074616d,0x00050005,0x0000012e,0x68746150, + 0x66667542,0x00007265,0x00050006,0x0000012e,0x00000000,0x6c61765f,0x00736575,0x00080005, + 0x00000130,0x5058455f,0x4554524f,0x61705f44,0x75426874,0x72656666,0x00000000,0x00040005, + 0x00000138,0x61726170,0x0000006d,0x00030005,0x0000013a,0x00003064,0x00030005,0x00000144, + 0x00003164,0x00030005,0x0000014d,0x0000006d,0x00030005,0x00000155,0x0000006e,0x00070005, + 0x00000161,0x61746f74,0x7265566c,0x43786574,0x746e756f,0x00000000,0x00050005,0x00000168, + 0x676e6174,0x73746e65,0x00000000,0x00040005,0x00000169,0x61726170,0x0000006d,0x00040005, + 0x0000016b,0x61726170,0x0000006d,0x00040005,0x0000016d,0x61726170,0x0000006d,0x00040005, + 0x0000016f,0x61726170,0x0000006d,0x00040005,0x00000172,0x74656874,0x00000061,0x00040005, + 0x00000173,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00070005, + 0x0000017b,0x73646172,0x50726550,0x72616c6f,0x6d676553,0x00746e65,0x00040005,0x00000180, + 0x6e727574,0x00000000,0x00040005,0x0000019c,0x30705f76,0x00003170,0x00040005,0x000001a4, + 0x32705f76,0x00003370,0x00040005,0x000001ac,0x72615f76,0x00007367,0x00060005,0x000001c2, + 0x6e696f6a,0x676e6154,0x73746e65,0x00000000,0x00050005,0x000001ce,0x6e696f6a,0x74656854, + 0x00000061,0x00040005,0x000001cf,0x61726170,0x0000006d,0x00040005,0x000001d2,0x61726170, + 0x0000006d,0x00050005,0x000001d7,0x6e696f6a,0x6e617053,0x00000000,0x00070005,0x000001e3, + 0x73646172,0x4a726550,0x536e696f,0x656d6765,0x0000746e,0x00050005,0x000001f0,0x6f6a5f76, + 0x72416e69,0x00007367,0x00080005,0x000001fb,0x6f635f76,0x756f746e,0x57444972,0x46687469, + 0x7367616c,0x00000000,0x00030005,0x000001fd,0x00736f70,0x00060005,0x00000213,0x505f6c67, + 0x65567265,0x78657472,0x00000000,0x00060006,0x00000213,0x00000000,0x505f6c67,0x7469736f, + 0x006e6f69,0x00070006,0x00000213,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000, + 0x00030005,0x00000215,0x00000000,0x00040047,0x0000008b,0x0000000b,0x0000002a,0x00040047, + 0x00000090,0x0000001e,0x00000000,0x00040047,0x00000097,0x0000001e,0x00000001,0x00040047, + 0x000000a7,0x0000001e,0x00000002,0x00040047,0x000000b8,0x0000001e,0x00000003,0x00050048, + 0x00000109,0x00000000,0x00000023,0x00000000,0x00050048,0x00000109,0x00000001,0x00000023, + 0x00000004,0x00050048,0x00000109,0x00000002,0x00000023,0x00000008,0x00050048,0x00000109, + 0x00000003,0x00000023,0x0000000c,0x00050048,0x00000109,0x00000004,0x00000023,0x00000010, + 0x00050048,0x00000109,0x00000005,0x00000023,0x00000014,0x00050048,0x00000109,0x00000006, + 0x00000023,0x00000018,0x00050048,0x00000109,0x00000007,0x00000023,0x0000001c,0x00050048, + 0x00000109,0x00000008,0x00000023,0x00000020,0x00050048,0x00000109,0x00000009,0x00000023, + 0x00000030,0x00050048,0x00000109,0x0000000a,0x00000023,0x00000034,0x00050048,0x00000109, + 0x0000000b,0x00000023,0x00000038,0x00030047,0x00000109,0x00000002,0x00040047,0x0000010b, + 0x00000022,0x00000000,0x00040047,0x0000010b,0x00000021,0x00000007,0x00040047,0x00000122, + 0x00000006,0x00000010,0x00040048,0x00000123,0x00000000,0x00000018,0x00050048,0x00000123, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000123,0x00000003,0x00040047,0x00000125, + 0x00000022,0x00000000,0x00040047,0x00000125,0x00000021,0x00000006,0x00040047,0x0000012d, + 0x00000006,0x00000010,0x00040048,0x0000012e,0x00000000,0x00000018,0x00050048,0x0000012e, + 0x00000000,0x00000023,0x00000000,0x00030047,0x0000012e,0x00000003,0x00040047,0x00000130, + 0x00000022,0x00000000,0x00040047,0x00000130,0x00000021,0x00000003,0x00040047,0x0000019c, + 0x0000001e,0x00000000,0x00040047,0x000001a4,0x0000001e,0x00000001,0x00040047,0x000001ac, + 0x0000001e,0x00000002,0x00040047,0x000001f0,0x0000001e,0x00000003,0x00030047,0x000001fb, + 0x0000000e,0x00040047,0x000001fb,0x0000001e,0x00000004,0x00050048,0x00000213,0x00000000, + 0x0000000b,0x00000000,0x00050048,0x00000213,0x00000001,0x0000000b,0x00000001,0x00030047, + 0x00000213,0x00000002,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008, + 0x00000007,0x00000007,0x00040017,0x00000009,0x00000006,0x00000002,0x00040018,0x0000000a, + 0x00000009,0x00000002,0x00040021,0x0000000b,0x0000000a,0x00000008,0x00040015,0x0000000f, + 0x00000020,0x00000000,0x00040020,0x00000010,0x00000007,0x0000000f,0x00040021,0x00000011, + 0x0000000f,0x00000010,0x00040020,0x00000015,0x00000007,0x00000009,0x00070021,0x00000016, + 0x0000000a,0x00000015,0x00000015,0x00000015,0x00000015,0x00050021,0x0000001d,0x00000006, + 0x00000015,0x00000015,0x0004002b,0x00000006,0x00000026,0x3f800000,0x0004002b,0x00000006, + 0x00000027,0x00000000,0x0004002b,0x0000000f,0x00000032,0x0000ffff,0x0004002b,0x0000000f, + 0x00000034,0x00000001,0x00040020,0x00000038,0x00000007,0x0000000a,0x00040015,0x0000003a, + 0x00000020,0x00000001,0x0004002b,0x0000003a,0x0000003b,0x00000000,0x00020014,0x0000003e, + 0x00040017,0x0000003f,0x0000003e,0x00000002,0x0004002b,0x0000003a,0x00000053,0x00000001, + 0x00040020,0x0000006c,0x00000007,0x00000006,0x0004002b,0x00000006,0x00000083,0xbf800000, + 0x00040020,0x00000088,0x00000007,0x0000003a,0x00040020,0x0000008a,0x00000001,0x0000003a, + 0x0004003b,0x0000008a,0x0000008b,0x00000001,0x00040020,0x0000008f,0x00000001,0x00000007, + 0x0004003b,0x0000008f,0x00000090,0x00000001,0x0004003b,0x0000008f,0x00000097,0x00000001, + 0x00040020,0x0000009d,0x00000007,0x0000003e,0x0004002b,0x0000003a,0x000000a0,0x00000004, + 0x0004003b,0x0000008f,0x000000a7,0x00000001,0x0004002b,0x0000000f,0x000000a8,0x00000002, + 0x00040020,0x000000a9,0x00000001,0x00000006,0x0004002b,0x0000000f,0x000000ad,0x00000003, + 0x00040017,0x000000b6,0x0000000f,0x00000004,0x00040020,0x000000b7,0x00000001,0x000000b6, + 0x0004003b,0x000000b7,0x000000b8,0x00000001,0x0004002b,0x0000000f,0x000000b9,0x00000000, + 0x00040020,0x000000ba,0x00000001,0x0000000f,0x0004002b,0x0000003a,0x000000c4,0x00000010, + 0x0004002b,0x0000000f,0x000000c8,0xffffffff,0x0004002b,0x0000003a,0x000000de,0x00000002, + 0x0004002b,0x0000000f,0x000000ed,0x000003ff,0x0004002b,0x0000003a,0x000000f2,0x0000000a, + 0x0004002b,0x0000003a,0x000000f8,0x00000014,0x0004002b,0x0000000f,0x00000102,0x02000000, + 0x00040017,0x00000108,0x0000003a,0x00000004,0x000e001e,0x00000109,0x00000006,0x00000006, + 0x00000006,0x00000006,0x0000000f,0x0000000f,0x0000000f,0x0000000f,0x00000108,0x0000000f, + 0x0000000f,0x00000006,0x00040020,0x0000010a,0x00000002,0x00000109,0x0004003b,0x0000010a, + 0x0000010b,0x00000002,0x00040020,0x0000010c,0x00000002,0x00000006,0x0004002b,0x00000006, + 0x00000113,0x40000000,0x0004002b,0x0000000f,0x0000011c,0x40000000,0x0003001d,0x00000122, + 0x000000b6,0x0003001e,0x00000123,0x00000122,0x00040020,0x00000124,0x00000002,0x00000123, + 0x0004003b,0x00000124,0x00000125,0x00000002,0x00040020,0x00000129,0x00000002,0x0000000f, + 0x0003001d,0x0000012d,0x000000b6,0x0003001e,0x0000012e,0x0000012d,0x00040020,0x0000012f, + 0x00000002,0x0000012e,0x0004003b,0x0000012f,0x00000130,0x00000002,0x0004002b,0x0000000f, + 0x00000132,0x00000004,0x00040020,0x00000134,0x00000002,0x000000b6,0x0004002b,0x00000006, + 0x0000013c,0xc0000000,0x0004002b,0x00000006,0x00000156,0x40400000,0x00040020,0x0000019b, + 0x00000003,0x00000007,0x0004003b,0x0000019b,0x0000019c,0x00000003,0x0004003b,0x0000019b, + 0x000001a4,0x00000003,0x0004003b,0x0000019b,0x000001ac,0x00000003,0x0004002b,0x0000000f, + 0x000001db,0x38000000,0x0004002b,0x0000000f,0x000001dd,0x08000000,0x00040017,0x000001ee, + 0x00000006,0x00000003,0x00040020,0x000001ef,0x00000003,0x000001ee,0x0004003b,0x000001ef, + 0x000001f0,0x00000003,0x00040020,0x000001f3,0x00000003,0x00000006,0x00040020,0x000001fa, + 0x00000003,0x0000000f,0x0004003b,0x000001fa,0x000001fb,0x00000003,0x0004002b,0x00000006, + 0x00000200,0x3a800000,0x0005002c,0x00000009,0x0000020e,0x00000027,0x00000026,0x0004001e, + 0x00000213,0x00000007,0x00000006,0x00040020,0x00000214,0x00000003,0x00000213,0x0004003b, + 0x00000214,0x00000215,0x00000003,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x00000088,0x00000089,0x00000007,0x0004003b,0x00000088, + 0x0000008d,0x00000007,0x0004003b,0x00000015,0x0000008e,0x00000007,0x0004003b,0x00000015, + 0x00000093,0x00000007,0x0004003b,0x00000015,0x00000096,0x00000007,0x0004003b,0x00000015, + 0x0000009a,0x00000007,0x0004003b,0x0000009d,0x0000009e,0x00000007,0x0004003b,0x0000006c, + 0x000000a2,0x00000007,0x0004003b,0x0000006c,0x000000a4,0x00000007,0x0004003b,0x00000088, + 0x000000b1,0x00000007,0x0004003b,0x00000010,0x000000b3,0x00000007,0x0004003b,0x00000088, + 0x000000c2,0x00000007,0x0004003b,0x0000006c,0x000000ce,0x00000007,0x0004003b,0x0000006c, + 0x000000d2,0x00000007,0x0004003b,0x00000015,0x000000d6,0x00000007,0x0004003b,0x0000006c, + 0x000000e1,0x00000007,0x0004003b,0x00000010,0x000000ea,0x00000007,0x0004003b,0x00000010, + 0x000000ef,0x00000007,0x0004003b,0x00000010,0x000000f5,0x00000007,0x0004003b,0x00000010, + 0x000000fa,0x00000007,0x0004003b,0x00000010,0x00000121,0x00000007,0x0004003b,0x00000010, + 0x00000126,0x00000007,0x0004003b,0x00000038,0x0000012c,0x00000007,0x0004003b,0x00000008, + 0x00000138,0x00000007,0x0004003b,0x00000015,0x0000013a,0x00000007,0x0004003b,0x00000015, + 0x00000144,0x00000007,0x0004003b,0x0000006c,0x0000014d,0x00000007,0x0004003b,0x0000006c, + 0x00000155,0x00000007,0x0004003b,0x00000010,0x00000161,0x00000007,0x0004003b,0x00000038, + 0x00000168,0x00000007,0x0004003b,0x00000015,0x00000169,0x00000007,0x0004003b,0x00000015, + 0x0000016b,0x00000007,0x0004003b,0x00000015,0x0000016d,0x00000007,0x0004003b,0x00000015, + 0x0000016f,0x00000007,0x0004003b,0x0000006c,0x00000172,0x00000007,0x0004003b,0x00000015, + 0x00000173,0x00000007,0x0004003b,0x00000015,0x00000176,0x00000007,0x0004003b,0x0000006c, + 0x0000017b,0x00000007,0x0004003b,0x0000006c,0x00000180,0x00000007,0x0004003b,0x00000038, + 0x000001c2,0x00000007,0x0004003b,0x0000006c,0x000001ce,0x00000007,0x0004003b,0x00000015, + 0x000001cf,0x00000007,0x0004003b,0x00000015,0x000001d2,0x00000007,0x0004003b,0x0000006c, + 0x000001d7,0x00000007,0x0004003b,0x0000006c,0x000001e3,0x00000007,0x0004003b,0x00000008, + 0x000001fd,0x00000007,0x0004003d,0x0000003a,0x0000008c,0x0000008b,0x0003003e,0x00000089, + 0x0000008c,0x0003003e,0x0000008d,0x0000003b,0x0004003d,0x00000007,0x00000091,0x00000090, + 0x0007004f,0x00000009,0x00000092,0x00000091,0x00000091,0x00000000,0x00000001,0x0003003e, + 0x0000008e,0x00000092,0x0004003d,0x00000007,0x00000094,0x00000090,0x0007004f,0x00000009, + 0x00000095,0x00000094,0x00000094,0x00000002,0x00000003,0x0003003e,0x00000093,0x00000095, + 0x0004003d,0x00000007,0x00000098,0x00000097,0x0007004f,0x00000009,0x00000099,0x00000098, + 0x00000098,0x00000000,0x00000001,0x0003003e,0x00000096,0x00000099,0x0004003d,0x00000007, + 0x0000009b,0x00000097,0x0007004f,0x00000009,0x0000009c,0x0000009b,0x0000009b,0x00000002, + 0x00000003,0x0003003e,0x0000009a,0x0000009c,0x0004003d,0x0000003a,0x0000009f,0x00000089, + 0x000500b1,0x0000003e,0x000000a1,0x0000009f,0x000000a0,0x0003003e,0x0000009e,0x000000a1, + 0x0004003d,0x0000003e,0x000000a3,0x0000009e,0x000300f7,0x000000a6,0x00000000,0x000400fa, + 0x000000a3,0x000000a5,0x000000ac,0x000200f8,0x000000a5,0x00050041,0x000000a9,0x000000aa, + 0x000000a7,0x000000a8,0x0004003d,0x00000006,0x000000ab,0x000000aa,0x0003003e,0x000000a4, + 0x000000ab,0x000200f9,0x000000a6,0x000200f8,0x000000ac,0x00050041,0x000000a9,0x000000ae, + 0x000000a7,0x000000ad,0x0004003d,0x00000006,0x000000af,0x000000ae,0x0003003e,0x000000a4, + 0x000000af,0x000200f9,0x000000a6,0x000200f8,0x000000a6,0x0004003d,0x00000006,0x000000b0, + 0x000000a4,0x0003003e,0x000000a2,0x000000b0,0x0004003d,0x0000003e,0x000000b2,0x0000009e, + 0x000300f7,0x000000b5,0x00000000,0x000400fa,0x000000b2,0x000000b4,0x000000bd,0x000200f8, + 0x000000b4,0x00050041,0x000000ba,0x000000bb,0x000000b8,0x000000b9,0x0004003d,0x0000000f, + 0x000000bc,0x000000bb,0x0003003e,0x000000b3,0x000000bc,0x000200f9,0x000000b5,0x000200f8, + 0x000000bd,0x00050041,0x000000ba,0x000000be,0x000000b8,0x00000034,0x0004003d,0x0000000f, + 0x000000bf,0x000000be,0x0003003e,0x000000b3,0x000000bf,0x000200f9,0x000000b5,0x000200f8, + 0x000000b5,0x0004003d,0x0000000f,0x000000c0,0x000000b3,0x0004007c,0x0000003a,0x000000c1, + 0x000000c0,0x0003003e,0x000000b1,0x000000c1,0x0004003d,0x0000003a,0x000000c3,0x000000b1, + 0x000500c4,0x0000003a,0x000000c5,0x000000c3,0x000000c4,0x0003003e,0x000000c2,0x000000c5, + 0x00050041,0x000000ba,0x000000c6,0x000000b8,0x000000a8,0x0004003d,0x0000000f,0x000000c7, + 0x000000c6,0x000500aa,0x0000003e,0x000000c9,0x000000c7,0x000000c8,0x000300f7,0x000000cb, + 0x00000000,0x000400fa,0x000000c9,0x000000ca,0x000000cb,0x000200f8,0x000000ca,0x0004003d, + 0x0000003a,0x000000cc,0x000000c2,0x00050082,0x0000003a,0x000000cd,0x000000cc,0x00000053, + 0x0003003e,0x000000c2,0x000000cd,0x000200f9,0x000000cb,0x000200f8,0x000000cb,0x0004003d, + 0x0000003a,0x000000cf,0x000000c2,0x000500c3,0x0000003a,0x000000d0,0x000000cf,0x000000c4, + 0x0004006f,0x00000006,0x000000d1,0x000000d0,0x0003003e,0x000000ce,0x000000d1,0x0004003d, + 0x0000003a,0x000000d3,0x000000b1,0x000500c3,0x0000003a,0x000000d4,0x000000d3,0x000000c4, + 0x0004006f,0x00000006,0x000000d5,0x000000d4,0x0003003e,0x000000d2,0x000000d5,0x0004003d, + 0x0000003a,0x000000d7,0x00000089,0x000500c7,0x0000003a,0x000000d8,0x000000d7,0x00000053, + 0x000500aa,0x0000003e,0x000000d9,0x000000d8,0x0000003b,0x0004003d,0x00000006,0x000000da, + 0x000000ce,0x0004003d,0x00000006,0x000000db,0x000000d2,0x000600a9,0x00000006,0x000000dc, + 0x000000d9,0x000000da,0x000000db,0x0004003d,0x0000003a,0x000000dd,0x00000089,0x000500c7, + 0x0000003a,0x000000df,0x000000dd,0x000000de,0x000500aa,0x0000003e,0x000000e0,0x000000df, + 0x0000003b,0x000300f7,0x000000e3,0x00000000,0x000400fa,0x000000e0,0x000000e2,0x000000e6, + 0x000200f8,0x000000e2,0x0004003d,0x00000006,0x000000e4,0x000000a2,0x00050081,0x00000006, + 0x000000e5,0x000000e4,0x00000026,0x0003003e,0x000000e1,0x000000e5,0x000200f9,0x000000e3, + 0x000200f8,0x000000e6,0x0004003d,0x00000006,0x000000e7,0x000000a2,0x0003003e,0x000000e1, + 0x000000e7,0x000200f9,0x000000e3,0x000200f8,0x000000e3,0x0004003d,0x00000006,0x000000e8, + 0x000000e1,0x00050050,0x00000009,0x000000e9,0x000000dc,0x000000e8,0x0003003e,0x000000d6, + 0x000000e9,0x00050041,0x000000ba,0x000000eb,0x000000b8,0x000000a8,0x0004003d,0x0000000f, + 0x000000ec,0x000000eb,0x000500c7,0x0000000f,0x000000ee,0x000000ec,0x000000ed,0x0003003e, + 0x000000ea,0x000000ee,0x00050041,0x000000ba,0x000000f0,0x000000b8,0x000000a8,0x0004003d, + 0x0000000f,0x000000f1,0x000000f0,0x000500c2,0x0000000f,0x000000f3,0x000000f1,0x000000f2, + 0x000500c7,0x0000000f,0x000000f4,0x000000f3,0x000000ed,0x0003003e,0x000000ef,0x000000f4, + 0x00050041,0x000000ba,0x000000f6,0x000000b8,0x000000a8,0x0004003d,0x0000000f,0x000000f7, + 0x000000f6,0x000500c2,0x0000000f,0x000000f9,0x000000f7,0x000000f8,0x0003003e,0x000000f5, + 0x000000f9,0x00050041,0x000000ba,0x000000fb,0x000000b8,0x000000ad,0x0004003d,0x0000000f, + 0x000000fc,0x000000fb,0x0003003e,0x000000fa,0x000000fc,0x0004003d,0x00000006,0x000000fd, + 0x000000d2,0x0004003d,0x00000006,0x000000fe,0x000000ce,0x000500b8,0x0000003e,0x000000ff, + 0x000000fd,0x000000fe,0x000300f7,0x00000101,0x00000000,0x000400fa,0x000000ff,0x00000100, + 0x00000101,0x000200f8,0x00000100,0x0004003d,0x0000000f,0x00000103,0x000000fa,0x000500c5, + 0x0000000f,0x00000104,0x00000103,0x00000102,0x0003003e,0x000000fa,0x00000104,0x000200f9, + 0x00000101,0x000200f8,0x00000101,0x0004003d,0x00000006,0x00000105,0x000000d2,0x0004003d, + 0x00000006,0x00000106,0x000000ce,0x00050083,0x00000006,0x00000107,0x00000105,0x00000106, + 0x00050041,0x0000010c,0x0000010d,0x0000010b,0x00000053,0x0004003d,0x00000006,0x0000010e, + 0x0000010d,0x00050085,0x00000006,0x0000010f,0x00000107,0x0000010e,0x000500b8,0x0000003e, + 0x00000110,0x0000010f,0x00000027,0x000300f7,0x00000112,0x00000000,0x000400fa,0x00000110, + 0x00000111,0x00000112,0x000200f8,0x00000111,0x0004003d,0x00000006,0x00000114,0x000000a2, + 0x00050085,0x00000006,0x00000115,0x00000113,0x00000114,0x00050081,0x00000006,0x00000116, + 0x00000115,0x00000026,0x00050041,0x0000006c,0x00000117,0x000000d6,0x00000034,0x0004003d, + 0x00000006,0x00000118,0x00000117,0x00050083,0x00000006,0x00000119,0x00000116,0x00000118, + 0x00050041,0x0000006c,0x0000011a,0x000000d6,0x00000034,0x0003003e,0x0000011a,0x00000119, + 0x000200f9,0x00000112,0x000200f8,0x00000112,0x0004003d,0x0000000f,0x0000011b,0x000000fa, + 0x000500c7,0x0000000f,0x0000011d,0x0000011b,0x0000011c,0x000500ab,0x0000003e,0x0000011e, + 0x0000011d,0x000000b9,0x000300f7,0x00000120,0x00000000,0x000400fa,0x0000011e,0x0000011f, + 0x00000120,0x000200f8,0x0000011f,0x0004003d,0x0000000f,0x00000127,0x000000fa,0x0003003e, + 0x00000126,0x00000127,0x00050039,0x0000000f,0x00000128,0x00000013,0x00000126,0x00070041, + 0x00000129,0x0000012a,0x00000125,0x0000003b,0x00000128,0x000000a8,0x0004003d,0x0000000f, + 0x0000012b,0x0000012a,0x0003003e,0x00000121,0x0000012b,0x0004003d,0x0000000f,0x00000131, + 0x00000121,0x00050084,0x0000000f,0x00000133,0x00000131,0x00000132,0x00060041,0x00000134, + 0x00000135,0x00000130,0x0000003b,0x00000133,0x0004003d,0x000000b6,0x00000136,0x00000135, + 0x0004007c,0x00000007,0x00000137,0x00000136,0x0003003e,0x00000138,0x00000137,0x00050039, + 0x0000000a,0x00000139,0x0000000d,0x00000138,0x0003003e,0x0000012c,0x00000139,0x0004003d, + 0x0000000a,0x0000013b,0x0000012c,0x0004003d,0x00000009,0x0000013d,0x00000093,0x0005008e, + 0x00000009,0x0000013e,0x0000013d,0x0000013c,0x0004003d,0x00000009,0x0000013f,0x00000096, + 0x00050081,0x00000009,0x00000140,0x0000013e,0x0000013f,0x0004003d,0x00000009,0x00000141, + 0x0000008e,0x00050081,0x00000009,0x00000142,0x00000140,0x00000141,0x00050091,0x00000009, + 0x00000143,0x0000013b,0x00000142,0x0003003e,0x0000013a,0x00000143,0x0004003d,0x0000000a, + 0x00000145,0x0000012c,0x0004003d,0x00000009,0x00000146,0x00000096,0x0005008e,0x00000009, + 0x00000147,0x00000146,0x0000013c,0x0004003d,0x00000009,0x00000148,0x0000009a,0x00050081, + 0x00000009,0x00000149,0x00000147,0x00000148,0x0004003d,0x00000009,0x0000014a,0x00000093, + 0x00050081,0x00000009,0x0000014b,0x00000149,0x0000014a,0x00050091,0x00000009,0x0000014c, + 0x00000145,0x0000014b,0x0003003e,0x00000144,0x0000014c,0x0004003d,0x00000009,0x0000014e, + 0x0000013a,0x0004003d,0x00000009,0x0000014f,0x0000013a,0x00050094,0x00000006,0x00000150, + 0x0000014e,0x0000014f,0x0004003d,0x00000009,0x00000151,0x00000144,0x0004003d,0x00000009, + 0x00000152,0x00000144,0x00050094,0x00000006,0x00000153,0x00000151,0x00000152,0x0007000c, + 0x00000006,0x00000154,0x00000001,0x00000028,0x00000150,0x00000153,0x0003003e,0x0000014d, + 0x00000154,0x0004003d,0x00000006,0x00000157,0x0000014d,0x0006000c,0x00000006,0x00000158, + 0x00000001,0x0000001f,0x00000157,0x00050085,0x00000006,0x00000159,0x00000156,0x00000158, + 0x0006000c,0x00000006,0x0000015a,0x00000001,0x0000001f,0x00000159,0x0006000c,0x00000006, + 0x0000015b,0x00000001,0x00000009,0x0000015a,0x0007000c,0x00000006,0x0000015c,0x00000001, + 0x00000028,0x0000015b,0x00000026,0x0003003e,0x00000155,0x0000015c,0x0004003d,0x00000006, + 0x0000015d,0x00000155,0x0004006d,0x0000000f,0x0000015e,0x0000015d,0x0004003d,0x0000000f, + 0x0000015f,0x000000ea,0x0007000c,0x0000000f,0x00000160,0x00000001,0x00000026,0x0000015e, + 0x0000015f,0x0003003e,0x000000ea,0x00000160,0x000200f9,0x00000120,0x000200f8,0x00000120, + 0x0004003d,0x0000000f,0x00000162,0x000000ea,0x0004003d,0x0000000f,0x00000163,0x000000ef, + 0x00050080,0x0000000f,0x00000164,0x00000162,0x00000163,0x0004003d,0x0000000f,0x00000165, + 0x000000f5,0x00050080,0x0000000f,0x00000166,0x00000164,0x00000165,0x00050082,0x0000000f, + 0x00000167,0x00000166,0x00000034,0x0003003e,0x00000161,0x00000167,0x0004003d,0x00000009, + 0x0000016a,0x0000008e,0x0003003e,0x00000169,0x0000016a,0x0004003d,0x00000009,0x0000016c, + 0x00000093,0x0003003e,0x0000016b,0x0000016c,0x0004003d,0x00000009,0x0000016e,0x00000096, + 0x0003003e,0x0000016d,0x0000016e,0x0004003d,0x00000009,0x00000170,0x0000009a,0x0003003e, + 0x0000016f,0x00000170,0x00080039,0x0000000a,0x00000171,0x0000001b,0x00000169,0x0000016b, + 0x0000016d,0x0000016f,0x0003003e,0x00000168,0x00000171,0x00050041,0x00000015,0x00000174, + 0x00000168,0x0000003b,0x0004003d,0x00000009,0x00000175,0x00000174,0x0003003e,0x00000173, + 0x00000175,0x00050041,0x00000015,0x00000177,0x00000168,0x00000053,0x0004003d,0x00000009, + 0x00000178,0x00000177,0x0003003e,0x00000176,0x00000178,0x00060039,0x00000006,0x00000179, + 0x00000020,0x00000173,0x00000176,0x0006000c,0x00000006,0x0000017a,0x00000001,0x00000011, + 0x00000179,0x0003003e,0x00000172,0x0000017a,0x0004003d,0x00000006,0x0000017c,0x00000172, + 0x0004003d,0x0000000f,0x0000017d,0x000000ef,0x00040070,0x00000006,0x0000017e,0x0000017d, + 0x00050088,0x00000006,0x0000017f,0x0000017c,0x0000017e,0x0003003e,0x0000017b,0x0000017f, + 0x0004003d,0x00000009,0x00000181,0x00000096,0x0004003d,0x00000009,0x00000182,0x0000008e, + 0x00050083,0x00000009,0x00000183,0x00000181,0x00000182,0x0004003d,0x00000009,0x00000184, + 0x0000009a,0x0004003d,0x00000009,0x00000185,0x00000093,0x00050083,0x00000009,0x00000186, + 0x00000184,0x00000185,0x00050051,0x00000006,0x00000187,0x00000183,0x00000000,0x00050051, + 0x00000006,0x00000188,0x00000183,0x00000001,0x00050051,0x00000006,0x00000189,0x00000186, + 0x00000000,0x00050051,0x00000006,0x0000018a,0x00000186,0x00000001,0x00050050,0x00000009, + 0x0000018b,0x00000187,0x00000188,0x00050050,0x00000009,0x0000018c,0x00000189,0x0000018a, + 0x00050050,0x0000000a,0x0000018d,0x0000018b,0x0000018c,0x0006000c,0x00000006,0x0000018e, + 0x00000001,0x00000021,0x0000018d,0x0003003e,0x00000180,0x0000018e,0x0004003d,0x00000006, + 0x0000018f,0x00000180,0x000500b4,0x0000003e,0x00000190,0x0000018f,0x00000027,0x000300f7, + 0x00000192,0x00000000,0x000400fa,0x00000190,0x00000191,0x00000192,0x000200f8,0x00000191, + 0x0004003d,0x0000000a,0x00000193,0x00000168,0x0006000c,0x00000006,0x00000194,0x00000001, + 0x00000021,0x00000193,0x0003003e,0x00000180,0x00000194,0x000200f9,0x00000192,0x000200f8, + 0x00000192,0x0004003d,0x00000006,0x00000195,0x00000180,0x000500b8,0x0000003e,0x00000196, + 0x00000195,0x00000027,0x000300f7,0x00000198,0x00000000,0x000400fa,0x00000196,0x00000197, + 0x00000198,0x000200f8,0x00000197,0x0004003d,0x00000006,0x00000199,0x0000017b,0x0004007f, + 0x00000006,0x0000019a,0x00000199,0x0003003e,0x0000017b,0x0000019a,0x000200f9,0x00000198, + 0x000200f8,0x00000198,0x0004003d,0x00000009,0x0000019d,0x0000008e,0x0004003d,0x00000009, + 0x0000019e,0x00000093,0x00050051,0x00000006,0x0000019f,0x0000019d,0x00000000,0x00050051, + 0x00000006,0x000001a0,0x0000019d,0x00000001,0x00050051,0x00000006,0x000001a1,0x0000019e, + 0x00000000,0x00050051,0x00000006,0x000001a2,0x0000019e,0x00000001,0x00070050,0x00000007, + 0x000001a3,0x0000019f,0x000001a0,0x000001a1,0x000001a2,0x0003003e,0x0000019c,0x000001a3, + 0x0004003d,0x00000009,0x000001a5,0x00000096,0x0004003d,0x00000009,0x000001a6,0x0000009a, + 0x00050051,0x00000006,0x000001a7,0x000001a5,0x00000000,0x00050051,0x00000006,0x000001a8, + 0x000001a5,0x00000001,0x00050051,0x00000006,0x000001a9,0x000001a6,0x00000000,0x00050051, + 0x00000006,0x000001aa,0x000001a6,0x00000001,0x00070050,0x00000007,0x000001ab,0x000001a7, + 0x000001a8,0x000001a9,0x000001aa,0x0003003e,0x000001a4,0x000001ab,0x0004003d,0x0000000f, + 0x000001ad,0x00000161,0x00040070,0x00000006,0x000001ae,0x000001ad,0x0004003d,0x00000006, + 0x000001af,0x000000d2,0x00050041,0x0000006c,0x000001b0,0x000000d6,0x000000b9,0x0004003d, + 0x00000006,0x000001b1,0x000001b0,0x00050083,0x00000006,0x000001b2,0x000001af,0x000001b1, + 0x0006000c,0x00000006,0x000001b3,0x00000001,0x00000004,0x000001b2,0x00050083,0x00000006, + 0x000001b4,0x000001ae,0x000001b3,0x0004003d,0x0000000f,0x000001b5,0x00000161,0x00040070, + 0x00000006,0x000001b6,0x000001b5,0x0004003d,0x0000000f,0x000001b7,0x000000f5,0x000500c4, + 0x0000000f,0x000001b8,0x000001b7,0x000000f2,0x0004003d,0x0000000f,0x000001b9,0x000000ea, + 0x000500c5,0x0000000f,0x000001ba,0x000001b8,0x000001b9,0x00040070,0x00000006,0x000001bb, + 0x000001ba,0x0004003d,0x00000006,0x000001bc,0x0000017b,0x00070050,0x00000007,0x000001bd, + 0x000001b4,0x000001b6,0x000001bb,0x000001bc,0x0003003e,0x000001ac,0x000001bd,0x0004003d, + 0x0000000f,0x000001be,0x000000f5,0x000500ac,0x0000003e,0x000001bf,0x000001be,0x00000034, + 0x000300f7,0x000001c1,0x00000000,0x000400fa,0x000001bf,0x000001c0,0x000001c1,0x000200f8, + 0x000001c0,0x00050041,0x00000015,0x000001c3,0x00000168,0x00000053,0x0004003d,0x00000009, + 0x000001c4,0x000001c3,0x0004003d,0x00000007,0x000001c5,0x000000a7,0x0007004f,0x00000009, + 0x000001c6,0x000001c5,0x000001c5,0x00000000,0x00000001,0x00050051,0x00000006,0x000001c7, + 0x000001c4,0x00000000,0x00050051,0x00000006,0x000001c8,0x000001c4,0x00000001,0x00050051, + 0x00000006,0x000001c9,0x000001c6,0x00000000,0x00050051,0x00000006,0x000001ca,0x000001c6, + 0x00000001,0x00050050,0x00000009,0x000001cb,0x000001c7,0x000001c8,0x00050050,0x00000009, + 0x000001cc,0x000001c9,0x000001ca,0x00050050,0x0000000a,0x000001cd,0x000001cb,0x000001cc, + 0x0003003e,0x000001c2,0x000001cd,0x00050041,0x00000015,0x000001d0,0x000001c2,0x0000003b, + 0x0004003d,0x00000009,0x000001d1,0x000001d0,0x0003003e,0x000001cf,0x000001d1,0x00050041, + 0x00000015,0x000001d3,0x000001c2,0x00000053,0x0004003d,0x00000009,0x000001d4,0x000001d3, + 0x0003003e,0x000001d2,0x000001d4,0x00060039,0x00000006,0x000001d5,0x00000020,0x000001cf, + 0x000001d2,0x0006000c,0x00000006,0x000001d6,0x00000001,0x00000011,0x000001d5,0x0003003e, + 0x000001ce,0x000001d6,0x0004003d,0x0000000f,0x000001d8,0x000000f5,0x00040070,0x00000006, + 0x000001d9,0x000001d8,0x0003003e,0x000001d7,0x000001d9,0x0004003d,0x0000000f,0x000001da, + 0x000000fa,0x000500c7,0x0000000f,0x000001dc,0x000001da,0x000001db,0x000500aa,0x0000003e, + 0x000001de,0x000001dc,0x000001dd,0x000300f7,0x000001e0,0x00000000,0x000400fa,0x000001de, + 0x000001df,0x000001e0,0x000200f8,0x000001df,0x0004003d,0x00000006,0x000001e1,0x000001d7, + 0x00050083,0x00000006,0x000001e2,0x000001e1,0x00000113,0x0003003e,0x000001d7,0x000001e2, + 0x000200f9,0x000001e0,0x000200f8,0x000001e0,0x0004003d,0x00000006,0x000001e4,0x000001ce, + 0x0004003d,0x00000006,0x000001e5,0x000001d7,0x00050088,0x00000006,0x000001e6,0x000001e4, + 0x000001e5,0x0003003e,0x000001e3,0x000001e6,0x0004003d,0x0000000a,0x000001e7,0x000001c2, + 0x0006000c,0x00000006,0x000001e8,0x00000001,0x00000021,0x000001e7,0x000500b8,0x0000003e, + 0x000001e9,0x000001e8,0x00000027,0x000300f7,0x000001eb,0x00000000,0x000400fa,0x000001e9, + 0x000001ea,0x000001eb,0x000200f8,0x000001ea,0x0004003d,0x00000006,0x000001ec,0x000001e3, + 0x0004007f,0x00000006,0x000001ed,0x000001ec,0x0003003e,0x000001e3,0x000001ed,0x000200f9, + 0x000001eb,0x000200f8,0x000001eb,0x0004003d,0x00000007,0x000001f1,0x000000a7,0x0007004f, + 0x00000009,0x000001f2,0x000001f1,0x000001f1,0x00000000,0x00000001,0x00050041,0x000001f3, + 0x000001f4,0x000001f0,0x000000b9,0x00050051,0x00000006,0x000001f5,0x000001f2,0x00000000, + 0x0003003e,0x000001f4,0x000001f5,0x00050041,0x000001f3,0x000001f6,0x000001f0,0x00000034, + 0x00050051,0x00000006,0x000001f7,0x000001f2,0x00000001,0x0003003e,0x000001f6,0x000001f7, + 0x0004003d,0x00000006,0x000001f8,0x000001e3,0x00050041,0x000001f3,0x000001f9,0x000001f0, + 0x000000a8,0x0003003e,0x000001f9,0x000001f8,0x000200f9,0x000001c1,0x000200f8,0x000001c1, + 0x0004003d,0x0000000f,0x000001fc,0x000000fa,0x0003003e,0x000001fb,0x000001fc,0x00050041, + 0x0000006c,0x000001fe,0x000000d6,0x000000b9,0x0004003d,0x00000006,0x000001ff,0x000001fe, + 0x00050085,0x00000006,0x00000201,0x000001ff,0x00000200,0x00050083,0x00000006,0x00000202, + 0x00000201,0x00000026,0x00050041,0x0000006c,0x00000203,0x000001fd,0x000000b9,0x0003003e, + 0x00000203,0x00000202,0x00050041,0x0000006c,0x00000204,0x000000d6,0x00000034,0x0004003d, + 0x00000006,0x00000205,0x00000204,0x00050041,0x0000010c,0x00000206,0x0000010b,0x00000053, + 0x0004003d,0x00000006,0x00000207,0x00000206,0x00050085,0x00000006,0x00000208,0x00000205, + 0x00000207,0x00050041,0x0000010c,0x00000209,0x0000010b,0x00000053,0x0004003d,0x00000006, + 0x0000020a,0x00000209,0x0006000c,0x00000006,0x0000020b,0x00000001,0x00000006,0x0000020a, + 0x00050083,0x00000006,0x0000020c,0x00000208,0x0000020b,0x00050041,0x0000006c,0x0000020d, + 0x000001fd,0x00000034,0x0003003e,0x0000020d,0x0000020c,0x00050041,0x0000006c,0x0000020f, + 0x000001fd,0x000000a8,0x00050051,0x00000006,0x00000210,0x0000020e,0x00000000,0x0003003e, + 0x0000020f,0x00000210,0x00050041,0x0000006c,0x00000211,0x000001fd,0x000000ad,0x00050051, + 0x00000006,0x00000212,0x0000020e,0x00000001,0x0003003e,0x00000211,0x00000212,0x0004003d, + 0x00000007,0x00000216,0x000001fd,0x00050041,0x0000019b,0x00000217,0x00000215,0x0000003b, + 0x0003003e,0x00000217,0x00000216,0x000100fd,0x00010038,0x00050036,0x0000000a,0x0000000d, + 0x00000000,0x0000000b,0x00030037,0x00000008,0x0000000c,0x000200f8,0x0000000e,0x0004003d, + 0x00000007,0x00000022,0x0000000c,0x0007004f,0x00000009,0x00000023,0x00000022,0x00000022, + 0x00000000,0x00000001,0x0004003d,0x00000007,0x00000024,0x0000000c,0x0007004f,0x00000009, + 0x00000025,0x00000024,0x00000024,0x00000002,0x00000003,0x00050051,0x00000006,0x00000028, + 0x00000023,0x00000000,0x00050051,0x00000006,0x00000029,0x00000023,0x00000001,0x00050051, + 0x00000006,0x0000002a,0x00000025,0x00000000,0x00050051,0x00000006,0x0000002b,0x00000025, + 0x00000001,0x00050050,0x00000009,0x0000002c,0x00000028,0x00000029,0x00050050,0x00000009, + 0x0000002d,0x0000002a,0x0000002b,0x00050050,0x0000000a,0x0000002e,0x0000002c,0x0000002d, + 0x000200fe,0x0000002e,0x00010038,0x00050036,0x0000000f,0x00000013,0x00000000,0x00000011, + 0x00030037,0x00000010,0x00000012,0x000200f8,0x00000014,0x0004003d,0x0000000f,0x00000031, + 0x00000012,0x000500c7,0x0000000f,0x00000033,0x00000031,0x00000032,0x00050082,0x0000000f, + 0x00000035,0x00000033,0x00000034,0x000200fe,0x00000035,0x00010038,0x00050036,0x0000000a, + 0x0000001b,0x00000000,0x00000016,0x00030037,0x00000015,0x00000017,0x00030037,0x00000015, + 0x00000018,0x00030037,0x00000015,0x00000019,0x00030037,0x00000015,0x0000001a,0x000200f8, + 0x0000001c,0x0004003b,0x00000038,0x00000039,0x00000007,0x0004003b,0x00000015,0x00000042, + 0x00000007,0x0004003b,0x00000015,0x00000059,0x00000007,0x0004003d,0x00000009,0x0000003c, + 0x00000017,0x0004003d,0x00000009,0x0000003d,0x00000018,0x000500b7,0x0000003f,0x00000040, + 0x0000003c,0x0000003d,0x0004009a,0x0000003e,0x00000041,0x00000040,0x000300f7,0x00000044, + 0x00000000,0x000400fa,0x00000041,0x00000043,0x00000046,0x000200f8,0x00000043,0x0004003d, + 0x00000009,0x00000045,0x00000018,0x0003003e,0x00000042,0x00000045,0x000200f9,0x00000044, + 0x000200f8,0x00000046,0x0004003d,0x00000009,0x00000047,0x00000018,0x0004003d,0x00000009, + 0x00000048,0x00000019,0x000500b7,0x0000003f,0x00000049,0x00000047,0x00000048,0x0004009a, + 0x0000003e,0x0000004a,0x00000049,0x0004003d,0x00000009,0x0000004b,0x00000019,0x0004003d, + 0x00000009,0x0000004c,0x0000001a,0x00050050,0x0000003f,0x0000004d,0x0000004a,0x0000004a, + 0x000600a9,0x00000009,0x0000004e,0x0000004d,0x0000004b,0x0000004c,0x0003003e,0x00000042, + 0x0000004e,0x000200f9,0x00000044,0x000200f8,0x00000044,0x0004003d,0x00000009,0x0000004f, + 0x00000042,0x0004003d,0x00000009,0x00000050,0x00000017,0x00050083,0x00000009,0x00000051, + 0x0000004f,0x00000050,0x00050041,0x00000015,0x00000052,0x00000039,0x0000003b,0x0003003e, + 0x00000052,0x00000051,0x0004003d,0x00000009,0x00000054,0x0000001a,0x0004003d,0x00000009, + 0x00000055,0x0000001a,0x0004003d,0x00000009,0x00000056,0x00000019,0x000500b7,0x0000003f, + 0x00000057,0x00000055,0x00000056,0x0004009a,0x0000003e,0x00000058,0x00000057,0x000300f7, + 0x0000005b,0x00000000,0x000400fa,0x00000058,0x0000005a,0x0000005d,0x000200f8,0x0000005a, + 0x0004003d,0x00000009,0x0000005c,0x00000019,0x0003003e,0x00000059,0x0000005c,0x000200f9, + 0x0000005b,0x000200f8,0x0000005d,0x0004003d,0x00000009,0x0000005e,0x00000019,0x0004003d, + 0x00000009,0x0000005f,0x00000018,0x000500b7,0x0000003f,0x00000060,0x0000005e,0x0000005f, + 0x0004009a,0x0000003e,0x00000061,0x00000060,0x0004003d,0x00000009,0x00000062,0x00000018, + 0x0004003d,0x00000009,0x00000063,0x00000017,0x00050050,0x0000003f,0x00000064,0x00000061, + 0x00000061,0x000600a9,0x00000009,0x00000065,0x00000064,0x00000062,0x00000063,0x0003003e, + 0x00000059,0x00000065,0x000200f9,0x0000005b,0x000200f8,0x0000005b,0x0004003d,0x00000009, + 0x00000066,0x00000059,0x00050083,0x00000009,0x00000067,0x00000054,0x00000066,0x00050041, + 0x00000015,0x00000068,0x00000039,0x00000053,0x0003003e,0x00000068,0x00000067,0x0004003d, + 0x0000000a,0x00000069,0x00000039,0x000200fe,0x00000069,0x00010038,0x00050036,0x00000006, + 0x00000020,0x00000000,0x0000001d,0x00030037,0x00000015,0x0000001e,0x00030037,0x00000015, + 0x0000001f,0x000200f8,0x00000021,0x0004003b,0x0000006c,0x0000006d,0x00000007,0x0004003b, + 0x0000006c,0x00000071,0x00000007,0x0004003b,0x0000006c,0x0000007b,0x00000007,0x0004003d, + 0x00000009,0x0000006e,0x0000001e,0x0004003d,0x00000009,0x0000006f,0x0000001f,0x00050094, + 0x00000006,0x00000070,0x0000006e,0x0000006f,0x0003003e,0x0000006d,0x00000070,0x0004003d, + 0x00000009,0x00000072,0x0000001e,0x0004003d,0x00000009,0x00000073,0x0000001e,0x00050094, + 0x00000006,0x00000074,0x00000072,0x00000073,0x0004003d,0x00000009,0x00000075,0x0000001f, + 0x0004003d,0x00000009,0x00000076,0x0000001f,0x00050094,0x00000006,0x00000077,0x00000075, + 0x00000076,0x00050085,0x00000006,0x00000078,0x00000074,0x00000077,0x0003003e,0x00000071, + 0x00000078,0x0004003d,0x00000006,0x00000079,0x00000071,0x000500b4,0x0000003e,0x0000007a, + 0x00000079,0x00000027,0x000300f7,0x0000007d,0x00000000,0x000400fa,0x0000007a,0x0000007c, + 0x0000007e,0x000200f8,0x0000007c,0x0003003e,0x0000007b,0x00000026,0x000200f9,0x0000007d, + 0x000200f8,0x0000007e,0x0004003d,0x00000006,0x0000007f,0x0000006d,0x0004003d,0x00000006, + 0x00000080,0x00000071,0x0006000c,0x00000006,0x00000081,0x00000001,0x00000020,0x00000080, + 0x00050085,0x00000006,0x00000082,0x0000007f,0x00000081,0x0008000c,0x00000006,0x00000084, + 0x00000001,0x0000002b,0x00000082,0x00000083,0x00000026,0x0003003e,0x0000007b,0x00000084, + 0x000200f9,0x0000007d,0x000200f8,0x0000007d,0x0004003d,0x00000006,0x00000085,0x0000007b, + 0x000200fe,0x00000085,0x00010038 +}; diff --git a/defold-rive/include/generated/shaders/stencil_draw.exports.h b/defold-rive/include/generated/shaders/stencil_draw.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/stencil_draw.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/stencil_draw.glsl.hpp b/defold-rive/include/generated/shaders/stencil_draw.glsl.hpp new file mode 100644 index 00000000..58dc2a96 --- /dev/null +++ b/defold-rive/include/generated/shaders/stencil_draw.glsl.hpp @@ -0,0 +1,41 @@ +#pragma once + +#include "stencil_draw.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char stencil_draw[] = R"===(/* + * Copyright 2024 Rive + */ + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END + +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_stencilVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(_EXPORTED_a_triangleVertex.xy); + uint zIndex = floatBitsToUint(_EXPORTED_a_triangleVertex.z) & 0xffffu; + pos.z = normalize_z_index(zIndex); + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_blitFragmentMain) { EMIT_FRAG_DATA(make_half4(.0)); } +#endif // FRAGMENT +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/stencil_draw.minified.glsl b/defold-rive/include/generated/shaders/stencil_draw.minified.glsl new file mode 100644 index 00000000..800c793d --- /dev/null +++ b/defold-rive/include/generated/shaders/stencil_draw.minified.glsl @@ -0,0 +1,30 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, _EXPORTED_a_triangleVertex); +ATTR_BLOCK_END + +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(_EXPORTED_stencilVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(_EXPORTED_a_triangleVertex.xy); + uint zIndex = floatBitsToUint(_EXPORTED_a_triangleVertex.z) & 0xffffu; + pos.z = normalize_z_index(zIndex); + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, _EXPORTED_blitFragmentMain) { EMIT_FRAG_DATA(make_half4(.0)); } +#endif // FRAGMENT diff --git a/defold-rive/include/generated/shaders/tessellate.exports.h b/defold-rive/include/generated/shaders/tessellate.exports.h new file mode 100644 index 00000000..6682b0ac --- /dev/null +++ b/defold-rive/include/generated/shaders/tessellate.exports.h @@ -0,0 +1,180 @@ +#pragma once + +#define GLSL_BORROWED_COVERAGE_PREPASS "_EXPORTED_BORROWED_COVERAGE_PREPASS" +#define GLSL_BORROWED_COVERAGE_PREPASS_raw _EXPORTED_BORROWED_COVERAGE_PREPASS +#define GLSL_CLEAR_CLIP "_EXPORTED_CLEAR_CLIP" +#define GLSL_CLEAR_CLIP_raw _EXPORTED_CLEAR_CLIP +#define GLSL_CLEAR_COLOR "_EXPORTED_CLEAR_COLOR" +#define GLSL_CLEAR_COLOR_raw _EXPORTED_CLEAR_COLOR +#define GLSL_CLEAR_COVERAGE "_EXPORTED_CLEAR_COVERAGE" +#define GLSL_CLEAR_COVERAGE_raw _EXPORTED_CLEAR_COVERAGE +#define GLSL_CLOCKWISE_FILL "_EXPORTED_CLOCKWISE_FILL" +#define GLSL_CLOCKWISE_FILL_raw _EXPORTED_CLOCKWISE_FILL +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER "_EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER" +#define GLSL_COALESCED_PLS_RESOLVE_AND_TRANSFER_raw _EXPORTED_COALESCED_PLS_RESOLVE_AND_TRANSFER +#define GLSL_COLOR_PLANE_IDX_OVERRIDE "_EXPORTED_COLOR_PLANE_IDX_OVERRIDE" +#define GLSL_COLOR_PLANE_IDX_OVERRIDE_raw _EXPORTED_COLOR_PLANE_IDX_OVERRIDE +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS "_EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS" +#define GLSL_DISABLE_SHADER_STORAGE_BUFFERS_raw _EXPORTED_DISABLE_SHADER_STORAGE_BUFFERS +#define GLSL_DRAW_IMAGE "_EXPORTED_DRAW_IMAGE" +#define GLSL_DRAW_IMAGE_raw _EXPORTED_DRAW_IMAGE +#define GLSL_DRAW_IMAGE_MESH "_EXPORTED_DRAW_IMAGE_MESH" +#define GLSL_DRAW_IMAGE_MESH_raw _EXPORTED_DRAW_IMAGE_MESH +#define GLSL_DRAW_IMAGE_RECT "_EXPORTED_DRAW_IMAGE_RECT" +#define GLSL_DRAW_IMAGE_RECT_raw _EXPORTED_DRAW_IMAGE_RECT +#define GLSL_DRAW_INTERIOR_TRIANGLES "_EXPORTED_DRAW_INTERIOR_TRIANGLES" +#define GLSL_DRAW_INTERIOR_TRIANGLES_raw _EXPORTED_DRAW_INTERIOR_TRIANGLES +#define GLSL_DRAW_PATH "_EXPORTED_DRAW_PATH" +#define GLSL_DRAW_PATH_raw _EXPORTED_DRAW_PATH +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS "_EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS" +#define GLSL_DRAW_RENDER_TARGET_UPDATE_BOUNDS_raw _EXPORTED_DRAW_RENDER_TARGET_UPDATE_BOUNDS +#define GLSL_ENABLE_ADVANCED_BLEND "_EXPORTED_ENABLE_ADVANCED_BLEND" +#define GLSL_ENABLE_ADVANCED_BLEND_raw _EXPORTED_ENABLE_ADVANCED_BLEND +#define GLSL_ENABLE_CLIPPING "_EXPORTED_ENABLE_CLIPPING" +#define GLSL_ENABLE_CLIPPING_raw _EXPORTED_ENABLE_CLIPPING +#define GLSL_ENABLE_CLIP_RECT "_EXPORTED_ENABLE_CLIP_RECT" +#define GLSL_ENABLE_CLIP_RECT_raw _EXPORTED_ENABLE_CLIP_RECT +#define GLSL_ENABLE_EVEN_ODD "_EXPORTED_ENABLE_EVEN_ODD" +#define GLSL_ENABLE_EVEN_ODD_raw _EXPORTED_ENABLE_EVEN_ODD +#define GLSL_ENABLE_HSL_BLEND_MODES "_EXPORTED_ENABLE_HSL_BLEND_MODES" +#define GLSL_ENABLE_HSL_BLEND_MODES_raw _EXPORTED_ENABLE_HSL_BLEND_MODES +#define GLSL_ENABLE_INSTANCE_INDEX "_EXPORTED_ENABLE_INSTANCE_INDEX" +#define GLSL_ENABLE_INSTANCE_INDEX_raw _EXPORTED_ENABLE_INSTANCE_INDEX +#define GLSL_ENABLE_KHR_BLEND "_EXPORTED_ENABLE_KHR_BLEND" +#define GLSL_ENABLE_KHR_BLEND_raw _EXPORTED_ENABLE_KHR_BLEND +#define GLSL_ENABLE_MIN_16_PRECISION "_EXPORTED_ENABLE_MIN_16_PRECISION" +#define GLSL_ENABLE_MIN_16_PRECISION_raw _EXPORTED_ENABLE_MIN_16_PRECISION +#define GLSL_ENABLE_NESTED_CLIPPING "_EXPORTED_ENABLE_NESTED_CLIPPING" +#define GLSL_ENABLE_NESTED_CLIPPING_raw _EXPORTED_ENABLE_NESTED_CLIPPING +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS "_EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS" +#define GLSL_ENABLE_RASTERIZER_ORDERED_VIEWS_raw _EXPORTED_ENABLE_RASTERIZER_ORDERED_VIEWS +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE "_EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE" +#define GLSL_ENABLE_SPIRV_CROSS_BASE_INSTANCE_raw _EXPORTED_ENABLE_SPIRV_CROSS_BASE_INSTANCE +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE "_EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE" +#define GLSL_ENABLE_TYPED_UAV_LOAD_STORE_raw _EXPORTED_ENABLE_TYPED_UAV_LOAD_STORE +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT "_EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT" +#define GLSL_FIXED_FUNCTION_COLOR_OUTPUT_raw _EXPORTED_FIXED_FUNCTION_COLOR_OUTPUT +#define GLSL_FRAGMENT "_EXPORTED_FRAGMENT" +#define GLSL_FRAGMENT_raw _EXPORTED_FRAGMENT +#define GLSL_FlushUniforms "_EXPORTED_FlushUniforms" +#define GLSL_FlushUniforms_raw _EXPORTED_FlushUniforms +#define GLSL_GLSL_VERSION "_EXPORTED_GLSL_VERSION" +#define GLSL_GLSL_VERSION_raw _EXPORTED_GLSL_VERSION +#define GLSL_INITIALIZE_PLS "_EXPORTED_INITIALIZE_PLS" +#define GLSL_INITIALIZE_PLS_raw _EXPORTED_INITIALIZE_PLS +#define GLSL_ImageDrawUniforms "_EXPORTED_ImageDrawUniforms" +#define GLSL_ImageDrawUniforms_raw _EXPORTED_ImageDrawUniforms +#define GLSL_LOAD_COLOR "_EXPORTED_LOAD_COLOR" +#define GLSL_LOAD_COLOR_raw _EXPORTED_LOAD_COLOR +#define GLSL_OPTIONALLY_FLAT "_EXPORTED_OPTIONALLY_FLAT" +#define GLSL_OPTIONALLY_FLAT_raw _EXPORTED_OPTIONALLY_FLAT +#define GLSL_PLS_BLEND_SRC_OVER "_EXPORTED_PLS_BLEND_SRC_OVER" +#define GLSL_PLS_BLEND_SRC_OVER_raw _EXPORTED_PLS_BLEND_SRC_OVER +#define GLSL_PLS_IMPL_ANGLE "_EXPORTED_PLS_IMPL_ANGLE" +#define GLSL_PLS_IMPL_ANGLE_raw _EXPORTED_PLS_IMPL_ANGLE +#define GLSL_PLS_IMPL_DEVICE_BUFFER "_EXPORTED_PLS_IMPL_DEVICE_BUFFER" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED "_EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED" +#define GLSL_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED_raw _EXPORTED_PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define GLSL_PLS_IMPL_EXT_NATIVE "_EXPORTED_PLS_IMPL_EXT_NATIVE" +#define GLSL_PLS_IMPL_EXT_NATIVE_raw _EXPORTED_PLS_IMPL_EXT_NATIVE +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH "_EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH" +#define GLSL_PLS_IMPL_FRAMEBUFFER_FETCH_raw _EXPORTED_PLS_IMPL_FRAMEBUFFER_FETCH +#define GLSL_PLS_IMPL_NONE "_EXPORTED_PLS_IMPL_NONE" +#define GLSL_PLS_IMPL_NONE_raw _EXPORTED_PLS_IMPL_NONE +#define GLSL_PLS_IMPL_STORAGE_TEXTURE "_EXPORTED_PLS_IMPL_STORAGE_TEXTURE" +#define GLSL_PLS_IMPL_STORAGE_TEXTURE_raw _EXPORTED_PLS_IMPL_STORAGE_TEXTURE +#define GLSL_PLS_IMPL_SUBPASS_LOAD "_EXPORTED_PLS_IMPL_SUBPASS_LOAD" +#define GLSL_PLS_IMPL_SUBPASS_LOAD_raw _EXPORTED_PLS_IMPL_SUBPASS_LOAD +#define GLSL_RENDER_MODE_MSAA "_EXPORTED_RENDER_MODE_MSAA" +#define GLSL_RENDER_MODE_MSAA_raw _EXPORTED_RENDER_MODE_MSAA +#define GLSL_RESOLVE_PLS "_EXPORTED_RESOLVE_PLS" +#define GLSL_RESOLVE_PLS_raw _EXPORTED_RESOLVE_PLS +#define GLSL_STORE_COLOR "_EXPORTED_STORE_COLOR" +#define GLSL_STORE_COLOR_raw _EXPORTED_STORE_COLOR +#define GLSL_STORE_COLOR_CLEAR "_EXPORTED_STORE_COLOR_CLEAR" +#define GLSL_STORE_COLOR_CLEAR_raw _EXPORTED_STORE_COLOR_CLEAR +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA "_EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA" +#define GLSL_SWIZZLE_COLOR_BGRA_TO_RGBA_raw _EXPORTED_SWIZZLE_COLOR_BGRA_TO_RGBA +#define GLSL_TARGET_VULKAN "_EXPORTED_TARGET_VULKAN" +#define GLSL_TARGET_VULKAN_raw _EXPORTED_TARGET_VULKAN +#define GLSL_USING_PLS_STORAGE_TEXTURES "_EXPORTED_USING_PLS_STORAGE_TEXTURES" +#define GLSL_USING_PLS_STORAGE_TEXTURES_raw _EXPORTED_USING_PLS_STORAGE_TEXTURES +#define GLSL_VERTEX "_EXPORTED_VERTEX" +#define GLSL_VERTEX_raw _EXPORTED_VERTEX +#define GLSL_a_args "_EXPORTED_a_args" +#define GLSL_a_args_raw _EXPORTED_a_args +#define GLSL_a_color0 "_EXPORTED_a_color0" +#define GLSL_a_color0_raw _EXPORTED_a_color0 +#define GLSL_a_color1 "_EXPORTED_a_color1" +#define GLSL_a_color1_raw _EXPORTED_a_color1 +#define GLSL_a_contourIDWithFlags "_EXPORTED_a_contourIDWithFlags" +#define GLSL_a_contourIDWithFlags_raw _EXPORTED_a_contourIDWithFlags +#define GLSL_a_imageRectVertex "_EXPORTED_a_imageRectVertex" +#define GLSL_a_imageRectVertex_raw _EXPORTED_a_imageRectVertex +#define GLSL_a_joinTan_and_ys "_EXPORTED_a_joinTan_and_ys" +#define GLSL_a_joinTan_and_ys_raw _EXPORTED_a_joinTan_and_ys +#define GLSL_a_mirroredVertexData "_EXPORTED_a_mirroredVertexData" +#define GLSL_a_mirroredVertexData_raw _EXPORTED_a_mirroredVertexData +#define GLSL_a_p0p1_ "_EXPORTED_a_p0p1_" +#define GLSL_a_p0p1__raw _EXPORTED_a_p0p1_ +#define GLSL_a_p2p3_ "_EXPORTED_a_p2p3_" +#define GLSL_a_p2p3__raw _EXPORTED_a_p2p3_ +#define GLSL_a_patchVertexData "_EXPORTED_a_patchVertexData" +#define GLSL_a_patchVertexData_raw _EXPORTED_a_patchVertexData +#define GLSL_a_position "_EXPORTED_a_position" +#define GLSL_a_position_raw _EXPORTED_a_position +#define GLSL_a_reflectionX0X1 "_EXPORTED_a_reflectionX0X1" +#define GLSL_a_reflectionX0X1_raw _EXPORTED_a_reflectionX0X1 +#define GLSL_a_segmentCounts "_EXPORTED_a_segmentCounts" +#define GLSL_a_segmentCounts_raw _EXPORTED_a_segmentCounts +#define GLSL_a_span "_EXPORTED_a_span" +#define GLSL_a_span_raw _EXPORTED_a_span +#define GLSL_a_spanX "_EXPORTED_a_spanX" +#define GLSL_a_spanX_raw _EXPORTED_a_spanX +#define GLSL_a_texCoord "_EXPORTED_a_texCoord" +#define GLSL_a_texCoord_raw _EXPORTED_a_texCoord +#define GLSL_a_triangleVertex "_EXPORTED_a_triangleVertex" +#define GLSL_a_triangleVertex_raw _EXPORTED_a_triangleVertex +#define GLSL_a_x0x1 "_EXPORTED_a_x0x1" +#define GLSL_a_x0x1_raw _EXPORTED_a_x0x1 +#define GLSL_a_yWithFlags "_EXPORTED_a_yWithFlags" +#define GLSL_a_yWithFlags_raw _EXPORTED_a_yWithFlags +#define GLSL_blitFragmentMain "_EXPORTED_blitFragmentMain" +#define GLSL_blitFragmentMain_raw _EXPORTED_blitFragmentMain +#define GLSL_blitTextureSource "_EXPORTED_blitTextureSource" +#define GLSL_blitTextureSource_raw _EXPORTED_blitTextureSource +#define GLSL_blitVertexMain "_EXPORTED_blitVertexMain" +#define GLSL_blitVertexMain_raw _EXPORTED_blitVertexMain +#define GLSL_clearColor "_EXPORTED_clearColor" +#define GLSL_clearColor_raw _EXPORTED_clearColor +#define GLSL_colorRampFragmentMain "_EXPORTED_colorRampFragmentMain" +#define GLSL_colorRampFragmentMain_raw _EXPORTED_colorRampFragmentMain +#define GLSL_colorRampVertexMain "_EXPORTED_colorRampVertexMain" +#define GLSL_colorRampVertexMain_raw _EXPORTED_colorRampVertexMain +#define GLSL_contourBuffer "_EXPORTED_contourBuffer" +#define GLSL_contourBuffer_raw _EXPORTED_contourBuffer +#define GLSL_drawFragmentMain "_EXPORTED_drawFragmentMain" +#define GLSL_drawFragmentMain_raw _EXPORTED_drawFragmentMain +#define GLSL_drawVertexMain "_EXPORTED_drawVertexMain" +#define GLSL_drawVertexMain_raw _EXPORTED_drawVertexMain +#define GLSL_dstColorTexture "_EXPORTED_dstColorTexture" +#define GLSL_dstColorTexture_raw _EXPORTED_dstColorTexture +#define GLSL_gradTexture "_EXPORTED_gradTexture" +#define GLSL_gradTexture_raw _EXPORTED_gradTexture +#define GLSL_imageTexture "_EXPORTED_imageTexture" +#define GLSL_imageTexture_raw _EXPORTED_imageTexture +#define GLSL_paintAuxBuffer "_EXPORTED_paintAuxBuffer" +#define GLSL_paintAuxBuffer_raw _EXPORTED_paintAuxBuffer +#define GLSL_paintBuffer "_EXPORTED_paintBuffer" +#define GLSL_paintBuffer_raw _EXPORTED_paintBuffer +#define GLSL_pathBuffer "_EXPORTED_pathBuffer" +#define GLSL_pathBuffer_raw _EXPORTED_pathBuffer +#define GLSL_stencilVertexMain "_EXPORTED_stencilVertexMain" +#define GLSL_stencilVertexMain_raw _EXPORTED_stencilVertexMain +#define GLSL_tessVertexTexture "_EXPORTED_tessVertexTexture" +#define GLSL_tessVertexTexture_raw _EXPORTED_tessVertexTexture +#define GLSL_tessellateFragmentMain "_EXPORTED_tessellateFragmentMain" +#define GLSL_tessellateFragmentMain_raw _EXPORTED_tessellateFragmentMain +#define GLSL_tessellateVertexMain "_EXPORTED_tessellateVertexMain" +#define GLSL_tessellateVertexMain_raw _EXPORTED_tessellateVertexMain diff --git a/defold-rive/include/generated/shaders/tessellate.glsl.hpp b/defold-rive/include/generated/shaders/tessellate.glsl.hpp new file mode 100644 index 00000000..6b5cddce --- /dev/null +++ b/defold-rive/include/generated/shaders/tessellate.glsl.hpp @@ -0,0 +1,497 @@ +#pragma once + +#include "tessellate.exports.h" + +namespace rive { +namespace gpu { +namespace glsl { +const char tessellate[] = R"===(/* + * Copyright 2020 Google LLC. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Initial import from + * skia:src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp + * + * Copyright 2022 Rive + */ + +#define MAX_PARAMETRIC_SEGMENTS_LOG2 10 // Max 1024 segments. + +#ifdef _EXPORTED_VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR( + 0, + float4, + _EXPORTED_a_p0p1_); // End in '_' because D3D interprets the '1' as a semantic index. +ATTR(1, float4, _EXPORTED_a_p2p3_); +ATTR(2, float4, _EXPORTED_a_joinTan_and_ys); // [joinTangent, y, reflectionY] +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(3, uint, _EXPORTED_a_x0x1); +ATTR(4, uint, _EXPORTED_a_reflectionX0X1); +ATTR(5, uint, _EXPORTED_a_segmentCounts); +ATTR(6, uint, _EXPORTED_a_contourIDWithFlags); +#else +ATTR(3, + uint4, + _EXPORTED_a_args); // [x0x1, reflectionX0X1, segmentCounts, contourIDWithFlags] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_p0p1); +NO_PERSPECTIVE VARYING(1, float4, v_p2p3); +NO_PERSPECTIVE VARYING( + 2, + float4, + v_args); // [vertexIdx, totalVertexCount, joinSegmentCount, + // parametricSegmentCount, radsPerPolarSegment] +NO_PERSPECTIVE VARYING(3, + float3, + v_joinArgs); // [joinTangent, radsPerJoinSegment] +FLAT VARYING(4, uint, v_contourIDWithFlags); +VARYING_BLOCK_END + +// Tangent of the curve at T=0 and T=1. +INLINE float2x2 find_tangents(float2 p0, float2 p1, float2 p2, float2 p3) +{ + float2x2 t; + t[0] = (any(notEqual(p0, p1)) ? p1 : any(notEqual(p1, p2)) ? p2 : p3) - p0; + t[1] = p3 - (any(notEqual(p3, p2)) ? p2 : any(notEqual(p2, p1)) ? p1 : p0); + return t; +} + +#ifdef _EXPORTED_VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, _EXPORTED_pathBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, _EXPORTED_contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +float cosine_between_vectors(float2 a, float2 b) +{ + // FIXME(crbug.com/800804,skbug.com/11268): This can overflow if we don't + // normalize exponents. + float ab_cosTheta = dot(a, b); + float ab_pow2 = dot(a, a) * dot(b, b); + return (ab_pow2 == .0) ? 1. + : clamp(ab_cosTheta * inversesqrt(ab_pow2), -1., 1.); +} + +VERTEX_MAIN(_EXPORTED_tessellateVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Each instance repeats twice. Once for normal patch(es) and once for + // reflection(s). + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_p0p1_, float4); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_p2p3_, float4); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_joinTan_and_ys, float4); +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_x0x1, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_reflectionX0X1, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_segmentCounts, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_contourIDWithFlags, uint); + + uint4 _EXPORTED_a_args = uint4(_EXPORTED_a_x0x1, + _EXPORTED_a_reflectionX0X1, + _EXPORTED_a_segmentCounts, + _EXPORTED_a_contourIDWithFlags); +#else + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_args, uint4); +#endif + + VARYING_INIT(v_p0p1, float4); + VARYING_INIT(v_p2p3, float4); + VARYING_INIT(v_args, float4); + VARYING_INIT(v_joinArgs, float3); + VARYING_INIT(v_contourIDWithFlags, uint); + + float2 p0 = _EXPORTED_a_p0p1_.xy; + float2 p1 = _EXPORTED_a_p0p1_.zw; + float2 p2 = _EXPORTED_a_p2p3_.xy; + float2 p3 = _EXPORTED_a_p2p3_.zw; + // Each instance has two spans, potentially for both a forward copy and and + // reflection. (If the second span isn't needed, the client will have placed + // it offscreen.) + bool isFirstSpan = _vertexID < 4; + float y = isFirstSpan ? _EXPORTED_a_joinTan_and_ys.z : _EXPORTED_a_joinTan_and_ys.w; + int x0x1 = int(isFirstSpan ? _EXPORTED_a_args.x : _EXPORTED_a_args.y); +#ifdef GLSL + int x1up = x0x1 << 16; + if (_EXPORTED_a_args.z == 0xffffffffu) + { + // Pixel 8 with ARM Mali-G715 throws away "x0x1 << 16 >> 16". We need + // this in order to sign-extend the bottom 16 bits of x0x1. Create a + // branch that we know won't be taken, in order to convince the compiler + // not to throw this operation away. NOTE: we could use + // bitfieldExtract(), but it isn't available on ES 3.0. + --x1up; + } + float x0 = float(x1up >> 16); +#else + float x0 = float(x0x1 << 16 >> 16); +#endif + float x1 = float(x0x1 >> 16); + float2 coord = float2((_vertexID & 1) == 0 ? x0 : x1, + (_vertexID & 2) == 0 ? y + 1. : y); + + uint parametricSegmentCount = _EXPORTED_a_args.z & 0x3ffu; + uint polarSegmentCount = (_EXPORTED_a_args.z >> 10) & 0x3ffu; + uint joinSegmentCount = _EXPORTED_a_args.z >> 20; + uint contourIDWithFlags = _EXPORTED_a_args.w; + if (x1 < x0) // Reflections are drawn right to left. + { + contourIDWithFlags |= MIRRORED_CONTOUR_CONTOUR_FLAG; + } + if ((x1 - x0) * uniforms.tessInverseViewportY < .0) + { + // Make sure we always emit clockwise triangles. Swap the top and bottom + // vertices. + coord.y = 2. * y + 1. - coord.y; + } + if ((contourIDWithFlags & CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG) != + 0u) + { + // This span may have more tessellation vertices allocated to it than + // necessary (e.g., outerCurve patches all have a fixed patch size, + // regardless of how many segments the curve actually needs). Re-run + // Wang's formula to figure out how many segments we actually need, and + // make any excess segments degenerate by co-locating their vertices at + // T=0. + uint pathID = STORAGE_BUFFER_LOAD4(_EXPORTED_contourBuffer, + contour_data_idx(contourIDWithFlags)) + .z; + float2x2 mat = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u))); + float2 d0 = MUL(mat, -2. * p1 + p2 + p0); + + float2 d1 = MUL(mat, -2. * p2 + p3 + p1); + float m = max(dot(d0, d0), dot(d1, d1)); + float n = max(ceil(sqrt(.75 * 4. * sqrt(m))), 1.); + parametricSegmentCount = min(uint(n), parametricSegmentCount); + } + // Polar and parametric segments share the same beginning and ending + // vertices, so the merged *vertex* count is equal to the sum of polar and + // parametric *segment* counts. + uint totalVertexCount = + parametricSegmentCount + polarSegmentCount + joinSegmentCount - 1u; + + float2x2 tangents = find_tangents(p0, p1, p2, p3); + float theta = acos(cosine_between_vectors(tangents[0], tangents[1])); + float radsPerPolarSegment = theta / float(polarSegmentCount); + // Adjust sign of radsPerPolarSegment to match the direction the curve + // turns. NOTE: Since the curve is not allowed to inflect, we can just check + // F'(.5) x F''(.5). NOTE: F'(.5) x F''(.5) has the same sign as (p2 - p0) x + // (p3 - p1). + float turn = determinant(float2x2(p2 - p0, p3 - p1)); + if (turn == + .0) // This is the case for joins and cusps where points are co-located. + turn = determinant(tangents); + if (turn < .0) + radsPerPolarSegment = -radsPerPolarSegment; + + v_p0p1 = float4(p0, p1); + v_p2p3 = float4(p2, p3); + v_args = float4(float(totalVertexCount) - abs(x1 - coord.x), // vertexIdx + float(totalVertexCount), // totalVertexCount + (joinSegmentCount << 10) | parametricSegmentCount, + radsPerPolarSegment); + if (joinSegmentCount > 1u) + { + float2x2 joinTangents = float2x2(tangents[1], _EXPORTED_a_joinTan_and_ys.xy); + float joinTheta = + acos(cosine_between_vectors(joinTangents[0], joinTangents[1])); + float joinSpan = float(joinSegmentCount); + if ((contourIDWithFlags & + (JOIN_TYPE_MASK | EMULATED_STROKE_CAP_CONTOUR_FLAG)) == + EMULATED_STROKE_CAP_CONTOUR_FLAG) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. The fragment shader will handle + // most of this, but here we need to adjust radsPerJoinSegment to + // account for the fact that this join will be rotating around two + // more segments. + joinSpan -= 2.; + } + float radsPerJoinSegment = joinTheta / joinSpan; + if (determinant(joinTangents) < .0) + radsPerJoinSegment = -radsPerJoinSegment; + v_joinArgs.xy = _EXPORTED_a_joinTan_and_ys.xy; + v_joinArgs.z = radsPerJoinSegment; + } + v_contourIDWithFlags = contourIDWithFlags; + + float4 pos; + pos.x = coord.x * (2. / TESS_TEXTURE_WIDTH) - 1.; + pos.y = coord.y * uniforms.tessInverseViewportY - + sign(uniforms.tessInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_p0p1); + VARYING_PACK(v_p2p3); + VARYING_PACK(v_args); + VARYING_PACK(v_joinArgs); + VARYING_PACK(v_contourIDWithFlags); + EMIT_VERTEX(pos); +} +#endif + +#ifdef _EXPORTED_FRAGMENT +FRAG_DATA_MAIN(uint4, _EXPORTED_tessellateFragmentMain) +{ + VARYING_UNPACK(v_p0p1, float4); + VARYING_UNPACK(v_p2p3, float4); + VARYING_UNPACK(v_args, float4); + VARYING_UNPACK(v_joinArgs, float3); + VARYING_UNPACK(v_contourIDWithFlags, uint); + + float2 p0 = v_p0p1.xy; + float2 p1 = v_p0p1.zw; + float2 p2 = v_p2p3.xy; + float2 p3 = v_p2p3.zw; + float2x2 tangents = find_tangents(p0, p1, p2, p3); + // Colocate any padding vertices at T=0. + float vertexIdx = max(floor(v_args.x), .0); + float totalVertexCount = v_args.y; + uint joinSegmentCount_and_parametricSegmentCount = uint(v_args.z); + float parametricSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount & 0x3ffu); + float joinSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount >> 10); + float radsPerPolarSegment = v_args.w; + uint contourIDWithFlags = v_contourIDWithFlags; + + // mergedVertexID/mergedSegmentCount are relative to the sub-section of the + // instance this vertex belongs to (either the curve section that consists + // of merged polar and parametric segments, or the join section composed of + // just polar segments). + // + // Begin with the assumption that we belong to the curve section. + float mergedSegmentCount = totalVertexCount - joinSegmentCount; + float mergedVertexID = vertexIdx; + if (mergedVertexID <= mergedSegmentCount) + { + // We do belong to the curve section. Clear out any stroke join flags. + contourIDWithFlags &= ~JOIN_TYPE_MASK; + } + else + { + // We actually belong to the join section following the curve. Construct + // a point-cubic with rotation. + p0 = p1 = p2 = p3; + tangents = float2x2(tangents[1], v_joinArgs.xy /*joinTangent*/); + parametricSegmentCount = 1.; + mergedVertexID -= mergedSegmentCount; + mergedSegmentCount = joinSegmentCount; + if ((contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Miter or bevel join vertices snap to either tangents[0] or + // tangents[1], and get adjusted in the shader that follows. + if (mergedVertexID < 2.5) // With 5 join segments, this branch will + // see IDs: 1, 2, 3, 4. + contourIDWithFlags |= JOIN_TANGENT_0_CONTOUR_FLAG; + if (mergedVertexID > 1.5 && mergedVertexID < 3.5) + contourIDWithFlags |= JOIN_TANGENT_INNER_CONTOUR_FLAG; + } + else if ((contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != 0u) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. Preserve the same number of + // vertices (the CPU should have given us two extra, knowing that we + // are an emulated cap, and the vertex shader should have already + // accounted for this in radsPerJoinSegment), but adjust our + // stepping parameters so we begin at T=0 and end at T=1. + mergedSegmentCount -= 2.; + mergedVertexID--; + } + radsPerPolarSegment = v_joinArgs.z; // radsPerJoinSegment. + contourIDWithFlags |= radsPerPolarSegment < .0 + ? LEFT_JOIN_CONTOUR_FLAG + : RIGHT_JOIN_CONTOUR_FLAG; + } + + float2 tessCoord; + float theta = .0; + if (mergedVertexID == .0 || mergedVertexID == mergedSegmentCount || + (contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Tessellated vertices at the beginning and end of the strip use exact + // endpoints and tangents. This ensures crack-free seaming between + // instances. + bool isTan0 = mergedVertexID < mergedSegmentCount * .5; + tessCoord = isTan0 ? p0 : p3; + theta = atan2(isTan0 ? tangents[0] : tangents[1]); + } + else if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u) + { + // This cubic should actually be drawn as the single, non-AA triangle: + // [p0, p1, p3]. This is used to squeeze in more rare triangles, like + // "grout" triangles from self intersections on interior triangulation, + // where it wouldn't be worth it to put them in their own dedicated draw + // call. + tessCoord = p1; + } + else + { + float T, polarT; + if (parametricSegmentCount == mergedSegmentCount) + { + // There are no polar vertices. This is (probably) a fill. Vertices + // are spaced evenly in parametric space. + T = mergedVertexID / parametricSegmentCount; + polarT = .0; // Set polarT != T to ensure we calculate the + // parametric tangent later. + } + else + { + // Compute the location and tangent direction of the tessellated + // stroke vertex with the integral id "mergedVertexID", where + // mergedVertexID is the sorted-order index of parametric and polar + // vertices. Start by finding the tangent function's power basis + // coefficients. These define a tangent direction (scaled by some + // uniform value) as: + // + // |T^2| + // Tangent_Direction(T) = dx,dy = |A 2B C| * |T | + // |. . .| |1 | + float2 A, B, C = p1 - p0; + float2 D = p3 - p0; + float2 E = p2 - p1; + B = E - C; + A = -3. * E + D; + // FIXME(crbug.com/800804,skbug.com/11268): Consider normalizing the + // exponents in A,B,C at this point in order to prevent fp32 + // overflow. + + // Now find the coefficients that give a tangent direction from a + // parametric vertex ID: + // + // |parametricVertexID^2| + // Tangent_Direction(parametricVertexID) = dx,dy = |A B_ C_| * + // |parametricVertexID | + // |. . .| |1 + // | + // + float2 B_ = B * (parametricSegmentCount * 2.); + float2 C_ = C * (parametricSegmentCount * parametricSegmentCount); + + // Run a binary search to determine the highest parametric vertex + // that is located on or before the mergedVertexID. A merged ID is + // determined by the sum of complete parametric and polar segments + // behind it. i.e., find the highest parametric vertex where: + // + // parametricVertexID + floor(numPolarSegmentsAtParametricT) <= + // mergedVertexID + // + float lastParametricVertexID = .0; + float maxParametricVertexID = + min(parametricSegmentCount - 1., mergedVertexID); + // FIXME(crbug.com/800804,skbug.com/11268): This normalize() can + // overflow. + float2 tan0norm = normalize(tangents[0]); + float negAbsRadsPerSegment = -abs(radsPerPolarSegment); + float maxRotation0 = + (1. + mergedVertexID) * abs(radsPerPolarSegment); + for (int p = MAX_PARAMETRIC_SEGMENTS_LOG2 - 1; p >= 0; --p) + { + // Test the parametric vertex at lastParametricVertexID + 2^p. + float testParametricID = + lastParametricVertexID + exp2(float(p)); + if (testParametricID <= maxParametricVertexID) + { + float2 testTan = testParametricID * A + B_; + testTan = testParametricID * testTan + C_; + float cosRotation = dot(normalize(testTan), tan0norm); + float maxRotation = + testParametricID * negAbsRadsPerSegment + maxRotation0; + maxRotation = min(maxRotation, PI); + // Is rotation <= maxRotation? (i.e., is the number of + // complete polar segments behind testT, + testParametricID + // <= mergedVertexID?) + if (cosRotation >= cos(maxRotation)) + lastParametricVertexID = testParametricID; + } + } + + // Find the T value of the parametric vertex at + // lastParametricVertexID. + float parametricT = lastParametricVertexID / parametricSegmentCount; + + // Now that we've identified the highest parametric vertex on or + // before the mergedVertexID, the highest polar vertex is easy: + float lastPolarVertexID = mergedVertexID - lastParametricVertexID; + + // Find the angle of tan0, or the angle between tan0norm and the + // positive x axis. + float theta0 = acos(clamp(tan0norm.x, -1., 1.)); + theta0 = tan0norm.y >= .0 ? theta0 : -theta0; + + // Find the tangent vector on the vertex at lastPolarVertexID. + theta = lastPolarVertexID * radsPerPolarSegment + theta0; + float2 norm = float2(sin(theta), -cos(theta)); + + // Find the T value where the tangent is orthogonal to norm. This is + // a quadratic: + // + // dot(norm, Tangent_Direction(T)) == 0 + // + // |T^2| + // norm * |A 2B C| * |T | == 0 + // |. . .| |1 | + // + float a = dot(norm, A), b_over_2 = dot(norm, B), c = dot(norm, C); + float discr_over_4 = max(b_over_2 * b_over_2 - a * c, .0); + float q = sqrt(discr_over_4); + if (b_over_2 > .0) + q = -q; + q -= b_over_2; + + // Roots are q/a and c/q. Since each curve section does not inflect + // or rotate more than 180 degrees, there can only be one tangent + // orthogonal to "norm" inside 0..1. Pick the root nearest .5. + float _5qa = -.5 * q * a; + float2 root = (abs(q * q + _5qa) < abs(a * c + _5qa)) + ? float2(q, a) + : float2(c, q); + polarT = (root.y != .0) ? root.x / root.y : .0; + polarT = clamp(polarT, .0, 1.); + + // The root finder above can become unstable when lastPolarVertexID + // == 0 (e.g., if there are roots at exatly 0 and 1 both). polarT + // should always == 0 in this case. + if (lastPolarVertexID == .0) + polarT = .0; + + // Now that we've identified the T values of the last parametric and + // polar vertices, our final T value for mergedVertexID is whichever + // is larger. + T = max(parametricT, polarT); + } + + // Evaluate the cubic at T. Use De Casteljau's for its accuracy and + // stability. + float2 ab = unchecked_mix(p0, p1, T); + float2 bc = unchecked_mix(p1, p2, T); + float2 cd = unchecked_mix(p2, p3, T); + float2 abc = unchecked_mix(ab, bc, T); + float2 bcd = unchecked_mix(bc, cd, T); + tessCoord = unchecked_mix(abc, bcd, T); + + // If we went with T=parametricT, then update theta. Otherwise leave it + // at the polar theta found previously. (In the event that parametricT + // == polarT, we keep the polar theta.) + if (T != polarT) + theta = atan2(bcd - abc); + } + + EMIT_FRAG_DATA( + uint4(floatBitsToUint(float3(tessCoord, theta)), contourIDWithFlags)); +} +#endif +)==="; +} // namespace glsl +} // namespace gpu +} // namespace rive \ No newline at end of file diff --git a/defold-rive/include/generated/shaders/tessellate.minified.glsl b/defold-rive/include/generated/shaders/tessellate.minified.glsl new file mode 100644 index 00000000..6ae4f970 --- /dev/null +++ b/defold-rive/include/generated/shaders/tessellate.minified.glsl @@ -0,0 +1,486 @@ +/* + * Copyright 2020 Google LLC. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Initial import from + * skia:src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp + * + * Copyright 2022 Rive + */ + +#define MAX_PARAMETRIC_SEGMENTS_LOG2 10 // Max 1024 segments. + +#ifdef VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR( + 0, + float4, + _EXPORTED_a_p0p1_); // End in '_' because D3D interprets the '1' as a semantic index. +ATTR(1, float4, _EXPORTED_a_p2p3_); +ATTR(2, float4, _EXPORTED_a_joinTan_and_ys); // [joinTangent, y, reflectionY] +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(3, uint, _EXPORTED_a_x0x1); +ATTR(4, uint, _EXPORTED_a_reflectionX0X1); +ATTR(5, uint, _EXPORTED_a_segmentCounts); +ATTR(6, uint, _EXPORTED_a_contourIDWithFlags); +#else +ATTR(3, + uint4, + _EXPORTED_a_args); // [x0x1, reflectionX0X1, segmentCounts, contourIDWithFlags] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_p0p1); +NO_PERSPECTIVE VARYING(1, float4, v_p2p3); +NO_PERSPECTIVE VARYING( + 2, + float4, + v_args); // [vertexIdx, totalVertexCount, joinSegmentCount, + // parametricSegmentCount, radsPerPolarSegment] +NO_PERSPECTIVE VARYING(3, + float3, + v_joinArgs); // [joinTangent, radsPerJoinSegment] +FLAT VARYING(4, uint, v_contourIDWithFlags); +VARYING_BLOCK_END + +// Tangent of the curve at T=0 and T=1. +INLINE float2x2 find_tangents(float2 p0, float2 p1, float2 p2, float2 p3) +{ + float2x2 t; + t[0] = (any(notEqual(p0, p1)) ? p1 : any(notEqual(p1, p2)) ? p2 : p3) - p0; + t[1] = p3 - (any(notEqual(p3, p2)) ? p2 : any(notEqual(p2, p1)) ? p1 : p0); + return t; +} + +#ifdef VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, _EXPORTED_pathBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, _EXPORTED_contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +float cosine_between_vectors(float2 a, float2 b) +{ + // FIXME(crbug.com/800804,skbug.com/11268): This can overflow if we don't + // normalize exponents. + float ab_cosTheta = dot(a, b); + float ab_pow2 = dot(a, a) * dot(b, b); + return (ab_pow2 == .0) ? 1. + : clamp(ab_cosTheta * inversesqrt(ab_pow2), -1., 1.); +} + +VERTEX_MAIN(_EXPORTED_tessellateVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Each instance repeats twice. Once for normal patch(es) and once for + // reflection(s). + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_p0p1_, float4); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_p2p3_, float4); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_joinTan_and_ys, float4); +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_x0x1, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_reflectionX0X1, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_segmentCounts, uint); + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_contourIDWithFlags, uint); + + uint4 _EXPORTED_a_args = uint4(_EXPORTED_a_x0x1, + _EXPORTED_a_reflectionX0X1, + _EXPORTED_a_segmentCounts, + _EXPORTED_a_contourIDWithFlags); +#else + ATTR_UNPACK(_instanceID, attrs, _EXPORTED_a_args, uint4); +#endif + + VARYING_INIT(v_p0p1, float4); + VARYING_INIT(v_p2p3, float4); + VARYING_INIT(v_args, float4); + VARYING_INIT(v_joinArgs, float3); + VARYING_INIT(v_contourIDWithFlags, uint); + + float2 p0 = _EXPORTED_a_p0p1_.xy; + float2 p1 = _EXPORTED_a_p0p1_.zw; + float2 p2 = _EXPORTED_a_p2p3_.xy; + float2 p3 = _EXPORTED_a_p2p3_.zw; + // Each instance has two spans, potentially for both a forward copy and and + // reflection. (If the second span isn't needed, the client will have placed + // it offscreen.) + bool isFirstSpan = _vertexID < 4; + float y = isFirstSpan ? _EXPORTED_a_joinTan_and_ys.z : _EXPORTED_a_joinTan_and_ys.w; + int x0x1 = int(isFirstSpan ? _EXPORTED_a_args.x : _EXPORTED_a_args.y); +#ifdef GLSL + int x1up = x0x1 << 16; + if (_EXPORTED_a_args.z == 0xffffffffu) + { + // Pixel 8 with ARM Mali-G715 throws away "x0x1 << 16 >> 16". We need + // this in order to sign-extend the bottom 16 bits of x0x1. Create a + // branch that we know won't be taken, in order to convince the compiler + // not to throw this operation away. NOTE: we could use + // bitfieldExtract(), but it isn't available on ES 3.0. + --x1up; + } + float x0 = float(x1up >> 16); +#else + float x0 = float(x0x1 << 16 >> 16); +#endif + float x1 = float(x0x1 >> 16); + float2 coord = float2((_vertexID & 1) == 0 ? x0 : x1, + (_vertexID & 2) == 0 ? y + 1. : y); + + uint parametricSegmentCount = _EXPORTED_a_args.z & 0x3ffu; + uint polarSegmentCount = (_EXPORTED_a_args.z >> 10) & 0x3ffu; + uint joinSegmentCount = _EXPORTED_a_args.z >> 20; + uint contourIDWithFlags = _EXPORTED_a_args.w; + if (x1 < x0) // Reflections are drawn right to left. + { + contourIDWithFlags |= MIRRORED_CONTOUR_CONTOUR_FLAG; + } + if ((x1 - x0) * uniforms.tessInverseViewportY < .0) + { + // Make sure we always emit clockwise triangles. Swap the top and bottom + // vertices. + coord.y = 2. * y + 1. - coord.y; + } + if ((contourIDWithFlags & CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG) != + 0u) + { + // This span may have more tessellation vertices allocated to it than + // necessary (e.g., outerCurve patches all have a fixed patch size, + // regardless of how many segments the curve actually needs). Re-run + // Wang's formula to figure out how many segments we actually need, and + // make any excess segments degenerate by co-locating their vertices at + // T=0. + uint pathID = STORAGE_BUFFER_LOAD4(_EXPORTED_contourBuffer, + contour_data_idx(contourIDWithFlags)) + .z; + float2x2 mat = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(_EXPORTED_pathBuffer, pathID * 4u))); + float2 d0 = MUL(mat, -2. * p1 + p2 + p0); + + float2 d1 = MUL(mat, -2. * p2 + p3 + p1); + float m = max(dot(d0, d0), dot(d1, d1)); + float n = max(ceil(sqrt(.75 * 4. * sqrt(m))), 1.); + parametricSegmentCount = min(uint(n), parametricSegmentCount); + } + // Polar and parametric segments share the same beginning and ending + // vertices, so the merged *vertex* count is equal to the sum of polar and + // parametric *segment* counts. + uint totalVertexCount = + parametricSegmentCount + polarSegmentCount + joinSegmentCount - 1u; + + float2x2 tangents = find_tangents(p0, p1, p2, p3); + float theta = acos(cosine_between_vectors(tangents[0], tangents[1])); + float radsPerPolarSegment = theta / float(polarSegmentCount); + // Adjust sign of radsPerPolarSegment to match the direction the curve + // turns. NOTE: Since the curve is not allowed to inflect, we can just check + // F'(.5) x F''(.5). NOTE: F'(.5) x F''(.5) has the same sign as (p2 - p0) x + // (p3 - p1). + float turn = determinant(float2x2(p2 - p0, p3 - p1)); + if (turn == + .0) // This is the case for joins and cusps where points are co-located. + turn = determinant(tangents); + if (turn < .0) + radsPerPolarSegment = -radsPerPolarSegment; + + v_p0p1 = float4(p0, p1); + v_p2p3 = float4(p2, p3); + v_args = float4(float(totalVertexCount) - abs(x1 - coord.x), // vertexIdx + float(totalVertexCount), // totalVertexCount + (joinSegmentCount << 10) | parametricSegmentCount, + radsPerPolarSegment); + if (joinSegmentCount > 1u) + { + float2x2 joinTangents = float2x2(tangents[1], _EXPORTED_a_joinTan_and_ys.xy); + float joinTheta = + acos(cosine_between_vectors(joinTangents[0], joinTangents[1])); + float joinSpan = float(joinSegmentCount); + if ((contourIDWithFlags & + (JOIN_TYPE_MASK | EMULATED_STROKE_CAP_CONTOUR_FLAG)) == + EMULATED_STROKE_CAP_CONTOUR_FLAG) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. The fragment shader will handle + // most of this, but here we need to adjust radsPerJoinSegment to + // account for the fact that this join will be rotating around two + // more segments. + joinSpan -= 2.; + } + float radsPerJoinSegment = joinTheta / joinSpan; + if (determinant(joinTangents) < .0) + radsPerJoinSegment = -radsPerJoinSegment; + v_joinArgs.xy = _EXPORTED_a_joinTan_and_ys.xy; + v_joinArgs.z = radsPerJoinSegment; + } + v_contourIDWithFlags = contourIDWithFlags; + + float4 pos; + pos.x = coord.x * (2. / TESS_TEXTURE_WIDTH) - 1.; + pos.y = coord.y * uniforms.tessInverseViewportY - + sign(uniforms.tessInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_p0p1); + VARYING_PACK(v_p2p3); + VARYING_PACK(v_args); + VARYING_PACK(v_joinArgs); + VARYING_PACK(v_contourIDWithFlags); + EMIT_VERTEX(pos); +} +#endif + +#ifdef FRAGMENT +FRAG_DATA_MAIN(uint4, _EXPORTED_tessellateFragmentMain) +{ + VARYING_UNPACK(v_p0p1, float4); + VARYING_UNPACK(v_p2p3, float4); + VARYING_UNPACK(v_args, float4); + VARYING_UNPACK(v_joinArgs, float3); + VARYING_UNPACK(v_contourIDWithFlags, uint); + + float2 p0 = v_p0p1.xy; + float2 p1 = v_p0p1.zw; + float2 p2 = v_p2p3.xy; + float2 p3 = v_p2p3.zw; + float2x2 tangents = find_tangents(p0, p1, p2, p3); + // Colocate any padding vertices at T=0. + float vertexIdx = max(floor(v_args.x), .0); + float totalVertexCount = v_args.y; + uint joinSegmentCount_and_parametricSegmentCount = uint(v_args.z); + float parametricSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount & 0x3ffu); + float joinSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount >> 10); + float radsPerPolarSegment = v_args.w; + uint contourIDWithFlags = v_contourIDWithFlags; + + // mergedVertexID/mergedSegmentCount are relative to the sub-section of the + // instance this vertex belongs to (either the curve section that consists + // of merged polar and parametric segments, or the join section composed of + // just polar segments). + // + // Begin with the assumption that we belong to the curve section. + float mergedSegmentCount = totalVertexCount - joinSegmentCount; + float mergedVertexID = vertexIdx; + if (mergedVertexID <= mergedSegmentCount) + { + // We do belong to the curve section. Clear out any stroke join flags. + contourIDWithFlags &= ~JOIN_TYPE_MASK; + } + else + { + // We actually belong to the join section following the curve. Construct + // a point-cubic with rotation. + p0 = p1 = p2 = p3; + tangents = float2x2(tangents[1], v_joinArgs.xy /*joinTangent*/); + parametricSegmentCount = 1.; + mergedVertexID -= mergedSegmentCount; + mergedSegmentCount = joinSegmentCount; + if ((contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Miter or bevel join vertices snap to either tangents[0] or + // tangents[1], and get adjusted in the shader that follows. + if (mergedVertexID < 2.5) // With 5 join segments, this branch will + // see IDs: 1, 2, 3, 4. + contourIDWithFlags |= JOIN_TANGENT_0_CONTOUR_FLAG; + if (mergedVertexID > 1.5 && mergedVertexID < 3.5) + contourIDWithFlags |= JOIN_TANGENT_INNER_CONTOUR_FLAG; + } + else if ((contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != 0u) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. Preserve the same number of + // vertices (the CPU should have given us two extra, knowing that we + // are an emulated cap, and the vertex shader should have already + // accounted for this in radsPerJoinSegment), but adjust our + // stepping parameters so we begin at T=0 and end at T=1. + mergedSegmentCount -= 2.; + mergedVertexID--; + } + radsPerPolarSegment = v_joinArgs.z; // radsPerJoinSegment. + contourIDWithFlags |= radsPerPolarSegment < .0 + ? LEFT_JOIN_CONTOUR_FLAG + : RIGHT_JOIN_CONTOUR_FLAG; + } + + float2 tessCoord; + float theta = .0; + if (mergedVertexID == .0 || mergedVertexID == mergedSegmentCount || + (contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Tessellated vertices at the beginning and end of the strip use exact + // endpoints and tangents. This ensures crack-free seaming between + // instances. + bool isTan0 = mergedVertexID < mergedSegmentCount * .5; + tessCoord = isTan0 ? p0 : p3; + theta = atan2(isTan0 ? tangents[0] : tangents[1]); + } + else if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u) + { + // This cubic should actually be drawn as the single, non-AA triangle: + // [p0, p1, p3]. This is used to squeeze in more rare triangles, like + // "grout" triangles from self intersections on interior triangulation, + // where it wouldn't be worth it to put them in their own dedicated draw + // call. + tessCoord = p1; + } + else + { + float T, polarT; + if (parametricSegmentCount == mergedSegmentCount) + { + // There are no polar vertices. This is (probably) a fill. Vertices + // are spaced evenly in parametric space. + T = mergedVertexID / parametricSegmentCount; + polarT = .0; // Set polarT != T to ensure we calculate the + // parametric tangent later. + } + else + { + // Compute the location and tangent direction of the tessellated + // stroke vertex with the integral id "mergedVertexID", where + // mergedVertexID is the sorted-order index of parametric and polar + // vertices. Start by finding the tangent function's power basis + // coefficients. These define a tangent direction (scaled by some + // uniform value) as: + // + // |T^2| + // Tangent_Direction(T) = dx,dy = |A 2B C| * |T | + // |. . .| |1 | + float2 A, B, C = p1 - p0; + float2 D = p3 - p0; + float2 E = p2 - p1; + B = E - C; + A = -3. * E + D; + // FIXME(crbug.com/800804,skbug.com/11268): Consider normalizing the + // exponents in A,B,C at this point in order to prevent fp32 + // overflow. + + // Now find the coefficients that give a tangent direction from a + // parametric vertex ID: + // + // |parametricVertexID^2| + // Tangent_Direction(parametricVertexID) = dx,dy = |A B_ C_| * + // |parametricVertexID | + // |. . .| |1 + // | + // + float2 B_ = B * (parametricSegmentCount * 2.); + float2 C_ = C * (parametricSegmentCount * parametricSegmentCount); + + // Run a binary search to determine the highest parametric vertex + // that is located on or before the mergedVertexID. A merged ID is + // determined by the sum of complete parametric and polar segments + // behind it. i.e., find the highest parametric vertex where: + // + // parametricVertexID + floor(numPolarSegmentsAtParametricT) <= + // mergedVertexID + // + float lastParametricVertexID = .0; + float maxParametricVertexID = + min(parametricSegmentCount - 1., mergedVertexID); + // FIXME(crbug.com/800804,skbug.com/11268): This normalize() can + // overflow. + float2 tan0norm = normalize(tangents[0]); + float negAbsRadsPerSegment = -abs(radsPerPolarSegment); + float maxRotation0 = + (1. + mergedVertexID) * abs(radsPerPolarSegment); + for (int p = MAX_PARAMETRIC_SEGMENTS_LOG2 - 1; p >= 0; --p) + { + // Test the parametric vertex at lastParametricVertexID + 2^p. + float testParametricID = + lastParametricVertexID + exp2(float(p)); + if (testParametricID <= maxParametricVertexID) + { + float2 testTan = testParametricID * A + B_; + testTan = testParametricID * testTan + C_; + float cosRotation = dot(normalize(testTan), tan0norm); + float maxRotation = + testParametricID * negAbsRadsPerSegment + maxRotation0; + maxRotation = min(maxRotation, PI); + // Is rotation <= maxRotation? (i.e., is the number of + // complete polar segments behind testT, + testParametricID + // <= mergedVertexID?) + if (cosRotation >= cos(maxRotation)) + lastParametricVertexID = testParametricID; + } + } + + // Find the T value of the parametric vertex at + // lastParametricVertexID. + float parametricT = lastParametricVertexID / parametricSegmentCount; + + // Now that we've identified the highest parametric vertex on or + // before the mergedVertexID, the highest polar vertex is easy: + float lastPolarVertexID = mergedVertexID - lastParametricVertexID; + + // Find the angle of tan0, or the angle between tan0norm and the + // positive x axis. + float theta0 = acos(clamp(tan0norm.x, -1., 1.)); + theta0 = tan0norm.y >= .0 ? theta0 : -theta0; + + // Find the tangent vector on the vertex at lastPolarVertexID. + theta = lastPolarVertexID * radsPerPolarSegment + theta0; + float2 norm = float2(sin(theta), -cos(theta)); + + // Find the T value where the tangent is orthogonal to norm. This is + // a quadratic: + // + // dot(norm, Tangent_Direction(T)) == 0 + // + // |T^2| + // norm * |A 2B C| * |T | == 0 + // |. . .| |1 | + // + float a = dot(norm, A), b_over_2 = dot(norm, B), c = dot(norm, C); + float discr_over_4 = max(b_over_2 * b_over_2 - a * c, .0); + float q = sqrt(discr_over_4); + if (b_over_2 > .0) + q = -q; + q -= b_over_2; + + // Roots are q/a and c/q. Since each curve section does not inflect + // or rotate more than 180 degrees, there can only be one tangent + // orthogonal to "norm" inside 0..1. Pick the root nearest .5. + float _5qa = -.5 * q * a; + float2 root = (abs(q * q + _5qa) < abs(a * c + _5qa)) + ? float2(q, a) + : float2(c, q); + polarT = (root.y != .0) ? root.x / root.y : .0; + polarT = clamp(polarT, .0, 1.); + + // The root finder above can become unstable when lastPolarVertexID + // == 0 (e.g., if there are roots at exatly 0 and 1 both). polarT + // should always == 0 in this case. + if (lastPolarVertexID == .0) + polarT = .0; + + // Now that we've identified the T values of the last parametric and + // polar vertices, our final T value for mergedVertexID is whichever + // is larger. + T = max(parametricT, polarT); + } + + // Evaluate the cubic at T. Use De Casteljau's for its accuracy and + // stability. + float2 ab = unchecked_mix(p0, p1, T); + float2 bc = unchecked_mix(p1, p2, T); + float2 cd = unchecked_mix(p2, p3, T); + float2 abc = unchecked_mix(ab, bc, T); + float2 bcd = unchecked_mix(bc, cd, T); + tessCoord = unchecked_mix(abc, bcd, T); + + // If we went with T=parametricT, then update theta. Otherwise leave it + // at the polar theta found previously. (In the event that parametricT + // == polarT, we keep the polar theta.) + if (T != polarT) + theta = atan2(bcd - abc); + } + + EMIT_FRAG_DATA( + uint4(floatBitsToUint(float3(tessCoord, theta)), contourIDWithFlags)); +} +#endif diff --git a/defold-rive/include/rive/artboard.hpp b/defold-rive/include/rive/artboard.hpp index cf0b287a..4478cdb6 100644 --- a/defold-rive/include/rive/artboard.hpp +++ b/defold-rive/include/rive/artboard.hpp @@ -211,7 +211,7 @@ class Artboard : public ArtboardBase, public CoreContext void setDataContextFromInstance(ViewModelInstance* viewModelInstance); void addDataBind(DataBind* dataBind); void populateDataBinds(std::vector* dataBinds); - void sortDataBinds(std::vector dataBinds); + void sortDataBinds(); void collectDataBinds(); bool hasAudio() const; diff --git a/defold-rive/include/rive/data_bind/data_bind.hpp b/defold-rive/include/rive/data_bind/data_bind.hpp index 1f6eb6de..e0c24f50 100644 --- a/defold-rive/include/rive/data_bind/data_bind.hpp +++ b/defold-rive/include/rive/data_bind/data_bind.hpp @@ -32,6 +32,8 @@ class DataBind : public DataBindBase DataConverter* converter() const { return m_dataConverter; }; void converter(DataConverter* value) { m_dataConverter = value; }; ViewModelInstanceValue* source() const { return m_Source; }; + bool toSource(); + bool toTarget(); protected: ComponentDirt m_Dirt = ComponentDirt::Filthy; @@ -40,6 +42,7 @@ class DataBind : public DataBindBase DataBindContextValue* m_ContextValue = nullptr; DataConverter* m_dataConverter = nullptr; DataType outputType(); + bool bindsOnce(); #ifdef WITH_RIVE_TOOLS public: void onChanged(DataBindChanged callback) { m_changedCallback = callback; } diff --git a/defold-rive/include/rive/layout_component.hpp b/defold-rive/include/rive/layout_component.hpp index 411fd61d..34b68745 100644 --- a/defold-rive/include/rive/layout_component.hpp +++ b/defold-rive/include/rive/layout_component.hpp @@ -264,6 +264,7 @@ class LayoutComponent : public LayoutComponentBase, void positionTypeChanged(); void scaleTypeChanged(); void displayChanged(); + void flexDirectionChanged(); #endif void buildDependencies() override; diff --git a/defold-rive/include/rive/math/bezier_utils.hpp b/defold-rive/include/rive/math/bezier_utils.hpp new file mode 100644 index 00000000..914bd3a1 --- /dev/null +++ b/defold-rive/include/rive/math/bezier_utils.hpp @@ -0,0 +1,126 @@ +/* + * Copyright 2021 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Initial import from skia:src/gpu/tessellate/Tessellation.h + * skia:src/core/SkGeometry.h + * + * Copyright 2022 Rive + */ + +#pragma once + +#include "rive/math/simd.hpp" +#include "rive/math/vec2d.hpp" +#include + +namespace rive +{ +namespace math +{ +// Decides the number of polar segments the tessellator adds for each curve. +// (Uniform steps in tangent angle.) The tessellator will add this number of +// polar segments for each radian of rotation in local path space. +template +float calc_polar_segments_per_radian(float approxDevStrokeRadius) +{ + float cosTheta = 1.f - (1.f / Precision) / approxDevStrokeRadius; + return .5f / acosf(std::max(cosTheta, -1.f)); +} + +Vec2D eval_cubic_at(const Vec2D p[4], float t); + +// Given a src cubic bezier, chop it at the specified t value, +// where 0 <= t <= 1, and return the two new cubics in dst: +// dst[0..3] and dst[3..6] +void chop_cubic_at(const Vec2D src[4], Vec2D dst[7], float t); + +// Given a src cubic bezier, chop it at the specified t0 and t1 values, +// where 0 <= t0 <= t1 <= 1, and return the three new cubics in dst: +// dst[0..3], dst[3..6], and dst[6..9] +void chop_cubic_at(const Vec2D src[4], Vec2D dst[10], float t0, float t1); + +// Given a src cubic bezier, chop it at the specified t values, +// where 0 <= t0 <= t1 <= ... <= 1, and return the new cubics in dst: +// dst[0..3],dst[3..6],...,dst[3*t_count..3*(t_count+1)] +void chop_cubic_at(const Vec2D src[4], + Vec2D dst[], + const float tValues[], + int tCount); + +// Measures the angle between two vectors, in the range [0, pi]. +float measure_angle_between_vectors(Vec2D a, Vec2D b); + +// Returns 0, 1, or 2 T values at which to chop the given curve in order to +// guarantee the resulting cubics are convex and rotate no more than 180 +// degrees. +// +// - If the cubic is "serpentine", then the T values are any inflection points +// in [0 < T < 1]. +// - If the cubic is linear, then the T values are any 180-degree cusp points +// in [0 < T < 1]. +// - Otherwise the T value is the point at which rotation reaches 180 degrees, +// iff in [0 < T < 1]. +// +// 'areCusps' is set to true if the chop point occurred at a cusp (within +// tolerance), or if the chop point(s) occurred at 180-degree turnaround points +// on a degenerate flat line. +int find_cubic_convex_180_chops(const Vec2D[], float T[2], bool* areCusps); + +// Optimized SIMD helper for evaluating a single cubic at many points. +class EvalCubic +{ +public: + inline EvalCubic(const Vec2D pts[]) + { + // Cubic power-basis form: + // + // | 1 0 0 0| |P0| + // Cubic(T) = x,y = |1 t t^2 t^3| * |-3 3 0 0| * |P1| + // | 3 -6 3 0| |P2| + // |-1 3 -3 1| |P3| + // + // Find the cubic's power basis coefficients. These define the bezier + // curve as: + // + // |t^3| + // Cubic(T) = x,y = |A B C| * |t^2| + P0 + // |. . .| |t | + // + // (Duplicate coefficients across a float4 so we can evaluate two at + // once.) + m_P0 = simd::load2f(pts + 0).xyxy; + float4 P1 = simd::load2f(pts + 1).xyxy; + float4 P2 = simd::load2f(pts + 2).xyxy; + float4 P3 = simd::load2f(pts + 3).xyxy; + m_C = 3.f * (P1 - m_P0); + float4 D = 3.f * (P2 - P1); + float4 E = P3 - m_P0; + m_B = D - m_C; + m_A = E - D; + } + + // Evaluates [x, y] at location t. + inline float2 operator()(float t) const + { + // At^3 + Bt^2 + Ct + P0 + return t * (t * (t * m_A.xy + m_B.xy) + m_C.xy) + m_P0.xy; + } + + // Evaluates [Xa, Ya, Xb, Yb] at locations [Ta, Ta, Tb, Tb]. + inline float4 operator()(float4 t) const + { + // At^3 + Bt^2 + Ct + P0 + return t * (t * (t * m_A + m_B) + m_C) + m_P0; + } + +private: + float4 m_A; + float4 m_B; + float4 m_C; + float4 m_P0; +}; +} // namespace math +} // namespace rive diff --git a/defold-rive/include/rive/math/path_types.hpp b/defold-rive/include/rive/math/path_types.hpp index 010a19df..e717ca44 100644 --- a/defold-rive/include/rive/math/path_types.hpp +++ b/defold-rive/include/rive/math/path_types.hpp @@ -14,6 +14,7 @@ enum class FillRule { nonZero, evenOdd, + clockwise, }; enum class PathDirection diff --git a/defold-rive/include/rive/nested_artboard_layout.hpp b/defold-rive/include/rive/nested_artboard_layout.hpp index 3a6345e2..f87abecb 100644 --- a/defold-rive/include/rive/nested_artboard_layout.hpp +++ b/defold-rive/include/rive/nested_artboard_layout.hpp @@ -12,6 +12,7 @@ class NestedArtboardLayout : public NestedArtboardLayoutBase #endif Core* clone() const override; void markNestedLayoutDirty(); + void markLayoutNodeDirty(); void update(ComponentDirt value) override; StatusCode onAddedClean(CoreContext* context) override; diff --git a/defold-rive/include/rive/renderer/d3d/render_context_d3d_impl.hpp b/defold-rive/include/rive/renderer/d3d/render_context_d3d_impl.hpp index 7cbe5928..79c43acc 100644 --- a/defold-rive/include/rive/renderer/d3d/render_context_d3d_impl.hpp +++ b/defold-rive/include/rive/renderer/d3d/render_context_d3d_impl.hpp @@ -131,8 +131,6 @@ class RenderContextD3DImpl : public RenderContextHelperImpl gpu::StorageBufferStructure) override; std::unique_ptr makeVertexBufferRing( size_t capacityInBytes) override; - std::unique_ptr makeTextureTransferBufferRing( - size_t capacityInBytes) override; void resizeGradientTexture(uint32_t width, uint32_t height) override; void resizeTessellationTexture(uint32_t width, uint32_t height) override; diff --git a/defold-rive/include/rive/renderer/draw.hpp b/defold-rive/include/rive/renderer/draw.hpp index 25ad75b5..51274a2a 100644 --- a/defold-rive/include/rive/renderer/draw.hpp +++ b/defold-rive/include/rive/renderer/draw.hpp @@ -224,7 +224,6 @@ class RiveRenderPathDraw : public Draw gpu::InterlockMode); const Gradient* gradient() const { return m_gradientRef; } - FillRule fillRule() const { return m_fillRule; } gpu::PaintType paintType() const { return m_paintType; } float strokeRadius() const { return m_strokeRadius; } gpu::ContourDirections contourDirections() const @@ -310,8 +309,6 @@ class RiveRenderPathDraw : public Draw const RiveRenderPath* const m_pathRef; const Gradient* m_gradientRef; - const FillRule m_fillRule; // Bc RiveRenderPath fillRule can mutate during - // the artboard draw process. const gpu::PaintType m_paintType; float m_strokeRadius = 0; gpu::ContourDirections m_contourDirections; diff --git a/defold-rive/include/rive/renderer/gl/render_context_gl_impl.hpp b/defold-rive/include/rive/renderer/gl/render_context_gl_impl.hpp index eba9fcd2..372b17f8 100644 --- a/defold-rive/include/rive/renderer/gl/render_context_gl_impl.hpp +++ b/defold-rive/include/rive/renderer/gl/render_context_gl_impl.hpp @@ -207,8 +207,6 @@ class RenderContextGLImpl : public RenderContextHelperImpl gpu::StorageBufferStructure) override; std::unique_ptr makeVertexBufferRing( size_t capacityInBytes) override; - std::unique_ptr makeTextureTransferBufferRing( - size_t capacityInBytes) override; void resizeGradientTexture(uint32_t width, uint32_t height) override; void resizeTessellationTexture(uint32_t width, uint32_t height) override; diff --git a/defold-rive/include/rive/renderer/gpu.hpp b/defold-rive/include/rive/renderer/gpu.hpp index 2aaf5217..1dcc43bb 100644 --- a/defold-rive/include/rive/renderer/gpu.hpp +++ b/defold-rive/include/rive/renderer/gpu.hpp @@ -139,19 +139,20 @@ struct GradientSpan // fixed-point range 0..65535. RIVE_ALWAYS_INLINE void set(uint32_t x0Fixed, uint32_t x1Fixed, - float y_, + uint32_t y, + uint32_t flags, ColorInt color0_, ColorInt color1_) { assert(x0Fixed < 65536); assert(x1Fixed < 65536); horizontalSpan = (x1Fixed << 16) | x0Fixed; - y = y_; + yWithFlags = flags | y; color0 = color0_; color1 = color1_; } uint32_t horizontalSpan; - uint32_t y; + uint32_t yWithFlags; uint32_t color0; uint32_t color1; }; @@ -161,6 +162,9 @@ static_assert(256 % sizeof(GradientSpan) == 0); constexpr static size_t kGradSpanBufferAlignmentInElements = 256 / sizeof(GradientSpan); +// Gradient spans are drawn as 1px-tall triangle strips with 3 sub-rectangles. +constexpr uint32_t GRAD_SPAN_TRI_STRIP_VERTEX_COUNT = 8; + // Each curve gets tessellated into vertices. This is performed by rendering a // horizontal span of positions and normals into the tessellation data texture, // GP-GPU style. TessVertexSpan defines one instance of a horizontal @@ -324,11 +328,10 @@ struct ColorRampLocation // and images reference an additional Gradient* and Texture* respectively. union SimplePaintValue { - ColorInt color = 0xff000000; // PaintType::solidColor - ColorRampLocation - colorRampLocation; // Paintype::linearGradient, Paintype::radialGradient - float imageOpacity; // PaintType::image - uint32_t outerClipID; // Paintype::clipUpdate + ColorInt color = 0xff000000; // PaintType::solidColor + ColorRampLocation colorRampLocation; // Paintype::linear/radialGradient + float imageOpacity; // PaintType::image + uint32_t outerClipID; // Paintype::clipUpdate }; static_assert(sizeof(SimplePaintValue) == 4); @@ -773,10 +776,12 @@ enum class DrawContents none = 0, opaquePaint = 1 << 0, stroke = 1 << 1, - evenOddFill = 1 << 2, - activeClip = 1 << 3, - clipUpdate = 1 << 4, - advancedBlend = 1 << 5, + clockwiseFill = 1 << 2, + nonZeroFill = 1 << 3, + evenOddFill = 1 << 4, + activeClip = 1 << 5, + clipUpdate = 1 << 6, + advancedBlend = 1 << 7, }; RIVE_MAKE_ENUM_BITSET(DrawContents) @@ -830,12 +835,7 @@ struct DrawBatch // memory from the CPU instead of rendering them. struct TwoTexelRamp { - void set(const ColorInt colors[2]) - { - UnpackColorToRGBA8(colors[0], colorData); - UnpackColorToRGBA8(colors[1], colorData + 4); - } - uint8_t colorData[8]; + ColorInt color0, color1; }; static_assert(sizeof(TwoTexelRamp) == 8 * sizeof(uint8_t)); @@ -857,7 +857,7 @@ class CommandBufferCompletionFence : public RefCnt // // 1. Render the complex gradients from the gradSpanBuffer to the gradient // texture -// (complexGradSpanCount, firstComplexGradSpan, complexGradRowsTop, +// (gradSpanCount, firstComplexGradSpan, complexGradRowsTop, // complexGradRowsHeight). // // 2. Transfer the simple gradient texels from the simpleColorRampsBuffer to @@ -907,17 +907,14 @@ struct FlushDescriptor size_t firstPaintAux = 0; uint32_t contourCount = 0; size_t firstContour = 0; - uint32_t complexGradSpanCount = 0; - size_t firstComplexGradSpan = 0; + uint32_t gradSpanCount = 0; + size_t firstGradSpan = 0; uint32_t tessVertexSpanCount = 0; size_t firstTessVertexSpan = 0; - uint32_t simpleGradTexelsWidth = 0; - uint32_t simpleGradTexelsHeight = 0; - size_t simpleGradDataOffsetInBytes = 0; - uint32_t complexGradRowsTop = 0; - uint32_t complexGradRowsHeight = 0; + uint32_t gradDataHeight = 0; uint32_t tessDataHeight = 0; - bool clockwiseFill = false; // Override path fill rules with "clockwise". + // Override path fill rules with "clockwise". + bool clockwiseFillOverride = false; bool hasTriangleVertices = false; bool wireframe = false; bool isFinalFlushOfFrame = false; @@ -1108,7 +1105,7 @@ struct PaintData constexpr static StorageBufferStructure kBufferStructure = StorageBufferStructure::uint32x2; - void set(FillRule, + void set(DrawContents singleDrawContents, PaintType, SimplePaintValue, GradTextureLayout, diff --git a/defold-rive/include/rive/renderer/metal/render_context_metal_impl.h b/defold-rive/include/rive/renderer/metal/render_context_metal_impl.h index 03f0c4e9..e30467e8 100644 --- a/defold-rive/include/rive/renderer/metal/render_context_metal_impl.h +++ b/defold-rive/include/rive/renderer/metal/render_context_metal_impl.h @@ -164,8 +164,6 @@ class RenderContextMetalImpl : public RenderContextHelperImpl size_t capacityInBytes, StorageBufferStructure) override; std::unique_ptr makeVertexBufferRing( size_t capacityInBytes) override; - std::unique_ptr makeTextureTransferBufferRing( - size_t capacityInBytes) override; private: // Renders paths to the main render target. diff --git a/defold-rive/include/rive/renderer/render_context.hpp b/defold-rive/include/rive/renderer/render_context.hpp index 4a2b43ed..dcd09160 100644 --- a/defold-rive/include/rive/renderer/render_context.hpp +++ b/defold-rive/include/rive/renderer/render_context.hpp @@ -100,7 +100,7 @@ class RenderContext : public RiveRenderFactory bool strokesDisabled = false; // Override all paths' fill rules (winding or even/odd) to emulate // clockwiseAtomic mode. - bool clockwiseFill = false; + bool clockwiseFillOverride = false; }; // Called at the beginning of a frame and establishes where and how it will @@ -281,7 +281,7 @@ class RenderContext : public RiveRenderFactory // LogicalFlush::LayoutCounters. struct ResourceAllocationCounts { - constexpr static int NUM_ELEMENTS = 13; + constexpr static int NUM_ELEMENTS = 12; using VecType = simd::gvec; RIVE_ALWAYS_INLINE VecType toVec() const @@ -308,8 +308,7 @@ class RenderContext : public RiveRenderFactory size_t paintBufferCount = 0; size_t paintAuxBufferCount = 0; size_t contourBufferCount = 0; - size_t simpleGradientBufferCount = 0; - size_t complexGradSpanBufferCount = 0; + size_t gradSpanBufferCount = 0; size_t tessSpanBufferCount = 0; size_t triangleVertexBufferCount = 0; size_t gradTextureHeight = 0; @@ -366,9 +365,6 @@ class RenderContext : public RiveRenderFactory WriteOnlyMappedMemory m_paintData; WriteOnlyMappedMemory m_paintAuxData; WriteOnlyMappedMemory m_contourData; - // Simple gradients get written by the CPU. - WriteOnlyMappedMemory m_simpleColorRampsData; - // Complex gradients get rendered by the GPU. WriteOnlyMappedMemory m_gradSpanData; WriteOnlyMappedMemory m_tessSpanData; WriteOnlyMappedMemory m_triangleVertexData; @@ -527,8 +523,7 @@ class RenderContext : public RiveRenderFactory uint32_t paintPaddingCount = 0; uint32_t paintAuxPaddingCount = 0; uint32_t contourPaddingCount = 0; - uint32_t simpleGradCount = 0; - uint32_t complexGradSpanCount = 0; + uint32_t gradSpanCount = 0; uint32_t gradSpanPaddingCount = 0; uint32_t maxGradTextureHeight = 0; uint32_t maxTessTextureHeight = 0; @@ -703,7 +698,7 @@ class RenderContext : public RiveRenderFactory // implemented with 2 texels. std::unordered_map m_simpleGradients; // [color0, color1] -> texelsIdx. - std::vector m_pendingSimpleGradientWrites; + std::vector m_pendingSimpleGradDraws; // Complex gradients have stop(s) between t=0 and t=1. In theory they // should be scaled to a ramp where every stop lands exactly on a pixel @@ -711,8 +706,11 @@ class RenderContext : public RiveRenderFactory // texture width. std::unordered_map m_complexGradients; // [colors[0..n], stops[0..n]] -> rowIdx - std::vector m_pendingComplexColorRampDraws; - size_t m_pendingComplexGradSpanCount; + std::vector m_pendingComplexGradDraws; + + // Simple and complex gradients both get uploaded to the GPU as sets of + // "GradientSpan" instances. + size_t m_pendingGradSpanCount; std::vector m_clips; @@ -732,10 +730,10 @@ class RenderContext : public RiveRenderFactory uint32_t m_outerCubicTessVertexIdx; uint32_t m_midpointFanTessVertexIdx; - gpu::FlushDescriptor m_flushDesc; - // Not determined until writeResources(). gpu::GradTextureLayout m_gradTextureLayout; + gpu::FlushDescriptor m_flushDesc; + BlockAllocatedLinkedList m_drawList; gpu::ShaderFeatures m_combinedShaderFeatures; diff --git a/defold-rive/include/rive/renderer/render_context_helper_impl.hpp b/defold-rive/include/rive/renderer/render_context_helper_impl.hpp index 97a463ff..3b586539 100644 --- a/defold-rive/include/rive/renderer/render_context_helper_impl.hpp +++ b/defold-rive/include/rive/renderer/render_context_helper_impl.hpp @@ -26,7 +26,6 @@ class RenderContextHelperImpl : public RenderContextImpl gpu::StorageBufferStructure) override; void resizeContourBuffer(size_t sizeInBytes, gpu::StorageBufferStructure) override; - void resizeSimpleColorRampsBuffer(size_t sizeInBytes) override; void resizeGradSpanBuffer(size_t sizeInBytes) override; void resizeTessVertexSpanBuffer(size_t sizeInBytes) override; void resizeTriangleVertexBuffer(size_t sizeInBytes) override; @@ -37,7 +36,6 @@ class RenderContextHelperImpl : public RenderContextImpl void* mapPaintBuffer(size_t mapSizeInBytes) override; void* mapPaintAuxBuffer(size_t mapSizeInBytes) override; void* mapContourBuffer(size_t mapSizeInBytes) override; - void* mapSimpleColorRampsBuffer(size_t mapSizeInBytes) override; void* mapGradSpanBuffer(size_t mapSizeInBytes) override; void* mapTessVertexSpanBuffer(size_t mapSizeInBytes) override; void* mapTriangleVertexBuffer(size_t mapSizeInBytes) override; @@ -48,7 +46,6 @@ class RenderContextHelperImpl : public RenderContextImpl void unmapPaintBuffer() override; void unmapPaintAuxBuffer() override; void unmapContourBuffer() override; - void unmapSimpleColorRampsBuffer() override; void unmapGradSpanBuffer() override; void unmapTessVertexSpanBuffer() override; void unmapTriangleVertexBuffer() override; @@ -69,10 +66,6 @@ class RenderContextHelperImpl : public RenderContextImpl BufferRing* paintBufferRing() { return m_paintBuffer.get(); } BufferRing* paintAuxBufferRing() { return m_paintAuxBuffer.get(); } BufferRing* contourBufferRing() { return m_contourBuffer.get(); } - BufferRing* simpleColorRampsBufferRing() - { - return m_simpleColorRampsBuffer.get(); - } BufferRing* gradSpanBufferRing() { return m_gradSpanBuffer.get(); } BufferRing* tessSpanBufferRing() { return m_tessSpanBuffer.get(); } BufferRing* triangleBufferRing() { return m_triangleBuffer.get(); } @@ -89,8 +82,6 @@ class RenderContextHelperImpl : public RenderContextImpl gpu::StorageBufferStructure) = 0; virtual std::unique_ptr makeVertexBufferRing( size_t capacityInBytes) = 0; - virtual std::unique_ptr makeTextureTransferBufferRing( - size_t capacityInBytes) = 0; private: std::unique_ptr m_flushUniformBuffer; @@ -99,7 +90,6 @@ class RenderContextHelperImpl : public RenderContextImpl std::unique_ptr m_paintBuffer; std::unique_ptr m_paintAuxBuffer; std::unique_ptr m_contourBuffer; - std::unique_ptr m_simpleColorRampsBuffer; std::unique_ptr m_gradSpanBuffer; std::unique_ptr m_tessSpanBuffer; std::unique_ptr m_triangleBuffer; diff --git a/defold-rive/include/rive/renderer/render_context_impl.hpp b/defold-rive/include/rive/renderer/render_context_impl.hpp index 1f9998b1..d1abdd96 100644 --- a/defold-rive/include/rive/renderer/render_context_impl.hpp +++ b/defold-rive/include/rive/renderer/render_context_impl.hpp @@ -50,7 +50,6 @@ class RenderContextImpl gpu::StorageBufferStructure) = 0; virtual void resizeContourBuffer(size_t sizeInBytes, gpu::StorageBufferStructure) = 0; - virtual void resizeSimpleColorRampsBuffer(size_t sizeInBytes) = 0; virtual void resizeGradSpanBuffer(size_t sizeInBytes) = 0; virtual void resizeTessVertexSpanBuffer(size_t sizeInBytes) = 0; virtual void resizeTriangleVertexBuffer(size_t sizeInBytes) = 0; @@ -68,7 +67,6 @@ class RenderContextImpl virtual void* mapPaintBuffer(size_t mapSizeInBytes) = 0; virtual void* mapPaintAuxBuffer(size_t mapSizeInBytes) = 0; virtual void* mapContourBuffer(size_t mapSizeInBytes) = 0; - virtual void* mapSimpleColorRampsBuffer(size_t mapSizeInBytes) = 0; virtual void* mapGradSpanBuffer(size_t mapSizeInBytes) = 0; virtual void* mapTessVertexSpanBuffer(size_t mapSizeInBytes) = 0; virtual void* mapTriangleVertexBuffer(size_t mapSizeInBytes) = 0; @@ -80,7 +78,6 @@ class RenderContextImpl virtual void unmapPaintBuffer() = 0; virtual void unmapPaintAuxBuffer() = 0; virtual void unmapContourBuffer() = 0; - virtual void unmapSimpleColorRampsBuffer() = 0; virtual void unmapGradSpanBuffer() = 0; virtual void unmapTessVertexSpanBuffer() = 0; virtual void unmapTriangleVertexBuffer() = 0; diff --git a/defold-rive/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp b/defold-rive/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp index 5f5eea87..d0343425 100644 --- a/defold-rive/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp +++ b/defold-rive/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp @@ -173,7 +173,6 @@ class RenderContextVulkanImpl : public RenderContextImpl IMPLEMENT_PLS_STRUCTURED_BUFFER(PaintBuffer, m_paintBufferRing) IMPLEMENT_PLS_STRUCTURED_BUFFER(PaintAuxBuffer, m_paintAuxBufferRing) IMPLEMENT_PLS_STRUCTURED_BUFFER(ContourBuffer, m_contourBufferRing) - IMPLEMENT_PLS_BUFFER(SimpleColorRampsBuffer, m_simpleColorRampsBufferRing) IMPLEMENT_PLS_BUFFER(GradSpanBuffer, m_gradSpanBufferRing) IMPLEMENT_PLS_BUFFER(TessVertexSpanBuffer, m_tessSpanBufferRing) IMPLEMENT_PLS_BUFFER(TriangleVertexBuffer, m_triangleBufferRing) @@ -230,7 +229,6 @@ class RenderContextVulkanImpl : public RenderContextImpl vkutil::BufferRing m_paintBufferRing; vkutil::BufferRing m_paintAuxBufferRing; vkutil::BufferRing m_contourBufferRing; - vkutil::BufferRing m_simpleColorRampsBufferRing; vkutil::BufferRing m_gradSpanBufferRing; vkutil::BufferRing m_tessSpanBufferRing; vkutil::BufferRing m_triangleBufferRing; diff --git a/defold-rive/include/rive/renderer/webgpu/render_context_webgpu_impl.hpp b/defold-rive/include/rive/renderer/webgpu/render_context_webgpu_impl.hpp index 360a65e3..50de93bc 100644 --- a/defold-rive/include/rive/renderer/webgpu/render_context_webgpu_impl.hpp +++ b/defold-rive/include/rive/renderer/webgpu/render_context_webgpu_impl.hpp @@ -148,8 +148,6 @@ class RenderContextWebGPUImpl : public RenderContextHelperImpl gpu::StorageBufferStructure) override; std::unique_ptr makeVertexBufferRing( size_t capacityInBytes) override; - std::unique_ptr makeTextureTransferBufferRing( - size_t capacityInBytes) override; void resizeGradientTexture(uint32_t width, uint32_t height) override; void resizeTessellationTexture(uint32_t width, uint32_t height) override; diff --git a/defold-rive/include/shaders/advanced_blend.glsl b/defold-rive/include/shaders/advanced_blend.glsl new file mode 100644 index 00000000..883eeac7 --- /dev/null +++ b/defold-rive/include/shaders/advanced_blend.glsl @@ -0,0 +1,318 @@ +/* + * Copyright 2022 Rive + */ + +// From the KHR_blend_equation_advanced spec: +// +// The advanced blend equations are those listed in tables X.1 and X.2. When +// using one of these equations, blending is performed according to the +// following equations: +// +// R = f(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) +// G = f(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) +// B = f(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) +// A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) +// +// where the function f and terms X, Y, and Z are specified in the table. +// The R, G, and B components of the source color used for blending are +// considered to have been premultiplied by the A component prior to +// blending. The base source color (Rs',Gs',Bs') is obtained by dividing +// through by the A component: +// +// (Rs', Gs', Bs') = +// (0, 0, 0), if As == 0 +// (Rs/As, Gs/As, Bs/As), otherwise +// +// The destination color components are always considered to have been +// premultiplied by the destination A component and the base destination +// color (Rd', Gd', Bd') is obtained by dividing through by the A component: +// +// (Rd', Gd', Bd') = +// (0, 0, 0), if Ad == 0 +// (Rd/Ad, Gd/Ad, Bd/Ad), otherwise +// +// When blending using advanced blend equations, we expect that the R, G, and +// B components of premultiplied source and destination color inputs be +// stored as the product of non-premultiplied R, G, and B components and the +// A component of the color. If any R, G, or B component of a premultiplied +// input color is non-zero and the A component is zero, the color is +// considered ill-formed, and the corresponding component of the blend result +// will be undefined. +// +// The weighting functions p0, p1, and p2 are defined as follows: +// +// p0(As,Ad) = As*Ad +// p1(As,Ad) = As*(1 - Ad) +// p2(As,Ad) = Ad*(1 - As) +// +// In these functions, the A components of the source and destination colors +// are taken to indicate the portion of the pixel covered by the fragment +// (source) and the fragments previously accumulated in the pixel +// (destination). The functions p0, p1, and p2 approximate the relative +// portion of the pixel covered by the intersection of the source and +// destination, covered only by the source, and covered only by the +// destination, respectively. The equations defined here assume that there +// is no correlation between the source and destination coverage. +// + +#ifdef @FRAGMENT + +#ifdef @ENABLE_KHR_BLEND +layout( +#ifdef @ENABLE_HSL_BLEND_MODES + blend_support_all_equations +#else + blend_support_multiply, + blend_support_screen, + blend_support_overlay, + blend_support_darken, + blend_support_lighten, + blend_support_colordodge, + blend_support_colorburn, + blend_support_hardlight, + blend_support_softlight, + blend_support_difference, + blend_support_exclusion +#endif + ) out; +#endif // ENABLE_KHR_BLEND + +#ifdef @ENABLE_ADVANCED_BLEND +#ifdef @ENABLE_HSL_BLEND_MODES +// When using one of the HSL blend equations in table X.2 as the blend equation, +// the blend coefficients are effectively obtained by converting both the +// non-premultiplied source and destination colors to the HSL (hue, saturation, +// luminosity) color space, generating a new HSL color by selecting H, S, and L +// components from the source or destination according to the blend equation, +// and then converting the result back to RGB. The HSL blend equations are only +// well defined when the values of the input color components are in the range +// [0..1]. +half minv3(half3 c) { return min(min(c.r, c.g), c.b); } +half maxv3(half3 c) { return max(max(c.r, c.g), c.b); } +half lumv3(half3 c) { return dot(c, make_half3(.30, .59, .11)); } +half satv3(half3 c) { return maxv3(c) - minv3(c); } + +// If any color components are outside [0,1], adjust the color to get the +// components in range. +half3 clip_color(half3 color) +{ + half lum = lumv3(color); + half mincol = minv3(color); + half maxcol = maxv3(color); + if (mincol < .0) + color = lum + ((color - lum) * lum) / (lum - mincol); + if (maxcol > 1.) + color = lum + ((color - lum) * (1. - lum)) / (maxcol - lum); + return color; +} + +// Take the base RGB color and override its luminosity with that of the +// RGB color . +half3 set_lum(half3 cbase, half3 clum) +{ + half lbase = lumv3(cbase); + half llum = lumv3(clum); + half ldiff = llum - lbase; + half3 color = cbase + make_half3(ldiff); + return clip_color(color); +} + +// Take the base RGB color and override its saturation with that of the +// RGB color . The override the luminosity of the result with that of the +// RGB color . +half3 set_lum_sat(half3 cbase, half3 csat, half3 clum) +{ + half minbase = minv3(cbase); + half sbase = satv3(cbase); + half ssat = satv3(csat); + half3 color; + if (sbase > .0) + { + // Equivalent (modulo rounding errors) to setting the smallest (R,G,B) + // component to 0, the largest to , and interpolating the "middle" + // component based on its original value relative to the + // smallest/largest. + color = (cbase - minbase) * ssat / sbase; + } + else + { + color = make_half3(.0); + } + return set_lum(color, clum); +} +#endif // ENABLE_HSL_BLEND_MODES + +// The advanced blend coefficients are generated from un-multiplied RGB values, +// and control the look of each blend mode. +half3 advanced_blend_coeffs(half3 src, half3 dst, ushort mode) +{ + half3 coeffs; + switch (mode) + { + case BLEND_MODE_MULTIPLY: + coeffs = src.rgb * dst.rgb; + break; + case BLEND_MODE_SCREEN: + coeffs = src.rgb + dst.rgb - src.rgb * dst.rgb; + break; + case BLEND_MODE_OVERLAY: + { + for (int i = 0; i < 3; ++i) + { + if (dst[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_DARKEN: + coeffs = min(src.rgb, dst.rgb); + break; + case BLEND_MODE_LIGHTEN: + coeffs = max(src.rgb, dst.rgb); + break; + case BLEND_MODE_COLORDODGE: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(min(dst.rgb / (1. - src.rgb), make_half3(1.)), + make_half3(.0), + lessThanEqual(dst.rgb, make_half3(.0))); + break; + case BLEND_MODE_COLORBURN: + // ES3 spec, 4.5.1 Range and Precision: dividing a non-zero by 0 + // results in the appropriately signed IEEE Inf. + coeffs = mix(1. - min((1. - dst.rgb) / src.rgb, 1.), + make_half3(1.), + greaterThanEqual(dst.rgb, make_half3(1.))); + break; + case BLEND_MODE_HARDLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= .5) + coeffs[i] = 2. * src[i] * dst[i]; + else + coeffs[i] = 1. - 2. * (1. - src[i]) * (1. - dst[i]); + } + break; + } + case BLEND_MODE_SOFTLIGHT: + { + for (int i = 0; i < 3; ++i) + { + if (src[i] <= 0.5) + coeffs[i] = + dst[i] - (1. - 2. * src[i]) * dst[i] * (1. - dst[i]); + else if (dst[i] <= .25) + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * dst[i] * + ((16. * dst[i] - 12.) * dst[i] + 3.); + else + coeffs[i] = + dst[i] + (2. * src[i] - 1.) * (sqrt(dst[i]) - dst[i]); + } + break; + } + case BLEND_MODE_DIFFERENCE: + coeffs = abs(dst.rgb - src.rgb); + break; + case BLEND_MODE_EXCLUSION: + coeffs = src.rgb + dst.rgb - 2. * src.rgb * dst.rgb; + break; +#ifdef @ENABLE_HSL_BLEND_MODES + // The HSL blend equations are only well defined when the values of the + // input color components are in the range [0..1]. + case BLEND_MODE_HUE: + if (@ENABLE_HSL_BLEND_MODES) + { + src.rgb = clamp(src.rgb, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(src.rgb, dst.rgb, dst.rgb); + break; + } + case BLEND_MODE_SATURATION: + if (@ENABLE_HSL_BLEND_MODES) + { + src.rgb = clamp(src.rgb, make_half3(.0), make_half3(1.)); + coeffs = set_lum_sat(dst.rgb, src.rgb, dst.rgb); + break; + } + case BLEND_MODE_COLOR: + if (@ENABLE_HSL_BLEND_MODES) + { + src.rgb = clamp(src.rgb, make_half3(.0), make_half3(1.)); + coeffs = set_lum(src.rgb, dst.rgb); + break; + } + case BLEND_MODE_LUMINOSITY: + if (@ENABLE_HSL_BLEND_MODES) + { + src.rgb = clamp(src.rgb, make_half3(.0), make_half3(1.)); + coeffs = set_lum(dst.rgb, src.rgb); + break; + } +#endif + } + return coeffs; +} + +INLINE half4 advanced_blend(half4 src, half4 dst, ushort mode) +{ + half3 coeffs = advanced_blend_coeffs(src.rgb, dst.rgb, mode); + + // The weighting functions p0, p1, and p2 are defined as follows: + // + // p0(As,Ad) = As*Ad + // p1(As,Ad) = As*(1 - Ad) + // p2(As,Ad) = Ad*(1 - As) + // + half sda = src.a * dst.a; + half3 p = make_half3(sda, src.a - sda, dst.a - sda); + + // When using one of these equations, blending is performed according to the + // following equations: + // + // R = coeffs(Rs',Rd')*p0(As,Ad) + Y*Rs'*p1(As,Ad) + Z*Rd'*p2(As,Ad) + // G = coeffs(Gs',Gd')*p0(As,Ad) + Y*Gs'*p1(As,Ad) + Z*Gd'*p2(As,Ad) + // B = coeffs(Bs',Bd')*p0(As,Ad) + Y*Bs'*p1(As,Ad) + Z*Bd'*p2(As,Ad) + // A = X*p0(As,Ad) + Y*p1(As,Ad) + Z*p2(As,Ad) + // + // NOTE: (X,Y,Z) always == 1, so it is ignored in this implementation. + // Also, since (X,Y,Z) == 1, alpha simplifies to standard src-over + // rules: A = Ad * (1 - As) + As + return make_half4(MUL(make_half3x3(coeffs, src.rgb, dst.rgb), p), + dst.a * (1. - src.a) + src.a); +} + +// Returns an intermediate RGB color that won't produce the desired blend mode +// until *AFTER* being blended into the framebuffer with hardware coefficients +// of [SRC_ALPHA, ONE_MINUS_SRC_ALPHA]. +// +// NOTE: Alpha follows standard src-over rules in all blend modes, so the shader +// can just output the paint's alpha value, unmodified, directly to the blend +// unit. +INLINE half3 advanced_color_blend_pre_src_over(half3 src, + half4 dst, + ushort mode) +{ + // The weighting functions p0, p1, and p2 are commented in advanced_blend(). + // + // We make two modifications in this variation to account for the fact that + // the color we generate will be subjected to HW blending: + // + // 1) To cancel the effect of the upcoming src-over blend, we subtract + // "RGBd * (1 - As)" from the final RGB values. This cancels out p2 + // entirely. + // + // 2) Since the caller is expected to premultiply alpha, don't multiply p0 + // or p1 + // by As. + // + half3 coeffs = advanced_blend_coeffs(src, dst.rgb, mode); + half2 p = + make_half2(dst.a, 1. - dst.a); // half2 because p2 got cancelled out. + return MUL(make_half2x3(coeffs, src), p); +} +#endif // ENABLE_ADVANCED_BLEND + +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/atomic_draw.glsl b/defold-rive/include/shaders/atomic_draw.glsl new file mode 100644 index 00000000..d499ff42 --- /dev/null +++ b/defold-rive/include/shaders/atomic_draw.glsl @@ -0,0 +1,832 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef @DRAW_PATH +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, + float4, + @a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, @a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, @a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, @a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(@a_patchVertexData, + @a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + v_pathID = cast_uint_to_ushort(pathID); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef @DRAW_INTERIOR_TRIANGLES +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, @a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +@OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, @a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(@a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + v_pathID = cast_uint_to_ushort(pathID); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef @DRAW_IMAGE_RECT +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, float4, @a_imageRectVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +NO_PERSPECTIVE VARYING(1, half, v_edgeCoverage); +#ifdef @ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +IMAGE_RECT_VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, @a_imageRectVertex, float4); + + VARYING_INIT(v_texCoord, float2); + VARYING_INIT(v_edgeCoverage, half); +#ifdef @ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + bool isOuterVertex = + @a_imageRectVertex.z == .0 || @a_imageRectVertex.w == .0; + v_edgeCoverage = isOuterVertex ? .0 : 1.; + + float2 vertexPosition = @a_imageRectVertex.xy; + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2x2 MIT = transpose(inverse(M)); + if (!isOuterVertex) + { + // Inset the inner vertices to the point where coverage == 1. + // NOTE: if width/height ever change from 1, these equations need to be + // updated. + float aaRadiusX = + AA_RADIUS * manhattan_width(MIT[1]) / dot(M[1], MIT[1]); + if (aaRadiusX >= .5) + { + vertexPosition.x = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusX); + } + else + { + vertexPosition.x += aaRadiusX * @a_imageRectVertex.z; + } + float aaRadiusY = + AA_RADIUS * manhattan_width(MIT[0]) / dot(M[0], MIT[0]); + if (aaRadiusY >= .5) + { + vertexPosition.y = .5; + v_edgeCoverage *= cast_float_to_half(.5 / aaRadiusY); + } + else + { + vertexPosition.y += aaRadiusY * @a_imageRectVertex.w; + } + } + + v_texCoord = vertexPosition; + vertexPosition = MUL(M, vertexPosition) + imageDrawUniforms.translate; + + if (isOuterVertex) + { + // Outset the outer vertices to the point where coverage == 0. + float2 n = MUL(MIT, @a_imageRectVertex.zw); + n *= manhattan_width(n) / dot(n, n); + vertexPosition += AA_RADIUS * n; + } + +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + VARYING_PACK(v_edgeCoverage); +#ifdef @ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX + +#elif defined(@DRAW_IMAGE_MESH) +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, @a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, @a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef @ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(1, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef @VERTEX +IMAGE_MESH_VERTEX_MAIN(@drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, @a_position, float2); + ATTR_UNPACK(_vertexID, uv, @a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef @ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2x2 M = make_float2x2(imageDrawUniforms.viewMatrix); + float2 vertexPosition = MUL(M, @a_position) + imageDrawUniforms.translate; + v_texCoord = @a_texCoord; + +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); + } +#endif + + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); +#ifdef @ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_IMAGE_MESH + +#ifdef @DRAW_RENDER_TARGET_UPDATE_BOUNDS +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR_BLOCK_END +#endif // VERTEX + +VARYING_BLOCK_BEGIN +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + int2 coord; + coord.x = (_vertexID & 1) == 0 ? uniforms.renderTargetUpdateBounds.x + : uniforms.renderTargetUpdateBounds.z; + coord.y = (_vertexID & 2) == 0 ? uniforms.renderTargetUpdateBounds.y + : uniforms.renderTargetUpdateBounds.w; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(float2(coord)); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_RENDER_TARGET_UPDATE_BOUNDS + +#ifdef @DRAW_IMAGE +#define NEEDS_IMAGE_TEXTURE +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, @gradTexture); +#ifdef NEEDS_IMAGE_TEXTURE +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, @imageTexture); +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +#ifdef NEEDS_IMAGE_TEXTURE +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) +#endif + +PLS_BLOCK_BEGIN +// We only write the framebuffer as a storage texture when there are blend +// modes. Otherwise, we render to it as a normal color attachment. +#ifndef @FIXED_FUNCTION_COLOR_OUTPUT +#ifdef @COLOR_PLANE_IDX_OVERRIDE +// D3D11 doesn't let us bind the framebuffer UAV to slot 0 when there is a color +// output. +PLS_DECL4F(@COLOR_PLANE_IDX_OVERRIDE, colorBuffer); +#else +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +#endif +#endif // !FIXED_FUNCTION_COLOR_OUTPUT +#ifdef @PLS_BLEND_SRC_OVER +// When PLS has src-over blending enabled, the clip buffer is RGBA8 so we can +// preserve clip contents by emitting a=0 instead of loading the current value. +// This is also is a hint to the hardware that it doesn't need to write anything +// to the clip attachment. +#define CLIP_VALUE_TYPE half4 +#define PLS_LOAD_CLIP_TYPE PLS_LOAD4F +#define MAKE_NON_UPDATING_CLIP_VALUE make_half4(.0) +#define HAS_UPDATED_CLIP_VALUE(X) ((X).a != .0) +#ifdef @ENABLE_CLIPPING +#ifndef @RESOLVE_PLS +PLS_DECL4F(CLIP_PLANE_IDX, clipBuffer); +#else +PLS_DECL4F_READONLY(CLIP_PLANE_IDX, clipBuffer); +#endif +#endif // ENABLE_CLIPPING +#else +// When PLS does not have src-over blending, the clip buffer the usual packed +// R32UI. +#define CLIP_VALUE_TYPE uint +#define MAKE_NON_UPDATING_CLIP_VALUE 0u +#define PLS_LOAD_CLIP_TYPE PLS_LOADUI +#define HAS_UPDATED_CLIP_VALUE(X) ((X) != 0u) +#ifdef @ENABLE_CLIPPING +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +#endif // ENABLE_CLIPPING +#endif // !PLS_BLEND_SRC_OVER +PLS_DECLUI_ATOMIC(COVERAGE_PLANE_IDX, coverageAtomicBuffer); +PLS_BLOCK_END + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, @paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, @paintAuxBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE uint to_fixed(float x) +{ + return uint(x * FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO); +} + +INLINE half from_fixed(uint x) +{ + return cast_float_to_half( + float(x) * FIXED_COVERAGE_INVERSE_FACTOR + + (-FIXED_COVERAGE_ZERO * FIXED_COVERAGE_INVERSE_FACTOR)); +} + +#ifdef @ENABLE_CLIPPING +INLINE void apply_clip(uint clipID, + CLIP_VALUE_TYPE clipData, + INOUT(half) coverage) +{ +#ifdef @PLS_BLEND_SRC_OVER + // The clipID is packed into r & g of clipData. Use a fuzzy equality test + // since we lose precision when the clip value gets stored to and from the + // attachment. + if (all(lessThan(abs(clipData.rg - unpackUnorm4x8(clipID).rg), + make_half2(.25 / 255.)))) + coverage = min(coverage, clipData.b); + else + coverage = .0; +#else + // The clipID is the top 16 bits of clipData. + if (clipID == clipData >> 16) + coverage = min(coverage, unpackHalf2x16(clipData).r); + else + coverage = .0; +#endif +} +#endif + +INLINE void resolve_paint(uint pathID, + half coverageCount, + OUT(half4) fragColorOut +#if defined(@ENABLE_CLIPPING) && !defined(@RESOLVE_PLS) + , + INOUT(CLIP_VALUE_TYPE) fragClipOut +#endif + FRAGMENT_CONTEXT_DECL PLS_CONTEXT_DECL) +{ + uint2 paintData = STORAGE_BUFFER_LOAD2(@paintBuffer, pathID); + half coverage = coverageCount; + if ((paintData.x & (PAINT_FLAG_NON_ZERO_FILL | PAINT_FLAG_EVEN_ODD_FILL)) != + 0u) + { + // This path has a legacy (non-clockwise) fill. + coverage = abs(coverage); +#ifdef @ENABLE_EVEN_ODD + if (@ENABLE_EVEN_ODD && (paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + { + coverage = 1. - abs(fract(coverage * .5) * 2. + -1.); + } +#endif + } + // This also caps stroke coverage, which can be >1. + coverage = clamp(coverage, make_half(.0), make_half(1.)); +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING) + { + uint clipID = paintData.x >> 16u; + if (clipID != 0u) + { + apply_clip(clipID, PLS_LOAD_CLIP_TYPE(clipBuffer), coverage); + } + } +#endif // ENABLE_CLIPPING +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT && (paintData.x & PAINT_FLAG_HAS_CLIP_RECT) != 0u) + { + float2x2 M = make_float2x2( + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 2u)); + float4 translate = + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 3u); + float2 clipCoord = MUL(M, _fragCoord) + translate.xy; + // translate.zw contains -1 / fwidth(clipCoord), which we use to + // calculate antialiasing. + half2 distXY = + cast_float2_to_half2(abs(clipCoord) * translate.zw - translate.zw); + half clipRectCoverage = clamp(min(distXY.x, distXY.y) + .5, .0, 1.); + coverage = min(coverage, clipRectCoverage); + } +#endif // ENABLE_CLIP_RECT + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + fragColorOut = unpackUnorm4x8(paintData.y); +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { +#ifndef @RESOLVE_PLS +#ifdef @PLS_BLEND_SRC_OVER + // This was actually a clip update. fragColorOut contains the packed + // clipID. + fragClipOut.rg = fragColorOut.ba; // Pack the clipID into r & g. + fragClipOut.b = coverage; // Put the clipCoverage in b. + fragClipOut.a = + 1.; // a=1 so we replace the value in the clipBuffer. +#else + fragClipOut = paintData.y | packHalf2x16(make_half2(coverage, .0)); +#endif +#endif + // Don't update the colorBuffer when this is a clip update. + fragColorOut = make_half4(.0); + } +#endif + } + else // LINEAR_GRADIENT_PAINT_TYPE or RADIAL_GRADIENT_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + fragColorOut = + TEXTURE_SAMPLE_LOD(@gradTexture, gradSampler, float2(x, y), .0); + } + fragColorOut.a *= coverage; + +#if !defined(@FIXED_FUNCTION_COLOR_OUTPUT) && defined(@ENABLE_ADVANCED_BLEND) + // Apply the advanced blend mode, if applicable. + ushort blendMode; + if (@ENABLE_ADVANCED_BLEND && fragColorOut.a != .0 && + (blendMode = cast_uint_to_ushort((paintData.x >> 4) & 0xfu)) != 0u) + { + half4 dstColor = PLS_LOAD4F(colorBuffer); + fragColorOut.rgb = + advanced_color_blend_pre_src_over(fragColorOut.rgb, + unmultiply(dstColor), + blendMode); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // When PLS_BLEND_SRC_OVER is defined, the caller and/or blend state + // multiply alpha into fragColorOut for us. Otherwise, we have to + // premultiply it. +#ifndef @PLS_BLEND_SRC_OVER + fragColorOut.rgb *= fragColorOut.a; +#endif +} + +#ifndef @FIXED_FUNCTION_COLOR_OUTPUT +INLINE void emit_pls_color(half4 fragColorOut PLS_CONTEXT_DECL) +{ +#ifndef @PLS_BLEND_SRC_OVER + if (fragColorOut.a == .0) + return; + float oneMinusSrcAlpha = 1. - fragColorOut.a; + if (oneMinusSrcAlpha != .0) + fragColorOut = + PLS_LOAD4F(colorBuffer) * oneMinusSrcAlpha + fragColorOut; +#endif + PLS_STORE4F(colorBuffer, fragColorOut); +} +#endif // !FIXED_FUNCTION_COLOR_OUTPUT + +#if defined(@ENABLE_CLIPPING) && !defined(@RESOLVE_PLS) +INLINE void emit_pls_clip(CLIP_VALUE_TYPE fragClipOut PLS_CONTEXT_DECL) +{ +#ifdef @PLS_BLEND_SRC_OVER + PLS_STORE4F(clipBuffer, fragClipOut); +#else + if (fragClipOut != 0u) + PLS_STOREUI(clipBuffer, fragClipOut); +#endif +} +#endif // ENABLE_CLIPPING && !RESOLVE_PLS + +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_FRAG_COLOR_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS \ + PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS_AND_FRAG_COLOR +#else // !FIXED_FUNCTION_COLOR_OUTPUT +#define ATOMIC_PLS_MAIN PLS_MAIN +#define ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS PLS_MAIN_WITH_IMAGE_UNIFORMS +#define EMIT_ATOMIC_PLS EMIT_PLS +#endif + +#ifdef @DRAW_PATH +ATOMIC_PLS_MAIN(@drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + + half fragmentCoverage = + min(min(v_edgeDistance.x, abs(v_edgeDistance.y)), make_half(1.)); + + // Since v_pathID increases monotonically with every draw, and since it + // lives in the most significant bits of the coverage data, an atomic max() + // function will serve 3 purposes: + // + // * The invocation that changes the pathID is the single first fragment + // invocation to hit the new path, and the one that should resolve the + // previous path in the framebuffer. + // * Properly resets coverage to zero when we do cross over into + // processing + // a new path. + // * Accumulates coverage for strokes. + // + uint fixedCoverage = to_fixed(fragmentCoverage); + uint minCoverageData = (make_uint(v_pathID) << 16) | fixedCoverage; + uint lastCoverageData = + PLS_ATOMIC_MAX(coverageAtomicBuffer, minCoverageData); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just update coverage + // (if we're a fill) and move on. + if (v_edgeDistance.y < .0 /*fill?*/) + { + // Only apply the effect of the min() the first time we cross into a + // path. + fixedCoverage += + lastCoverageData - max(minCoverageData, lastCoverageData); + fixedCoverage -= + FIXED_COVERAGE_ZERO_UINT; // Only apply the zero bias once. + PLS_ATOMIC_ADD(coverageAtomicBuffer, + fixedCoverage); // Count coverage. + } + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef @ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + coverageCount, + fragColorOut +#ifdef @ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef @ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_PATH + +#ifdef @DRAW_INTERIOR_TRIANGLES +ATOMIC_PLS_MAIN(@drawFragmentMain) +{ + VARYING_UNPACK(v_windingWeight, half); + VARYING_UNPACK(v_pathID, ushort); + + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + + // Update coverageAtomicBuffer with the coverage weight of the current + // triangle. This does not need to be atomic since interior triangles don't + // overlap. + int coverageDeltaFixed = int(v_windingWeight * FIXED_COVERAGE_FACTOR); + uint currPathCoverageData = + lastPathID == v_pathID + ? lastCoverageData + : (make_uint(v_pathID) << 16) + FIXED_COVERAGE_ZERO_UINT; + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, + currPathCoverageData + uint(coverageDeltaFixed)); + + if (lastPathID == v_pathID) + { + // This is not the first fragment of the current path to touch this + // pixel. We already resolved the previous path, so just move on. + discard; + } + + // We crossed into a new path! Resolve the previous path now that we know + // its exact coverage. + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef @ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef @ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef @ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + EMIT_ATOMIC_PLS +} +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef @DRAW_IMAGE +ATOMIC_PLS_MAIN_WITH_IMAGE_UNIFORMS(@drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef @DRAW_IMAGE_RECT + VARYING_UNPACK(v_edgeCoverage, half); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + // Start by finding the image color. We have to do this immediately instead + // of allowing it to get resolved later like other draws because the + // @imageTexture binding is liable to change, and furthermore in the case of + // imageMeshes, we can't calculate UV coordinates based on fragment + // position. + half4 imageColor = TEXTURE_SAMPLE(@imageTexture, imageSampler, v_texCoord); + half imageCoverage = 1.; +#ifdef @DRAW_IMAGE_RECT + imageCoverage = min(v_edgeCoverage, imageCoverage); +#endif +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + imageCoverage = clamp(clipRectCoverage, make_half(.0), imageCoverage); + } +#endif + + // Resolve the previous path. + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half lastCoverageCount = from_fixed(lastCoverageData & 0xffffu); + half4 fragColorOut; +#ifdef @ENABLE_CLIPPING + CLIP_VALUE_TYPE fragClipOut = MAKE_NON_UPDATING_CLIP_VALUE; +#endif + // TODO: consider not resolving the prior paint if we're solid and the prior + // paint is not a clip update: (imageColor.a == 1. && + // imageDrawUniforms.blendMode == + // BLEND_SRC_OVER && priorPaintType != + // CLIP_UPDATE_PAINT_TYPE) + resolve_paint(lastPathID, + lastCoverageCount, + fragColorOut +#ifdef @ENABLE_CLIPPING + , + fragClipOut +#endif + FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); + +#ifdef @PLS_BLEND_SRC_OVER + // Image draws use a premultiplied blend state, but resolve_paint() did not + // premultiply fragColorOut. Multiply fragColorOut by alpha now. + fragColorOut.rgb *= fragColorOut.a; +#endif + + // Clip the image after resolving the previous path, since that can affect + // the clip buffer. +#ifdef @ENABLE_CLIPPING // TODO! ENABLE_IMAGE_CLIPPING in addition to + // ENABLE_CLIPPING? + if (@ENABLE_CLIPPING && imageDrawUniforms.clipID != 0u) + { + CLIP_VALUE_TYPE clipData = HAS_UPDATED_CLIP_VALUE(fragClipOut) + ? fragClipOut + : PLS_LOAD_CLIP_TYPE(clipBuffer); + apply_clip(imageDrawUniforms.clipID, clipData, imageCoverage); + } +#endif // ENABLE_CLIPPING + imageColor.a *= + imageCoverage * cast_float_to_half(imageDrawUniforms.opacity); + + // Prepare imageColor for premultiplied src-over blending. +#if !defined(@FIXED_FUNCTION_COLOR_OUTPUT) && defined(@ENABLE_ADVANCED_BLEND) + if (@ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + // Calculate what dstColor will be after applying fragColorOut. + half4 dstColor = + PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.a) + fragColorOut; + // Calculate the imageColor to emit *BEFORE* src-over blending, such + // that the post-src-over-blend result is equivalent to the blendMode. + imageColor.rgb = advanced_color_blend_pre_src_over( + imageColor.rgb, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } +#endif // !FIXED_FUNCTION_COLOR_OUTPUT && ENABLE_ADVANCED_BLEND + + // Image draws use a premultiplied blend state; premultiply alpha here in + // the shader. + imageColor.rgb *= imageColor.a; + + // Leverage the property that premultiplied src-over blending is associative + // and blend the imageColor and fragColorOut before passing them on to the + // blending pipeline. + fragColorOut = fragColorOut * (1. - imageColor.a) + imageColor; + +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif +#ifdef @ENABLE_CLIPPING + emit_pls_clip(fragClipOut PLS_CONTEXT_UNPACK); +#endif + + // Write out a coverage value of "zero at pathID=0" so a future resolve + // attempt doesn't affect this pixel. + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, FIXED_COVERAGE_ZERO_UINT); + + EMIT_ATOMIC_PLS +} +#endif // DRAW_IMAGE + +#ifdef @INITIALIZE_PLS + +ATOMIC_PLS_MAIN(@drawFragmentMain) +{ +#ifdef @STORE_COLOR_CLEAR + PLS_STORE4F(colorBuffer, unpackUnorm4x8(uniforms.colorClearValue)); +#endif +#ifdef @SWIZZLE_COLOR_BGRA_TO_RGBA + half4 color = PLS_LOAD4F(colorBuffer); + PLS_STORE4F(colorBuffer, color.bgra); +#endif + PLS_STOREUI_ATOMIC(coverageAtomicBuffer, uniforms.coverageClearValue); +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING) + { + PLS_STOREUI(clipBuffer, 0u); + } +#endif +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT + discard; +#endif + EMIT_ATOMIC_PLS +} + +#endif // INITIALIZE_PLS + +#ifdef @RESOLVE_PLS + +#ifdef @COALESCED_PLS_RESOLVE_AND_TRANSFER +PLS_FRAG_COLOR_MAIN(@drawFragmentMain) +#else +ATOMIC_PLS_MAIN(@drawFragmentMain) +#endif +{ + uint lastCoverageData = PLS_LOADUI_ATOMIC(coverageAtomicBuffer); + half coverageCount = from_fixed(lastCoverageData & 0xffffu); + ushort lastPathID = cast_uint_to_ushort(lastCoverageData >> 16); + half4 fragColorOut; + resolve_paint(lastPathID, + coverageCount, + fragColorOut FRAGMENT_CONTEXT_UNPACK PLS_CONTEXT_UNPACK); +#ifdef @COALESCED_PLS_RESOLVE_AND_TRANSFER + _fragColor = PLS_LOAD4F(colorBuffer) * (1. - fragColorOut.a) + fragColorOut; + EMIT_PLS_AND_FRAG_COLOR +#else +#ifdef @FIXED_FUNCTION_COLOR_OUTPUT + _fragColor = fragColorOut; +#else + emit_pls_color(fragColorOut PLS_CONTEXT_UNPACK); +#endif + EMIT_ATOMIC_PLS +#endif // COALESCED_PLS_RESOLVE_AND_TRANSFER +} +#endif // RESOLVE_PLS +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/blit_texture_as_draw.glsl b/defold-rive/include/shaders/blit_texture_as_draw.glsl new file mode 100644 index 00000000..846b0710 --- /dev/null +++ b/defold-rive/include/shaders/blit_texture_as_draw.glsl @@ -0,0 +1,35 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(@blitVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Fill the entire screen. The caller will use a scissor test to control the + // bounds being drawn. + float2 coord; + coord.x = (_vertexID & 1) == 0 ? -1. : 1.; + coord.y = (_vertexID & 2) == 0 ? -1. : 1.; + float4 pos = float4(coord, 0, 1); + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, 0, @blitTextureSource); +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, @blitFragmentMain) +{ + half4 srcColor = + TEXEL_FETCH(@blitTextureSource, int2(floor(_fragCoord.xy))); + EMIT_FRAG_DATA(srcColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/color_ramp.glsl b/defold-rive/include/shaders/color_ramp.glsl new file mode 100644 index 00000000..040f5eae --- /dev/null +++ b/defold-rive/include/shaders/color_ramp.glsl @@ -0,0 +1,103 @@ +/* + * Copyright 2022 Rive + */ + +// This shader draws horizontal color ramps into a gradient texture, which will +// later be sampled by the renderer for drawing gradients. + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(0, uint, @a_spanX); +ATTR(1, uint, @a_yWithFlags); +ATTR(2, uint, @a_color0); +ATTR(3, uint, @a_color1); +#else +ATTR(0, uint4, @a_span); // [spanX, y, color0, color1] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half4, v_rampColor); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +half4 unpackColorInt(uint color) +{ + return cast_uint4_to_half4( + (uint4(color, color, color, color) >> uint4(16, 8, 0, 24)) & + 0xffu) / + 255.; +} + +VERTEX_MAIN(@colorRampVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, @a_spanX, uint); + ATTR_UNPACK(_instanceID, attrs, @a_yWithFlags, uint); + ATTR_UNPACK(_instanceID, attrs, @a_color0, uint); + ATTR_UNPACK(_instanceID, attrs, @a_color1, uint); + uint4 @a_span = uint4(@a_spanX, @a_yWithFlags, @a_color0, @a_color1); +#else + ATTR_UNPACK(_instanceID, attrs, @a_span, uint4); +#endif + VARYING_INIT(v_rampColor, half4); + + int columnWithinSpan = _vertexID >> 1; + float x = + float(columnWithinSpan <= 1 ? @a_span.x & 0xffffu : @a_span.x >> 16) / + 65536.; + float offsetY = (_vertexID & 1) == 0 ? .0 : 1.; + if (uniforms.gradInverseViewportY < .0) + { + // Swap the top and bottom vertices to make sure we always emit + // clockwise triangles. vertices. + offsetY = 1. - offsetY; + } + uint yWithFlags = @a_span.y; + float y = float(yWithFlags & ~GRAD_SPAN_FLAGS_MASK) + offsetY; + if ((yWithFlags & GRAD_SPAN_FLAG_LEFT_BORDER) != 0u && + columnWithinSpan == 0) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = .0; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x -= GRAD_TEXTURE_INVERSE_WIDTH; + } + if ((yWithFlags & GRAD_SPAN_FLAG_RIGHT_BORDER) != 0u && + columnWithinSpan == 3) + { + if ((yWithFlags & GRAD_SPAN_FLAG_COMPLEX_BORDER) != 0u) + x = 1.; // Borders of complex gradients go to the far edge. + else + // Simple gradients are empty with 1px borders on either side. + x += GRAD_TEXTURE_INVERSE_WIDTH; + } + v_rampColor = unpackColorInt(columnWithinSpan <= 1 ? @a_span.z : @a_span.w); + + float4 pos; + pos.x = x * 2. - 1.; + pos.y = + y * uniforms.gradInverseViewportY - sign(uniforms.gradInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_rampColor); + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_DATA_MAIN(half4, @colorRampFragmentMain) +{ + VARYING_UNPACK(v_rampColor, half4); + EMIT_FRAG_DATA(v_rampColor); +} +#endif diff --git a/defold-rive/include/shaders/common.glsl b/defold-rive/include/shaders/common.glsl new file mode 100644 index 00000000..c94c26c1 --- /dev/null +++ b/defold-rive/include/shaders/common.glsl @@ -0,0 +1,281 @@ +/* + * Copyright 2022 Rive + */ + +// Common functions shared by multiple shaders. +#define PI float(3.141592653589793238) + +#ifndef @RENDER_MODE_MSAA +#define AA_RADIUS float(.5) +#else +#define AA_RADIUS float(.0) +#endif + +#ifdef GLSL +// GLSL has different semantics around precision. Normalize type conversions +// across languages with "cast_*_to_*()" methods. +INLINE half cast_float_to_half(float x) { return x; } +INLINE half cast_uint_to_half(uint x) { return float(x); } +INLINE half cast_ushort_to_half(ushort x) { return float(x); } +INLINE half cast_int_to_half(int x) { return float(x); } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return vec4(xyzw); } +INLINE ushort cast_half_to_ushort(half x) { return uint(x); } +INLINE ushort cast_uint_to_ushort(uint x) { return x; } +#else +INLINE half cast_float_to_half(float x) { return (half)x; } +INLINE half cast_uint_to_half(uint x) { return (half)x; } +INLINE half cast_ushort_to_half(ushort x) { return (half)x; } +INLINE half cast_int_to_half(int x) { return (half)x; } +INLINE half4 cast_float4_to_half4(float4 xyzw) { return (half4)xyzw; } +INLINE half2 cast_float2_to_half2(float2 xy) { return (half2)xy; } +INLINE half4 cast_uint4_to_half4(uint4 xyzw) { return (half4)xyzw; } +INLINE ushort cast_half_to_ushort(half x) { return (ushort)x; } +INLINE ushort cast_uint_to_ushort(uint x) { return (ushort)x; } +#endif + +INLINE half make_half(half x) { return x; } + +INLINE half2 make_half2(half2 xy) { return xy; } + +INLINE half2 make_half2(half x, half y) +{ + half2 ret; + ret.x = x, ret.y = y; + return ret; +} + +INLINE half2 make_half2(half x) +{ + half2 ret; + ret.x = x, ret.y = x; + return ret; +} + +INLINE half3 make_half3(half x, half y, half z) +{ + half3 ret; + ret.x = x, ret.y = y, ret.z = z; + return ret; +} + +INLINE half3 make_half3(half x) +{ + half3 ret; + ret.x = x, ret.y = x, ret.z = x; + return ret; +} + +INLINE half4 make_half4(half x, half y, half z, half w) +{ + half4 ret; + ret.x = x, ret.y = y, ret.z = z, ret.w = w; + return ret; +} + +INLINE half4 make_half4(half3 xyz, half w) +{ + half4 ret; + ret.xyz = xyz; + ret.w = w; + return ret; +} + +INLINE half4 make_half4(half x) +{ + half4 ret; + ret.x = x, ret.y = x, ret.z = x, ret.w = x; + return ret; +} + +INLINE half3x3 make_half3x3(half3 a, half3 b, half3 c) +{ + half3x3 ret; + ret[0] = a; + ret[1] = b; + ret[2] = c; + return ret; +} + +INLINE half2x3 make_half2x3(half3 a, half3 b) +{ + half2x3 ret; + ret[0] = a; + ret[1] = b; + return ret; +} + +INLINE float2x2 make_float2x2(float4 x) { return float2x2(x.xy, x.zw); } + +INLINE uint make_uint(ushort x) { return x; } + +INLINE uint contour_data_idx(uint contourIDWithFlags) +{ + return (contourIDWithFlags & CONTOUR_ID_MASK) - 1u; +} + +INLINE float2 unchecked_mix(float2 a, float2 b, float t) +{ + return (b - a) * t + a; +} + +INLINE half id_bits_to_f16(uint idBits, uint pathIDGranularity) +{ + return idBits == 0u + ? .0 + : unpackHalf2x16((idBits + MAX_DENORM_F16) * pathIDGranularity) + .r; +} + +INLINE float atan2(float2 v) +{ + float bias = .0; + if (abs(v.x) > abs(v.y)) + { + v = float2(v.y, -v.x); + bias = PI / 2.; + } + return atan(v.y, v.x) + bias; +} + +INLINE half4 premultiply(half4 color) +{ + return make_half4(color.rgb * color.a, color.a); +} + +INLINE half4 unmultiply(half4 color) +{ + if (.0 < color.a && color.a < 1.) + { + color.rgb *= 1. / color.a; + // Since multiplying by the reciprocal isn't exact, and to handle + // invalid premultiplied data, take extra steps to ensure + // color * 1/alpha == 1 when color >= alpha. + color.rgb = mix(color.rgb, + make_half3(1.), + greaterThan(color.rgb, make_half3(254.5 / 255.))); + } + return color; +} + +INLINE half min_value(half4 min4) +{ + half2 min2 = min(min4.xy, min4.zw); + half min1 = min(min2.x, min2.y); + return min1; +} + +INLINE float manhattan_width(float2 x) { return abs(x.x) + abs(x.y); } + +#ifndef $UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(FLUSH_UNIFORM_BUFFER_IDX, @FlushUniforms) +float gradInverseViewportY; +float tessInverseViewportY; +float renderTargetInverseViewportX; +float renderTargetInverseViewportY; +uint renderTargetWidth; +uint renderTargetHeight; +uint colorClearValue; // Only used if clears are implemented as draws. +uint coverageClearValue; // Only used if clears are implemented as draws. +int4 renderTargetUpdateBounds; // drawBounds, or renderTargetBounds if there is + // a clear. (LTRB.) +uint coverageBufferPrefix; +uint pathIDGranularity; // Spacing between adjacent path IDs (1 if IEEE + // compliant). +float vertexDiscardValue; +UNIFORM_BLOCK_END(uniforms) +#endif + +#ifdef @VERTEX + +#define RENDER_TARGET_COORD_TO_CLIP_COORD(COORD) \ + float4((COORD).x* uniforms.renderTargetInverseViewportX - 1., \ + (COORD).y * -uniforms.renderTargetInverseViewportY + \ + sign(uniforms.renderTargetInverseViewportY), \ + .0, \ + 1.) + +#ifndef @RENDER_MODE_MSAA +// Calculates the Manhattan distance in pixels from the given pixelPosition, to +// the point at each edge of the clipRect where coverage = 0. +// +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +INLINE float4 find_clip_rect_coverage_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + float2 clipRectAAWidth = + abs(clipRectInverseMatrix[0]) + abs(clipRectInverseMatrix[1]); + if (clipRectAAWidth.x != .0 && clipRectAAWidth.y != .0) + { + float2 r = 1. / clipRectAAWidth; + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate; + // When the center of a pixel falls exactly on an edge, coverage should + // be .5. + const float coverageWhenDistanceIsZero = .5; + return float4(clipRectCoord, -clipRectCoord) * r.xyxy + r.xyxy + + coverageWhenDistanceIsZero; + } + else + { + // The caller gave us a singular clipRectInverseMatrix. This is a + // special case where we are expected to use tx and ty as uniform + // coverage. + return clipRectInverseTranslate.xyxy; + } +} + +#else // RENDER_MODE_MSAA + +INLINE float normalize_z_index(uint zIndex) +{ + return 1. - float(zIndex) * (2. / 32768.); +} + +#ifdef @ENABLE_CLIP_RECT +INLINE void set_clip_rect_plane_distances(float2x2 clipRectInverseMatrix, + float2 clipRectInverseTranslate, + float2 pixelPosition) +{ + if (clipRectInverseMatrix != float2x2(0)) + { + float2 clipRectCoord = MUL(clipRectInverseMatrix, pixelPosition) + + clipRectInverseTranslate.xy; + gl_ClipDistance[0] = clipRectCoord.x + 1.; + gl_ClipDistance[1] = clipRectCoord.y + 1.; + gl_ClipDistance[2] = 1. - clipRectCoord.x; + gl_ClipDistance[3] = 1. - clipRectCoord.y; + } + else + { + // "clipRectInverseMatrix == 0" is a special case: + // "clipRectInverseTranslate.x == 1" => all in. + // "clipRectInverseTranslate.x == 0" => all out. + gl_ClipDistance[0] = gl_ClipDistance[1] = gl_ClipDistance[2] = + gl_ClipDistance[3] = clipRectInverseTranslate.x - .5; + } +} +#endif // ENABLE_CLIP_RECT +#endif // RENDER_MODE_MSAA +#endif // VERTEX + +#ifdef @DRAW_IMAGE +#ifndef $UNIFORM_DEFINITIONS_AUTO_GENERATED +UNIFORM_BLOCK_BEGIN(IMAGE_DRAW_UNIFORM_BUFFER_IDX, @ImageDrawUniforms) +float4 viewMatrix; +float2 translate; +float opacity; +float padding; +// clipRectInverseMatrix transforms from pixel coordinates to a space where the +// clipRect is the normalized rectangle: [-1, -1, 1, 1]. +float4 clipRectInverseMatrix; +float2 clipRectInverseTranslate; +uint clipID; +uint blendMode; +uint zIndex; +UNIFORM_BLOCK_END(imageDrawUniforms) +#endif +#endif diff --git a/defold-rive/include/shaders/constants.glsl b/defold-rive/include/shaders/constants.glsl new file mode 100644 index 00000000..494da11d --- /dev/null +++ b/defold-rive/include/shaders/constants.glsl @@ -0,0 +1,188 @@ +/* + * Copyright 2022 Rive + */ + +#define TESS_TEXTURE_WIDTH float(2048) +#define TESS_TEXTURE_WIDTH_LOG2 11 + +#define GRAD_TEXTURE_WIDTH float(512) +#define GRAD_TEXTURE_INVERSE_WIDTH float(0.001953125) + +// Width to use for a texture that emulates a storage buffer. +// +// Minimize width since the texture needs to be updated in entire rows from the +// resource buffer. Since these only serve paths and contours, both of those are +// limited to 16-bit indices, 2048 is the min specified texture size in ES3, and +// no path buffer uses more than 4 texels, we can safely use a width of 128. +#define STORAGE_TEXTURE_WIDTH 128 +#define STORAGE_TEXTURE_SHIFT_Y 7 +#define STORAGE_TEXTURE_MASK_X 0x7fu + +// Flags that state whether/how we need to render solid-color borders to the +// left and/or right side of a GradientSpan. (Borders of complex gradients +// stretch all the way to the left/right edges of the texture, whereas borders +// of simple gradients just need to stretch 1px to the left/right of the +// span.) +#define GRAD_SPAN_FLAG_LEFT_BORDER 0x80000000u +#define GRAD_SPAN_FLAG_RIGHT_BORDER 0x40000000u +#define GRAD_SPAN_FLAG_COMPLEX_BORDER 0x20000000u +#define GRAD_SPAN_FLAGS_MASK \ + (GRAD_SPAN_FLAG_LEFT_BORDER | GRAD_SPAN_FLAG_RIGHT_BORDER | \ + GRAD_SPAN_FLAG_COMPLEX_BORDER) + +// Tells shaders that a cubic should actually be drawn as the single, non-AA +// triangle: [p0, p1, p3]. This is used to squeeze in more rare triangles, like +// "grout" triangles from self intersections on interior triangulation, where it +// wouldn't be worth it to put them in their own dedicated draw call. +#define RETROFITTED_TRIANGLE_CONTOUR_FLAG (1u << 31u) + +// Tells the tessellation shader to re-run Wang's formula on the given curve, +// figure out how many segments it actually needs, and make any excess segments +// degenerate by co-locating their vertices at T=0. (Used on the "outerCurve" +// patches that are drawn with interior triangulations.) +#define CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG (1u << 30u) + +// Flags for specifying the join type. +#define JOIN_TYPE_MASK (3u << 28u) +#define MITER_CLIP_JOIN_CONTOUR_FLAG (3u << 28u) +#define MITER_REVERT_JOIN_CONTOUR_FLAG (2u << 28u) +#define BEVEL_JOIN_CONTOUR_FLAG (1u << 28u) + +// When a join is being used to emulate a stroke cap, the shader emits +// additional vertices at T=0 and T=1 for round joins, and changes the miter +// limit to 1 for miter-clip joins. +#define EMULATED_STROKE_CAP_CONTOUR_FLAG (1u << 27u) + +// Flip the sign on interpolated fragment coverage for fills. Ignored on +// strokes. This is used when reversing the winding direction of a path. +#define NEGATE_PATH_FILL_COVERAGE_FLAG (1u << 26u) + +// Internal contour flags. +#define MIRRORED_CONTOUR_CONTOUR_FLAG (1u << 25u) +#define JOIN_TANGENT_0_CONTOUR_FLAG (1u << 24u) +#define JOIN_TANGENT_INNER_CONTOUR_FLAG (1u << 23u) +#define LEFT_JOIN_CONTOUR_FLAG (1u << 22u) +#define RIGHT_JOIN_CONTOUR_FLAG (1u << 21u) +#define CONTOUR_ID_MASK 0xffffu + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Says which part of the patch a vertex belongs to. +#define STROKE_VERTEX 0 +#define FAN_VERTEX 1 +#define FAN_MIDPOINT_VERTEX 2 + +// Mirrors pls::PaintType. +#define CLIP_UPDATE_PAINT_TYPE 0u +#define SOLID_COLOR_PAINT_TYPE 1u +#define LINEAR_GRADIENT_PAINT_TYPE 2u +#define RADIAL_GRADIENT_PAINT_TYPE 3u +#define IMAGE_PAINT_TYPE 4u + +// Paint flags, found in the x-component value of @paintBuffer. +#define PAINT_FLAG_NON_ZERO_FILL 0x100u +#define PAINT_FLAG_EVEN_ODD_FILL 0x200u +#define PAINT_FLAG_HAS_CLIP_RECT 0x400u + +// PLS draw resources are either updated per flush or per draw. They go into set +// 0 or set 1, depending on how often they are updated. +#define PER_FLUSH_BINDINGS_SET 0 +#define PER_DRAW_BINDINGS_SET 1 + +// Index at which we access each resource. +#define TESS_VERTEX_TEXTURE_IDX 0 +#define GRAD_TEXTURE_IDX 1 +#define IMAGE_TEXTURE_IDX 2 +#define PATH_BUFFER_IDX 3 +#define PAINT_BUFFER_IDX 4 +#define PAINT_AUX_BUFFER_IDX 5 +#define CONTOUR_BUFFER_IDX 6 +#define FLUSH_UNIFORM_BUFFER_IDX 7 +#define PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX 8 +#define IMAGE_DRAW_UNIFORM_BUFFER_IDX 9 +// Coverage buffer used in coverageAtomic mode. +#define COVERAGE_BUFFER_IDX 10 +#define DST_COLOR_TEXTURE_IDX 11 +#define DEFAULT_BINDINGS_SET_SIZE 12 + +// Samplers are accessed at the same index as their corresponding texture, so we +// put them in a separate binding set. +#define SAMPLER_BINDINGS_SET 2 + +// PLS textures are accessed at the same index as their PLS planes, so we put +// them in a separate binding set. +#define PLS_TEXTURE_BINDINGS_SET 3 + +#define BINDINGS_SET_COUNT 4 + +// Index of each pixel local storage plane. +#define COLOR_PLANE_IDX 0 +#define CLIP_PLANE_IDX 1 +#define SCRATCH_COLOR_PLANE_IDX 2 +#define COVERAGE_PLANE_IDX 3 + +// acos(1/4), because the miter limit is always 4. +#define MITER_ANGLE_LIMIT float(1.318116071652817965746) + +// Raw bit representation of the largest denormalized fp16 value. We offset all +// (1-based) path IDs by this value in order to avoid denorms, which have been +// empirically unreliable on Android as ID values. +#define MAX_DENORM_F16 1023u + +// Blend modes. Mirrors rive::BlendMode, but 0-based and contiguous for tighter +// packing. +#define BLEND_SRC_OVER 0u +#define BLEND_MODE_SCREEN 1u +#define BLEND_MODE_OVERLAY 2u +#define BLEND_MODE_DARKEN 3u +#define BLEND_MODE_LIGHTEN 4u +#define BLEND_MODE_COLORDODGE 5u +#define BLEND_MODE_COLORBURN 6u +#define BLEND_MODE_HARDLIGHT 7u +#define BLEND_MODE_SOFTLIGHT 8u +#define BLEND_MODE_DIFFERENCE 9u +#define BLEND_MODE_EXCLUSION 10u +#define BLEND_MODE_MULTIPLY 11u +#define BLEND_MODE_HUE 12u +#define BLEND_MODE_SATURATION 13u +#define BLEND_MODE_COLOR 14u +#define BLEND_MODE_LUMINOSITY 15u + +// Fixed-point coverage values for atomic mode. +// Atomic mode uses 7:9 fixed point, so the winding number breaks if a shape has +// more than 64 levels of self overlap in either winding direction at any point. +#define FIXED_COVERAGE_FACTOR float(512) +#define FIXED_COVERAGE_INVERSE_FACTOR float(0.001953125) +#define FIXED_COVERAGE_ZERO float(1 << 15) +#define FIXED_COVERAGE_ZERO_UINT (1u << 15) +#define FIXED_COVERAGE_ONE (FIXED_COVERAGE_FACTOR + FIXED_COVERAGE_ZERO) + +// Fixed-point coverage values for clockwiseAtomic mode. +// clockwiseAtomic mode uses 5:8 fixed point, so the winding number breaks if a +// shape has more than 16 levels of self overlap in either winding direction at +// any point. +#define CLOCKWISE_COVERAGE_BIT_COUNT 15u +#define CLOCKWISE_COVERAGE_MASK (0x7fffu) +#define CLOCKWISE_FILL_ZERO_VALUE (1u << 14) + +// Binding points for storage buffers. +#define PAINT_STORAGE_BUFFER_IDX 8 +#define PAINT_MATRIX_STORAGE_BUFFER_IDX 9 +#define PAINT_TRANSLATE_STORAGE_BUFFER_IDX 10 +#define CLIPRECT_MATRIX_STORAGE_BUFFER_IDX 11 +#define CLIPRECT_TRANSLATE_STORAGE_BUFFER_IDX 12 + +// Indices for SPIRV specialization constants (used in lieu of #defines in +// Vulkan.) +#define CLIPPING_SPECIALIZATION_IDX 0 +#define CLIP_RECT_SPECIALIZATION_IDX 1 +#define ADVANCED_BLEND_SPECIALIZATION_IDX 2 +#define EVEN_ODD_SPECIALIZATION_IDX 3 +#define NESTED_CLIPPING_SPECIALIZATION_IDX 4 +#define HSL_BLEND_MODES_SPECIALIZATION_IDX 5 +#define CLOCKWISE_FILL_SPECIALIZATION_IDX 6 +#define BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX 7 +#define SPECIALIZATION_COUNT 8 diff --git a/defold-rive/include/shaders/draw_clockwise_image_mesh.glsl b/defold-rive/include/shaders/draw_clockwise_image_mesh.glsl new file mode 100644 index 00000000..cc12c5e4 --- /dev/null +++ b/defold-rive/include/shaders/draw_clockwise_image_mesh.glsl @@ -0,0 +1,65 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, @a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, @a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(@drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, @a_position, float2); + ATTR_UNPACK(_vertexID, uv, @a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), @a_position) + + imageDrawUniforms.translate; + v_texCoord = @a_texCoord; + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_texCoord); + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, @imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +FRAG_DATA_MAIN(half4, @drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 meshColor = TEXTURE_SAMPLE(@imageTexture, imageSampler, v_texCoord); + meshColor.a *= imageDrawUniforms.opacity; + + EMIT_FRAG_DATA(meshColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/draw_clockwise_path.glsl b/defold-rive/include/shaders/draw_clockwise_path.glsl new file mode 100644 index 00000000..eb08f832 --- /dev/null +++ b/defold-rive/include/shaders/draw_clockwise_path.glsl @@ -0,0 +1,380 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef @DRAW_PATH +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +// [localVertexID, outset, fillCoverage, vertexType] +ATTR(0, float4, @a_patchVertexData); +ATTR(1, float4, @a_mirroredVertexData); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, half2, v_edgeDistance); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, @a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, @a_mirroredVertexData, float4); + + VARYING_INIT(v_edgeDistance, half2); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + float4 pos; + uint pathID; + float2 vertexPosition; + if (unpack_tessellated_path_vertex(@a_patchVertexData, + @a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition, + v_edgeDistance VERTEX_CONTEXT_UNPACK)) + { + uint4 coverageData = + STORAGE_BUFFER_LOAD4(@pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_edgeDistance); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_PATH + +#ifdef @DRAW_INTERIOR_TRIANGLES +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, @a_triangleVertex); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +@OPTIONALLY_FLAT VARYING(0, half, v_windingWeight); +FLAT VARYING(1, ushort, v_pathID); +FLAT VARYING(2, uint2, v_coveragePlacement); +VARYING(3, float2, v_coverageCoord); +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + ATTR_UNPACK(_vertexID, attrs, @a_triangleVertex, float3); + + VARYING_INIT(v_windingWeight, half); + VARYING_INIT(v_pathID, ushort); + VARYING_INIT(v_coveragePlacement, uint2); + VARYING_INIT(v_coverageCoord, float2); + + uint pathID; + float2 vertexPosition = + unpack_interior_triangle_vertex(@a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); + uint4 coverageData = STORAGE_BUFFER_LOAD4(@pathBuffer, pathID * 4u + 2u); + v_pathID = pathID; + v_coveragePlacement = coverageData.xy; + v_coverageCoord = vertexPosition + uintBitsToFloat(coverageData.zw); + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); + + VARYING_PACK(v_windingWeight); + VARYING_PACK(v_pathID); + VARYING_PACK(v_coveragePlacement); + VARYING_PACK(v_coverageCoord); + EMIT_VERTEX(pos); +} +#endif // VERTEX +#endif // DRAW_INTERIOR_TRIANGLES + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, @gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, @imageTexture); +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, @paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, @paintAuxBuffer); +STORAGE_BUFFER_U32_ATOMIC(COVERAGE_BUFFER_IDX, CoverageBuffer, coverageBuffer); +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef @BORROWED_COVERAGE_PREPASS +INLINE void apply_borrowed_coverage(half borrowedCoverage, uint coverageIndex) +{ + // Try to apply borrowedCoverage, assuming the existing coverage value + // is zero. + uint borrowedCoverageFixed = uint(abs(borrowedCoverage) * 255.); + uint targetCoverageValue = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE - borrowedCoverageFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverageValue); + if (coverageBeforeMax >= uniforms.coverageBufferPrefix) + { + // Coverage was not zero. Undo the atomicMax and then subtract + // borrowedCoverageFixed this time. + uint undoAtomicMax = + coverageBeforeMax - max(coverageBeforeMax, targetCoverageValue); + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + undoAtomicMax - borrowedCoverageFixed); + } +} +#endif + +INLINE void apply_stroke_coverage(INOUT(float) paintAlpha, + half fragCoverage, + uint coverageIndex) +{ + if (min(paintAlpha, fragCoverage) >= 1.) + { + // Solid stroke pixels don't need to work out coverage at all. We can + // just blast them out without ever touching the coverage buffer. + return; + } + + half X; + uint fragCoverageFixed = uint(abs(fragCoverage) * 255.); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX( + coverageBuffer, + coverageIndex, + uniforms.coverageBufferPrefix | fragCoverageFixed); + if (coverageBeforeMax < uniforms.coverageBufferPrefix) + { + // This is the first fragment of the stroke to touch this pixel. Just + // multiply in our coverage and write it out. + X = fragCoverage; + } + else + { + // This pixel has been touched previously by a fragment in the stroke. + // Multiply in an incremental coverage value that mixes with what's + // already in the framebuffer. + half c1 = cast_uint_to_half(coverageBeforeMax & 0xffu) * (1. / 255.); + half c2 = max(c1, fragCoverage); + X = (c2 - c1) / (1. - c1 * paintAlpha); + } + + paintAlpha *= X; +} + +INLINE void apply_fill_coverage(INOUT(float) paintAlpha, + half fragCoverageRemaining, + uint coverageIndex) +{ + uint coverageInitialValue = + STORAGE_BUFFER_LOAD(coverageBuffer, coverageIndex); + if (min(paintAlpha, fragCoverageRemaining) >= 1. && + (coverageInitialValue < uniforms.coverageBufferPrefix || + coverageInitialValue >= + (uniforms.coverageBufferPrefix | CLOCKWISE_FILL_ZERO_VALUE))) + { + // If we're solid, AND the current coverage at this pixel is >= 0, then + // we can just write out or color without working out coverage any + // further. + return; + } + + half X = .0; // Amount by which to multiply paintAlpha. + uint fragCoverageRemainingFixed = uint(abs(fragCoverageRemaining) * 255.); + if (coverageInitialValue < uniforms.coverageBufferPrefix) + { + // The initial coverage value does not belong to this path. We *might* + // be the first fragment of the path to touch this pixel. Attempt to + // write out our coverage with an atomicMax. + uint targetCoverage = + uniforms.coverageBufferPrefix | + (CLOCKWISE_FILL_ZERO_VALUE + fragCoverageRemainingFixed); + uint coverageBeforeMax = STORAGE_BUFFER_ATOMIC_MAX(coverageBuffer, + coverageIndex, + targetCoverage); + if (coverageBeforeMax <= uniforms.coverageBufferPrefix) + { + // Success! We were the first fragment of the path at this pixel. + X = fragCoverageRemaining; // Just multiply paintAlpha by coverage. +#ifdef @DRAW_INTERIOR_TRIANGLES + X = min(X, 1.); +#endif + fragCoverageRemaining = .0; // We're done. + } + else if (coverageBeforeMax < targetCoverage) + { + // We were not first fragment of the path at this pixel, AND our + // atomicMax had an effect that we now have to account for in + // paintAlpha. Coverage increased from "coverageBeforeMax" to + // "fragCoverageRemaining". + // + // NOTE: because we know coverage was initially zero, and because + // coverage is always positive in this pass, we know + // coverageBeforeMax >= 0. + uint c1Fixed = (coverageBeforeMax & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE; + half c1 = cast_uint_to_half(c1Fixed) * (1. / 255.); + half c2 = fragCoverageRemaining; +#ifdef @DRAW_INTERIOR_TRIANGLES + c2 = min(c2, 1.); +#endif + // Apply the coverage increase from the atomicMax here. The next + // step will apply the remaining increase. + X = (c2 - c1) / (1. - c1 * paintAlpha); + + // We increased coverage by an amount of "fragCoverageRemaining" - + // "coverageBeforeMax". However, we wanted to increase coverage by + // "fragCoverageRemaining". So the remaining amount we still need to + // increase by is "coverageBeforeMax". + fragCoverageRemainingFixed = c1Fixed; + fragCoverageRemaining = c1; + } + } + + if (fragCoverageRemaining > .0) + { + // At this point we know the value in the coverage buffer belongs to + // this path, so we can do a simple atomicAdd. + uint coverageBeforeAdd = + STORAGE_BUFFER_ATOMIC_ADD(coverageBuffer, + coverageIndex, + fragCoverageRemainingFixed); + half c1 = + cast_int_to_half(int((coverageBeforeAdd & CLOCKWISE_COVERAGE_MASK) - + CLOCKWISE_FILL_ZERO_VALUE)) * + (1. / 255.); + half c2 = c1 + fragCoverageRemaining; + c1 = clamp(c1, .0, 1.); + c2 = clamp(c2, .0, 1.); + // Apply the coverage increase from c1 -> c2 that we just did, in + // addition to any coverage that had been applied previously. + half one_minus_c1a = 1. - c1 * paintAlpha; + if (one_minus_c1a <= .0) + discard; + X += (1. - X * paintAlpha) * (c2 - c1) / one_minus_c1a; + } + + paintAlpha *= X; +} + +FRAG_DATA_MAIN(half4, @drawFragmentMain) +{ + VARYING_UNPACK(v_edgeDistance, half2); + VARYING_UNPACK(v_pathID, ushort); + VARYING_UNPACK(v_coveragePlacement, uint2); + VARYING_UNPACK(v_coverageCoord, float2); + + half4 paintColor; + uint pathID = v_pathID; + uint2 paintData = STORAGE_BUFFER_LOAD2(@paintBuffer, pathID); + uint paintType = paintData.x & 0xfu; + if (paintType <= SOLID_COLOR_PAINT_TYPE) // CLIP_UPDATE_PAINT_TYPE or + // SOLID_COLOR_PAINT_TYPE + { + paintColor = unpackUnorm4x8(paintData.y); + } + else // LINEAR_GRADIENT_PAINT_TYPE, + // RADIAL_GRADIENT_PAINT_TYPE, or + // IMAGE_PAINT_TYPE + { + float2x2 M = + make_float2x2(STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u)); + float4 translate = + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(M, _fragCoord) + translate.xy; + if (paintType != IMAGE_PAINT_TYPE) + { + float t = paintType == LINEAR_GRADIENT_PAINT_TYPE + ? /*linear*/ paintCoord.x + : /*radial*/ length(paintCoord); + t = clamp(t, .0, 1.); + float x = t * translate.z + translate.w; + float y = uintBitsToFloat(paintData.y); + paintColor = + TEXTURE_SAMPLE_LOD(@gradTexture, gradSampler, float2(x, y), .0); + } + else + { + float opacity = uintBitsToFloat(paintData.y); + float lod = translate.z; + paintColor = TEXTURE_SAMPLE_LOD(@imageTexture, + imageSampler, + paintCoord, + lod); + paintColor.a *= opacity; + } + } + + if (paintColor.a == .0) + { + discard; + } + + // Swizzle the coverage buffer in a tiled format, starting with 32x32 + // row-major tiles. + uint coverageIndex = v_coveragePlacement.x; + uint coveragePitch = v_coveragePlacement.y; + uint2 coverageCoord = uint2(floor(v_coverageCoord)); + coverageIndex += (coverageCoord.y >> 5) * (coveragePitch << 5) + + (coverageCoord.x >> 5) * (32 << 5); + // Subdivide each main tile into 4x4 column-major tiles. + coverageIndex += ((coverageCoord.x & 0x1f) >> 2) * (32 << 2) + + ((coverageCoord.y & 0x1f) >> 2) * (4 << 2); + // Let the 4x4 tiles be row-major. + coverageIndex += (coverageCoord.y & 0x3) * 4 + (coverageCoord.x & 0x3); + +#ifdef @BORROWED_COVERAGE_PREPASS + if (@BORROWED_COVERAGE_PREPASS) + { +#ifdef @DRAW_INTERIOR_TRIANGLES + half borrowedCoverage = -v_windingWeight; +#else + half borrowedCoverage = max(-v_edgeDistance.x, .0); +#endif + apply_borrowed_coverage(borrowedCoverage, coverageIndex); + discard; + } +#endif // BORROWED_COVERAGE_PREPASS + +#ifndef @DRAW_INTERIOR_TRIANGLES + if (v_edgeDistance.y >= .0) // Is this a stroke? + { + half fragCoverage = + clamp(min(v_edgeDistance.x, v_edgeDistance.y), .0, 1.); + apply_stroke_coverage(paintColor.a, fragCoverage, coverageIndex); + } + else // It's a fill. +#endif // !DRAW_INTERIOR_TRIANGLES + { +#ifdef @DRAW_INTERIOR_TRIANGLES + half fragCoverage = v_windingWeight; +#else + half fragCoverage = clamp(v_edgeDistance.x, .0, 1.); +#endif + apply_fill_coverage(paintColor.a, fragCoverage, coverageIndex); + } + + EMIT_FRAG_DATA(paintColor); +} +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/draw_image_mesh.glsl b/defold-rive/include/shaders/draw_image_mesh.glsl new file mode 100644 index 00000000..d5d98399 --- /dev/null +++ b/defold-rive/include/shaders/draw_image_mesh.glsl @@ -0,0 +1,203 @@ +/* + * Copyright 2023 Rive + */ + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(PositionAttr) +ATTR(0, float2, @a_position); +ATTR_BLOCK_END + +ATTR_BLOCK_BEGIN(UVAttr) +ATTR(1, float2, @a_texCoord); +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float2, v_texCoord); +#ifdef @ENABLE_CLIPPING +@OPTIONALLY_FLAT VARYING(1, half, v_clipID); +#endif +#ifdef @ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(2, float4, v_clipRect); +#endif +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +IMAGE_MESH_VERTEX_MAIN(@drawVertexMain, + PositionAttr, + position, + UVAttr, + uv, + _vertexID) +{ + ATTR_UNPACK(_vertexID, position, @a_position, float2); + ATTR_UNPACK(_vertexID, uv, @a_texCoord, float2); + + VARYING_INIT(v_texCoord, float2); +#ifdef @ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif + + float2 vertexPosition = + MUL(make_float2x2(imageDrawUniforms.viewMatrix), @a_position) + + imageDrawUniforms.translate; + v_texCoord = @a_texCoord; +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING) + { + v_clipID = id_bits_to_f16(imageDrawUniforms.clipID, + uniforms.pathIDGranularity); + } +#endif +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { +#ifndef @RENDER_MODE_MSAA + v_clipRect = find_clip_rect_coverage_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances( + make_float2x2(imageDrawUniforms.clipRectInverseMatrix), + imageDrawUniforms.clipRectInverseTranslate, + vertexPosition); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef @RENDER_MODE_MSAA + pos.z = normalize_z_index(imageDrawUniforms.zIndex); +#endif + + VARYING_PACK(v_texCoord); +#ifdef @ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, @imageTexture); +#ifdef @RENDER_MODE_MSAA +#ifdef @ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, @dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +#ifndef @RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN_WITH_IMAGE_UNIFORMS(@drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); +#ifdef @ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif + + half4 color = TEXTURE_SAMPLE(@imageTexture, imageSampler, v_texCoord); + half coverage = 1.; + +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif + + PLS_INTERLOCK_BEGIN; + +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING && v_clipID != .0) + { + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.g; + half clipCoverage = + clipContentID == v_clipID ? clipData.r : make_half(.0); + coverage = min(coverage, clipCoverage); + } +#endif + + // Blend with the framebuffer color. + color.a *= imageDrawUniforms.opacity * coverage; + half4 dstColor = PLS_LOAD4F(colorBuffer); +#ifdef @ENABLE_ADVANCED_BLEND + if (@ENABLE_ADVANCED_BLEND && imageDrawUniforms.blendMode != BLEND_SRC_OVER) + { + color = + advanced_blend(color, + unmultiply(dstColor), + cast_uint_to_ushort(imageDrawUniforms.blendMode)); + } + else +#endif + { + color.rgb *= color.a; + color = color + dstColor * (1. - color.a); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + PLS_PRESERVE_UI(coverageCountBuffer); + + PLS_INTERLOCK_END; + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, @drawFragmentMain) +{ + VARYING_UNPACK(v_texCoord, float2); + + half4 color = TEXTURE_SAMPLE(@imageTexture, imageSampler, v_texCoord); + color.a *= imageDrawUniforms.opacity; + +#ifdef @ENABLE_ADVANCED_BLEND + if (@ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(@dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + imageDrawUniforms.blendMode); + } + else +#endif // !ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + + EMIT_FRAG_DATA(color); +} + +#endif // RENDER_MODE_MSAA +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/draw_path.glsl b/defold-rive/include/shaders/draw_path.glsl new file mode 100644 index 00000000..29eab7b5 --- /dev/null +++ b/defold-rive/include/shaders/draw_path.glsl @@ -0,0 +1,559 @@ +/* + * Copyright 2022 Rive + */ + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +#ifdef @DRAW_INTERIOR_TRIANGLES +ATTR(0, packed_float3, @a_triangleVertex); +#else +ATTR(0, + float4, + @a_patchVertexData); // [localVertexID, outset, fillCoverage, vertexType] +ATTR(1, float4, @a_mirroredVertexData); +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_paint); +#ifndef @RENDER_MODE_MSAA +#ifdef @DRAW_INTERIOR_TRIANGLES +@OPTIONALLY_FLAT VARYING(1, half, v_windingWeight); +#else +NO_PERSPECTIVE VARYING(2, half2, v_edgeDistance); +#endif +@OPTIONALLY_FLAT VARYING(3, half, v_pathID); +#ifdef @ENABLE_CLIPPING +@OPTIONALLY_FLAT VARYING(4, half, v_clipID); +#endif +#ifdef @ENABLE_CLIP_RECT +NO_PERSPECTIVE VARYING(5, float4, v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef @ENABLE_ADVANCED_BLEND +@OPTIONALLY_FLAT VARYING(6, half, v_blendMode); +#endif +VARYING_BLOCK_END + +#ifdef @VERTEX +VERTEX_MAIN(@drawVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ +#ifdef @DRAW_INTERIOR_TRIANGLES + ATTR_UNPACK(_vertexID, attrs, @a_triangleVertex, float3); +#else + ATTR_UNPACK(_vertexID, attrs, @a_patchVertexData, float4); + ATTR_UNPACK(_vertexID, attrs, @a_mirroredVertexData, float4); +#endif + + VARYING_INIT(v_paint, float4); +#ifndef RENDER_MODE_MSAA +#ifdef @DRAW_INTERIOR_TRIANGLES + VARYING_INIT(v_windingWeight, half); +#else + VARYING_INIT(v_edgeDistance, half2); +#endif + VARYING_INIT(v_pathID, half); +#ifdef @ENABLE_CLIPPING + VARYING_INIT(v_clipID, half); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_INIT(v_clipRect, float4); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef @ENABLE_ADVANCED_BLEND + VARYING_INIT(v_blendMode, half); +#endif + + bool shouldDiscardVertex = false; + uint pathID; + float2 vertexPosition; +#ifdef @RENDER_MODE_MSAA + ushort pathZIndex; +#endif + +#ifdef @DRAW_INTERIOR_TRIANGLES + vertexPosition = + unpack_interior_triangle_vertex(@a_triangleVertex, + pathID, + v_windingWeight VERTEX_CONTEXT_UNPACK); +#else + shouldDiscardVertex = + !unpack_tessellated_path_vertex(@a_patchVertexData, + @a_mirroredVertexData, + _instanceID, + pathID, + vertexPosition +#ifndef @RENDER_MODE_MSAA + , + v_edgeDistance +#else + , + pathZIndex +#endif + VERTEX_CONTEXT_UNPACK); +#endif // !DRAW_INTERIOR_TRIANGLES + + uint2 paintData = STORAGE_BUFFER_LOAD2(@paintBuffer, pathID); + +#ifndef @RENDER_MODE_MSAA + // Encode the integral pathID as a "half" that we know the hardware will see + // as a unique value in the fragment shader. + v_pathID = id_bits_to_f16(pathID, uniforms.pathIDGranularity); + + // Indicate even-odd fill rule by making pathID negative. + if ((paintData.x & PAINT_FLAG_EVEN_ODD_FILL) != 0u) + v_pathID = -v_pathID; +#endif // !RENDER_MODE_MSAA + + uint paintType = paintData.x & 0xfu; +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING) + { + uint clipIDBits = + (paintType == CLIP_UPDATE_PAINT_TYPE ? paintData.y : paintData.x) >> + 16; + v_clipID = id_bits_to_f16(clipIDBits, uniforms.pathIDGranularity); + // Negative clipID means to update the clip buffer instead of the color + // buffer. + if (paintType == CLIP_UPDATE_PAINT_TYPE) + v_clipID = -v_clipID; + } +#endif +#ifdef @ENABLE_ADVANCED_BLEND + if (@ENABLE_ADVANCED_BLEND) + { + v_blendMode = float((paintData.x >> 4) & 0xfu); + } +#endif + + // Paint matrices operate on the fragment shader's "_fragCoord", which is + // bottom-up in GL. + float2 fragCoord = vertexPosition; +#ifdef FRAG_COORD_BOTTOM_UP + fragCoord.y = float(uniforms.renderTargetHeight) - fragCoord.y; +#endif + +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + // clipRectInverseMatrix transforms from pixel coordinates to a space + // where the clipRect is the normalized rectangle: [-1, -1, 1, 1]. + float2x2 clipRectInverseMatrix = make_float2x2( + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 2u)); + float4 clipRectInverseTranslate = + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 3u); +#ifndef @RENDER_MODE_MSAA + v_clipRect = + find_clip_rect_coverage_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#else // RENDER_MODE_MSAA + set_clip_rect_plane_distances(clipRectInverseMatrix, + clipRectInverseTranslate.xy, + fragCoord); +#endif // RENDER_MODE_MSAA + } +#endif // ENABLE_CLIP_RECT + + // Unpack the paint once we have a position. + if (paintType == SOLID_COLOR_PAINT_TYPE) + { + half4 color = unpackUnorm4x8(paintData.y); + v_paint = float4(color); + } +#ifdef @ENABLE_CLIPPING + else if (@ENABLE_CLIPPING && paintType == CLIP_UPDATE_PAINT_TYPE) + { + half outerClipID = + id_bits_to_f16(paintData.x >> 16, uniforms.pathIDGranularity); + v_paint = float4(outerClipID, 0, 0, 0); + } +#endif + else + { + float2x2 paintMatrix = + make_float2x2(STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u)); + float4 paintTranslate = + STORAGE_BUFFER_LOAD4(@paintAuxBuffer, pathID * 4u + 1u); + float2 paintCoord = MUL(paintMatrix, fragCoord) + paintTranslate.xy; + if (paintType == LINEAR_GRADIENT_PAINT_TYPE || + paintType == RADIAL_GRADIENT_PAINT_TYPE) + { + // v_paint.a contains "-row" of the gradient ramp at texel center, + // in normalized space. + v_paint.a = -uintBitsToFloat(paintData.y); + // abs(v_paint.b) contains either: + // - 2 if the gradient ramp spans an entire row. + // - x0 of the gradient ramp in normalized space, if it's a simple + // 2-texel ramp. + float gradientSpan = paintTranslate.z; + // gradientSpan is either ~1 (complex gradients span the whole width + // of the texture minus 1px), or 1/GRAD_TEXTURE_WIDTH (simple + // gradients span 1px). + if (gradientSpan > .9) + { + // Complex ramps span an entire row. Set it to 2 to convey this. + v_paint.b = 2.; + } + else + { + // This is a simple ramp. + v_paint.b = paintTranslate.w; + } + if (paintType == LINEAR_GRADIENT_PAINT_TYPE) + { + // The paint is a linear gradient. + v_paint.g = .0; + v_paint.r = paintCoord.x; + } + else + { + // The paint is a radial gradient. Mark v_paint.b negative to + // indicate this to the fragment shader. (v_paint.b can't be + // zero because the gradient ramp is aligned on pixel centers, + // so negating it will always produce a negative number.) + v_paint.b = -v_paint.b; + v_paint.rg = paintCoord.xy; + } + } + else // IMAGE_PAINT_TYPE + { + // v_paint.a <= -1. signals that the paint is an image. + // -v_paint.a - 2 is the texture mipmap level-of-detail. + // v_paint.b is the image opacity. + // v_paint.rg is the normalized image texture coordinate (built into + // the paintMatrix). + float opacity = uintBitsToFloat(paintData.y); + float lod = paintTranslate.z; + v_paint = float4(paintCoord.x, paintCoord.y, opacity, -2. - lod); + } + } + + float4 pos; + if (!shouldDiscardVertex) + { + pos = RENDER_TARGET_COORD_TO_CLIP_COORD(vertexPosition); +#ifdef @RENDER_MODE_MSAA + pos.z = normalize_z_index(pathZIndex); +#endif + } + else + { + pos = float4(uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue, + uniforms.vertexDiscardValue); + } + + VARYING_PACK(v_paint); +#ifndef @RENDER_MODE_MSAA +#ifdef @DRAW_INTERIOR_TRIANGLES + VARYING_PACK(v_windingWeight); +#else + VARYING_PACK(v_edgeDistance); +#endif + VARYING_PACK(v_pathID); +#ifdef @ENABLE_CLIPPING + VARYING_PACK(v_clipID); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_PACK(v_clipRect); +#endif +#endif // !RENDER_MODE_MSAA +#ifdef @ENABLE_ADVANCED_BLEND + VARYING_PACK(v_blendMode); +#endif + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, GRAD_TEXTURE_IDX, @gradTexture); +TEXTURE_RGBA8(PER_DRAW_BINDINGS_SET, IMAGE_TEXTURE_IDX, @imageTexture); +#ifdef @RENDER_MODE_MSAA +#ifdef @ENABLE_ADVANCED_BLEND +TEXTURE_RGBA8(PER_FLUSH_BINDINGS_SET, DST_COLOR_TEXTURE_IDX, @dstColorTexture); +#endif +#endif +FRAG_TEXTURE_BLOCK_END + +SAMPLER_LINEAR(GRAD_TEXTURE_IDX, gradSampler) +SAMPLER_MIPMAP(IMAGE_TEXTURE_IDX, imageSampler) + +FRAG_STORAGE_BUFFER_BLOCK_BEGIN +FRAG_STORAGE_BUFFER_BLOCK_END + +INLINE half4 find_paint_color(float4 paint FRAGMENT_CONTEXT_DECL) +{ + if (paint.a >= .0) // Is the paint a solid color? + { + return cast_float4_to_half4(paint); + } + else if (paint.a > -1.) // Is paint is a gradient (linear or radial)? + { + float t = + paint.b > .0 ? /*linear*/ paint.r : /*radial*/ length(paint.rg); + t = clamp(t, .0, 1.); + float span = abs(paint.b); + float x = span > 1. + ? /*entire row*/ (1. - 1. / GRAD_TEXTURE_WIDTH) * t + + (.5 / GRAD_TEXTURE_WIDTH) + : /*two texels*/ (1. / GRAD_TEXTURE_WIDTH) * t + span; + float row = -paint.a; + // Our gradient texture is not mipmapped. Issue a texture-sample that + // explicitly does not find derivatives for LOD computation (by + // specifying derivatives directly). + return TEXTURE_SAMPLE_LOD(@gradTexture, + gradSampler, + float2(x, row), + .0); + } + else // The paint is an image. + { + half lod = -paint.a - 2.; + half4 color = + TEXTURE_SAMPLE_LOD(@imageTexture, imageSampler, paint.rg, lod); + half opacity = paint.b; + color.a *= opacity; + return color; + } +} + +#ifndef @RENDER_MODE_MSAA + +PLS_BLOCK_BEGIN +PLS_DECL4F(COLOR_PLANE_IDX, colorBuffer); +PLS_DECLUI(CLIP_PLANE_IDX, clipBuffer); +PLS_DECL4F(SCRATCH_COLOR_PLANE_IDX, scratchColorBuffer); +PLS_DECLUI(COVERAGE_PLANE_IDX, coverageCountBuffer); +PLS_BLOCK_END + +PLS_MAIN(@drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef @DRAW_INTERIOR_TRIANGLES + VARYING_UNPACK(v_windingWeight, half); +#else + VARYING_UNPACK(v_edgeDistance, half2); +#endif + VARYING_UNPACK(v_pathID, half); +#ifdef @ENABLE_CLIPPING + VARYING_UNPACK(v_clipID, half); +#endif +#ifdef @ENABLE_CLIP_RECT + VARYING_UNPACK(v_clipRect, float4); +#endif +#ifdef @ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + +#ifndef @DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_BEGIN; +#endif + + half2 coverageData = unpackHalf2x16(PLS_LOADUI(coverageCountBuffer)); + half coverageBufferID = coverageData.g; + half coverageCount = + coverageBufferID == v_pathID ? coverageData.r : make_half(.0); + +#ifdef @DRAW_INTERIOR_TRIANGLES + coverageCount += v_windingWeight; + PLS_PRESERVE_UI(coverageCountBuffer); +#else + if (v_edgeDistance.y >= .0) // Stroke. + coverageCount = + max(min(v_edgeDistance.x, v_edgeDistance.y), coverageCount); + else // Fill. (Back-face culling ensures v_edgeDistance.x is appropriately + // signed.) + coverageCount += v_edgeDistance.x; + + // Save the updated coverage. + PLS_STOREUI(coverageCountBuffer, + packHalf2x16(make_half2(coverageCount, v_pathID))); +#endif + + // Convert coverageCount to coverage. + half coverage; +#ifdef @CLOCKWISE_FILL + if (@CLOCKWISE_FILL) + { + coverage = clamp(coverageCount, make_half(.0), make_half(1.)); + } + else +#endif // CLOCKWISE_FILL + { + coverage = abs(coverageCount); +#ifdef @ENABLE_EVEN_ODD + if (@ENABLE_EVEN_ODD && v_pathID < .0 /*even-odd*/) + { + coverage = 1. - make_half(abs(fract(coverage * .5) * 2. + -1.)); + } +#endif + // This also caps stroke coverage, which can be >1. + coverage = min(coverage, make_half(1.)); + } + +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING && v_clipID < .0) // Update the clip buffer. + { + half clipID = -v_clipID; +#ifdef @ENABLE_NESTED_CLIPPING + if (@ENABLE_NESTED_CLIPPING) + { + half outerClipID = v_paint.r; + if (outerClipID != .0) + { + // This is a nested clip. Intersect coverage with the enclosing + // clip (outerClipID). + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.g; + half outerClipCoverage; + if (clipContentID != clipID) + { + // First hit: either clipBuffer contains outerClipCoverage, + // or this pixel is not inside the outer clip and + // outerClipCoverage is zero. + outerClipCoverage = + clipContentID == outerClipID ? clipData.r : .0; +#ifndef @DRAW_INTERIOR_TRIANGLES + // Stash outerClipCoverage before overwriting clipBuffer, in + // case we hit this pixel again and need it. (Not necessary + // when drawing interior triangles because they always go + // last and don't overlap.) + PLS_STORE4F(scratchColorBuffer, + make_half4(outerClipCoverage, .0, .0, .0)); +#endif + } + else + { + // Subsequent hit: outerClipCoverage is stashed in + // scratchColorBuffer. + outerClipCoverage = PLS_LOAD4F(scratchColorBuffer).r; +#ifndef @DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need + // to preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + coverage = min(coverage, outerClipCoverage); + } + } +#endif // @ENABLE_NESTED_CLIPPING + PLS_STOREUI(clipBuffer, packHalf2x16(make_half2(coverage, clipID))); + PLS_PRESERVE_4F(colorBuffer); + } + else // Render to the main framebuffer. +#endif // @ENABLE_CLIPPING + { +#ifdef @ENABLE_CLIPPING + if (@ENABLE_CLIPPING) + { + // Apply the clip. + if (v_clipID != .0) + { + // Clip IDs are not necessarily drawn in monotonically + // increasing order, so always check exact equality of the + // clipID. + half2 clipData = unpackHalf2x16(PLS_LOADUI(clipBuffer)); + half clipContentID = clipData.g; + coverage = (clipContentID == v_clipID) + ? min(clipData.r, coverage) + : make_half(.0); + } + } +#endif +#ifdef @ENABLE_CLIP_RECT + if (@ENABLE_CLIP_RECT) + { + half clipRectCoverage = min_value(cast_float4_to_half4(v_clipRect)); + coverage = clamp(clipRectCoverage, make_half(.0), coverage); + } +#endif // ENABLE_CLIP_RECT + + half4 color = find_paint_color(v_paint FRAGMENT_CONTEXT_UNPACK); + color.a *= coverage; + + half4 dstColor; + if (coverageBufferID != v_pathID) + { + // This is the first fragment from pathID to touch this pixel. + dstColor = PLS_LOAD4F(colorBuffer); +#ifndef @DRAW_INTERIOR_TRIANGLES + // We don't need to store coverage when drawing interior triangles + // because they always go last and don't overlap, so every fragment + // is the final one in the path. + PLS_STORE4F(scratchColorBuffer, dstColor); +#endif + } + else + { + dstColor = PLS_LOAD4F(scratchColorBuffer); +#ifndef @DRAW_INTERIOR_TRIANGLES + // Since interior triangles are always last, there's no need to + // preserve this value. + PLS_PRESERVE_4F(scratchColorBuffer); +#endif + } + + // Blend with the framebuffer color. +#ifdef @ENABLE_ADVANCED_BLEND + if (@ENABLE_ADVANCED_BLEND && + v_blendMode != cast_uint_to_half(BLEND_SRC_OVER)) + { + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif + { + color.rgb *= color.a; + color = color + dstColor * (1. - color.a); + } + + PLS_STORE4F(colorBuffer, color); + PLS_PRESERVE_UI(clipBuffer); + } + +#ifndef @DRAW_INTERIOR_TRIANGLES + // Interior triangles don't overlap, so don't need raster ordering. + PLS_INTERLOCK_END; +#endif + + EMIT_PLS; +} + +#else // RENDER_MODE_MSAA + +FRAG_DATA_MAIN(half4, @drawFragmentMain) +{ + VARYING_UNPACK(v_paint, float4); +#ifdef @ENABLE_ADVANCED_BLEND + VARYING_UNPACK(v_blendMode, half); +#endif + + half4 color = find_paint_color(v_paint); + +#ifdef @ENABLE_ADVANCED_BLEND + if (@ENABLE_ADVANCED_BLEND) + { + half4 dstColor = + TEXEL_FETCH(@dstColorTexture, int2(floor(_fragCoord.xy))); + color = advanced_blend(color, + unmultiply(dstColor), + cast_half_to_ushort(v_blendMode)); + } + else +#endif // ENABLE_ADVANCED_BLEND + { + color = premultiply(color); + } + EMIT_FRAG_DATA(color); +} + +#endif // !RENDER_MODE_MSAA + +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/draw_path_common.glsl b/defold-rive/include/shaders/draw_path_common.glsl new file mode 100644 index 00000000..2943bf11 --- /dev/null +++ b/defold-rive/include/shaders/draw_path_common.glsl @@ -0,0 +1,342 @@ +/* + * Copyright 2023 Rive + */ + +// Common functions shared by draw shaders. + +#ifdef @VERTEX + +VERTEX_TEXTURE_BLOCK_BEGIN +TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, + TESS_VERTEX_TEXTURE_IDX, + @tessVertexTexture); +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, @pathBuffer); +STORAGE_BUFFER_U32x2(PAINT_BUFFER_IDX, PaintBuffer, @paintBuffer); +STORAGE_BUFFER_F32x4(PAINT_AUX_BUFFER_IDX, PaintAuxBuffer, @paintAuxBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, @contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +#ifdef @DRAW_PATH +INLINE int2 tess_texel_coord(int texelIndex) +{ + return int2(texelIndex & ((1 << TESS_TEXTURE_WIDTH_LOG2) - 1), + texelIndex >> TESS_TEXTURE_WIDTH_LOG2); +} + +INLINE float manhattan_pixel_width(float2x2 M, float2 normalized) +{ + + float2 v = MUL(M, normalized); + return (abs(v.x) + abs(v.y)) * (1. / dot(v, v)); +} + +INLINE bool unpack_tessellated_path_vertex(float4 patchVertexData, + float4 mirroredVertexData, + int _instanceID, + OUT(uint) outPathID, + OUT(float2) outVertexPosition +#ifndef @RENDER_MODE_MSAA + , + OUT(half2) outEdgeDistance +#else + , + OUT(ushort) outPathZIndex +#endif + VERTEX_CONTEXT_DECL) +{ + // Unpack patchVertexData. + int localVertexID = int(patchVertexData.x); + float outset = patchVertexData.y; + float fillCoverage = patchVertexData.z; + int patchSegmentSpan = floatBitsToInt(patchVertexData.w) >> 2; + int vertexType = floatBitsToInt(patchVertexData.w) & 3; + + // Fetch a vertex that definitely belongs to the contour we're drawing. + int vertexIDOnContour = min(localVertexID, patchSegmentSpan - 1); + int tessVertexIdx = _instanceID * patchSegmentSpan + vertexIDOnContour; + uint4 tessVertexData = + TEXEL_FETCH(@tessVertexTexture, tess_texel_coord(tessVertexIdx)); + uint contourIDWithFlags = tessVertexData.w; + + // Fetch and unpack the contour referenced by the tessellation vertex. + uint4 contourData = + STORAGE_BUFFER_LOAD4(@contourBuffer, + contour_data_idx(contourIDWithFlags)); + float2 midpoint = uintBitsToFloat(contourData.xy); + outPathID = contourData.z & 0xffffu; + uint vertexIndex0 = contourData.w; + + // Fetch and unpack the path. + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(@pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(@pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + + float strokeRadius = uintBitsToFloat(pathData.z); +#ifdef @RENDER_MODE_MSAA + outPathZIndex = cast_uint_to_ushort(pathData.w); +#endif + + // Fix the tessellation vertex if we fetched the wrong one in order to + // guarantee we got the correct contour ID and flags, or if we belong to a + // mirrored contour and this vertex has an alternate position when mirrored. + uint mirroredContourFlag = + contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG; + if (mirroredContourFlag != 0u) + { + localVertexID = int(mirroredVertexData.x); + outset = mirroredVertexData.y; + fillCoverage = mirroredVertexData.z; + } + if (localVertexID != vertexIDOnContour) + { + // This can peek one vertex before or after the contour, but the + // tessellator guarantees there is always at least one padding vertex at + // the beginning and end of the data. + tessVertexIdx += localVertexID - vertexIDOnContour; + uint4 replacementTessVertexData = + TEXEL_FETCH(@tessVertexTexture, tess_texel_coord(tessVertexIdx)); + if ((replacementTessVertexData.w & + (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu)) != + (contourIDWithFlags & (MIRRORED_CONTOUR_CONTOUR_FLAG | 0xffffu))) + { + // We crossed over into a new contour. Either wrap to the first + // vertex in the contour or leave it clamped at the final vertex of + // the contour. + bool isClosed = strokeRadius == .0 || // filled + midpoint.x != .0; // explicity closed stroke + if (isClosed) + { + tessVertexData = + TEXEL_FETCH(@tessVertexTexture, + tess_texel_coord(int(vertexIndex0))); + } + } + else + { + tessVertexData = replacementTessVertexData; + } + // MIRRORED_CONTOUR_CONTOUR_FLAG is not preserved at vertexIndex0. + // Preserve it here. By not preserving this flag, the normal and + // mirrored contour can both share the same contour record. + contourIDWithFlags = + (tessVertexData.w & ~MIRRORED_CONTOUR_CONTOUR_FLAG) | + mirroredContourFlag; + } + + // Finish unpacking tessVertexData. + float theta = uintBitsToFloat(tessVertexData.z); + float2 norm = float2(sin(theta), -cos(theta)); + float2 origin = uintBitsToFloat(tessVertexData.xy); + float2 postTransformVertexOffset; + + if (strokeRadius != .0) // Is this a stroke? + { + // Ensure strokes always emit clockwise triangles. + outset *= sign(determinant(M)); + + // Joins only emanate from the outer side of the stroke. + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outset = min(outset, .0); + if ((contourIDWithFlags & RIGHT_JOIN_CONTOUR_FLAG) != 0u) + outset = max(outset, .0); + + float aaRadius = manhattan_pixel_width(M, norm) * AA_RADIUS; + half globalCoverage = 1.; + if (aaRadius > strokeRadius) + { + // The stroke is narrower than the AA ramp. Instead of emitting + // subpixel geometry, make the stroke as wide as the AA ramp and + // apply a global coverage multiplier. + globalCoverage = + cast_float_to_half(strokeRadius) / cast_float_to_half(aaRadius); + strokeRadius = aaRadius; + } + + // Extend the vertex by half the width of the AA ramp. + float2 vertexOffset = + MUL(norm, strokeRadius + aaRadius); // Bloat stroke width for AA. + +#ifndef @RENDER_MODE_MSAA + // Calculate the AA distance to both the outset and inset edges of the + // stroke. The fragment shader will use whichever is lesser. + float x = outset * (strokeRadius + aaRadius); + outEdgeDistance = cast_float2_to_half2( + (1. / (aaRadius * 2.)) * (float2(x, -x) + strokeRadius) + .5); +#endif + + uint joinType = contourIDWithFlags & JOIN_TYPE_MASK; + if (joinType != 0u) + { + // This vertex belongs to a miter or bevel join. Begin by finding + // the bisector, which is the same as the miter line. The first two + // vertices in the join peek forward to figure out the bisector, and + // the final two peek backward. + int peekDir = 2; + if ((contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) == 0u) + peekDir = -peekDir; + if ((contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != 0u) + peekDir = -peekDir; + int2 otherJoinTexelCoord = + tess_texel_coord(tessVertexIdx + peekDir); + uint4 otherJoinData = + TEXEL_FETCH(@tessVertexTexture, otherJoinTexelCoord); + float otherJoinTheta = uintBitsToFloat(otherJoinData.z); + float joinAngle = abs(otherJoinTheta - theta); + if (joinAngle > PI) + joinAngle = 2. * PI - joinAngle; + bool isTan0 = + (contourIDWithFlags & JOIN_TANGENT_0_CONTOUR_FLAG) != 0u; + bool isLeftJoin = + (contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u; + float bisectTheta = + joinAngle * (isTan0 == isLeftJoin ? -.5 : .5) + theta; + float2 bisector = float2(sin(bisectTheta), -cos(bisectTheta)); + float bisectPixelWidth = manhattan_pixel_width(M, bisector); + + // Generalize everything to a "miter-clip", which is proposed in the + // SVG-2 draft. Bevel joins are converted to miter-clip joins with a + // miter limit of 1/2 pixel. They technically bleed out 1/2 pixel + // when drawn this way, but they seem to look fine and there is not + // an obvious solution to antialias them without an ink bleed. + float miterRatio = cos(joinAngle * .5); + float clipRadius; + if ((joinType == MITER_CLIP_JOIN_CONTOUR_FLAG) || + (joinType == MITER_REVERT_JOIN_CONTOUR_FLAG && + miterRatio >= .25)) + { + // Miter! (Or square cap.) + // We currently use hard coded miter limits: + // * 1 for square caps being emulated as miter-clip joins. + // * 4, which is the SVG default, for all other miter joins. + float miterInverseLimit = + (contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != + 0u + ? 1. + : .25; + clipRadius = + strokeRadius * (1. / max(miterRatio, miterInverseLimit)); + } + else + { + // Bevel! (Or butt cap.) + clipRadius = strokeRadius * miterRatio + + /* 1/2px bleed! */ bisectPixelWidth * .5; + } + float clipAARadius = clipRadius + bisectPixelWidth * AA_RADIUS; + if ((contourIDWithFlags & JOIN_TANGENT_INNER_CONTOUR_FLAG) != 0u) + { + // Reposition the inner join vertices at the miter-clip + // positions. Leave the outer join vertices as duplicates on the + // surrounding curve endpoints. We emit duplicate vertex + // positions because we need a hard stop on the clip distance + // (see below). + // + // Use aaRadius here because we're tracking AA on the mitered + // edge, NOT the outer clip edge. + float strokeAARaidus = strokeRadius + aaRadius; + // clipAARadius must be 1/16 of an AA ramp (~1/16 pixel) longer + // than the miter length before we start clipping, to ensure we + // are solving for a numerically stable intersection. + float slop = aaRadius * .125; + if (strokeAARaidus <= clipAARadius * miterRatio + slop) + { + // The miter point is before the clip line. Extend out to + // the miter point. + float miterAARadius = strokeAARaidus * (1. / miterRatio); + vertexOffset = bisector * miterAARadius; + } + else + { + // The clip line is before the miter point. Find where the + // clip line and the mitered edge intersect. + float2 bisectAAOffset = bisector * clipAARadius; + float2 k = float2(dot(vertexOffset, vertexOffset), + dot(bisectAAOffset, bisectAAOffset)); + vertexOffset = + MUL(k, inverse(float2x2(vertexOffset, bisectAAOffset))); + } + } + // The clip distance tells us how to antialias the outer clipped + // edge. Since joins only emanate from the outset side of the + // stroke, we can repurpose the inset distance as the clip distance. + float2 pt = abs(outset) * vertexOffset; + float clipDistance = (clipAARadius - dot(pt, bisector)) / + (bisectPixelWidth * (AA_RADIUS * 2.)); +#ifndef @RENDER_MODE_MSAA + if ((contourIDWithFlags & LEFT_JOIN_CONTOUR_FLAG) != 0u) + outEdgeDistance.y = cast_float_to_half(clipDistance); + else + outEdgeDistance.x = cast_float_to_half(clipDistance); +#endif + } + +#ifndef @RENDER_MODE_MSAA + outEdgeDistance *= globalCoverage; + + // Bias outEdgeDistance.y slightly upwards in order to guarantee + // outEdgeDistance.y is >= 0 at every pixel. "outEdgeDistance.y < 0" is + // used to differentiate between strokes and fills. + outEdgeDistance.y = max(outEdgeDistance.y, make_half(1e-4)); +#endif + + postTransformVertexOffset = MUL(M, outset * vertexOffset); + + // Throw away the fan triangles since we're a stroke. + if (vertexType != STROKE_VERTEX) + return false; + } + else // This is a fill. + { + // Place the fan point. + if (vertexType == FAN_MIDPOINT_VERTEX) + origin = midpoint; + + // Offset the vertex for Manhattan AA. + postTransformVertexOffset = + sign(MUL(outset * norm, inverse(M))) * AA_RADIUS; + + if (bool(contourIDWithFlags & MIRRORED_CONTOUR_CONTOUR_FLAG) != + bool(contourIDWithFlags & NEGATE_PATH_FILL_COVERAGE_FLAG)) + { + fillCoverage = -fillCoverage; + } + +#ifndef @RENDER_MODE_MSAA + // "outEdgeDistance.y < 0" indicates to the fragment shader that this is + // a fill. + outEdgeDistance = make_half2(fillCoverage, -1.); +#endif + + // If we're actually just drawing a triangle, throw away the entire + // patch except a single fan triangle. + if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u && + vertexType != FAN_VERTEX) + return false; + } + + outVertexPosition = MUL(M, origin) + postTransformVertexOffset + translate; + return true; +} +#endif // @DRAW_PATH + +#ifdef @DRAW_INTERIOR_TRIANGLES +INLINE float2 +unpack_interior_triangle_vertex(float3 triangleVertex, + OUT(uint) outPathID, + OUT(half) outWindingWeight VERTEX_CONTEXT_DECL) +{ + outPathID = floatBitsToUint(triangleVertex.z) & 0xffffu; + float2x2 M = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(@pathBuffer, outPathID * 4u))); + uint4 pathData = STORAGE_BUFFER_LOAD4(@pathBuffer, outPathID * 4u + 1u); + float2 translate = uintBitsToFloat(pathData.xy); + outWindingWeight = cast_int_to_half(floatBitsToInt(triangleVertex.z) >> 16); + return MUL(M, triangleVertex.xy) + translate; +} +#endif // @DRAW_INTERIOR_TRIANGLES + +#endif // @VERTEX diff --git a/defold-rive/include/shaders/glsl.glsl b/defold-rive/include/shaders/glsl.glsl new file mode 100644 index 00000000..f5272df8 --- /dev/null +++ b/defold-rive/include/shaders/glsl.glsl @@ -0,0 +1,549 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define GLSL + +#ifndef @GLSL_VERSION +// In "#version 320 es", Qualcomm incorrectly substitutes __VERSION__ to 300. +// @GLSL_VERSION is a workaround for this. +#define @GLSL_VERSION __VERSION__ +#endif + +#define float2 vec2 +#define float3 vec3 +#define packed_float3 vec3 +#define float4 vec4 + +#define half mediump float +#define half2 mediump vec2 +#define half3 mediump vec3 +#define half4 mediump vec4 +#define half3x3 mediump mat3x3 +#define half2x3 mediump mat2x3 + +#define int2 ivec2 +#define int3 ivec3 +#define int4 ivec4 + +#define short mediump int +#define short2 mediump ivec2 +#define short3 mediump ivec3 +#define short4 mediump ivec4 + +#define uint2 uvec2 +#define uint3 uvec3 +#define uint4 uvec4 + +#define ushort mediump uint +#define ushort2 mediump uvec2 +#define ushort3 mediump uvec3 +#define ushort4 mediump uvec4 + +#define float2x2 mat2 + +#define INLINE +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#ifdef GL_ANGLE_base_vertex_base_instance_shader_builtin +#extension GL_ANGLE_base_vertex_base_instance_shader_builtin : require +#endif + +#ifdef @ENABLE_KHR_BLEND +#extension GL_KHR_blend_equation_advanced : require +#endif + +// clang-format off +#if defined(@RENDER_MODE_MSAA) && defined(@ENABLE_CLIP_RECT) && defined(GL_ES) +// clang-format on +#ifdef GL_EXT_clip_cull_distance +#extension GL_EXT_clip_cull_distance : require +#elif defined(GL_ANGLE_clip_cull_distance) +#extension GL_ANGLE_clip_cull_distance : require +#endif +#endif // RENDER_MODE_MSAA && ENABLE_CLIP_RECT + +#if @GLSL_VERSION >= 310 +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(binding = IDX, std140) uniform NAME \ + { +#else +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + layout(std140) uniform NAME \ + { +#endif +// clang-format barrier... Otherwise it tries to merge this #define into the +// above macro... +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; + +#define ATTR_BLOCK_BEGIN(NAME) +#define ATTR(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#define ATTR_BLOCK_END +#define ATTR_LOAD(A, B, C, D) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) + +#ifdef @VERTEX +#if @GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) out TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) out TYPE NAME +#endif +#else +#if @GLSL_VERSION >= 310 +#define VARYING(IDX, TYPE, NAME) layout(location = IDX) in TYPE NAME +#else +#define VARYING(IDX, TYPE, NAME) in TYPE NAME +#endif +#endif +#define FLAT flat +#define VARYING_BLOCK_BEGIN +#define VARYING_BLOCK_END + +// clang-format off +#ifdef @TARGET_VULKAN + // Since Vulkan is compiled offline and not all platforms support noperspective, don't use it. +# define NO_PERSPECTIVE +#else +# ifdef GL_NV_shader_noperspective_interpolation +# extension GL_NV_shader_noperspective_interpolation : require +# define NO_PERSPECTIVE noperspective +# else +# define NO_PERSPECTIVE +# endif +#endif +// clang-format on + +#ifdef @VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef @FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#ifdef @TARGET_VULKAN +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp utexture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform highp texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(set = SET, binding = IDX) uniform mediump texture2D NAME +#elif @GLSL_VERSION >= 310 +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + layout(binding = IDX) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + layout(binding = IDX) uniform mediump sampler2D NAME +#else +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform highp usampler2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform highp sampler2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform mediump sampler2D NAME +#endif +#define TEXTURE_RG32UI(SET, IDX, NAME) TEXTURE_RGBA32UI(SET, IDX, NAME) + +#ifdef @TARGET_VULKAN +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + layout(set = SAMPLER_BINDINGS_SET, binding = TEXTURE_IDX) \ + uniform mediump sampler NAME; +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + texture(sampler2D(NAME, SAMPLER_NAME), COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(sampler2D(NAME, SAMPLER_NAME), COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(sampler2D(NAME, SAMPLER_NAME), COORD, DDX, DDY) +#else +// SAMPLER_LINEAR and SAMPLER_MIPMAP are no-ops because in GL, sampling +// parameters are API-level state tied to the texture. +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) texture(NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + textureLod(NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + textureGrad(NAME, COORD, DDX, DDY) +#endif + +#define TEXEL_FETCH(NAME, COORD) texelFetch(NAME, COORD, 0) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#ifdef @DISABLE_SHADER_STORAGE_BUFFERS + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RG32UI(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + TEXTURE_RGBA32F(PER_FLUSH_BINDINGS_SET, IDX, NAME) +#define STORAGE_BUFFER_LOAD4(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) +#define STORAGE_BUFFER_LOAD2(NAME, I) \ + TEXEL_FETCH( \ + NAME, \ + int2((I) & STORAGE_TEXTURE_MASK_X, (I) >> STORAGE_TEXTURE_SHIFT_Y)) \ + .xy + +#else + +#ifdef GL_ARB_shader_storage_buffer_object +#extension GL_ARB_shader_storage_buffer_object : require +#endif +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint2 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + uint4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) readonly buffer GLSL_STRUCT_NAME \ + { \ + float4 _values[]; \ + } \ + NAME +#define STORAGE_BUFFER_U32_ATOMIC(IDX, GLSL_STRUCT_NAME, NAME) \ + layout(std430, binding = IDX) buffer GLSL_STRUCT_NAME { uint _values[]; } \ + NAME +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_LOAD(NAME, I) NAME._values[I] +#define STORAGE_BUFFER_ATOMIC_MAX(NAME, I, X) atomicMax(NAME._values[I], X) +#define STORAGE_BUFFER_ATOMIC_ADD(NAME, I, X) atomicAdd(NAME._values[I], X) + +#endif // DISABLE_SHADER_STORAGE_BUFFERS + +// Define macros for implementing pixel local storage based on available +// extensions. +#ifdef @PLS_IMPL_ANGLE + +#extension GL_ANGLE_shader_pixel_local_storage : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp pixelLocalANGLE NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp upixelLocalANGLE NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) pixelLocalLoadANGLE(PLANE) +#define PLS_LOADUI(PLANE) pixelLocalLoadANGLE(PLANE).r +#define PLS_STORE4F(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, VALUE) +#define PLS_STOREUI(PLANE, VALUE) pixelLocalStoreANGLE(PLANE, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_ANGLE + +#ifdef @PLS_IMPL_EXT_NATIVE + +#extension GL_EXT_shader_pixel_local_storage : enable + +#define PLS_BLOCK_BEGIN \ + __pixel_localEXT PLS \ + { +#define PLS_DECL4F(IDX, NAME) layout(rgba8) lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(r32ui) highp uint NAME +#define PLS_BLOCK_END \ + } \ + ; + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = PLANE +#define PLS_PRESERVE_UI(PLANE) PLANE = PLANE + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef @PLS_IMPL_FRAMEBUFFER_FETCH + +#extension GL_EXT_shader_framebuffer_fetch : require + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) inout lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) inout highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) PLANE +#define PLS_LOADUI(PLANE) PLANE.r +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.r = (VALUE) + +// When using multiple color attachments, we have to write a value to every +// color attachment, every shader invocation, or else the contents become +// undefined. +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, PLS_LOAD4F(PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, PLS_LOADUI(PLANE)) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif // PLS_IMPL_FRAMEBUFFER_FETCH + +#ifdef @PLS_IMPL_STORAGE_TEXTURE + +#ifdef GL_ARB_shader_image_load_store +#extension GL_ARB_shader_image_load_store : require +#endif +#if defined(GL_ARB_fragment_shader_interlock) +#extension GL_ARB_fragment_shader_interlock : require +#define PLS_INTERLOCK_BEGIN beginInvocationInterlockARB() +#define PLS_INTERLOCK_END endInvocationInterlockARB() +#elif defined(GL_INTEL_fragment_shader_ordering) +#extension GL_INTEL_fragment_shader_ordering : require +#define PLS_INTERLOCK_BEGIN beginFragmentShaderOrderingINTEL() +#define PLS_INTERLOCK_END +#else +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END +#endif + +#define PLS_BLOCK_BEGIN +#ifdef @TARGET_VULKAN +#define PLS_DECL4F(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, rgba8) \ + uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECL4F(IDX, NAME) \ + layout(binding = IDX, rgba8) uniform lowp coherent image2D NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) imageLoad(PLANE, _plsCoord) +#define PLS_LOADUI(PLANE) imageLoad(PLANE, _plsCoord).r +#define PLS_STORE4F(PLANE, VALUE) imageStore(PLANE, _plsCoord, VALUE) +#define PLS_STOREUI(PLANE, VALUE) imageStore(PLANE, _plsCoord, uvec4(VALUE)) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#ifndef @USING_PLS_STORAGE_TEXTURES +#define @USING_PLS_STORAGE_TEXTURES + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#endif // PLS_IMPL_STORAGE_TEXTURE + +#ifdef @PLS_IMPL_SUBPASS_LOAD + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F_READONLY(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform lowp subpassInput _in_##NAME; +#define PLS_DECL4F(IDX, NAME) \ + PLS_DECL4F_READONLY(IDX, NAME); \ + layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) \ + layout(input_attachment_index = IDX, \ + binding = IDX, \ + set = PLS_TEXTURE_BINDINGS_SET) \ + uniform highp usubpassInput _in_##NAME; \ + layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) subpassLoad(_in_##PLANE) +#define PLS_LOADUI(PLANE) subpassLoad(_in_##PLANE).r +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.r = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLS_STORE4F(PLANE, subpassLoad(_in_##PLANE)) +#define PLS_PRESERVE_UI(PLANE) PLS_STOREUI(PLANE, subpassLoad(_in_##PLANE).r) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef @PLS_IMPL_NONE + +#define PLS_BLOCK_BEGIN +#define PLS_DECL4F(IDX, NAME) layout(location = IDX) out lowp vec4 NAME +#define PLS_DECLUI(IDX, NAME) layout(location = IDX) out highp uvec4 NAME +#define PLS_BLOCK_END + +#define PLS_LOAD4F(PLANE) vec4(0) +#define PLS_LOADUI(PLANE) 0u +#define PLS_STORE4F(PLANE, VALUE) PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) PLANE.r = (VALUE) + +#define PLS_PRESERVE_4F(PLANE) PLANE = vec4(1, 0, 1, 1) +#define PLS_PRESERVE_UI(PLANE) PLANE.r = 0u + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#endif + +#ifdef @TARGET_VULKAN +#define gl_VertexID gl_VertexIndex +#endif + +// clang-format off +#ifdef @ENABLE_INSTANCE_INDEX +# ifdef @TARGET_VULKAN +# define INSTANCE_INDEX gl_InstanceIndex +# else +# ifdef @ENABLE_SPIRV_CROSS_BASE_INSTANCE + // This uniform is specifically named "SPIRV_Cross_BaseInstance" for compatibility with + // SPIRV-Cross sytems that search for it by name. + uniform int $SPIRV_Cross_BaseInstance; +# define INSTANCE_INDEX (gl_InstanceID + $SPIRV_Cross_BaseInstance) +# else +# define INSTANCE_INDEX (gl_InstanceID + gl_BaseInstance) +# endif +# endif +#else +# define INSTANCE_INDEX 0 +#endif +// clang-format on + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + void main() \ + { \ + int _vertexID = gl_VertexID; \ + int _instanceID = INSTANCE_INDEX; + +#define IMAGE_RECT_VERTEX_MAIN VERTEX_MAIN + +// clang-format off +#define IMAGE_MESH_VERTEX_MAIN(NAME, PositionAttr, position, UVAttr, uv, _vertexID) \ + VERTEX_MAIN(NAME, PositionAttr, position, _vertexID, _instanceID) +// clang-format on + +#define VARYING_INIT(NAME, TYPE) +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) + +#define EMIT_VERTEX(_pos) \ + gl_Position = _pos; \ + } + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + layout(location = 0) out DATA_TYPE _fd; \ + void main() + +#define EMIT_FRAG_DATA(VALUE) _fd = VALUE + +#define _fragCoord gl_FragCoord.xy + +#define FRAGMENT_CONTEXT_DECL +#define FRAGMENT_CONTEXT_UNPACK + +#ifdef @USING_PLS_STORAGE_TEXTURES + +#ifdef @TARGET_VULKAN +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(set = PLS_TEXTURE_BINDINGS_SET, binding = IDX, r32ui) \ + uniform highp coherent uimage2D NAME +#else +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + layout(binding = IDX, r32ui) uniform highp coherent uimage2D NAME +#endif +#define PLS_LOADUI_ATOMIC(PLANE) imageLoad(PLANE, _plsCoord).r +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + imageStore(PLANE, _plsCoord, uvec4(VALUE)) +#define PLS_ATOMIC_MAX(PLANE, X) imageAtomicMax(PLANE, _plsCoord, X) +#define PLS_ATOMIC_ADD(PLANE, X) imageAtomicAdd(PLANE, _plsCoord, X) + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) \ + void main() \ + { \ + int2 _plsCoord = ivec2(floor(_fragCoord)); + +#define EMIT_PLS } + +#else // !USING_PLS_STORAGE_TEXTURES + +#define PLS_CONTEXT_DECL +#define PLS_CONTEXT_UNPACK + +#define PLS_MAIN(NAME) void main() +#define EMIT_PLS + +#endif // !USING_PLS_STORAGE_TEXTURES + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + layout(location = 0) out half4 _fragColor; \ + PLS_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR EMIT_PLS + +#define MUL(A, B) ((A) * (B)) + +#ifndef @TARGET_VULKAN +#define FRAG_COORD_BOTTOM_UP +#endif + +precision highp float; +precision highp int; + +#if @GLSL_VERSION < 310 +// Polyfill ES 3.1+ methods. +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return float4(vals) * (1. / 255.); +} +#endif + +// clang-format off +#if @GLSL_VERSION >= 310 && defined(@VERTEX) && defined(@RENDER_MODE_MSAA) && defined(@ENABLE_CLIP_RECT) +out gl_PerVertex +{ + // Redeclare gl_ClipDistance with exactly 4 clip planes. + float gl_ClipDistance[4]; + float4 gl_Position; +}; +#endif +// clang-format on diff --git a/defold-rive/include/shaders/hlsl.glsl b/defold-rive/include/shaders/hlsl.glsl new file mode 100644 index 00000000..5cfdf4b2 --- /dev/null +++ b/defold-rive/include/shaders/hlsl.glsl @@ -0,0 +1,405 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma $warning($disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma $warning($disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef $_ARE_TOKEN_NAMES_PRESERVED +#define half $half +#define half2 $half2 +#define half3 $half3 +#define half4 $half4 +#define short $short +#define short2 $short2 +#define short3 $short3 +#define short4 $short4 +#define ushort $ushort +#define ushort2 $ushort2 +#define ushort3 $ushort3 +#define ushort4 $ushort4 +#define float2 $float2 +#define float3 $float3 +#define float4 $float4 +#define bool2 $bool2 +#define bool3 $bool3 +#define bool4 $bool4 +#define uint2 $uint2 +#define uint3 $uint3 +#define uint4 $uint4 +#define int2 $int2 +#define int3 $int3 +#define int4 $int4 +#define float4x2 $float4x2 +#define ushort $ushort +#define float2x2 $float2x2 +#define half3x3 $half3x3 +#define half2x3 $half2x3 +#endif + +$typedef float3 packed_float3; + +#ifdef @ENABLE_MIN_16_PRECISION + +$typedef $min16int short; + +$typedef $min16uint ushort; + +#else + +$typedef $int short; + +$typedef $uint ushort; + +#endif + +#define INLINE $inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define UNIFORM_BUFFER_REGISTER(IDX) $register($b##IDX) + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + $cbuffer NAME : UNIFORM_BUFFER_REGISTER(IDX) \ + { \ + struct \ + { + +#define UNIFORM_BLOCK_END(NAME) \ + } \ + NAME; \ + } + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE $noperspective +#define @OPTIONALLY_FLAT $nointerpolation +#define FLAT $nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : $TEXCOORD##IDX + +#define VARYING_BLOCK_END \ + float4 _pos : $SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef @VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef @FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) \ + uniform $Texture2D NAME : $register($t##IDX) +#define TEXTURE_RGBA32F(SET, IDX, NAME) \ + uniform $Texture2D NAME : $register($t##IDX) +#define TEXTURE_RGBA8(SET, IDX, NAME) \ + uniform $Texture2D<$unorm float4> NAME : $register($t##IDX) + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) \ + $SamplerState NAME : $register($s##TEXTURE_IDX); +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.$Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.$SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.$SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef @ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D $RasterizerOrderedTexture2D +#else +#define PLS_TEX2D $RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) \ + uniform PLS_TEX2D<$unorm half4> NAME : $register($u##IDX) +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME : $register($u##IDX) +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME : $register($u##IDX) +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + $InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + $InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + $cbuffer DrawUniforms \ + : UNIFORM_BUFFER_REGISTER(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX) \ + { \ + uint baseInstance; \ + uint NAME##_pad0; \ + uint NAME##_pad1; \ + uint NAME##_pad2; \ + } \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : $SV_VertexID, uint _instanceIDWithoutBase \ + : $SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : $SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : $SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : $SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [$earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [$earlydepthstencil] half4 NAME(Varyings _varyings) : $SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat $asfloat +#define intBitsToFloat $asfloat +#define floatBitsToInt $asint +#define floatBitsToUint $asuint +#define inversesqrt $rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) $mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME : $register($t##IDX) +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME : $register($t##IDX) +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME : $register($t##IDX) + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2($f16tof32(x), $f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = $f32tof16(v.x); + uint y = $f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.rg |= vals.ba; + vals.r |= vals.g; + return vals.r; +} + +INLINE float atan(float y, float x) { return $atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return $lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return $lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return $lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return $lerp(x, y, s); } + +INLINE half mix(half x, half y, half s) { return x + s * (y - x); } +INLINE half2 mix(half2 x, half2 y, half2 s) { return x + s * (y - x); } +INLINE half3 mix(half3 x, half3 y, half3 s) { return x + s * (y - x); } +INLINE half4 mix(half4 x, half4 y, half4 s) { return x + s * (y - x); } + +INLINE float fract(float x) { return $frac(x); } +INLINE float2 fract(float2 x) { return $frac(x); } +INLINE float3 fract(float3 x) { return $frac(x); } +INLINE float4 fract(float4 x) { return $frac(x); } + +INLINE half fract(half x) { return $frac(x); } +INLINE half2 fract(half2 x) { return half2($frac(x)); } +INLINE half3 fract(half3 x) { return half3($frac(x)); } +INLINE half4 fract(half4 x) { return half4($frac(x)); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE half rive_sign(half x) { return sign(x); } +INLINE half2 rive_sign(half2 x) { return half2(sign(x)); } +INLINE half3 rive_sign(half3 x) { return half3(sign(x)); } +INLINE half4 rive_sign(half4 x) { return half4(sign(x)); } + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE half rive_abs(half x) { return abs(x); } +INLINE half2 rive_abs(half2 x) { return half2(abs(x)); } +INLINE half3 rive_abs(half3 x) { return half3(abs(x)); } +INLINE half4 rive_abs(half4 x) { return half4(abs(x)); } + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE half rive_sqrt(half x) { return sqrt(x); } +INLINE half2 rive_sqrt(half2 x) { return half2(sqrt(x)); } +INLINE half3 rive_sqrt(half3 x) { return half3(sqrt(x)); } +INLINE half4 rive_sqrt(half4 x) { return half4(sqrt(x)); } + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt diff --git a/defold-rive/include/shaders/metal.glsl b/defold-rive/include/shaders/metal.glsl new file mode 100644 index 00000000..f7807faf --- /dev/null +++ b/defold-rive/include/shaders/metal.glsl @@ -0,0 +1,485 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides Metal-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +#define METAL + +// #define native metal types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef $_ARE_TOKEN_NAMES_PRESERVED +#define half $half +#define half2 $half2 +#define half3 $half3 +#define half4 $half4 +#define short $short +#define short2 $short2 +#define short3 $short3 +#define short4 $short4 +#define ushort $ushort +#define ushort2 $ushort2 +#define ushort3 $ushort3 +#define ushort4 $ushort4 +#define float2 $float2 +#define float3 $float3 +#define packed_float3 $packed_float3 +#define float4 $float4 +#define bool2 $bool2 +#define bool3 $bool3 +#define bool4 $bool4 +#define uint2 $uint2 +#define uint3 $uint3 +#define uint4 $uint4 +#define int2 $int2 +#define int3 $int3 +#define int4 $int4 +#define float4x2 $float4x2 +#define ushort $ushort +#define float2x2 $float2x2 +#define half3x3 $half3x3 +#define half2x3 $half2x3 +#endif + +#define INLINE $inline +#define OUT(ARG_TYPE) $thread ARG_TYPE& +#define INOUT(ARG_TYPE) $thread ARG_TYPE& + +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) +#define MUL(A, B) ((A) * (B)) +#define atan $atan2 +#define inversesqrt $rsqrt + +#define UNIFORM_BLOCK_BEGIN(IDX, NAME) \ + struct NAME \ + { +#define UNIFORM_BLOCK_END(NAME) \ + } \ + ; + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs[ID].NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { +#define VARYING(IDX, TYPE, NAME) TYPE NAME +#define FLAT [[flat]] +#define NO_PERSPECTIVE [[$center_no_perspective]] +#ifndef @OPTIONALLY_FLAT +// Don't use no-perspective interpolation for varyings that need to be flat. +// No-persective interpolation appears to break the guarantee that a varying == +// "x" when all barycentric values also == "x". Default (perspective-correct) +// interpolation does preserve this guarantee, and seems to be faster faster +// than flat on Apple Silicon. +#define @OPTIONALLY_FLAT +#endif +#define VARYING_BLOCK_END \ + float4 _pos [[$position]] [[$invariant]]; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) $thread TYPE& NAME = _varyings.NAME +#define VARYING_PACK(NAME) +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN \ + struct VertexStorageBuffers \ + { +#define VERTEX_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN \ + struct FragmentStorageBuffers \ + { +#define FRAG_STORAGE_BUFFER_BLOCK_END \ + } \ + ; + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + $constant uint2* NAME [[$buffer(IDX)]] +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $constant uint4* NAME [[$buffer(IDX)]] +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $constant float4* NAME [[$buffer(IDX)]] +#define STORAGE_BUFFER_LOAD4(NAME, I) _buffers.NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) _buffers.NAME[I] + +#define VERTEX_TEXTURE_BLOCK_BEGIN \ + struct VertexTextures \ + { +#define VERTEX_TEXTURE_BLOCK_END \ + } \ + ; + +#define FRAG_TEXTURE_BLOCK_BEGIN \ + struct FragmentTextures \ + { +#define FRAG_TEXTURE_BLOCK_END \ + } \ + ; + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) [[$texture(IDX)]] $texture2d NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) [[$texture(IDX)]] $texture2d NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) [[$texture(IDX)]] $texture2d NAME + +#define SAMPLER_LINEAR(TEXTURE_IDX, NAME) \ + $constexpr $sampler NAME($filter::$linear, $mip_filter::$none); +#define SAMPLER_MIPMAP(TEXTURE_IDX, NAME) \ + $constexpr $sampler NAME($filter::$linear, $mip_filter::$linear); + +#define TEXEL_FETCH(TEXTURE, COORD) _textures.TEXTURE.$read(uint2(COORD)) +#define TEXTURE_SAMPLE(TEXTURE, SAMPLER_NAME, COORD) \ + _textures.TEXTURE.$sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(TEXTURE, SAMPLER_NAME, COORD, LOD) \ + _textures.TEXTURE.$sample(SAMPLER_NAME, COORD, $level(LOD)) +#define TEXTURE_SAMPLE_GRAD(TEXTURE, SAMPLER_NAME, COORD, DDX, DDY) \ + _textures.TEXTURE.$sample(SAMPLER_NAME, COORD, $gradient2d(DDX, DDY)) + +#define VERTEX_CONTEXT_DECL \ + , VertexTextures _textures, VertexStorageBuffers _buffers +#define VERTEX_CONTEXT_UNPACK , _textures, _buffers + +#ifdef @ENABLE_INSTANCE_INDEX +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + $__attribute__(($visibility("default"))) Varyings $vertex NAME( \ + uint _vertexID [[$vertex_id]], \ + uint _instanceID [[$instance_id]], \ + $constant uint& _baseInstance \ + [[$buffer(PATH_BASE_INSTANCE_UNIFORM_BUFFER_IDX)]], \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + $constant Attrs* attrs [[$buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + _instanceID += _baseInstance; \ + Varyings _varyings; +#else +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + $__attribute__(($visibility("default"))) Varyings $vertex NAME( \ + uint _vertexID [[$vertex_id]], \ + uint _instanceID [[$instance_id]], \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + $constant Attrs* attrs [[$buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; +#endif + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + $__attribute__(($visibility("default"))) Varyings $vertex NAME( \ + uint _vertexID [[$vertex_id]], \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + $constant @ImageDrawUniforms& imageDrawUniforms \ + [[$buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + $constant Attrs* attrs [[$buffer(0)]] VERTEX_CONTEXT_DECL) \ + { \ + Varyings _varyings; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + $__attribute__(($visibility("default"))) Varyings $vertex NAME( \ + uint _vertexID [[$vertex_id]], \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + $constant @ImageDrawUniforms& imageDrawUniforms \ + [[$buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + $constant PositionAttr* position [[$buffer(0)]], \ + $constant UVAttr* uv [[$buffer(1)]]) \ + { \ + Varyings _varyings; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE $__attribute__(($visibility("default"))) $fragment NAME( \ + Varyings _varyings [[$stage_in]]) \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL \ + , float2 _fragCoord, FragmentTextures _textures, \ + FragmentStorageBuffers _buffers +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord, _textures, _buffers + +#ifdef @PLS_IMPL_DEVICE_BUFFER + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#ifdef @PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +// Apple Silicon doesn't support fragment-fragment memory barriers, so on this +// hardware we use raster order groups instead. Since the PLS plane indices +// collide with other buffer bindings, offset the binding indices of these +// buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + $device uint* NAME \ + [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), $raster_order_group(0)]] +#define PLS_DECLUI(IDX, NAME) \ + $device uint* NAME \ + [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), $raster_order_group(0)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + $device $atomic_uint* NAME \ + [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE), $raster_order_group(0)]] +#else +// Since the PLS plane indices collide with other buffer bindings, offset the +// binding indices of these buffers by DEFAULT_BINDINGS_SET_SIZE. +#define PLS_DECL4F(IDX, NAME) \ + $device uint* NAME [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI(IDX, NAME) \ + $device uint* NAME [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#define PLS_DECLUI_ATOMIC(IDX, NAME) \ + $device $atomic_uint* NAME [[$buffer(IDX + DEFAULT_BINDINGS_SET_SIZE)]] +#endif // @PLS_IMPL_DEVICE_BUFFER_RASTER_ORDERED +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , PLS _pls, uint _plsIdx +#define PLS_CONTEXT_UNPACK , _pls, _plsIdx + +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(_pls.PLANE[_plsIdx]) +#define PLS_LOADUI(PLANE) _pls.PLANE[_plsIdx] +#define PLS_LOADUI_ATOMIC(PLANE) \ + $atomic_load_explicit(&_pls.PLANE[_plsIdx], \ + $memory_order::$memory_order_relaxed) +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE[_plsIdx] = packUnorm4x8(VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE[_plsIdx] = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE, VALUE) \ + $atomic_store_explicit(&_pls.PLANE[_plsIdx], \ + VALUE, \ + $memory_order::$memory_order_relaxed) +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define PLS_ATOMIC_MAX(PLANE, X) \ + $atomic_fetch_max_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + $memory_order::$memory_order_relaxed) + +#define PLS_ATOMIC_ADD(PLANE, X) \ + $atomic_fetch_add_explicit(&_pls.PLANE[_plsIdx], \ + X, \ + $memory_order::$memory_order_relaxed) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME) \ + $__attribute__(($visibility("default"))) $fragment NAME( \ + PLS _pls, \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2($metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + $__attribute__(($visibility("default"))) $fragment NAME( \ + PLS _pls, \ + $constant @FlushUniforms& uniforms \ + [[$buffer(FLUSH_UNIFORM_BUFFER_IDX)]], \ + $constant @ImageDrawUniforms& imageDrawUniforms \ + [[$buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]], \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + uint2 _plsCoord = uint2($metal::floor(_fragCoord)); \ + uint _plsIdx = _plsCoord.y * uniforms.renderTargetWidth + _plsCoord.x; + +#define PLS_MAIN(NAME) void PLS_METAL_MAIN(NAME) +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + void PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + half4 PLS_METAL_MAIN(NAME) \ + { \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + half4 PLS_METAL_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + { \ + half4 _fragColor; + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; \ + EMIT_PLS + +#else // Default implementation -- framebuffer reads. + +#define PLS_BLOCK_BEGIN \ + struct PLS \ + { +#define PLS_DECL4F(IDX, NAME) [[$color(IDX)]] half4 NAME +#define PLS_DECLUI(IDX, NAME) [[$color(IDX)]] uint NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_BLOCK_END \ + } \ + ; +#define PLS_CONTEXT_DECL , $thread PLS &_inpls, $thread PLS &_pls +#define PLS_CONTEXT_UNPACK , _inpls, _pls + +#define PLS_LOAD4F(PLANE) _inpls.PLANE +#define PLS_LOADUI(PLANE) _inpls.PLANE +#define PLS_LOADUI_ATOMIC(PLANE) PLS_LOADUI +#define PLS_STORE4F(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI(PLANE, VALUE) _pls.PLANE = (VALUE) +#define PLS_STOREUI_ATOMIC(PLANE) PLS_STOREUI +#define PLS_PRESERVE_4F(PLANE) _pls.PLANE = _inpls.PLANE +#define PLS_PRESERVE_UI(PLANE) _pls.PLANE = _inpls.PLANE + +INLINE uint pls_atomic_max($thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = $metal::max(originalValue, x); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(_pls.PLANE, X) + +INLINE uint pls_atomic_add($thread uint& dst, uint x) +{ + uint originalValue = dst; + dst = originalValue + x; + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(_pls.PLANE, X) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#define PLS_METAL_MAIN(NAME, ...) \ + PLS $__attribute__(($visibility("default"))) $fragment NAME($__VA_ARGS__) \ + { \ + float2 _fragCoord [[$maybe_unused]] = _varyings._pos.xy; \ + PLS _pls; + +#define PLS_MAIN(NAME, ...) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + $constant @ImageDrawUniforms& imageDrawUniforms \ + [[$buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS \ + } \ + return _pls; + +#define PLS_FRAG_COLOR_METAL_MAIN(NAME, ...) \ + struct FragmentOut \ + { \ + half4 _color [[color(0)]]; \ + PLS _pls; \ + }; \ + FragmentOut $__attribute__(($visibility("default"))) $fragment NAME( \ + $__VA_ARGS__) \ + { \ + float2 _fragCoord [[$maybe_unused]] = _varyings._pos.xy; \ + half4 _fragColor; \ + PLS _pls; + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers) + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) \ + PLS_FRAG_COLOR_METAL_MAIN(NAME, \ + PLS _inpls, \ + Varyings _varyings [[$stage_in]], \ + FragmentTextures _textures, \ + FragmentStorageBuffers _buffers, \ + $__VA_ARGS__ $constant \ + @ImageDrawUniforms& imageDrawUniforms \ + [[$buffer(IMAGE_DRAW_UNIFORM_BUFFER_IDX)]]) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return {._color = _fragColor, ._pls = _pls}; + +#endif // PLS_IMPL_DEVICE_BUFFER + +#define discard $discard_fragment() + +$using $namespace $metal; + +$template INLINE $vec floatBitsToUint($vec x) +{ + return $as_type<$vec>(x); +} + +$template INLINE $vec floatBitsToInt($vec x) +{ + return $as_type<$vec>(x); +} + +INLINE uint floatBitsToUint(float x) { return $as_type(x); } + +INLINE int floatBitsToInt(float x) { return $as_type(x); } + +$template INLINE $vec uintBitsToFloat($vec x) +{ + return $as_type<$vec>(x); +} + +INLINE float uintBitsToFloat(uint x) { return $as_type(x); } +INLINE half2 unpackHalf2x16(uint x) { return $as_type(x); } +INLINE uint packHalf2x16(half2 x) { return $as_type(x); } +INLINE half4 unpackUnorm4x8(uint x) { return $unpack_unorm4x8_to_half(x); } +INLINE uint packUnorm4x8(half4 x) { return $pack_half_to_unorm4x8(x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 m_ = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + float det = (m_[0][0] * m[0][0]) + (m_[0][1] * m[1][0]); + return m_ * (1 / det); +} + +INLINE half3 mix(half3 a, half3 b, bool3 c) +{ + half3 result; + for (int i = 0; i < 3; ++i) + result[i] = c[i] ? b[i] : a[i]; + return result; +} diff --git a/defold-rive/include/shaders/pls_load_store_ext.glsl b/defold-rive/include/shaders/pls_load_store_ext.glsl new file mode 100644 index 00000000..75ce4037 --- /dev/null +++ b/defold-rive/include/shaders/pls_load_store_ext.glsl @@ -0,0 +1,102 @@ +/* + * Copyright 2022 Rive + */ + +// The EXT_shader_pixel_local_storage extension does not provide a mechanism to +// load, store, or clear pixel local storage contents. This shader performs +// custom load, store, and clear operations via fullscreen draws. + +#ifdef @VERTEX +void main() +{ + // [-1, -1] .. [+1, +1] + gl_Position = vec4(mix(vec2(-1, 1), + vec2(1, -1), + equal(gl_VertexID & ivec2(1, 2), ivec2(0))), + 0, + 1); +} +#endif + +#ifdef @FRAGMENT + +#extension GL_EXT_shader_pixel_local_storage : require +#ifdef GL_ARM_shader_framebuffer_fetch +#extension GL_ARM_shader_framebuffer_fetch : require +#else +#extension GL_EXT_shader_framebuffer_fetch : require +#endif + +#ifdef @CLEAR_COLOR +#if __VERSION__ >= 310 +layout(binding = 0, std140) uniform ClearColor { uniform highp vec4 value; } +clearColor; +#else +uniform mediump vec4 @clearColor; +#endif +#endif + +#ifdef GL_EXT_shader_pixel_local_storage + +#ifdef @STORE_COLOR +__pixel_local_inEXT PLS +#else +__pixel_local_outEXT PLS +#endif +{ + layout(rgba8) mediump vec4 colorBuffer; + layout(r32ui) highp uint clipBuffer; + layout(rgba8) mediump vec4 scratchColorBuffer; + layout(r32ui) highp uint coverageCountBuffer; +}; + +#ifndef GL_ARM_shader_framebuffer_fetch +#ifdef @LOAD_COLOR +layout(location = 0) inout mediump vec4 fragColor; +#endif +#endif + +#ifdef @STORE_COLOR +layout(location = 0) out mediump vec4 fragColor; +#endif + +void main() +{ +#ifdef @CLEAR_COLOR +#if __VERSION__ >= 310 + colorBuffer = clearColor.value; +#else + colorBuffer = @clearColor; +#endif +#endif + +#ifdef @LOAD_COLOR +#ifdef GL_ARM_shader_framebuffer_fetch + colorBuffer = gl_LastFragColorARM; +#else + colorBuffer = fragColor; +#endif +#endif + +#ifdef @CLEAR_COVERAGE + coverageCountBuffer = 0u; +#endif + +#ifdef @CLEAR_CLIP + clipBuffer = 0u; +#endif + +#ifdef @STORE_COLOR + fragColor = colorBuffer; +#endif +} + +#else + +// This shader is being parsed by WebGPU for introspection purposes. +layout(location = 0) out mediump vec4 unused; +void main() { unused = vec4(0, 1, 0, 1); } + +#endif // GL_EXT_shader_pixel_local_storage + +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/rhi.glsl b/defold-rive/include/shaders/rhi.glsl new file mode 100644 index 00000000..da7022b0 --- /dev/null +++ b/defold-rive/include/shaders/rhi.glsl @@ -0,0 +1,355 @@ +/* + * Copyright 2023 Rive + */ + +// This header provides GLSL-specific #defines and declarations that enable our +// shaders to be compiled on MSL and GLSL both. + +// HLSL warns that it will unroll the loops through r,g,b values in +// advanced_blend.glsl, but unrolling these loops is exactly what we want. +#pragma $warning($disable : 3550) + +// Don't warn about uninitialized variables. If we leave one uninitialized it's +// because we know what we're doing and don't want to pay the cost of +// initializing it. +#pragma $warning($disable : 4000) + +// #define native hlsl types if their names are being rewritten. +#define _ARE_TOKEN_NAMES_PRESERVED +#ifndef $_ARE_TOKEN_NAMES_PRESERVED +#define half $half +#define half2 $half2 +#define half3 $half3 +#define half4 $half4 +#define short $short +#define short2 $short2 +#define short3 $short3 +#define short4 $short4 +#define ushort $ushort +#define ushort2 $ushort2 +#define ushort3 $ushort3 +#define ushort4 $ushort4 +#define float2 $float2 +#define float3 $float3 +#define float4 $float4 +#define bool2 $bool2 +#define bool3 $bool3 +#define bool4 $bool4 +#define uint2 $uint2 +#define uint3 $uint3 +#define uint4 $uint4 +#define int2 $int2 +#define int3 $int3 +#define int4 $int4 +#define float4x2 $float4x2 +#define ushort $ushort +#define float2x2 $float2x2 +#define half3x3 $half3x3 +#define half2x3 $half2x3 +#endif + +$typedef float3 packed_float3; + +#ifdef @ENABLE_MIN_16_PRECISION + +$typedef $min16uint ushort; + +#else + +$typedef $uint ushort; + +#endif + +#define SPLAT(A, B) A##B + +#define INLINE $inline +#define OUT(ARG_TYPE) out ARG_TYPE +#define INOUT(ARG_TYPE) inout ARG_TYPE + +#define ATTR_BLOCK_BEGIN(NAME) \ + struct NAME \ + { +#define ATTR(IDX, TYPE, NAME) TYPE NAME : SPLAT(ATTRIBUTE, IDX) +#define ATTR_BLOCK_END \ + } \ + ; +#define ATTR_LOAD(T, A, N, I) +#define ATTR_UNPACK(ID, attrs, NAME, TYPE) TYPE NAME = attrs.NAME + +#define VARYING_BLOCK_BEGIN \ + struct Varyings \ + { + +#define NO_PERSPECTIVE $noperspective +#define @OPTIONALLY_FLAT $nointerpolation +#define FLAT $nointerpolation +#define VARYING(IDX, TYPE, NAME) TYPE NAME : SPLAT($TEXCOORD, IDX) + +#define VARYING_BLOCK_END \ + float4 _pos : $SV_Position; \ + } \ + ; + +#define VARYING_INIT(NAME, TYPE) TYPE NAME +#define VARYING_PACK(NAME) _varyings.NAME = NAME +#define VARYING_UNPACK(NAME, TYPE) TYPE NAME = _varyings.NAME + +#ifdef @VERTEX +#define VERTEX_TEXTURE_BLOCK_BEGIN +#define VERTEX_TEXTURE_BLOCK_END +#endif + +#ifdef @FRAGMENT +#define FRAG_TEXTURE_BLOCK_BEGIN +#define FRAG_TEXTURE_BLOCK_END +#endif + +#define TEXTURE_RGBA32UI(SET, IDX, NAME) uniform $Texture2D NAME +#define TEXTURE_RGBA32F(SET, IDX, NAME) uniform $Texture2D NAME +#define TEXTURE_RGBA8(SET, IDX, NAME) uniform $Texture2D<$unorm float4> NAME + +// SAMPLER_LINEAR and SAMPLER_MIPMAP are the same because in d3d11, sampler +// parameters are defined at the API level. +#define SAMPLER(TEXTURE_IDX, NAME) $SamplerState NAME; +#define SAMPLER_LINEAR SAMPLER +#define SAMPLER_MIPMAP SAMPLER + +#define TEXEL_FETCH(NAME, COORD) NAME[COORD] +#define TEXTURE_SAMPLE(NAME, SAMPLER_NAME, COORD) \ + NAME.$Sample(SAMPLER_NAME, COORD) +#define TEXTURE_SAMPLE_LOD(NAME, SAMPLER_NAME, COORD, LOD) \ + NAME.$SampleLevel(SAMPLER_NAME, COORD, LOD) +#define TEXTURE_SAMPLE_GRAD(NAME, SAMPLER_NAME, COORD, DDX, DDY) \ + NAME.$SampleGrad(SAMPLER_NAME, COORD, DDX, DDY) + +#define PLS_INTERLOCK_BEGIN +#define PLS_INTERLOCK_END + +#ifdef @ENABLE_RASTERIZER_ORDERED_VIEWS +#define PLS_TEX2D $RasterizerOrderedTexture2D +#else +#define PLS_TEX2D $RWTexture2D +#endif + +#define PLS_BLOCK_BEGIN +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D<$unorm half4> NAME +#else +#define PLS_DECL4F(IDX, NAME) uniform PLS_TEX2D NAME +#endif +#define PLS_DECLUI(IDX, NAME) uniform PLS_TEX2D NAME +#define PLS_DECLUI_ATOMIC PLS_DECLUI +#define PLS_LOADUI_ATOMIC PLS_LOADUI +#define PLS_STOREUI_ATOMIC PLS_STOREUI +#define PLS_BLOCK_END + +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_LOAD4F(PLANE) PLANE[_plsCoord] +#else +#define PLS_LOAD4F(PLANE) unpackUnorm4x8(PLANE[_plsCoord]) +#endif +#define PLS_LOADUI(PLANE) PLANE[_plsCoord] +#ifdef @ENABLE_TYPED_UAV_LOAD_STORE +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) +#else +#define PLS_STORE4F(PLANE, VALUE) PLANE[_plsCoord] = packUnorm4x8(VALUE) +#endif +#define PLS_STOREUI(PLANE, VALUE) PLANE[_plsCoord] = (VALUE) + +INLINE uint pls_atomic_max(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + $InterlockedMax(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_MAX(PLANE, X) pls_atomic_max(PLANE, _plsCoord, X) + +INLINE uint pls_atomic_add(PLS_TEX2D plane, int2 _plsCoord, uint x) +{ + uint originalValue; + $InterlockedAdd(plane[_plsCoord], x, originalValue); + return originalValue; +} + +#define PLS_ATOMIC_ADD(PLANE, X) pls_atomic_add(PLANE, _plsCoord, X) + +#define PLS_PRESERVE_4F(PLANE) +#define PLS_PRESERVE_UI(PLANE) + +#define VERTEX_CONTEXT_DECL +#define VERTEX_CONTEXT_UNPACK + +#define VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + \ + uint $baseInstance; \ + \ + Varyings NAME(Attrs attrs, uint _vertexID \ + : $SV_VertexID, uint _instanceIDWithoutBase \ + : $SV_InstanceID) \ + { \ + uint _instanceID = _instanceIDWithoutBase + $baseInstance; \ + Varyings _varyings; + +#define IMAGE_RECT_VERTEX_MAIN(NAME, Attrs, attrs, _vertexID, _instanceID) \ + Varyings NAME(Attrs attrs, uint _vertexID : $SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define IMAGE_MESH_VERTEX_MAIN(NAME, \ + PositionAttr, \ + position, \ + UVAttr, \ + uv, \ + _vertexID) \ + Varyings NAME(PositionAttr position, UVAttr uv, uint _vertexID \ + : $SV_VertexID) \ + { \ + Varyings _varyings; \ + float4 _pos; + +#define EMIT_VERTEX(POSITION) \ + _varyings._pos = POSITION; \ + } \ + return _varyings; + +#define FRAG_DATA_MAIN(DATA_TYPE, NAME) \ + DATA_TYPE NAME(Varyings _varyings) : $SV_Target \ + { + +#define EMIT_FRAG_DATA(VALUE) \ + return VALUE; \ + } + +#define FRAGMENT_CONTEXT_DECL , float2 _fragCoord +#define FRAGMENT_CONTEXT_UNPACK , _fragCoord + +#define PLS_CONTEXT_DECL , int2 _plsCoord +#define PLS_CONTEXT_UNPACK , _plsCoord + +#define PLS_MAIN(NAME) [$earlydepthstencil] void NAME(Varyings _varyings) { \ + float2 _fragCoord = _varyings._pos.xy;\ + int2 _plsCoord = int2(floor(_fragCoord)); + +#define PLS_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_MAIN(NAME) + +#define EMIT_PLS } + +#define PLS_FRAG_COLOR_MAIN(NAME) \ + [$earlydepthstencil] half4 NAME(Varyings _varyings) : $SV_Target \ + { \ + float2 _fragCoord = _varyings._pos.xy; \ + int2 _plsCoord = int2(floor(_fragCoord)); \ + half4 _fragColor; + +#define PLS_FRAG_COLOR_MAIN_WITH_IMAGE_UNIFORMS(NAME) PLS_FRAG_COLOR_MAIN(NAME) + +#define EMIT_PLS_AND_FRAG_COLOR \ + } \ + return _fragColor; + +#define uintBitsToFloat $asfloat +#define intBitsToFloat $asfloat +#define floatBitsToInt $asint +#define floatBitsToUint $asuint +#define inversesqrt $rsqrt +#define notEqual(A, B) ((A) != (B)) +#define lessThanEqual(A, B) ((A) <= (B)) +#define lessThan(A, B) ((A) < (B)) +#define greaterThan(A, B) ((A) > (B)) +#define greaterThanEqual(A, B) ((A) >= (B)) + +// HLSL matrices are stored in row-major order, and therefore transposed from +// their counterparts in GLSL and Metal. We can work around this entirely by +// reversing the arguments to mul(). +#define MUL(A, B) $mul(B, A) + +#define VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +#define VERTEX_STORAGE_BUFFER_BLOCK_END + +#define FRAG_STORAGE_BUFFER_BLOCK_BEGIN +#define FRAG_STORAGE_BUFFER_BLOCK_END + +#define STORAGE_BUFFER_U32x2(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME +#define STORAGE_BUFFER_U32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME +#define STORAGE_BUFFER_F32x4(IDX, GLSL_STRUCT_NAME, NAME) \ + $StructuredBuffer NAME + +#define STORAGE_BUFFER_LOAD4(NAME, I) NAME[I] +#define STORAGE_BUFFER_LOAD2(NAME, I) NAME[I] + +INLINE half2 unpackHalf2x16(uint u) +{ + uint y = (u >> 16); + uint x = u & 0xffffu; + return half2($f16tof32(x), $f16tof32(y)); +} + +INLINE uint packHalf2x16(float2 v) +{ + uint x = $f32tof16(v.x); + uint y = $f32tof16(v.y); + return (y << 16) | x; +} + +INLINE half4 unpackUnorm4x8(uint u) +{ + uint4 vals = uint4(u & 0xffu, (u >> 8) & 0xffu, (u >> 16) & 0xffu, u >> 24); + return half4(vals) * (1. / 255.); +} + +INLINE uint packUnorm4x8(half4 color) +{ + uint4 vals = (uint4(color * 255.) & 0xff) << uint4(0, 8, 16, 24); + vals.rg |= vals.ba; + vals.r |= vals.g; + return vals.r; +} + +INLINE float atan(float y, float x) { return $atan2(y, x); } + +INLINE float2x2 inverse(float2x2 m) +{ + float2x2 adjoint = float2x2(m[1][1], -m[0][1], -m[1][0], m[0][0]); + return adjoint * (1. / determinant(m)); +} + +// Redirects for intrinsics that have different names in HLSL + +INLINE float mix(float x, float y, float s) { return $lerp(x, y, s); } +INLINE float2 mix(float2 x, float2 y, float2 s) { return $lerp(x, y, s); } +INLINE float3 mix(float3 x, float3 y, float3 s) { return $lerp(x, y, s); } +INLINE float4 mix(float4 x, float4 y, float4 s) { return $lerp(x, y, s); } + +INLINE float fract(float x) { return $frac(x); } +INLINE float2 fract(float2 x) { return $frac(x); } +INLINE float3 fract(float3 x) { return $frac(x); } +INLINE float4 fract(float4 x) { return $frac(x); } + +// Reimplement intrinsics for half types. +// This shadows the intrinsic function for floats, so we also have to declare +// that overload. + +INLINE float rive_sign(float x) { return sign(x); } +INLINE float2 rive_sign(float2 x) { return sign(x); } +INLINE float3 rive_sign(float3 x) { return sign(x); } +INLINE float4 rive_sign(float4 x) { return sign(x); } + +#define sign rive_sign + +INLINE float rive_abs(float x) { return abs(x); } +INLINE float2 rive_abs(float2 x) { return abs(x); } +INLINE float3 rive_abs(float3 x) { return abs(x); } +INLINE float4 rive_abs(float4 x) { return abs(x); } + +#define abs rive_abs + +INLINE float rive_sqrt(float x) { return sqrt(x); } +INLINE float2 rive_sqrt(float2 x) { return sqrt(x); } +INLINE float3 rive_sqrt(float3 x) { return sqrt(x); } +INLINE float4 rive_sqrt(float4 x) { return sqrt(x); } + +#define sqrt rive_sqrt diff --git a/defold-rive/include/shaders/specialization.glsl b/defold-rive/include/shaders/specialization.glsl new file mode 100644 index 00000000..fce15c85 --- /dev/null +++ b/defold-rive/include/shaders/specialization.glsl @@ -0,0 +1,25 @@ +layout(constant_id = CLIPPING_SPECIALIZATION_IDX) const + bool kEnableClipping = false; +layout(constant_id = CLIP_RECT_SPECIALIZATION_IDX) const + bool kEnableClipRect = false; +layout(constant_id = ADVANCED_BLEND_SPECIALIZATION_IDX) const + bool kEnableAdvancedBlend = false; +layout(constant_id = EVEN_ODD_SPECIALIZATION_IDX) const + bool kEnableEvenOdd = false; +layout(constant_id = NESTED_CLIPPING_SPECIALIZATION_IDX) const + bool kEnableNestedClipping = false; +layout(constant_id = HSL_BLEND_MODES_SPECIALIZATION_IDX) const + bool kEnableHSLBlendModes = false; +layout(constant_id = CLOCKWISE_FILL_SPECIALIZATION_IDX) const + bool kClockwiseFill = false; +layout(constant_id = BORROWED_COVERAGE_PREPASS_SPECIALIZATION_IDX) const + bool kBorrowedCoveragePrepass = false; + +#define @ENABLE_CLIPPING kEnableClipping +#define @ENABLE_CLIP_RECT kEnableClipRect +#define @ENABLE_ADVANCED_BLEND kEnableAdvancedBlend +#define @ENABLE_EVEN_ODD kEnableEvenOdd +#define @ENABLE_NESTED_CLIPPING kEnableNestedClipping +#define @ENABLE_HSL_BLEND_MODES kEnableHSLBlendModes +#define @CLOCKWISE_FILL kClockwiseFill +#define @BORROWED_COVERAGE_PREPASS kBorrowedCoveragePrepass diff --git a/defold-rive/include/shaders/stencil_draw.glsl b/defold-rive/include/shaders/stencil_draw.glsl new file mode 100644 index 00000000..0b065e0d --- /dev/null +++ b/defold-rive/include/shaders/stencil_draw.glsl @@ -0,0 +1,30 @@ +/* + * Copyright 2024 Rive + */ + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR(0, packed_float3, @a_triangleVertex); +ATTR_BLOCK_END + +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +VERTEX_STORAGE_BUFFER_BLOCK_END + +VERTEX_MAIN(@stencilVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + float4 pos = RENDER_TARGET_COORD_TO_CLIP_COORD(@a_triangleVertex.xy); + uint zIndex = floatBitsToUint(@a_triangleVertex.z) & 0xffffu; + pos.z = normalize_z_index(zIndex); + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_TEXTURE_BLOCK_BEGIN +FRAG_TEXTURE_BLOCK_END + +FRAG_DATA_MAIN(half4, @blitFragmentMain) { EMIT_FRAG_DATA(make_half4(.0)); } +#endif // FRAGMENT diff --git a/defold-rive/include/shaders/tessellate.glsl b/defold-rive/include/shaders/tessellate.glsl new file mode 100644 index 00000000..555572eb --- /dev/null +++ b/defold-rive/include/shaders/tessellate.glsl @@ -0,0 +1,486 @@ +/* + * Copyright 2020 Google LLC. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Initial import from + * skia:src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp + * + * Copyright 2022 Rive + */ + +#define MAX_PARAMETRIC_SEGMENTS_LOG2 10 // Max 1024 segments. + +#ifdef @VERTEX +ATTR_BLOCK_BEGIN(Attrs) +ATTR( + 0, + float4, + @a_p0p1_); // End in '_' because D3D interprets the '1' as a semantic index. +ATTR(1, float4, @a_p2p3_); +ATTR(2, float4, @a_joinTan_and_ys); // [joinTangent, y, reflectionY] +#ifdef SPLIT_UINT4_ATTRIBUTES +ATTR(3, uint, @a_x0x1); +ATTR(4, uint, @a_reflectionX0X1); +ATTR(5, uint, @a_segmentCounts); +ATTR(6, uint, @a_contourIDWithFlags); +#else +ATTR(3, + uint4, + @a_args); // [x0x1, reflectionX0X1, segmentCounts, contourIDWithFlags] +#endif +ATTR_BLOCK_END +#endif + +VARYING_BLOCK_BEGIN +NO_PERSPECTIVE VARYING(0, float4, v_p0p1); +NO_PERSPECTIVE VARYING(1, float4, v_p2p3); +NO_PERSPECTIVE VARYING( + 2, + float4, + v_args); // [vertexIdx, totalVertexCount, joinSegmentCount, + // parametricSegmentCount, radsPerPolarSegment] +NO_PERSPECTIVE VARYING(3, + float3, + v_joinArgs); // [joinTangent, radsPerJoinSegment] +FLAT VARYING(4, uint, v_contourIDWithFlags); +VARYING_BLOCK_END + +// Tangent of the curve at T=0 and T=1. +INLINE float2x2 find_tangents(float2 p0, float2 p1, float2 p2, float2 p3) +{ + float2x2 t; + t[0] = (any(notEqual(p0, p1)) ? p1 : any(notEqual(p1, p2)) ? p2 : p3) - p0; + t[1] = p3 - (any(notEqual(p3, p2)) ? p2 : any(notEqual(p2, p1)) ? p1 : p0); + return t; +} + +#ifdef @VERTEX +VERTEX_TEXTURE_BLOCK_BEGIN +VERTEX_TEXTURE_BLOCK_END + +VERTEX_STORAGE_BUFFER_BLOCK_BEGIN +STORAGE_BUFFER_U32x4(PATH_BUFFER_IDX, PathBuffer, @pathBuffer); +STORAGE_BUFFER_U32x4(CONTOUR_BUFFER_IDX, ContourBuffer, @contourBuffer); +VERTEX_STORAGE_BUFFER_BLOCK_END + +float cosine_between_vectors(float2 a, float2 b) +{ + // FIXME(crbug.com/800804,skbug.com/11268): This can overflow if we don't + // normalize exponents. + float ab_cosTheta = dot(a, b); + float ab_pow2 = dot(a, a) * dot(b, b); + return (ab_pow2 == .0) ? 1. + : clamp(ab_cosTheta * inversesqrt(ab_pow2), -1., 1.); +} + +VERTEX_MAIN(@tessellateVertexMain, Attrs, attrs, _vertexID, _instanceID) +{ + // Each instance repeats twice. Once for normal patch(es) and once for + // reflection(s). + ATTR_UNPACK(_instanceID, attrs, @a_p0p1_, float4); + ATTR_UNPACK(_instanceID, attrs, @a_p2p3_, float4); + ATTR_UNPACK(_instanceID, attrs, @a_joinTan_and_ys, float4); +#ifdef SPLIT_UINT4_ATTRIBUTES + ATTR_UNPACK(_instanceID, attrs, @a_x0x1, uint); + ATTR_UNPACK(_instanceID, attrs, @a_reflectionX0X1, uint); + ATTR_UNPACK(_instanceID, attrs, @a_segmentCounts, uint); + ATTR_UNPACK(_instanceID, attrs, @a_contourIDWithFlags, uint); + + uint4 @a_args = uint4(@a_x0x1, + @a_reflectionX0X1, + @a_segmentCounts, + @a_contourIDWithFlags); +#else + ATTR_UNPACK(_instanceID, attrs, @a_args, uint4); +#endif + + VARYING_INIT(v_p0p1, float4); + VARYING_INIT(v_p2p3, float4); + VARYING_INIT(v_args, float4); + VARYING_INIT(v_joinArgs, float3); + VARYING_INIT(v_contourIDWithFlags, uint); + + float2 p0 = @a_p0p1_.xy; + float2 p1 = @a_p0p1_.zw; + float2 p2 = @a_p2p3_.xy; + float2 p3 = @a_p2p3_.zw; + // Each instance has two spans, potentially for both a forward copy and and + // reflection. (If the second span isn't needed, the client will have placed + // it offscreen.) + bool isFirstSpan = _vertexID < 4; + float y = isFirstSpan ? @a_joinTan_and_ys.z : @a_joinTan_and_ys.w; + int x0x1 = int(isFirstSpan ? @a_args.x : @a_args.y); +#ifdef GLSL + int x1up = x0x1 << 16; + if (@a_args.z == 0xffffffffu) + { + // Pixel 8 with ARM Mali-G715 throws away "x0x1 << 16 >> 16". We need + // this in order to sign-extend the bottom 16 bits of x0x1. Create a + // branch that we know won't be taken, in order to convince the compiler + // not to throw this operation away. NOTE: we could use + // bitfieldExtract(), but it isn't available on ES 3.0. + --x1up; + } + float x0 = float(x1up >> 16); +#else + float x0 = float(x0x1 << 16 >> 16); +#endif + float x1 = float(x0x1 >> 16); + float2 coord = float2((_vertexID & 1) == 0 ? x0 : x1, + (_vertexID & 2) == 0 ? y + 1. : y); + + uint parametricSegmentCount = @a_args.z & 0x3ffu; + uint polarSegmentCount = (@a_args.z >> 10) & 0x3ffu; + uint joinSegmentCount = @a_args.z >> 20; + uint contourIDWithFlags = @a_args.w; + if (x1 < x0) // Reflections are drawn right to left. + { + contourIDWithFlags |= MIRRORED_CONTOUR_CONTOUR_FLAG; + } + if ((x1 - x0) * uniforms.tessInverseViewportY < .0) + { + // Make sure we always emit clockwise triangles. Swap the top and bottom + // vertices. + coord.y = 2. * y + 1. - coord.y; + } + if ((contourIDWithFlags & CULL_EXCESS_TESSELLATION_SEGMENTS_CONTOUR_FLAG) != + 0u) + { + // This span may have more tessellation vertices allocated to it than + // necessary (e.g., outerCurve patches all have a fixed patch size, + // regardless of how many segments the curve actually needs). Re-run + // Wang's formula to figure out how many segments we actually need, and + // make any excess segments degenerate by co-locating their vertices at + // T=0. + uint pathID = STORAGE_BUFFER_LOAD4(@contourBuffer, + contour_data_idx(contourIDWithFlags)) + .z; + float2x2 mat = make_float2x2( + uintBitsToFloat(STORAGE_BUFFER_LOAD4(@pathBuffer, pathID * 4u))); + float2 d0 = MUL(mat, -2. * p1 + p2 + p0); + + float2 d1 = MUL(mat, -2. * p2 + p3 + p1); + float m = max(dot(d0, d0), dot(d1, d1)); + float n = max(ceil(sqrt(.75 * 4. * sqrt(m))), 1.); + parametricSegmentCount = min(uint(n), parametricSegmentCount); + } + // Polar and parametric segments share the same beginning and ending + // vertices, so the merged *vertex* count is equal to the sum of polar and + // parametric *segment* counts. + uint totalVertexCount = + parametricSegmentCount + polarSegmentCount + joinSegmentCount - 1u; + + float2x2 tangents = find_tangents(p0, p1, p2, p3); + float theta = acos(cosine_between_vectors(tangents[0], tangents[1])); + float radsPerPolarSegment = theta / float(polarSegmentCount); + // Adjust sign of radsPerPolarSegment to match the direction the curve + // turns. NOTE: Since the curve is not allowed to inflect, we can just check + // F'(.5) x F''(.5). NOTE: F'(.5) x F''(.5) has the same sign as (p2 - p0) x + // (p3 - p1). + float turn = determinant(float2x2(p2 - p0, p3 - p1)); + if (turn == + .0) // This is the case for joins and cusps where points are co-located. + turn = determinant(tangents); + if (turn < .0) + radsPerPolarSegment = -radsPerPolarSegment; + + v_p0p1 = float4(p0, p1); + v_p2p3 = float4(p2, p3); + v_args = float4(float(totalVertexCount) - abs(x1 - coord.x), // vertexIdx + float(totalVertexCount), // totalVertexCount + (joinSegmentCount << 10) | parametricSegmentCount, + radsPerPolarSegment); + if (joinSegmentCount > 1u) + { + float2x2 joinTangents = float2x2(tangents[1], @a_joinTan_and_ys.xy); + float joinTheta = + acos(cosine_between_vectors(joinTangents[0], joinTangents[1])); + float joinSpan = float(joinSegmentCount); + if ((contourIDWithFlags & + (JOIN_TYPE_MASK | EMULATED_STROKE_CAP_CONTOUR_FLAG)) == + EMULATED_STROKE_CAP_CONTOUR_FLAG) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. The fragment shader will handle + // most of this, but here we need to adjust radsPerJoinSegment to + // account for the fact that this join will be rotating around two + // more segments. + joinSpan -= 2.; + } + float radsPerJoinSegment = joinTheta / joinSpan; + if (determinant(joinTangents) < .0) + radsPerJoinSegment = -radsPerJoinSegment; + v_joinArgs.xy = @a_joinTan_and_ys.xy; + v_joinArgs.z = radsPerJoinSegment; + } + v_contourIDWithFlags = contourIDWithFlags; + + float4 pos; + pos.x = coord.x * (2. / TESS_TEXTURE_WIDTH) - 1.; + pos.y = coord.y * uniforms.tessInverseViewportY - + sign(uniforms.tessInverseViewportY); + pos.zw = float2(0, 1); + + VARYING_PACK(v_p0p1); + VARYING_PACK(v_p2p3); + VARYING_PACK(v_args); + VARYING_PACK(v_joinArgs); + VARYING_PACK(v_contourIDWithFlags); + EMIT_VERTEX(pos); +} +#endif + +#ifdef @FRAGMENT +FRAG_DATA_MAIN(uint4, @tessellateFragmentMain) +{ + VARYING_UNPACK(v_p0p1, float4); + VARYING_UNPACK(v_p2p3, float4); + VARYING_UNPACK(v_args, float4); + VARYING_UNPACK(v_joinArgs, float3); + VARYING_UNPACK(v_contourIDWithFlags, uint); + + float2 p0 = v_p0p1.xy; + float2 p1 = v_p0p1.zw; + float2 p2 = v_p2p3.xy; + float2 p3 = v_p2p3.zw; + float2x2 tangents = find_tangents(p0, p1, p2, p3); + // Colocate any padding vertices at T=0. + float vertexIdx = max(floor(v_args.x), .0); + float totalVertexCount = v_args.y; + uint joinSegmentCount_and_parametricSegmentCount = uint(v_args.z); + float parametricSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount & 0x3ffu); + float joinSegmentCount = + float(joinSegmentCount_and_parametricSegmentCount >> 10); + float radsPerPolarSegment = v_args.w; + uint contourIDWithFlags = v_contourIDWithFlags; + + // mergedVertexID/mergedSegmentCount are relative to the sub-section of the + // instance this vertex belongs to (either the curve section that consists + // of merged polar and parametric segments, or the join section composed of + // just polar segments). + // + // Begin with the assumption that we belong to the curve section. + float mergedSegmentCount = totalVertexCount - joinSegmentCount; + float mergedVertexID = vertexIdx; + if (mergedVertexID <= mergedSegmentCount) + { + // We do belong to the curve section. Clear out any stroke join flags. + contourIDWithFlags &= ~JOIN_TYPE_MASK; + } + else + { + // We actually belong to the join section following the curve. Construct + // a point-cubic with rotation. + p0 = p1 = p2 = p3; + tangents = float2x2(tangents[1], v_joinArgs.xy /*joinTangent*/); + parametricSegmentCount = 1.; + mergedVertexID -= mergedSegmentCount; + mergedSegmentCount = joinSegmentCount; + if ((contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Miter or bevel join vertices snap to either tangents[0] or + // tangents[1], and get adjusted in the shader that follows. + if (mergedVertexID < 2.5) // With 5 join segments, this branch will + // see IDs: 1, 2, 3, 4. + contourIDWithFlags |= JOIN_TANGENT_0_CONTOUR_FLAG; + if (mergedVertexID > 1.5 && mergedVertexID < 3.5) + contourIDWithFlags |= JOIN_TANGENT_INNER_CONTOUR_FLAG; + } + else if ((contourIDWithFlags & EMULATED_STROKE_CAP_CONTOUR_FLAG) != 0u) + { + // Round caps emulated as joins need to emit vertices at T=0 and + // T=1, unlike normal round joins. Preserve the same number of + // vertices (the CPU should have given us two extra, knowing that we + // are an emulated cap, and the vertex shader should have already + // accounted for this in radsPerJoinSegment), but adjust our + // stepping parameters so we begin at T=0 and end at T=1. + mergedSegmentCount -= 2.; + mergedVertexID--; + } + radsPerPolarSegment = v_joinArgs.z; // radsPerJoinSegment. + contourIDWithFlags |= radsPerPolarSegment < .0 + ? LEFT_JOIN_CONTOUR_FLAG + : RIGHT_JOIN_CONTOUR_FLAG; + } + + float2 tessCoord; + float theta = .0; + if (mergedVertexID == .0 || mergedVertexID == mergedSegmentCount || + (contourIDWithFlags & JOIN_TYPE_MASK) != 0u) + { + // Tessellated vertices at the beginning and end of the strip use exact + // endpoints and tangents. This ensures crack-free seaming between + // instances. + bool isTan0 = mergedVertexID < mergedSegmentCount * .5; + tessCoord = isTan0 ? p0 : p3; + theta = atan2(isTan0 ? tangents[0] : tangents[1]); + } + else if ((contourIDWithFlags & RETROFITTED_TRIANGLE_CONTOUR_FLAG) != 0u) + { + // This cubic should actually be drawn as the single, non-AA triangle: + // [p0, p1, p3]. This is used to squeeze in more rare triangles, like + // "grout" triangles from self intersections on interior triangulation, + // where it wouldn't be worth it to put them in their own dedicated draw + // call. + tessCoord = p1; + } + else + { + float T, polarT; + if (parametricSegmentCount == mergedSegmentCount) + { + // There are no polar vertices. This is (probably) a fill. Vertices + // are spaced evenly in parametric space. + T = mergedVertexID / parametricSegmentCount; + polarT = .0; // Set polarT != T to ensure we calculate the + // parametric tangent later. + } + else + { + // Compute the location and tangent direction of the tessellated + // stroke vertex with the integral id "mergedVertexID", where + // mergedVertexID is the sorted-order index of parametric and polar + // vertices. Start by finding the tangent function's power basis + // coefficients. These define a tangent direction (scaled by some + // uniform value) as: + // + // |T^2| + // Tangent_Direction(T) = dx,dy = |A 2B C| * |T | + // |. . .| |1 | + float2 A, B, C = p1 - p0; + float2 D = p3 - p0; + float2 E = p2 - p1; + B = E - C; + A = -3. * E + D; + // FIXME(crbug.com/800804,skbug.com/11268): Consider normalizing the + // exponents in A,B,C at this point in order to prevent fp32 + // overflow. + + // Now find the coefficients that give a tangent direction from a + // parametric vertex ID: + // + // |parametricVertexID^2| + // Tangent_Direction(parametricVertexID) = dx,dy = |A B_ C_| * + // |parametricVertexID | + // |. . .| |1 + // | + // + float2 B_ = B * (parametricSegmentCount * 2.); + float2 C_ = C * (parametricSegmentCount * parametricSegmentCount); + + // Run a binary search to determine the highest parametric vertex + // that is located on or before the mergedVertexID. A merged ID is + // determined by the sum of complete parametric and polar segments + // behind it. i.e., find the highest parametric vertex where: + // + // parametricVertexID + floor(numPolarSegmentsAtParametricT) <= + // mergedVertexID + // + float lastParametricVertexID = .0; + float maxParametricVertexID = + min(parametricSegmentCount - 1., mergedVertexID); + // FIXME(crbug.com/800804,skbug.com/11268): This normalize() can + // overflow. + float2 tan0norm = normalize(tangents[0]); + float negAbsRadsPerSegment = -abs(radsPerPolarSegment); + float maxRotation0 = + (1. + mergedVertexID) * abs(radsPerPolarSegment); + for (int p = MAX_PARAMETRIC_SEGMENTS_LOG2 - 1; p >= 0; --p) + { + // Test the parametric vertex at lastParametricVertexID + 2^p. + float testParametricID = + lastParametricVertexID + exp2(float(p)); + if (testParametricID <= maxParametricVertexID) + { + float2 testTan = testParametricID * A + B_; + testTan = testParametricID * testTan + C_; + float cosRotation = dot(normalize(testTan), tan0norm); + float maxRotation = + testParametricID * negAbsRadsPerSegment + maxRotation0; + maxRotation = min(maxRotation, PI); + // Is rotation <= maxRotation? (i.e., is the number of + // complete polar segments behind testT, + testParametricID + // <= mergedVertexID?) + if (cosRotation >= cos(maxRotation)) + lastParametricVertexID = testParametricID; + } + } + + // Find the T value of the parametric vertex at + // lastParametricVertexID. + float parametricT = lastParametricVertexID / parametricSegmentCount; + + // Now that we've identified the highest parametric vertex on or + // before the mergedVertexID, the highest polar vertex is easy: + float lastPolarVertexID = mergedVertexID - lastParametricVertexID; + + // Find the angle of tan0, or the angle between tan0norm and the + // positive x axis. + float theta0 = acos(clamp(tan0norm.x, -1., 1.)); + theta0 = tan0norm.y >= .0 ? theta0 : -theta0; + + // Find the tangent vector on the vertex at lastPolarVertexID. + theta = lastPolarVertexID * radsPerPolarSegment + theta0; + float2 norm = float2(sin(theta), -cos(theta)); + + // Find the T value where the tangent is orthogonal to norm. This is + // a quadratic: + // + // dot(norm, Tangent_Direction(T)) == 0 + // + // |T^2| + // norm * |A 2B C| * |T | == 0 + // |. . .| |1 | + // + float a = dot(norm, A), b_over_2 = dot(norm, B), c = dot(norm, C); + float discr_over_4 = max(b_over_2 * b_over_2 - a * c, .0); + float q = sqrt(discr_over_4); + if (b_over_2 > .0) + q = -q; + q -= b_over_2; + + // Roots are q/a and c/q. Since each curve section does not inflect + // or rotate more than 180 degrees, there can only be one tangent + // orthogonal to "norm" inside 0..1. Pick the root nearest .5. + float _5qa = -.5 * q * a; + float2 root = (abs(q * q + _5qa) < abs(a * c + _5qa)) + ? float2(q, a) + : float2(c, q); + polarT = (root.t != .0) ? root.s / root.t : .0; + polarT = clamp(polarT, .0, 1.); + + // The root finder above can become unstable when lastPolarVertexID + // == 0 (e.g., if there are roots at exatly 0 and 1 both). polarT + // should always == 0 in this case. + if (lastPolarVertexID == .0) + polarT = .0; + + // Now that we've identified the T values of the last parametric and + // polar vertices, our final T value for mergedVertexID is whichever + // is larger. + T = max(parametricT, polarT); + } + + // Evaluate the cubic at T. Use De Casteljau's for its accuracy and + // stability. + float2 ab = unchecked_mix(p0, p1, T); + float2 bc = unchecked_mix(p1, p2, T); + float2 cd = unchecked_mix(p2, p3, T); + float2 abc = unchecked_mix(ab, bc, T); + float2 bcd = unchecked_mix(bc, cd, T); + tessCoord = unchecked_mix(abc, bcd, T); + + // If we went with T=parametricT, then update theta. Otherwise leave it + // at the polar theta found previously. (In the event that parametricT + // == polarT, we keep the polar theta.) + if (T != polarT) + theta = atan2(bcd - abc); + } + + EMIT_FRAG_DATA( + uint4(floatBitsToUint(float3(tessCoord, theta)), contourIDWithFlags)); +} +#endif diff --git a/utils/build_pls.sh b/utils/build_pls.sh index 2e3036c7..e73443ad 100755 --- a/utils/build_pls.sh +++ b/utils/build_pls.sh @@ -106,12 +106,15 @@ function build_library() { echo "Using DEFINES=${DEFINES}" echo "Using INCLUDES=${INCLUDES}" - # make sure it doesn't pick up the project's app manifest - echo "[native_extension]" > ${target_dir}/ext.settings - echo "app_manifest =" >> ${target_dir}/ext.settings + local settings="${SETTINGS}" + if [ "" == "${settings}" ]; then + settings="${target_dir}/ext.settings" + echo "[native_extension]" > "$settings" + echo "app_manifest =" >> "$settings" + fi # remove --defoldsdk for building WebGL/WebGPU - java -jar $BOB --debug-output-spirv=true --debug-output-wgsl=true --platform=$platform --architectures=$platform --settings=${target_dir}/ext.settings resolve build --build-artifacts=library --variant $VARIANT --build-server=$SERVER --debug-ne-upload true --ne-output-name=${name} --ne-build-dir ${source_dir} # --defoldsdk=${DEFOLDSDK} + java -jar $BOB --debug-output-spirv=true --debug-output-wgsl=true --platform=$platform --architectures=$platform --settings=$settings resolve build --build-artifacts=library --variant $VARIANT --build-server=$SERVER --debug-ne-upload true --ne-output-name=${name} --ne-build-dir ${source_dir} # --defoldsdk=${DEFOLDSDK} # java -jar $BOB --debug-output-spirv=true --debug-output-wgsl=true --platform=$platform --architectures=$platform --settings=${target_dir}/ext.settings resolve build --build-artifacts=library --variant $VARIANT --build-server=$SERVER --debug-ne-upload true --ne-output-name=${name} --ne-build-dir ${source_dir} --defoldsdk=${DEFOLDSDK}