Merge pull request #627 from sabretooth/vulkan-fixes

Vulkan: point primitive rendering improvements
This commit is contained in:
Justin Moore 2016-11-12 20:44:18 -06:00 committed by GitHub
commit f5168c5768
15 changed files with 1503 additions and 1304 deletions

View File

@ -155,8 +155,9 @@ void SpirvShaderTranslator::StartTranslation() {
} }
// Push constants, represented by SpirvPushConstants. // Push constants, represented by SpirvPushConstants.
Id push_constants_type = b.makeStructType( Id push_constants_type =
{vec4_float_type_, vec4_float_type_, vec4_float_type_, uint_type_}, b.makeStructType({vec4_float_type_, vec4_float_type_, vec4_float_type_,
vec4_float_type_, uint_type_},
"push_consts_type"); "push_consts_type");
b.addDecoration(push_constants_type, spv::Decoration::DecorationBlock); b.addDecoration(push_constants_type, spv::Decoration::DecorationBlock);
@ -170,16 +171,21 @@ void SpirvShaderTranslator::StartTranslation() {
push_constants_type, 1, spv::Decoration::DecorationOffset, push_constants_type, 1, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, vtx_fmt))); static_cast<int>(offsetof(SpirvPushConstants, vtx_fmt)));
b.addMemberName(push_constants_type, 1, "vtx_fmt"); b.addMemberName(push_constants_type, 1, "vtx_fmt");
// float4 alpha_test; // float4 vtx_fmt;
b.addMemberDecoration( b.addMemberDecoration(
push_constants_type, 2, spv::Decoration::DecorationOffset, push_constants_type, 2, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, alpha_test))); static_cast<int>(offsetof(SpirvPushConstants, point_size)));
b.addMemberName(push_constants_type, 2, "alpha_test"); b.addMemberName(push_constants_type, 2, "point_size");
// uint ps_param_gen; // float4 alpha_test;
b.addMemberDecoration( b.addMemberDecoration(
push_constants_type, 3, spv::Decoration::DecorationOffset, push_constants_type, 3, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, alpha_test)));
b.addMemberName(push_constants_type, 3, "alpha_test");
// uint ps_param_gen;
b.addMemberDecoration(
push_constants_type, 4, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, ps_param_gen))); static_cast<int>(offsetof(SpirvPushConstants, ps_param_gen)));
b.addMemberName(push_constants_type, 3, "ps_param_gen"); b.addMemberName(push_constants_type, 4, "ps_param_gen");
push_consts_ = b.createVariable(spv::StorageClass::StorageClassPushConstant, push_consts_ = b.createVariable(spv::StorageClass::StorageClassPushConstant,
push_constants_type, "push_consts"); push_constants_type, "push_consts");
@ -292,6 +298,24 @@ void SpirvShaderTranslator::StartTranslation() {
b.createStore(vec4_float_zero_, ptr); b.createStore(vec4_float_zero_, ptr);
} }
point_size_ = b.createVariable(spv::StorageClass::StorageClassOutput,
float_type_, "point_size");
b.addDecoration(point_size_, spv::Decoration::DecorationLocation, 17);
// Set default point-size value (-1.0f, indicating to the geometry shader
// that the register value should be used instead of the per-vertex value)
b.createStore(point_size_, b.makeFloatConstant(-1.0f));
point_coord_ = b.createVariable(spv::StorageClass::StorageClassOutput,
vec2_float_type_, "point_coord");
b.addDecoration(point_coord_, spv::Decoration::DecorationLocation, 16);
// point_coord is only ever populated in a geometry shader. Just write
// zero to it in the vertex shader.
b.createStore(
point_coord_,
b.makeCompositeConstant(vec2_float_type_,
std::vector<Id>({b.makeFloatConstant(0.0f),
b.makeFloatConstant(0.0f)})));
pos_ = b.createVariable(spv::StorageClass::StorageClassOutput, pos_ = b.createVariable(spv::StorageClass::StorageClassOutput,
vec4_float_type_, "gl_Position"); vec4_float_type_, "gl_Position");
b.addDecoration(pos_, spv::Decoration::DecorationBuiltIn, b.addDecoration(pos_, spv::Decoration::DecorationBuiltIn,
@ -303,6 +327,8 @@ void SpirvShaderTranslator::StartTranslation() {
spv::BuiltIn::BuiltInVertexIndex); spv::BuiltIn::BuiltInVertexIndex);
interface_ids_.push_back(interpolators_); interface_ids_.push_back(interpolators_);
interface_ids_.push_back(point_coord_);
interface_ids_.push_back(point_size_);
interface_ids_.push_back(pos_); interface_ids_.push_back(pos_);
interface_ids_.push_back(vertex_idx_); interface_ids_.push_back(vertex_idx_);
@ -322,6 +348,10 @@ void SpirvShaderTranslator::StartTranslation() {
interpolators_type, "interpolators"); interpolators_type, "interpolators");
b.addDecoration(interpolators_, spv::Decoration::DecorationLocation, 0); b.addDecoration(interpolators_, spv::Decoration::DecorationLocation, 0);
point_coord_ = b.createVariable(spv::StorageClass::StorageClassInput,
vec2_float_type_, "point_coord");
b.addDecoration(point_coord_, spv::Decoration::DecorationLocation, 16);
// Pixel fragment outputs (one per render target). // Pixel fragment outputs (one per render target).
Id frag_outputs_type = Id frag_outputs_type =
b.makeArrayType(vec4_float_type_, b.makeUintConstant(4), 0); b.makeArrayType(vec4_float_type_, b.makeUintConstant(4), 0);
@ -335,6 +365,7 @@ void SpirvShaderTranslator::StartTranslation() {
spv::BuiltIn::BuiltInFragDepth); spv::BuiltIn::BuiltInFragDepth);
interface_ids_.push_back(interpolators_); interface_ids_.push_back(interpolators_);
interface_ids_.push_back(point_coord_);
interface_ids_.push_back(frag_outputs_); interface_ids_.push_back(frag_outputs_);
interface_ids_.push_back(frag_depth_); interface_ids_.push_back(frag_depth_);
// TODO(benvanik): frag depth, etc. // TODO(benvanik): frag depth, etc.
@ -358,7 +389,7 @@ void SpirvShaderTranslator::StartTranslation() {
// Setup ps_param_gen // Setup ps_param_gen
auto ps_param_gen_idx_ptr = b.createAccessChain( auto ps_param_gen_idx_ptr = b.createAccessChain(
spv::StorageClass::StorageClassPushConstant, push_consts_, spv::StorageClass::StorageClassPushConstant, push_consts_,
std::vector<Id>({b.makeUintConstant(3)})); std::vector<Id>({b.makeUintConstant(4)}));
auto ps_param_gen_idx = b.createLoad(ps_param_gen_idx_ptr); auto ps_param_gen_idx = b.createLoad(ps_param_gen_idx_ptr);
auto frag_coord = b.createVariable(spv::StorageClass::StorageClassInput, auto frag_coord = b.createVariable(spv::StorageClass::StorageClassInput,
@ -366,16 +397,11 @@ void SpirvShaderTranslator::StartTranslation() {
b.addDecoration(frag_coord, spv::Decoration::DecorationBuiltIn, b.addDecoration(frag_coord, spv::Decoration::DecorationBuiltIn,
spv::BuiltIn::BuiltInFragCoord); spv::BuiltIn::BuiltInFragCoord);
auto point_coord = b.createVariable(spv::StorageClass::StorageClassInput,
vec2_float_type_, "gl_PointCoord");
b.addDecoration(point_coord, spv::Decoration::DecorationBuiltIn,
spv::BuiltIn::BuiltInPointCoord);
interface_ids_.push_back(frag_coord); interface_ids_.push_back(frag_coord);
interface_ids_.push_back(point_coord);
auto param = b.createOp( auto param = b.createOp(
spv::Op::OpVectorShuffle, vec4_float_type_, spv::Op::OpVectorShuffle, vec4_float_type_,
{b.createLoad(frag_coord), b.createLoad(point_coord), 0, 1, 4, 5}); {b.createLoad(frag_coord), b.createLoad(point_coord_), 0, 1, 4, 5});
/* /*
// TODO: gl_FrontFacing // TODO: gl_FrontFacing
auto param_x = b.createCompositeExtract(param, float_type_, 0); auto param_x = b.createCompositeExtract(param, float_type_, 0);
@ -516,7 +542,7 @@ std::vector<uint8_t> SpirvShaderTranslator::CompleteTranslation() {
// Alpha test // Alpha test
auto alpha_test_ptr = b.createAccessChain( auto alpha_test_ptr = b.createAccessChain(
spv::StorageClass::StorageClassPushConstant, push_consts_, spv::StorageClass::StorageClassPushConstant, push_consts_,
std::vector<Id>({b.makeUintConstant(2)})); std::vector<Id>({b.makeUintConstant(3)}));
auto alpha_test = b.createLoad(alpha_test_ptr); auto alpha_test = b.createLoad(alpha_test_ptr);
auto alpha_test_enabled = auto alpha_test_enabled =
@ -2697,7 +2723,11 @@ void SpirvShaderTranslator::StoreToResult(Id source_value_id,
break; break;
case InstructionStorageTarget::kPointSize: case InstructionStorageTarget::kPointSize:
assert_true(is_vertex_shader()); assert_true(is_vertex_shader());
// TODO(benvanik): result.storage_index storage_pointer = point_size_;
storage_class = spv::StorageClass::StorageClassOutput;
storage_type = float_type_;
storage_offsets.push_back(0);
storage_array = false;
break; break;
case InstructionStorageTarget::kColorTarget: case InstructionStorageTarget::kColorTarget:
assert_true(is_pixel_shader()); assert_true(is_pixel_shader());

View File

@ -29,9 +29,12 @@ namespace gpu {
// supported size). // supported size).
struct SpirvPushConstants { struct SpirvPushConstants {
// Accessible to vertex shader only: // Accessible to vertex shader only:
float window_scale[4]; // sx,sy, ?, ? float window_scale[4]; // scale x/y, viewport width/height (pixels)
float vtx_fmt[4]; float vtx_fmt[4];
// Accessible to geometry shader only:
float point_size[4]; // psx, psy, unused, unused
// Accessible to fragment shader only: // Accessible to fragment shader only:
float alpha_test[4]; // alpha test enable, func, ref, ? float alpha_test[4]; // alpha test enable, func, ref, ?
uint32_t ps_param_gen; uint32_t ps_param_gen;
@ -40,8 +43,11 @@ static_assert(sizeof(SpirvPushConstants) <= 128,
"Push constants must fit <= 128b"); "Push constants must fit <= 128b");
constexpr uint32_t kSpirvPushConstantVertexRangeOffset = 0; constexpr uint32_t kSpirvPushConstantVertexRangeOffset = 0;
constexpr uint32_t kSpirvPushConstantVertexRangeSize = (sizeof(float) * 4) * 2; constexpr uint32_t kSpirvPushConstantVertexRangeSize = (sizeof(float) * 4) * 2;
constexpr uint32_t kSpirvPushConstantGeometryRangeOffset =
kSpirvPushConstantVertexRangeOffset + kSpirvPushConstantVertexRangeSize;
constexpr uint32_t kSpirvPushConstantGeometryRangeSize = (sizeof(float) * 4);
constexpr uint32_t kSpirvPushConstantFragmentRangeOffset = constexpr uint32_t kSpirvPushConstantFragmentRangeOffset =
kSpirvPushConstantVertexRangeSize; kSpirvPushConstantGeometryRangeOffset + kSpirvPushConstantGeometryRangeSize;
constexpr uint32_t kSpirvPushConstantFragmentRangeSize = constexpr uint32_t kSpirvPushConstantFragmentRangeSize =
(sizeof(float) * 4) + sizeof(uint32_t); (sizeof(float) * 4) + sizeof(uint32_t);
constexpr uint32_t kSpirvPushConstantsSize = sizeof(SpirvPushConstants); constexpr uint32_t kSpirvPushConstantsSize = sizeof(SpirvPushConstants);
@ -145,6 +151,8 @@ class SpirvShaderTranslator : public ShaderTranslator {
spv::Id pos_ = 0; spv::Id pos_ = 0;
spv::Id push_consts_ = 0; spv::Id push_consts_ = 0;
spv::Id interpolators_ = 0; spv::Id interpolators_ = 0;
spv::Id point_size_ = 0;
spv::Id point_coord_ = 0;
spv::Id vertex_idx_ = 0; spv::Id vertex_idx_ = 0;
spv::Id frag_outputs_ = 0, frag_depth_ = 0; spv::Id frag_outputs_ = 0, frag_depth_ = 0;
spv::Id samplers_ = 0; spv::Id samplers_ = 0;

View File

@ -65,8 +65,9 @@ PipelineCache::PipelineCache(
// We need to keep these under 128b across all stages. // We need to keep these under 128b across all stages.
// TODO(benvanik): split between the stages? // TODO(benvanik): split between the stages?
VkPushConstantRange push_constant_ranges[1]; VkPushConstantRange push_constant_ranges[1];
push_constant_ranges[0].stageFlags = push_constant_ranges[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT |
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT; VK_SHADER_STAGE_GEOMETRY_BIT |
VK_SHADER_STAGE_FRAGMENT_BIT;
push_constant_ranges[0].offset = 0; push_constant_ranges[0].offset = 0;
push_constant_ranges[0].size = kSpirvPushConstantsSize; push_constant_ranges[0].size = kSpirvPushConstantsSize;
@ -509,7 +510,6 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
XE_GPU_REG_PA_CL_VPORT_YSCALE); XE_GPU_REG_PA_CL_VPORT_YSCALE);
viewport_state_dirty |= SetShadowRegister(&regs.pa_cl_vport_zscale, viewport_state_dirty |= SetShadowRegister(&regs.pa_cl_vport_zscale,
XE_GPU_REG_PA_CL_VPORT_ZSCALE); XE_GPU_REG_PA_CL_VPORT_ZSCALE);
if (viewport_state_dirty) {
// RB_SURFACE_INFO // RB_SURFACE_INFO
auto surface_msaa = auto surface_msaa =
static_cast<MsaaSamples>((regs.rb_surface_info >> 16) & 0x3); static_cast<MsaaSamples>((regs.rb_surface_info >> 16) & 0x3);
@ -540,37 +540,36 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
vport_zscale_enable == vport_xoffset_enable == vport_zscale_enable == vport_xoffset_enable ==
vport_yoffset_enable == vport_zoffset_enable); vport_yoffset_enable == vport_zoffset_enable);
VkViewport viewport_rect; float vpw, vph, vpx, vpy;
std::memset(&viewport_rect, 0, sizeof(VkViewport));
if (vport_xscale_enable) {
float texel_offset_x = 0.0f; float texel_offset_x = 0.0f;
float texel_offset_y = 0.0f; float texel_offset_y = 0.0f;
if (vport_xscale_enable) {
float vox = vport_xoffset_enable ? regs.pa_cl_vport_xoffset : 0; float vox = vport_xoffset_enable ? regs.pa_cl_vport_xoffset : 0;
float voy = vport_yoffset_enable ? regs.pa_cl_vport_yoffset : 0; float voy = vport_yoffset_enable ? regs.pa_cl_vport_yoffset : 0;
float vsx = vport_xscale_enable ? regs.pa_cl_vport_xscale : 1; float vsx = vport_xscale_enable ? regs.pa_cl_vport_xscale : 1;
float vsy = vport_yscale_enable ? regs.pa_cl_vport_yscale : 1; float vsy = vport_yscale_enable ? regs.pa_cl_vport_yscale : 1;
window_width_scalar = window_height_scalar = 1; window_width_scalar = window_height_scalar = 1;
float vpw = 2 * window_width_scalar * vsx; vpw = 2 * window_width_scalar * vsx;
float vph = -2 * window_height_scalar * vsy; vph = -2 * window_height_scalar * vsy;
float vpx = window_width_scalar * vox - vpw / 2 + window_offset_x; vpx = window_width_scalar * vox - vpw / 2 + window_offset_x;
float vpy = window_height_scalar * voy - vph / 2 + window_offset_y; vpy = window_height_scalar * voy - vph / 2 + window_offset_y;
viewport_rect.x = vpx + texel_offset_x;
viewport_rect.y = vpy + texel_offset_y;
viewport_rect.width = vpw;
viewport_rect.height = vph;
} else { } else {
float texel_offset_x = 0.0f; vpw = 2 * 2560.0f * window_width_scalar;
float texel_offset_y = 0.0f; vph = 2 * 2560.0f * window_height_scalar;
float vpw = 2 * 2560.0f * window_width_scalar; vpx = -2560.0f * window_width_scalar + window_offset_x;
float vph = 2 * 2560.0f * window_height_scalar; vpy = -2560.0f * window_height_scalar + window_offset_y;
float vpx = -2560.0f * window_width_scalar + window_offset_x; }
float vpy = -2560.0f * window_height_scalar + window_offset_y;
if (viewport_state_dirty) {
VkViewport viewport_rect;
std::memset(&viewport_rect, 0, sizeof(VkViewport));
viewport_rect.x = vpx + texel_offset_x; viewport_rect.x = vpx + texel_offset_x;
viewport_rect.y = vpy + texel_offset_y; viewport_rect.y = vpy + texel_offset_y;
viewport_rect.width = vpw; viewport_rect.width = vpw;
viewport_rect.height = vph; viewport_rect.height = vph;
}
float voz = vport_zoffset_enable ? regs.pa_cl_vport_zoffset : 0; float voz = vport_zoffset_enable ? regs.pa_cl_vport_zoffset : 0;
float vsz = vport_zscale_enable ? regs.pa_cl_vport_zscale : 1; float vsz = vport_zscale_enable ? regs.pa_cl_vport_zscale : 1;
viewport_rect.minDepth = voz; viewport_rect.minDepth = voz;
@ -625,6 +624,8 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
SetShadowRegister(&regs.rb_colorcontrol, XE_GPU_REG_RB_COLORCONTROL); SetShadowRegister(&regs.rb_colorcontrol, XE_GPU_REG_RB_COLORCONTROL);
push_constants_dirty |= push_constants_dirty |=
SetShadowRegister(&regs.rb_alpha_ref, XE_GPU_REG_RB_ALPHA_REF); SetShadowRegister(&regs.rb_alpha_ref, XE_GPU_REG_RB_ALPHA_REF);
push_constants_dirty |=
SetShadowRegister(&regs.pa_su_point_size, XE_GPU_REG_PA_SU_POINT_SIZE);
if (push_constants_dirty) { if (push_constants_dirty) {
xenos::xe_gpu_program_cntl_t program_cntl; xenos::xe_gpu_program_cntl_t program_cntl;
program_cntl.dword_0 = regs.sq_program_cntl; program_cntl.dword_0 = regs.sq_program_cntl;
@ -648,6 +649,8 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
push_constants.window_scale[0] = 1.0f / 2560.0f; push_constants.window_scale[0] = 1.0f / 2560.0f;
push_constants.window_scale[1] = 1.0f / 2560.0f; push_constants.window_scale[1] = 1.0f / 2560.0f;
} }
push_constants.window_scale[2] = vpw;
push_constants.window_scale[3] = vph;
// http://www.x.org/docs/AMD/old/evergreen_3D_registers_v2.pdf // http://www.x.org/docs/AMD/old/evergreen_3D_registers_v2.pdf
// VTX_XY_FMT = true: the incoming XY have already been multiplied by 1/W0. // VTX_XY_FMT = true: the incoming XY have already been multiplied by 1/W0.
@ -664,6 +667,12 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
push_constants.vtx_fmt[2] = vtx_z_fmt; push_constants.vtx_fmt[2] = vtx_z_fmt;
push_constants.vtx_fmt[3] = vtx_w0_fmt; push_constants.vtx_fmt[3] = vtx_w0_fmt;
// Point size
push_constants.point_size[0] =
static_cast<float>((regs.pa_su_point_size & 0xffff0000) >> 16) / 8.0f;
push_constants.point_size[1] =
static_cast<float>((regs.pa_su_point_size & 0x0000ffff)) / 8.0f;
// Alpha testing -- ALPHAREF, ALPHAFUNC, ALPHATESTENABLE // Alpha testing -- ALPHAREF, ALPHAFUNC, ALPHATESTENABLE
// Emulated in shader. // Emulated in shader.
// if(ALPHATESTENABLE && frag_out.a [<=/ALPHAFUNC] ALPHAREF) discard; // if(ALPHATESTENABLE && frag_out.a [<=/ALPHAFUNC] ALPHAREF) discard;
@ -680,10 +689,11 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
int ps_param_gen = (regs.sq_context_misc >> 8) & 0xFF; int ps_param_gen = (regs.sq_context_misc >> 8) & 0xFF;
push_constants.ps_param_gen = program_cntl.param_gen ? ps_param_gen : -1; push_constants.ps_param_gen = program_cntl.param_gen ? ps_param_gen : -1;
vkCmdPushConstants( vkCmdPushConstants(command_buffer, pipeline_layout_,
command_buffer, pipeline_layout_, VK_SHADER_STAGE_VERTEX_BIT |
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, 0, VK_SHADER_STAGE_GEOMETRY_BIT |
kSpirvPushConstantsSize, &push_constants); VK_SHADER_STAGE_FRAGMENT_BIT,
0, kSpirvPushConstantsSize, &push_constants);
} }
if (full_update) { if (full_update) {
@ -1160,6 +1170,9 @@ PipelineCache::UpdateStatus PipelineCache::UpdateRasterizationState(
if (primitive_type == PrimitiveType::kRectangleList) { if (primitive_type == PrimitiveType::kRectangleList) {
// Rectangle lists aren't culled. There may be other things they skip too. // Rectangle lists aren't culled. There may be other things they skip too.
state_info.cullMode = VK_CULL_MODE_NONE; state_info.cullMode = VK_CULL_MODE_NONE;
} else if (primitive_type == PrimitiveType::kPointList) {
// Face culling doesn't apply to point primitives.
state_info.cullMode = VK_CULL_MODE_NONE;
} }
state_info.depthBiasEnable = VK_FALSE; state_info.depthBiasEnable = VK_FALSE;

View File

@ -281,6 +281,7 @@ class PipelineCache {
uint32_t sq_context_misc; uint32_t sq_context_misc;
uint32_t rb_colorcontrol; uint32_t rb_colorcontrol;
float rb_alpha_ref; float rb_alpha_ref;
uint32_t pa_su_point_size;
SetDynamicStateRegisters() { Reset(); } SetDynamicStateRegisters() { Reset(); }
void Reset() { std::memset(this, 0, sizeof(*this)); } void Reset() { std::memset(this, 0, sizeof(*this)); }

View File

@ -29,9 +29,11 @@ const uint8_t dummy_frag[] = {
0x63, 0x61, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x63, 0x61, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x74, 0x78, 0x5F, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x74, 0x78, 0x5F,
0x66, 0x6D, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x66, 0x6D, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65, 0x02, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65,
0x73, 0x74, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x73, 0x74, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x04, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D,
0x5F, 0x67, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x5F, 0x67, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x15, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68, 0x5F, 0x63, 0x6F, 0x6E, 0x15, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68, 0x5F, 0x63, 0x6F, 0x6E,
0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
@ -64,39 +66,41 @@ const uint8_t dummy_frag[] = {
0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x16, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x17, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x07, 0x00,
0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00,

View File

@ -7,99 +7,101 @@
OpCapability Sampled1D OpCapability Sampled1D
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %47 %51 OpEntryPoint Fragment %main "main" %in_interpolators %oC
OpExecutionMode %4 OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource GLSL 450 OpSource GLSL 450
OpName %4 "main" OpName %main "main"
OpName %16 "consts_type" OpName %consts_type "consts_type"
OpMemberName %16 0 "float_consts" OpMemberName %consts_type 0 "float_consts"
OpMemberName %16 1 "loop_consts" OpMemberName %consts_type 1 "loop_consts"
OpMemberName %16 2 "bool_consts" OpMemberName %consts_type 2 "bool_consts"
OpName %18 "consts" OpName %consts "consts"
OpName %19 "push_consts_type" OpName %push_consts_type "push_consts_type"
OpMemberName %19 0 "window_scale" OpMemberName %push_consts_type 0 "window_scale"
OpMemberName %19 1 "vtx_fmt" OpMemberName %push_consts_type 1 "vtx_fmt"
OpMemberName %19 2 "alpha_test" OpMemberName %push_consts_type 2 "point_size"
OpMemberName %19 3 "ps_param_gen" OpMemberName %push_consts_type 3 "alpha_test"
OpName %21 "push_constants" OpMemberName %push_consts_type 4 "ps_param_gen"
OpName %26 "textures1D" OpName %push_constants "push_constants"
OpName %31 "textures2D" OpName %textures1D "textures1D"
OpName %36 "textures3D" OpName %textures2D "textures2D"
OpName %41 "textures4D" OpName %textures3D "textures3D"
OpName %47 "in_interpolators" OpName %textures4D "textures4D"
OpName %51 "oC" OpName %in_interpolators "in_interpolators"
OpDecorate %11 ArrayStride 16 OpName %oC "oC"
OpDecorate %13 ArrayStride 16 OpDecorate %_arr_v4float_10 ArrayStride 16
OpDecorate %15 ArrayStride 16 OpDecorate %_arr_uint_12 ArrayStride 16
OpMemberDecorate %16 0 Offset 0 OpDecorate %_arr_uint_14 ArrayStride 16
OpMemberDecorate %16 1 Offset 8192 OpMemberDecorate %consts_type 0 Offset 0
OpMemberDecorate %16 2 Offset 8704 OpMemberDecorate %consts_type 1 Offset 8192
OpDecorate %16 Block OpMemberDecorate %consts_type 2 Offset 8704
OpDecorate %18 DescriptorSet 0 OpDecorate %consts_type Block
OpDecorate %18 Binding 1 OpDecorate %consts DescriptorSet 0
OpMemberDecorate %19 0 Offset 0 OpDecorate %consts Binding 1
OpMemberDecorate %19 1 Offset 16 OpMemberDecorate %push_consts_type 0 Offset 0
OpMemberDecorate %19 2 Offset 32 OpMemberDecorate %push_consts_type 1 Offset 16
OpMemberDecorate %19 3 Offset 48 OpMemberDecorate %push_consts_type 2 Offset 32
OpDecorate %19 Block OpMemberDecorate %push_consts_type 3 Offset 48
OpDecorate %26 DescriptorSet 1 OpMemberDecorate %push_consts_type 4 Offset 64
OpDecorate %26 Binding 0 OpDecorate %push_consts_type Block
OpDecorate %31 DescriptorSet 1 OpDecorate %textures1D DescriptorSet 1
OpDecorate %31 Binding 1 OpDecorate %textures1D Binding 0
OpDecorate %36 DescriptorSet 1 OpDecorate %textures2D DescriptorSet 1
OpDecorate %36 Binding 2 OpDecorate %textures2D Binding 1
OpDecorate %41 DescriptorSet 1 OpDecorate %textures3D DescriptorSet 1
OpDecorate %41 Binding 3 OpDecorate %textures3D Binding 2
OpDecorate %47 Location 0 OpDecorate %textures4D DescriptorSet 1
OpDecorate %51 Location 0 OpDecorate %textures4D Binding 3
%2 = OpTypeVoid OpDecorate %in_interpolators Location 0
%3 = OpTypeFunction %2 OpDecorate %oC Location 0
%7 = OpTypeFloat 32 %void = OpTypeVoid
%8 = OpTypeVector %7 4 %3 = OpTypeFunction %void
%9 = OpTypeInt 32 0 %float = OpTypeFloat 32
%10 = OpConstant %9 512 %v4float = OpTypeVector %float 4
%11 = OpTypeArray %8 %10 %uint = OpTypeInt 32 0
%12 = OpConstant %9 32 %10 = OpConstant %uint 512
%13 = OpTypeArray %9 %12 %_arr_v4float_10 = OpTypeArray %v4float %10
%14 = OpConstant %9 8 %12 = OpConstant %uint 32
%15 = OpTypeArray %9 %14 %_arr_uint_12 = OpTypeArray %uint %12
%16 = OpTypeStruct %11 %13 %15 %14 = OpConstant %uint 8
%17 = OpTypePointer Uniform %16 %_arr_uint_14 = OpTypeArray %uint %14
%18 = OpVariable %17 Uniform %consts_type = OpTypeStruct %_arr_v4float_10 %_arr_uint_12 %_arr_uint_14
%19 = OpTypeStruct %8 %8 %8 %9 %_ptr_Uniform_consts_type = OpTypePointer Uniform %consts_type
%20 = OpTypePointer PushConstant %19 %consts = OpVariable %_ptr_Uniform_consts_type Uniform
%21 = OpVariable %20 PushConstant %push_consts_type = OpTypeStruct %v4float %v4float %v4float %v4float %uint
%22 = OpTypeImage %7 1D 0 0 0 1 Unknown %_ptr_PushConstant_push_consts_type = OpTypePointer PushConstant %push_consts_type
%push_constants = OpVariable %_ptr_PushConstant_push_consts_type PushConstant
%22 = OpTypeImage %float 1D 0 0 0 1 Unknown
%23 = OpTypeSampledImage %22 %23 = OpTypeSampledImage %22
%24 = OpTypeArray %23 %12 %_arr_23_12 = OpTypeArray %23 %12
%25 = OpTypePointer UniformConstant %24 %_ptr_UniformConstant__arr_23_12 = OpTypePointer UniformConstant %_arr_23_12
%26 = OpVariable %25 UniformConstant %textures1D = OpVariable %_ptr_UniformConstant__arr_23_12 UniformConstant
%27 = OpTypeImage %7 2D 0 0 0 1 Unknown %27 = OpTypeImage %float 2D 0 0 0 1 Unknown
%28 = OpTypeSampledImage %27 %28 = OpTypeSampledImage %27
%29 = OpTypeArray %28 %12 %_arr_28_12 = OpTypeArray %28 %12
%30 = OpTypePointer UniformConstant %29 %_ptr_UniformConstant__arr_28_12 = OpTypePointer UniformConstant %_arr_28_12
%31 = OpVariable %30 UniformConstant %textures2D = OpVariable %_ptr_UniformConstant__arr_28_12 UniformConstant
%32 = OpTypeImage %7 3D 0 0 0 1 Unknown %32 = OpTypeImage %float 3D 0 0 0 1 Unknown
%33 = OpTypeSampledImage %32 %33 = OpTypeSampledImage %32
%34 = OpTypeArray %33 %12 %_arr_33_12 = OpTypeArray %33 %12
%35 = OpTypePointer UniformConstant %34 %_ptr_UniformConstant__arr_33_12 = OpTypePointer UniformConstant %_arr_33_12
%36 = OpVariable %35 UniformConstant %textures3D = OpVariable %_ptr_UniformConstant__arr_33_12 UniformConstant
%37 = OpTypeImage %7 Cube 0 0 0 1 Unknown %37 = OpTypeImage %float Cube 0 0 0 1 Unknown
%38 = OpTypeSampledImage %37 %38 = OpTypeSampledImage %37
%39 = OpTypeArray %38 %12 %_arr_38_12 = OpTypeArray %38 %12
%40 = OpTypePointer UniformConstant %39 %_ptr_UniformConstant__arr_38_12 = OpTypePointer UniformConstant %_arr_38_12
%41 = OpVariable %40 UniformConstant %textures4D = OpVariable %_ptr_UniformConstant__arr_38_12 UniformConstant
%42 = OpConstant %9 16 %42 = OpConstant %uint 16
%43 = OpTypeArray %8 %42 %_arr_v4float_42 = OpTypeArray %v4float %42
%44 = OpConstant %9 1 %44 = OpConstant %uint 1
%45 = OpTypeArray %43 %44 %_arr__arr_v4float_42_44 = OpTypeArray %_arr_v4float_42 %44
%46 = OpTypePointer Input %45 %_ptr_Input__arr__arr_v4float_42_44 = OpTypePointer Input %_arr__arr_v4float_42_44
%47 = OpVariable %46 Input %in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_42_44 Input
%48 = OpConstant %9 4 %48 = OpConstant %uint 4
%49 = OpTypeArray %8 %48 %_arr_v4float_48 = OpTypeArray %v4float %48
%50 = OpTypePointer Output %49 %_ptr_Output__arr_v4float_48 = OpTypePointer Output %_arr_v4float_48
%51 = OpVariable %50 Output %oC = OpVariable %_ptr_Output__arr_v4float_48 Output
%4 = OpFunction %2 None %3 %main = OpFunction %void None %3
%5 = OpLabel %5 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -7,122 +7,122 @@
OpCapability GeometryPointSize OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %10 %18 %33 %36 OpEntryPoint Geometry %main "main" %_ %gl_in %out_interpolators %in_interpolators
OpExecutionMode %4 InputLinesAdjacency OpExecutionMode %main InputLinesAdjacency
OpExecutionMode %4 Invocations 1 OpExecutionMode %main Invocations 1
OpExecutionMode %4 OutputLineStrip OpExecutionMode %main OutputLineStrip
OpExecutionMode %4 OutputVertices 5 OpExecutionMode %main OutputVertices 5
OpSource GLSL 450 OpSource GLSL 450
OpName %4 "main" OpName %main "main"
OpName %8 "gl_PerVertex" OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %8 0 "gl_Position" OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %8 1 "gl_PointSize" OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %10 "" OpName %_ ""
OpName %13 "gl_PerVertex" OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %13 0 "gl_Position" OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %13 1 "gl_PointSize" OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %18 "gl_in" OpName %gl_in "gl_in"
OpName %33 "out_interpolators" OpName %out_interpolators "out_interpolators"
OpName %36 "in_interpolators" OpName %in_interpolators "in_interpolators"
OpMemberDecorate %8 0 BuiltIn Position OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %8 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %8 Block OpDecorate %gl_PerVertex Block
OpMemberDecorate %13 0 BuiltIn Position OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %13 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %13 Block OpDecorate %gl_PerVertex_0 Block
OpDecorate %33 Location 0 OpDecorate %out_interpolators Location 0
OpDecorate %36 Location 0 OpDecorate %in_interpolators Location 0
%2 = OpTypeVoid %void = OpTypeVoid
%3 = OpTypeFunction %2 %3 = OpTypeFunction %void
%6 = OpTypeFloat 32 %float = OpTypeFloat 32
%7 = OpTypeVector %6 4 %v4float = OpTypeVector %float 4
%8 = OpTypeStruct %7 %6 %gl_PerVertex = OpTypeStruct %v4float %float
%9 = OpTypePointer Output %8 %_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%10 = OpVariable %9 Output %_ = OpVariable %_ptr_Output_gl_PerVertex Output
%11 = OpTypeInt 32 1 %int = OpTypeInt 32 1
%12 = OpConstant %11 0 %12 = OpConstant %int 0
%13 = OpTypeStruct %7 %6 %gl_PerVertex_0 = OpTypeStruct %v4float %float
%14 = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%15 = OpConstant %14 4 %15 = OpConstant %uint 4
%16 = OpTypeArray %13 %15 %_arr_gl_PerVertex_0_15 = OpTypeArray %gl_PerVertex_0 %15
%17 = OpTypePointer Input %16 %_ptr_Input__arr_gl_PerVertex_0_15 = OpTypePointer Input %_arr_gl_PerVertex_0_15
%18 = OpVariable %17 Input %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_0_15 Input
%19 = OpTypePointer Input %7 %_ptr_Input_v4float = OpTypePointer Input %v4float
%22 = OpTypePointer Output %7 %_ptr_Output_v4float = OpTypePointer Output %v4float
%24 = OpConstant %11 1 %24 = OpConstant %int 1
%25 = OpTypePointer Input %6 %_ptr_Input_float = OpTypePointer Input %float
%28 = OpTypePointer Output %6 %_ptr_Output_float = OpTypePointer Output %float
%30 = OpConstant %14 16 %30 = OpConstant %uint 16
%31 = OpTypeArray %7 %30 %_arr_v4float_30 = OpTypeArray %v4float %30
%32 = OpTypePointer Output %31 %_ptr_Output__arr_v4float_30 = OpTypePointer Output %_arr_v4float_30
%33 = OpVariable %32 Output %out_interpolators = OpVariable %_ptr_Output__arr_v4float_30 Output
%34 = OpTypeArray %31 %15 %_arr__arr_v4float_30_15 = OpTypeArray %_arr_v4float_30 %15
%35 = OpTypePointer Input %34 %_ptr_Input__arr__arr_v4float_30_15 = OpTypePointer Input %_arr__arr_v4float_30_15
%36 = OpVariable %35 Input %in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_30_15 Input
%37 = OpTypePointer Input %31 %_ptr_Input__arr_v4float_30 = OpTypePointer Input %_arr_v4float_30
%48 = OpConstant %11 2 %48 = OpConstant %int 2
%57 = OpConstant %11 3 %57 = OpConstant %int 3
%4 = OpFunction %2 None %3 %main = OpFunction %void None %3
%5 = OpLabel %5 = OpLabel
%20 = OpAccessChain %19 %18 %12 %12 %20 = OpAccessChain %_ptr_Input_v4float %gl_in %12 %12
%21 = OpLoad %7 %20 %21 = OpLoad %v4float %20
%23 = OpAccessChain %22 %10 %12 %23 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %23 %21 OpStore %23 %21
%26 = OpAccessChain %25 %18 %12 %24 %26 = OpAccessChain %_ptr_Input_float %gl_in %12 %24
%27 = OpLoad %6 %26 %27 = OpLoad %float %26
%29 = OpAccessChain %28 %10 %24 %29 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %29 %27 OpStore %29 %27
%38 = OpAccessChain %37 %36 %12 %38 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %12
%39 = OpLoad %31 %38 %39 = OpLoad %_arr_v4float_30 %38
OpStore %33 %39 OpStore %out_interpolators %39
OpEmitVertex OpEmitVertex
%40 = OpAccessChain %19 %18 %24 %12 %40 = OpAccessChain %_ptr_Input_v4float %gl_in %24 %12
%41 = OpLoad %7 %40 %41 = OpLoad %v4float %40
%42 = OpAccessChain %22 %10 %12 %42 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %42 %41 OpStore %42 %41
%43 = OpAccessChain %25 %18 %24 %24 %43 = OpAccessChain %_ptr_Input_float %gl_in %24 %24
%44 = OpLoad %6 %43 %44 = OpLoad %float %43
%45 = OpAccessChain %28 %10 %24 %45 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %45 %44 OpStore %45 %44
%46 = OpAccessChain %37 %36 %24 %46 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %24
%47 = OpLoad %31 %46 %47 = OpLoad %_arr_v4float_30 %46
OpStore %33 %47 OpStore %out_interpolators %47
OpEmitVertex OpEmitVertex
%49 = OpAccessChain %19 %18 %48 %12 %49 = OpAccessChain %_ptr_Input_v4float %gl_in %48 %12
%50 = OpLoad %7 %49 %50 = OpLoad %v4float %49
%51 = OpAccessChain %22 %10 %12 %51 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %51 %50 OpStore %51 %50
%52 = OpAccessChain %25 %18 %48 %24 %52 = OpAccessChain %_ptr_Input_float %gl_in %48 %24
%53 = OpLoad %6 %52 %53 = OpLoad %float %52
%54 = OpAccessChain %28 %10 %24 %54 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %54 %53 OpStore %54 %53
%55 = OpAccessChain %37 %36 %48 %55 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %48
%56 = OpLoad %31 %55 %56 = OpLoad %_arr_v4float_30 %55
OpStore %33 %56 OpStore %out_interpolators %56
OpEmitVertex OpEmitVertex
%58 = OpAccessChain %19 %18 %57 %12 %58 = OpAccessChain %_ptr_Input_v4float %gl_in %57 %12
%59 = OpLoad %7 %58 %59 = OpLoad %v4float %58
%60 = OpAccessChain %22 %10 %12 %60 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %60 %59 OpStore %60 %59
%61 = OpAccessChain %25 %18 %57 %24 %61 = OpAccessChain %_ptr_Input_float %gl_in %57 %24
%62 = OpLoad %6 %61 %62 = OpLoad %float %61
%63 = OpAccessChain %28 %10 %24 %63 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %63 %62 OpStore %63 %62
%64 = OpAccessChain %37 %36 %57 %64 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %57
%65 = OpLoad %31 %64 %65 = OpLoad %_arr_v4float_30 %64
OpStore %33 %65 OpStore %out_interpolators %65
OpEmitVertex OpEmitVertex
%66 = OpAccessChain %19 %18 %12 %12 %66 = OpAccessChain %_ptr_Input_v4float %gl_in %12 %12
%67 = OpLoad %7 %66 %67 = OpLoad %v4float %66
%68 = OpAccessChain %22 %10 %12 %68 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %68 %67 OpStore %68 %67
%69 = OpAccessChain %25 %18 %12 %24 %69 = OpAccessChain %_ptr_Input_float %gl_in %12 %24
%70 = OpLoad %6 %69 %70 = OpLoad %float %69
%71 = OpAccessChain %28 %10 %24 %71 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %71 %70 OpStore %71 %70
%72 = OpAccessChain %37 %36 %12 %72 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %12
%73 = OpLoad %31 %72 %73 = OpLoad %_arr_v4float_30 %72
OpStore %33 %73 OpStore %out_interpolators %73
OpEmitVertex OpEmitVertex
OpEndPrimitive OpEndPrimitive
OpReturn OpReturn

View File

@ -2,182 +2,266 @@
// source: point_list.geom // source: point_list.geom
const uint8_t point_list_geom[] = { const uint8_t point_list_geom[] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00,
0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x53, 0x4C, 0x47, 0x4C, 0x53, 0x4C, 0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30,
0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
0x02, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x73, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x05, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x5F, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00,
0x06, 0x00, 0x07, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E,
0x16, 0x00, 0x00, 0x00, 0x70, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x73, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x05, 0x00, 0x06, 0x00, 0x26, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x69, 0x6F, 0x6E, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x06, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x17, 0x00, 0x00, 0x00, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x5F, 0x73,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x63, 0x61, 0x6C, 0x65, 0x64, 0x5F, 0x70, 0x73, 0x69, 0x7A, 0x65, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x37, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68,
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x73, 0x5F, 0x74, 0x79, 0x70, 0x65,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x5F, 0x73,
0x63, 0x61, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x74, 0x78, 0x5F,
0x66, 0x6D, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65,
0x73, 0x74, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D,
0x5F, 0x67, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68, 0x5F, 0x63, 0x6F, 0x6E,
0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
0x22, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74,
0x69, 0x6F, 0x6E, 0x00, 0x05, 0x00, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F, 0x05, 0x00, 0x07, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x62, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61,
0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
0x67, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x63, 0x6F,
0x6F, 0x72, 0x64, 0x00, 0x05, 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x00, 0x00,
0x05, 0x00, 0x08, 0x00, 0x73, 0x00, 0x00, 0x00, 0x69, 0x6E, 0x5F, 0x70,
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x63, 0x6F, 0x6F, 0x72, 0x64, 0x5F, 0x75,
0x6E, 0x75, 0x73, 0x65, 0x64, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x26, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x22, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x3D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x5F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x62, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x73, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x20, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x07, 0x00,
0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x14, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x26, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x29, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBF, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x00, 0x00, 0x80, 0x3F, 0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3E, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x33, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x07, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x33, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBF,
0x07, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00,
0x48, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x48, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
0x4A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x07, 0x00, 0x43, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x5D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x63, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00,
0x19, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x71, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x22, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x12, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x34, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00, 0x29, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x03, 0x00,
0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00,
0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x29, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x23, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00,
0x15, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00,
0x2D, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00,
0x15, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x35, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x39, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x15, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x5A, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x41, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00,
0x50, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x1F, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x01, 0x00, 0xFD, 0x00, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x38, 0x00, 0x01, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00,
0x6F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00,
0x70, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x01, 0x00,
0xFD, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
}; };

View File

@ -1,136 +1,191 @@
; SPIR-V ; SPIR-V
; Version: 1.0 ; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1 ; Generator: Khronos Glslang Reference Front End; 1
; Bound: 83 ; Bound: 116
; Schema: 0 ; Schema: 0
OpCapability Geometry OpCapability Geometry
OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %15 %40 %74 %77 OpEntryPoint Geometry %main "main" %gl_in %point_size %_ %out_interpolators %in_interpolators %point_coord %in_point_coord_unused
OpExecutionMode %4 InputPoints OpExecutionMode %main InputPoints
OpExecutionMode %4 Invocations 1 OpExecutionMode %main Invocations 1
OpExecutionMode %4 OutputTriangleStrip OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %4 OutputVertices 4 OpExecutionMode %main OutputVertices 4
OpSource GLSL 450 OpSource GLSL 450
OpName %4 "main" OpName %main "main"
OpName %9 "pos" OpName %pos "pos"
OpName %10 "gl_PerVertex" OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %10 0 "gl_Position" OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %10 1 "gl_PointSize" OpName %gl_in "gl_in"
OpName %15 "gl_in" OpName %window_scaled_psize "window_scaled_psize"
OpName %22 "psize" OpName %push_consts_type "push_consts_type"
OpName %28 "i" OpMemberName %push_consts_type 0 "window_scale"
OpName %38 "gl_PerVertex" OpMemberName %push_consts_type 1 "vtx_fmt"
OpMemberName %38 0 "gl_Position" OpMemberName %push_consts_type 2 "point_size"
OpMemberName %38 1 "gl_PointSize" OpMemberName %push_consts_type 3 "alpha_test"
OpName %40 "" OpMemberName %push_consts_type 4 "ps_param_gen"
OpName %55 "indexable" OpName %push_constants "push_constants"
OpName %74 "out_interpolators" OpName %point_size "point_size"
OpName %77 "in_interpolators" OpName %i "i"
OpMemberDecorate %10 0 BuiltIn Position OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberDecorate %10 1 BuiltIn PointSize OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpDecorate %10 Block OpName %_ ""
OpMemberDecorate %38 0 BuiltIn Position OpName %indexable "indexable"
OpMemberDecorate %38 1 BuiltIn PointSize OpName %out_interpolators "out_interpolators"
OpDecorate %38 Block OpName %in_interpolators "in_interpolators"
OpDecorate %74 Location 0 OpName %point_coord "point_coord"
OpDecorate %77 Location 0 OpName %indexable_0 "indexable"
%2 = OpTypeVoid OpName %in_point_coord_unused "in_point_coord_unused"
%3 = OpTypeFunction %2 OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
%6 = OpTypeFloat 32 OpDecorate %gl_PerVertex Block
%7 = OpTypeVector %6 4 OpMemberDecorate %push_consts_type 0 Offset 0
%8 = OpTypePointer Function %7 OpMemberDecorate %push_consts_type 1 Offset 16
%10 = OpTypeStruct %7 %6 OpMemberDecorate %push_consts_type 2 Offset 32
%11 = OpTypeInt 32 0 OpMemberDecorate %push_consts_type 3 Offset 48
%12 = OpConstant %11 1 OpMemberDecorate %push_consts_type 4 Offset 64
%13 = OpTypeArray %10 %12 OpDecorate %push_consts_type Block
%14 = OpTypePointer Input %13 OpDecorate %point_size Location 17
%15 = OpVariable %14 Input OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
%16 = OpTypeInt 32 1 OpDecorate %gl_PerVertex_0 Block
%17 = OpConstant %16 0 OpDecorate %out_interpolators Location 0
%18 = OpTypePointer Input %7 OpDecorate %in_interpolators Location 0
%21 = OpTypePointer Function %6 OpDecorate %point_coord Location 16
%23 = OpConstant %16 1 OpDecorate %in_point_coord_unused Location 16
%24 = OpTypePointer Input %6 %void = OpTypeVoid
%27 = OpTypePointer Function %16 %3 = OpTypeFunction %void
%35 = OpConstant %16 4 %float = OpTypeFloat 32
%36 = OpTypeBool %v4float = OpTypeVector %float 4
%38 = OpTypeStruct %7 %6 %_ptr_Function_v4float = OpTypePointer Function %v4float
%39 = OpTypePointer Output %38 %gl_PerVertex = OpTypeStruct %v4float
%40 = OpVariable %39 Output %uint = OpTypeInt 32 0
%41 = OpTypeVector %6 2 %12 = OpConstant %uint 1
%44 = OpConstant %11 4 %_arr_gl_PerVertex_12 = OpTypeArray %gl_PerVertex %12
%45 = OpTypeArray %41 %44 %_ptr_Input__arr_gl_PerVertex_12 = OpTypePointer Input %_arr_gl_PerVertex_12
%46 = OpConstant %6 -1 %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_12 Input
%47 = OpConstant %6 1 %int = OpTypeInt 32 1
%48 = OpConstantComposite %41 %46 %47 %17 = OpConstant %int 0
%49 = OpConstantComposite %41 %47 %47 %_ptr_Input_v4float = OpTypePointer Input %v4float
%50 = OpConstantComposite %41 %46 %46 %v2float = OpTypeVector %float 2
%51 = OpConstantComposite %41 %47 %46 %_ptr_Function_v2float = OpTypePointer Function %v2float
%52 = OpConstantComposite %45 %48 %49 %50 %51 %push_consts_type = OpTypeStruct %v4float %v4float %v4float %v4float %uint
%54 = OpTypePointer Function %45 %_ptr_PushConstant_push_consts_type = OpTypePointer PushConstant %push_consts_type
%56 = OpTypePointer Function %41 %push_constants = OpVariable %_ptr_PushConstant_push_consts_type PushConstant
%69 = OpTypePointer Output %7 %27 = OpConstant %int 2
%71 = OpConstant %11 16 %_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float
%72 = OpTypeArray %7 %71 %_arr_float_12 = OpTypeArray %float %12
%73 = OpTypePointer Output %72 %_ptr_Input__arr_float_12 = OpTypePointer Input %_arr_float_12
%74 = OpVariable %73 Output %point_size = OpVariable %_ptr_Input__arr_float_12 Input
%75 = OpTypeArray %72 %12 %_ptr_Input_float = OpTypePointer Input %float
%76 = OpTypePointer Input %75 %38 = OpConstant %float 0
%77 = OpVariable %76 Input %bool = OpTypeBool
%78 = OpTypePointer Input %72 %_ptr_Function_int = OpTypePointer Function %int
%4 = OpFunction %2 None %3 %59 = OpConstant %int 4
%gl_PerVertex_0 = OpTypeStruct %v4float
%_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0
%_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output
%66 = OpConstant %uint 4
%_arr_v2float_66 = OpTypeArray %v2float %66
%68 = OpConstant %float -1
%69 = OpConstant %float 1
%70 = OpConstantComposite %v2float %68 %69
%71 = OpConstantComposite %v2float %69 %69
%72 = OpConstantComposite %v2float %68 %68
%73 = OpConstantComposite %v2float %69 %68
%74 = OpConstantComposite %_arr_v2float_66 %70 %71 %72 %73
%_ptr_Function__arr_v2float_66 = OpTypePointer Function %_arr_v2float_66
%_ptr_Output_v4float = OpTypePointer Output %v4float
%92 = OpConstant %uint 16
%_arr_v4float_92 = OpTypeArray %v4float %92
%_ptr_Output__arr_v4float_92 = OpTypePointer Output %_arr_v4float_92
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_92 Output
%_arr__arr_v4float_92_12 = OpTypeArray %_arr_v4float_92 %12
%_ptr_Input__arr__arr_v4float_92_12 = OpTypePointer Input %_arr__arr_v4float_92_12
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_92_12 Input
%_ptr_Input__arr_v4float_92 = OpTypePointer Input %_arr_v4float_92
%_ptr_Output_v2float = OpTypePointer Output %v2float
%point_coord = OpVariable %_ptr_Output_v2float Output
%108 = OpConstantComposite %v2float %38 %38
%111 = OpConstant %int 1
%_arr_v2float_12 = OpTypeArray %v2float %12
%_ptr_Input__arr_v2float_12 = OpTypePointer Input %_arr_v2float_12
%in_point_coord_unused = OpVariable %_ptr_Input__arr_v2float_12 Input
%main = OpFunction %void None %3
%5 = OpLabel %5 = OpLabel
%9 = OpVariable %8 Function %pos = OpVariable %_ptr_Function_v4float Function
%22 = OpVariable %21 Function %window_scaled_psize = OpVariable %_ptr_Function_v2float Function
%28 = OpVariable %27 Function %i = OpVariable %_ptr_Function_int Function
%55 = OpVariable %54 Function %indexable = OpVariable %_ptr_Function__arr_v2float_66 Function
%19 = OpAccessChain %18 %15 %17 %17 %indexable_0 = OpVariable %_ptr_Function__arr_v2float_66 Function
%20 = OpLoad %7 %19 %19 = OpAccessChain %_ptr_Input_v4float %gl_in %17 %17
OpStore %9 %20 %20 = OpLoad %v4float %19
%25 = OpAccessChain %24 %15 %17 %23 OpStore %pos %20
%26 = OpLoad %6 %25 %29 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %27
OpStore %22 %26 %30 = OpLoad %v4float %29
OpStore %28 %17 %31 = OpVectorShuffle %v2float %30 %30 0 1
OpBranch %29 OpStore %window_scaled_psize %31
%29 = OpLabel %36 = OpAccessChain %_ptr_Input_float %point_size %17
OpLoopMerge %31 %32 None %37 = OpLoad %float %36
OpBranch %33 %40 = OpFOrdGreaterThan %bool %37 %38
%33 = OpLabel OpSelectionMerge %42 None
%34 = OpLoad %16 %28 OpBranchConditional %40 %41 %42
%37 = OpSLessThan %36 %34 %35 %41 = OpLabel
OpBranchConditional %37 %30 %31 %43 = OpAccessChain %_ptr_Input_float %point_size %17
%30 = OpLabel %44 = OpLoad %float %43
%42 = OpLoad %7 %9 %45 = OpCompositeConstruct %v2float %44 %44
%43 = OpVectorShuffle %41 %42 %42 0 1 OpStore %window_scaled_psize %45
%53 = OpLoad %16 %28 OpBranch %42
OpStore %55 %52 %42 = OpLabel
%57 = OpAccessChain %56 %55 %53 %46 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %17
%58 = OpLoad %41 %57 %47 = OpLoad %v4float %46
%59 = OpLoad %6 %22 %48 = OpVectorShuffle %v2float %47 %47 2 3
%60 = OpVectorTimesScalar %41 %58 %59 %49 = OpLoad %v2float %window_scaled_psize
%61 = OpFAdd %41 %43 %60 %50 = OpFDiv %v2float %49 %48
%62 = OpLoad %7 %9 OpStore %window_scaled_psize %50
%63 = OpVectorShuffle %41 %62 %62 2 3 OpStore %i %17
%64 = OpCompositeExtract %6 %61 0 OpBranch %53
%65 = OpCompositeExtract %6 %61 1 %53 = OpLabel
%66 = OpCompositeExtract %6 %63 0 OpLoopMerge %55 %56 None
%67 = OpCompositeExtract %6 %63 1 OpBranch %57
%68 = OpCompositeConstruct %7 %64 %65 %66 %67 %57 = OpLabel
%70 = OpAccessChain %69 %40 %17 %58 = OpLoad %int %i
OpStore %70 %68 %60 = OpSLessThan %bool %58 %59
%79 = OpAccessChain %78 %77 %17 OpBranchConditional %60 %54 %55
%80 = OpLoad %72 %79 %54 = OpLabel
OpStore %74 %80 %64 = OpLoad %v4float %pos
%65 = OpVectorShuffle %v2float %64 %64 0 1
%75 = OpLoad %int %i
OpStore %indexable %74
%78 = OpAccessChain %_ptr_Function_v2float %indexable %75
%79 = OpLoad %v2float %78
%80 = OpLoad %v2float %window_scaled_psize
%81 = OpFMul %v2float %79 %80
%82 = OpFAdd %v2float %65 %81
%83 = OpLoad %v4float %pos
%84 = OpVectorShuffle %v2float %83 %83 2 3
%85 = OpCompositeExtract %float %82 0
%86 = OpCompositeExtract %float %82 1
%87 = OpCompositeExtract %float %84 0
%88 = OpCompositeExtract %float %84 1
%89 = OpCompositeConstruct %v4float %85 %86 %87 %88
%91 = OpAccessChain %_ptr_Output_v4float %_ %17
OpStore %91 %89
%100 = OpAccessChain %_ptr_Input__arr_v4float_92 %in_interpolators %17
%101 = OpLoad %_arr_v4float_92 %100
OpStore %out_interpolators %101
%104 = OpLoad %int %i
OpStore %indexable_0 %74
%106 = OpAccessChain %_ptr_Function_v2float %indexable_0 %104
%107 = OpLoad %v2float %106
%109 = OpExtInst %v2float %1 FMax %107 %108
OpStore %point_coord %109
OpEmitVertex OpEmitVertex
OpBranch %32 OpBranch %56
%32 = OpLabel %56 = OpLabel
%81 = OpLoad %16 %28 %110 = OpLoad %int %i
%82 = OpIAdd %16 %81 %23 %112 = OpIAdd %int %110 %111
OpStore %28 %82 OpStore %i %112
OpBranch %29 OpBranch %53
%31 = OpLabel %55 = OpLabel
OpEndPrimitive OpEndPrimitive
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -7,110 +7,110 @@
OpCapability GeometryPointSize OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %36 %40 %56 %59 OpEntryPoint Geometry %main "main" %_ %gl_in %out_interpolators %in_interpolators
OpExecutionMode %4 InputLinesAdjacency OpExecutionMode %main InputLinesAdjacency
OpExecutionMode %4 Invocations 1 OpExecutionMode %main Invocations 1
OpExecutionMode %4 OutputTriangleStrip OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %4 OutputVertices 4 OpExecutionMode %main OutputVertices 4
OpSource GLSL 450 OpSource GLSL 450
OpName %4 "main" OpName %main "main"
OpName %8 "i" OpName %i "i"
OpName %19 "input_index" OpName %input_index "input_index"
OpName %29 "indexable" OpName %indexable "indexable"
OpName %34 "gl_PerVertex" OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %34 0 "gl_Position" OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %34 1 "gl_PointSize" OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %36 "" OpName %_ ""
OpName %37 "gl_PerVertex" OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %37 0 "gl_Position" OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %37 1 "gl_PointSize" OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %40 "gl_in" OpName %gl_in "gl_in"
OpName %56 "out_interpolators" OpName %out_interpolators "out_interpolators"
OpName %59 "in_interpolators" OpName %in_interpolators "in_interpolators"
OpMemberDecorate %34 0 BuiltIn Position OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %34 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %34 Block OpDecorate %gl_PerVertex Block
OpMemberDecorate %37 0 BuiltIn Position OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %37 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %37 Block OpDecorate %gl_PerVertex_0 Block
OpDecorate %56 Location 0 OpDecorate %out_interpolators Location 0
OpDecorate %59 Location 0 OpDecorate %in_interpolators Location 0
%2 = OpTypeVoid %void = OpTypeVoid
%3 = OpTypeFunction %2 %3 = OpTypeFunction %void
%6 = OpTypeInt 32 1 %int = OpTypeInt 32 1
%7 = OpTypePointer Function %6 %_ptr_Function_int = OpTypePointer Function %int
%9 = OpConstant %6 0 %9 = OpConstant %int 0
%16 = OpConstant %6 4 %16 = OpConstant %int 4
%17 = OpTypeBool %bool = OpTypeBool
%20 = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%21 = OpConstant %20 4 %21 = OpConstant %uint 4
%22 = OpTypeArray %6 %21 %_arr_int_21 = OpTypeArray %int %21
%23 = OpConstant %6 1 %23 = OpConstant %int 1
%24 = OpConstant %6 3 %24 = OpConstant %int 3
%25 = OpConstant %6 2 %25 = OpConstant %int 2
%26 = OpConstantComposite %22 %9 %23 %24 %25 %26 = OpConstantComposite %_arr_int_21 %9 %23 %24 %25
%28 = OpTypePointer Function %22 %_ptr_Function__arr_int_21 = OpTypePointer Function %_arr_int_21
%32 = OpTypeFloat 32 %float = OpTypeFloat 32
%33 = OpTypeVector %32 4 %v4float = OpTypeVector %float 4
%34 = OpTypeStruct %33 %32 %gl_PerVertex = OpTypeStruct %v4float %float
%35 = OpTypePointer Output %34 %_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%36 = OpVariable %35 Output %_ = OpVariable %_ptr_Output_gl_PerVertex Output
%37 = OpTypeStruct %33 %32 %gl_PerVertex_0 = OpTypeStruct %v4float %float
%38 = OpTypeArray %37 %21 %_arr_gl_PerVertex_0_21 = OpTypeArray %gl_PerVertex_0 %21
%39 = OpTypePointer Input %38 %_ptr_Input__arr_gl_PerVertex_0_21 = OpTypePointer Input %_arr_gl_PerVertex_0_21
%40 = OpVariable %39 Input %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_0_21 Input
%42 = OpTypePointer Input %33 %_ptr_Input_v4float = OpTypePointer Input %v4float
%45 = OpTypePointer Output %33 %_ptr_Output_v4float = OpTypePointer Output %v4float
%48 = OpTypePointer Input %32 %_ptr_Input_float = OpTypePointer Input %float
%51 = OpTypePointer Output %32 %_ptr_Output_float = OpTypePointer Output %float
%53 = OpConstant %20 16 %53 = OpConstant %uint 16
%54 = OpTypeArray %33 %53 %_arr_v4float_53 = OpTypeArray %v4float %53
%55 = OpTypePointer Output %54 %_ptr_Output__arr_v4float_53 = OpTypePointer Output %_arr_v4float_53
%56 = OpVariable %55 Output %out_interpolators = OpVariable %_ptr_Output__arr_v4float_53 Output
%57 = OpTypeArray %54 %21 %_arr__arr_v4float_53_21 = OpTypeArray %_arr_v4float_53 %21
%58 = OpTypePointer Input %57 %_ptr_Input__arr__arr_v4float_53_21 = OpTypePointer Input %_arr__arr_v4float_53_21
%59 = OpVariable %58 Input %in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_53_21 Input
%61 = OpTypePointer Input %54 %_ptr_Input__arr_v4float_53 = OpTypePointer Input %_arr_v4float_53
%4 = OpFunction %2 None %3 %main = OpFunction %void None %3
%5 = OpLabel %5 = OpLabel
%8 = OpVariable %7 Function %i = OpVariable %_ptr_Function_int Function
%19 = OpVariable %7 Function %input_index = OpVariable %_ptr_Function_int Function
%29 = OpVariable %28 Function %indexable = OpVariable %_ptr_Function__arr_int_21 Function
OpStore %8 %9 OpStore %i %9
OpBranch %10 OpBranch %10
%10 = OpLabel %10 = OpLabel
OpLoopMerge %12 %13 None OpLoopMerge %12 %13 None
OpBranch %14 OpBranch %14
%14 = OpLabel %14 = OpLabel
%15 = OpLoad %6 %8 %15 = OpLoad %int %i
%18 = OpSLessThan %17 %15 %16 %18 = OpSLessThan %bool %15 %16
OpBranchConditional %18 %11 %12 OpBranchConditional %18 %11 %12
%11 = OpLabel %11 = OpLabel
%27 = OpLoad %6 %8 %27 = OpLoad %int %i
OpStore %29 %26 OpStore %indexable %26
%30 = OpAccessChain %7 %29 %27 %30 = OpAccessChain %_ptr_Function_int %indexable %27
%31 = OpLoad %6 %30 %31 = OpLoad %int %30
OpStore %19 %31 OpStore %input_index %31
%41 = OpLoad %6 %19 %41 = OpLoad %int %input_index
%43 = OpAccessChain %42 %40 %41 %9 %43 = OpAccessChain %_ptr_Input_v4float %gl_in %41 %9
%44 = OpLoad %33 %43 %44 = OpLoad %v4float %43
%46 = OpAccessChain %45 %36 %9 %46 = OpAccessChain %_ptr_Output_v4float %_ %9
OpStore %46 %44 OpStore %46 %44
%47 = OpLoad %6 %19 %47 = OpLoad %int %input_index
%49 = OpAccessChain %48 %40 %47 %23 %49 = OpAccessChain %_ptr_Input_float %gl_in %47 %23
%50 = OpLoad %32 %49 %50 = OpLoad %float %49
%52 = OpAccessChain %51 %36 %23 %52 = OpAccessChain %_ptr_Output_float %_ %23
OpStore %52 %50 OpStore %52 %50
%60 = OpLoad %6 %19 %60 = OpLoad %int %input_index
%62 = OpAccessChain %61 %59 %60 %62 = OpAccessChain %_ptr_Input__arr_v4float_53 %in_interpolators %60
%63 = OpLoad %54 %62 %63 = OpLoad %_arr_v4float_53 %62
OpStore %56 %63 OpStore %out_interpolators %63
OpEmitVertex OpEmitVertex
OpBranch %13 OpBranch %13
%13 = OpLabel %13 = OpLabel
%64 = OpLoad %6 %8 %64 = OpLoad %int %i
%65 = OpIAdd %6 %64 %23 %65 = OpIAdd %int %64 %23
OpStore %8 %65 OpStore %i %65
OpBranch %10 OpBranch %10
%12 = OpLabel %12 = OpLabel
OpEndPrimitive OpEndPrimitive

View File

@ -2,14 +2,14 @@
// source: rect_list.geom // source: rect_list.geom
const uint8_t rect_list_geom[] = { const uint8_t rect_list_geom[] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00,
0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x53, 0x4C, 0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x53, 0x4C,
0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
@ -27,31 +27,31 @@ const uint8_t rect_list_geom[] = {
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65, 0x1E, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65,
0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x06, 0x00, 0x07, 0x00, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x06, 0x00, 0x07, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x31, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F, 0x05, 0x00, 0x07, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x34, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x31, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61,
0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
0x65, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x62, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
0xB3, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x34, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
@ -72,345 +72,340 @@ const uint8_t rect_list_geom[] = {
0x0C, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x6F, 0x12, 0x83, 0x3A, 0x1E, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x32, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x03, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
0x64, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x41, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0xB4, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0xF7, 0x00, 0x03, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x7B, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x22, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0xB8, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
0xF7, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x7E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x2D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x45, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x48, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x4C, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x4C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x4F, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x14, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x35, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x57, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x5A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x5A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x5D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x60, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x62, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x65, 0x00, 0x00, 0x00,
0x61, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x63, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x66, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00,
0x6A, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x6A, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x6D, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x68, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00,
0x6F, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x24, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x12, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
0x71, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
0x73, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x24, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
0x72, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x75, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x78, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00,
0x7A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x7B, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x62, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00,
0x65, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x7D, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x68, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x7E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x7E, 0x00, 0x00, 0x00,
0x7D, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x81, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x81, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x82, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00,
0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x84, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x85, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
0x85, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x86, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x14, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x8E, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
0x8F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x91, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x8F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x91, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00,
0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
0x94, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x9C, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x9E, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00,
0x9F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
0x9F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,
0xA2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00,
0xA4, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0xA7, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xA8, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00,
0xA8, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAC, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x83, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0xAB, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x27, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0xAE, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAF, 0x00, 0x00, 0x00,
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB0, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00,
0xB1, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0xF8, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00,
0x2C, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB2, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB1, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB3, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00,
0xB6, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB8, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xB9, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0xBA, 0x00, 0x00, 0x00,
0xB5, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB5, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xBB, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00,
0x11, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0xB7, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xBD, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0xBF, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x11, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00,
0x24, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xC1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0xC3, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0xB3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00,
0xC5, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00,
0xC4, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xC6, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00,
0xC6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0xC8, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0xC3, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0xB7, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
0xC9, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xC5, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00,
0xCA, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xDB, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x01, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB0, 0x00, 0x00, 0x00,
0xC7, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x01, 0x00,
0x38, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
}; };

View File

@ -1,313 +1,310 @@
; SPIR-V ; SPIR-V
; Version: 1.0 ; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1 ; Generator: Khronos Glslang Reference Front End; 1
; Bound: 203 ; Bound: 200
; Schema: 0 ; Schema: 0
OpCapability Geometry OpCapability Geometry
OpCapability GeometryPointSize OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %16 %35 %49 %52 OpEntryPoint Geometry %main "main" %gl_in %_ %out_interpolators %in_interpolators
OpExecutionMode %4 Triangles OpExecutionMode %main Triangles
OpExecutionMode %4 Invocations 1 OpExecutionMode %main Invocations 1
OpExecutionMode %4 OutputTriangleStrip OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %4 OutputVertices 6 OpExecutionMode %main OutputVertices 6
OpSource GLSL 450 OpSource GLSL 450
OpName %4 "main" OpName %main "main"
OpName %8 "left_aligned" OpName %left_aligned "left_aligned"
OpName %11 "gl_PerVertex" OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %11 0 "gl_Position" OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %11 1 "gl_PointSize" OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %16 "gl_in" OpName %gl_in "gl_in"
OpName %33 "gl_PerVertex" OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %33 0 "gl_Position" OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %33 1 "gl_PointSize" OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %35 "" OpName %_ ""
OpName %49 "out_interpolators" OpName %out_interpolators "out_interpolators"
OpName %52 "in_interpolators" OpName %in_interpolators "in_interpolators"
OpName %101 "i" OpName %i "i"
OpName %179 "i" OpName %i_0 "i"
OpMemberDecorate %11 0 BuiltIn Position OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %11 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %11 Block OpDecorate %gl_PerVertex Block
OpMemberDecorate %33 0 BuiltIn Position OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %33 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %33 Block OpDecorate %gl_PerVertex_0 Block
OpDecorate %49 Location 0 OpDecorate %out_interpolators Location 0
OpDecorate %52 Location 0 OpDecorate %in_interpolators Location 0
%2 = OpTypeVoid %void = OpTypeVoid
%3 = OpTypeFunction %2 %3 = OpTypeFunction %void
%6 = OpTypeBool %bool = OpTypeBool
%7 = OpTypePointer Function %6 %_ptr_Function_bool = OpTypePointer Function %bool
%9 = OpTypeFloat 32 %float = OpTypeFloat 32
%10 = OpTypeVector %9 4 %v4float = OpTypeVector %float 4
%11 = OpTypeStruct %10 %9 %gl_PerVertex = OpTypeStruct %v4float %float
%12 = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%13 = OpConstant %12 3 %13 = OpConstant %uint 3
%14 = OpTypeArray %11 %13 %_arr_gl_PerVertex_13 = OpTypeArray %gl_PerVertex %13
%15 = OpTypePointer Input %14 %_ptr_Input__arr_gl_PerVertex_13 = OpTypePointer Input %_arr_gl_PerVertex_13
%16 = OpVariable %15 Input %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_13 Input
%17 = OpTypeInt 32 1 %int = OpTypeInt 32 1
%18 = OpConstant %17 0 %18 = OpConstant %int 0
%19 = OpConstant %12 0 %19 = OpConstant %uint 0
%20 = OpTypePointer Input %9 %_ptr_Input_float = OpTypePointer Input %float
%23 = OpConstant %17 2 %23 = OpConstant %int 2
%28 = OpConstant %9 0.001 %gl_PerVertex_0 = OpTypeStruct %v4float %float
%33 = OpTypeStruct %10 %9 %_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0
%34 = OpTypePointer Output %33 %_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output
%35 = OpVariable %34 Output %_ptr_Input_v4float = OpTypePointer Input %v4float
%36 = OpTypePointer Input %10 %_ptr_Output_v4float = OpTypePointer Output %v4float
%39 = OpTypePointer Output %10 %38 = OpConstant %int 1
%41 = OpConstant %17 1 %_ptr_Output_float = OpTypePointer Output %float
%44 = OpTypePointer Output %9 %43 = OpConstant %uint 16
%46 = OpConstant %12 16 %_arr_v4float_43 = OpTypeArray %v4float %43
%47 = OpTypeArray %10 %46 %_ptr_Output__arr_v4float_43 = OpTypePointer Output %_arr_v4float_43
%48 = OpTypePointer Output %47 %out_interpolators = OpVariable %_ptr_Output__arr_v4float_43 Output
%49 = OpVariable %48 Output %_arr__arr_v4float_43_13 = OpTypeArray %_arr_v4float_43 %13
%50 = OpTypeArray %47 %13 %_ptr_Input__arr__arr_v4float_43_13 = OpTypePointer Input %_arr__arr_v4float_43_13
%51 = OpTypePointer Input %50 %in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_43_13 Input
%52 = OpVariable %51 Input %_ptr_Input__arr_v4float_43 = OpTypePointer Input %_arr_v4float_43
%53 = OpTypePointer Input %47 %_ptr_Function_int = OpTypePointer Function %int
%100 = OpTypePointer Function %17 %105 = OpConstant %int 16
%108 = OpConstant %17 16 %main = OpFunction %void None %3
%4 = OpFunction %2 None %3
%5 = OpLabel %5 = OpLabel
%8 = OpVariable %7 Function %left_aligned = OpVariable %_ptr_Function_bool Function
%101 = OpVariable %100 Function %i = OpVariable %_ptr_Function_int Function
%179 = OpVariable %100 Function %i_0 = OpVariable %_ptr_Function_int Function
%21 = OpAccessChain %20 %16 %18 %18 %19 %21 = OpAccessChain %_ptr_Input_float %gl_in %18 %18 %19
%22 = OpLoad %9 %21 %22 = OpLoad %float %21
%24 = OpAccessChain %20 %16 %23 %18 %19 %24 = OpAccessChain %_ptr_Input_float %gl_in %23 %18 %19
%25 = OpLoad %9 %24 %25 = OpLoad %float %24
%26 = OpFSub %9 %22 %25 %26 = OpFOrdEqual %bool %22 %25
%27 = OpExtInst %9 %1 FAbs %26 OpStore %left_aligned %26
%29 = OpFOrdLessThan %6 %27 %28 %27 = OpLoad %bool %left_aligned
OpStore %8 %29 OpSelectionMerge %29 None
%30 = OpLoad %6 %8 OpBranchConditional %27 %28 %123
OpSelectionMerge %32 None %28 = OpLabel
OpBranchConditional %30 %31 %126 %34 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%31 = OpLabel %35 = OpLoad %v4float %34
%37 = OpAccessChain %36 %16 %18 %18 %37 = OpAccessChain %_ptr_Output_v4float %_ %18
%38 = OpLoad %10 %37 OpStore %37 %35
%40 = OpAccessChain %39 %35 %18 %39 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
OpStore %40 %38 %40 = OpLoad %float %39
%42 = OpAccessChain %20 %16 %18 %41 %42 = OpAccessChain %_ptr_Output_float %_ %38
%43 = OpLoad %9 %42 OpStore %42 %40
%45 = OpAccessChain %44 %35 %41 %51 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
OpStore %45 %43 %52 = OpLoad %_arr_v4float_43 %51
%54 = OpAccessChain %53 %52 %18 OpStore %out_interpolators %52
%55 = OpLoad %47 %54
OpStore %49 %55
OpEmitVertex OpEmitVertex
%56 = OpAccessChain %36 %16 %41 %18 %53 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%57 = OpLoad %10 %56 %54 = OpLoad %v4float %53
%58 = OpAccessChain %39 %35 %18 %55 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %55 %54
%56 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%57 = OpLoad %float %56
%58 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %58 %57 OpStore %58 %57
%59 = OpAccessChain %20 %16 %41 %41 %59 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%60 = OpLoad %9 %59 %60 = OpLoad %_arr_v4float_43 %59
%61 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %60
OpStore %61 %60
%62 = OpAccessChain %53 %52 %41
%63 = OpLoad %47 %62
OpStore %49 %63
OpEmitVertex OpEmitVertex
%64 = OpAccessChain %36 %16 %23 %18 %61 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%65 = OpLoad %10 %64 %62 = OpLoad %v4float %61
%66 = OpAccessChain %39 %35 %18 %63 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %63 %62
%64 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%65 = OpLoad %float %64
%66 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %66 %65 OpStore %66 %65
%67 = OpAccessChain %20 %16 %23 %41 %67 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%68 = OpLoad %9 %67 %68 = OpLoad %_arr_v4float_43 %67
%69 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %68
OpStore %69 %68
%70 = OpAccessChain %53 %52 %23
%71 = OpLoad %47 %70
OpStore %49 %71
OpEmitVertex OpEmitVertex
OpEndPrimitive OpEndPrimitive
%72 = OpAccessChain %36 %16 %23 %18 %69 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%73 = OpLoad %10 %72 %70 = OpLoad %v4float %69
%74 = OpAccessChain %39 %35 %18 %71 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %71 %70
%72 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%73 = OpLoad %float %72
%74 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %74 %73 OpStore %74 %73
%75 = OpAccessChain %20 %16 %23 %41 %75 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%76 = OpLoad %9 %75 %76 = OpLoad %_arr_v4float_43 %75
%77 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %76
OpStore %77 %76
%78 = OpAccessChain %53 %52 %23
%79 = OpLoad %47 %78
OpStore %49 %79
OpEmitVertex OpEmitVertex
%80 = OpAccessChain %36 %16 %41 %18 %77 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%81 = OpLoad %10 %80 %78 = OpLoad %v4float %77
%82 = OpAccessChain %39 %35 %18 %79 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %79 %78
%80 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%81 = OpLoad %float %80
%82 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %82 %81 OpStore %82 %81
%83 = OpAccessChain %20 %16 %41 %41 %83 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%84 = OpLoad %9 %83 %84 = OpLoad %_arr_v4float_43 %83
%85 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %84
OpStore %85 %84
%86 = OpAccessChain %53 %52 %41
%87 = OpLoad %47 %86
OpStore %49 %87
OpEmitVertex OpEmitVertex
%88 = OpAccessChain %36 %16 %41 %18 %85 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%89 = OpLoad %10 %88 %86 = OpLoad %v4float %85
%90 = OpAccessChain %36 %16 %23 %18 %87 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%91 = OpLoad %10 %90 %88 = OpLoad %v4float %87
%92 = OpFAdd %10 %89 %91 %89 = OpFAdd %v4float %86 %88
%93 = OpAccessChain %36 %16 %18 %18 %90 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%94 = OpLoad %10 %93 %91 = OpLoad %v4float %90
%95 = OpFSub %10 %92 %94 %92 = OpFSub %v4float %89 %91
%96 = OpAccessChain %39 %35 %18 %93 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %93 %92
%94 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%95 = OpLoad %float %94
%96 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %96 %95 OpStore %96 %95
%97 = OpAccessChain %20 %16 %23 %41 OpStore %i %18
%98 = OpLoad %9 %97 OpBranch %99
%99 = OpAccessChain %44 %35 %41 %99 = OpLabel
OpStore %99 %98 OpLoopMerge %101 %102 None
OpStore %101 %18 OpBranch %103
%103 = OpLabel
%104 = OpLoad %int %i
%106 = OpSLessThan %bool %104 %105
OpBranchConditional %106 %100 %101
%100 = OpLabel
%107 = OpLoad %int %i
%108 = OpLoad %int %i
%109 = OpAccessChain %_ptr_Input_v4float %in_interpolators %18 %108
%110 = OpLoad %v4float %109
%111 = OpFNegate %v4float %110
%112 = OpLoad %int %i
%113 = OpAccessChain %_ptr_Input_v4float %in_interpolators %38 %112
%114 = OpLoad %v4float %113
%115 = OpFAdd %v4float %111 %114
%116 = OpLoad %int %i
%117 = OpAccessChain %_ptr_Input_v4float %in_interpolators %23 %116
%118 = OpLoad %v4float %117
%119 = OpFAdd %v4float %115 %118
%120 = OpAccessChain %_ptr_Output_v4float %out_interpolators %107
OpStore %120 %119
OpBranch %102 OpBranch %102
%102 = OpLabel %102 = OpLabel
OpLoopMerge %104 %105 None %121 = OpLoad %int %i
OpBranch %106 %122 = OpIAdd %int %121 %38
%106 = OpLabel OpStore %i %122
%107 = OpLoad %17 %101 OpBranch %99
%109 = OpSLessThan %6 %107 %108 %101 = OpLabel
OpBranchConditional %109 %103 %104
%103 = OpLabel
%110 = OpLoad %17 %101
%111 = OpLoad %17 %101
%112 = OpAccessChain %36 %52 %18 %111
%113 = OpLoad %10 %112
%114 = OpFNegate %10 %113
%115 = OpLoad %17 %101
%116 = OpAccessChain %36 %52 %41 %115
%117 = OpLoad %10 %116
%118 = OpFAdd %10 %114 %117
%119 = OpLoad %17 %101
%120 = OpAccessChain %36 %52 %23 %119
%121 = OpLoad %10 %120
%122 = OpFAdd %10 %118 %121
%123 = OpAccessChain %39 %49 %110
OpStore %123 %122
OpBranch %105
%105 = OpLabel
%124 = OpLoad %17 %101
%125 = OpIAdd %17 %124 %41
OpStore %101 %125
OpBranch %102
%104 = OpLabel
OpEmitVertex OpEmitVertex
OpEndPrimitive OpEndPrimitive
OpBranch %32 OpBranch %29
%126 = OpLabel %123 = OpLabel
%127 = OpAccessChain %36 %16 %18 %18 %124 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%128 = OpLoad %10 %127 %125 = OpLoad %v4float %124
%129 = OpAccessChain %39 %35 %18 %126 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %126 %125
%127 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
%128 = OpLoad %float %127
%129 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %129 %128 OpStore %129 %128
%130 = OpAccessChain %20 %16 %18 %41 %130 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
%131 = OpLoad %9 %130 %131 = OpLoad %_arr_v4float_43 %130
%132 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %131
OpStore %132 %131
%133 = OpAccessChain %53 %52 %18
%134 = OpLoad %47 %133
OpStore %49 %134
OpEmitVertex OpEmitVertex
%135 = OpAccessChain %36 %16 %41 %18 %132 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%136 = OpLoad %10 %135 %133 = OpLoad %v4float %132
%137 = OpAccessChain %39 %35 %18 %134 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %134 %133
%135 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%136 = OpLoad %float %135
%137 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %137 %136 OpStore %137 %136
%138 = OpAccessChain %20 %16 %41 %41 %138 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%139 = OpLoad %9 %138 %139 = OpLoad %_arr_v4float_43 %138
%140 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %139
OpStore %140 %139
%141 = OpAccessChain %53 %52 %41
%142 = OpLoad %47 %141
OpStore %49 %142
OpEmitVertex OpEmitVertex
%143 = OpAccessChain %36 %16 %23 %18 %140 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%144 = OpLoad %10 %143 %141 = OpLoad %v4float %140
%145 = OpAccessChain %39 %35 %18 %142 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %142 %141
%143 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%144 = OpLoad %float %143
%145 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %145 %144 OpStore %145 %144
%146 = OpAccessChain %20 %16 %23 %41 %146 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%147 = OpLoad %9 %146 %147 = OpLoad %_arr_v4float_43 %146
%148 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %147
OpStore %148 %147
%149 = OpAccessChain %53 %52 %23
%150 = OpLoad %47 %149
OpStore %49 %150
OpEmitVertex OpEmitVertex
OpEndPrimitive OpEndPrimitive
%151 = OpAccessChain %36 %16 %18 %18 %148 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%152 = OpLoad %10 %151 %149 = OpLoad %v4float %148
%153 = OpAccessChain %39 %35 %18 %150 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %150 %149
%151 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
%152 = OpLoad %float %151
%153 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %153 %152 OpStore %153 %152
%154 = OpAccessChain %20 %16 %18 %41 %154 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
%155 = OpLoad %9 %154 %155 = OpLoad %_arr_v4float_43 %154
%156 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %155
OpStore %156 %155
%157 = OpAccessChain %53 %52 %18
%158 = OpLoad %47 %157
OpStore %49 %158
OpEmitVertex OpEmitVertex
%159 = OpAccessChain %36 %16 %23 %18 %156 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%160 = OpLoad %10 %159 %157 = OpLoad %v4float %156
%161 = OpAccessChain %39 %35 %18 %158 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %158 %157
%159 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%160 = OpLoad %float %159
%161 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %161 %160 OpStore %161 %160
%162 = OpAccessChain %20 %16 %23 %41 %162 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%163 = OpLoad %9 %162 %163 = OpLoad %_arr_v4float_43 %162
%164 = OpAccessChain %44 %35 %41 OpStore %out_interpolators %163
OpStore %164 %163
%165 = OpAccessChain %53 %52 %23
%166 = OpLoad %47 %165
OpStore %49 %166
OpEmitVertex OpEmitVertex
%167 = OpAccessChain %36 %16 %18 %18 %164 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%168 = OpLoad %10 %167 %165 = OpLoad %v4float %164
%169 = OpAccessChain %36 %16 %23 %18 %166 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%170 = OpLoad %10 %169 %167 = OpLoad %v4float %166
%171 = OpFAdd %10 %168 %170 %168 = OpFAdd %v4float %165 %167
%172 = OpAccessChain %36 %16 %41 %18 %169 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%173 = OpLoad %10 %172 %170 = OpLoad %v4float %169
%174 = OpFSub %10 %171 %173 %171 = OpFSub %v4float %168 %170
%175 = OpAccessChain %39 %35 %18 %172 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %172 %171
%173 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%174 = OpLoad %float %173
%175 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %175 %174 OpStore %175 %174
%176 = OpAccessChain %20 %16 %23 %41 OpStore %i_0 %18
%177 = OpLoad %9 %176 OpBranch %177
%178 = OpAccessChain %44 %35 %41 %177 = OpLabel
OpStore %178 %177 OpLoopMerge %179 %180 None
OpStore %179 %18 OpBranch %181
%181 = OpLabel
%182 = OpLoad %int %i_0
%183 = OpSLessThan %bool %182 %105
OpBranchConditional %183 %178 %179
%178 = OpLabel
%184 = OpLoad %int %i_0
%185 = OpLoad %int %i_0
%186 = OpAccessChain %_ptr_Input_v4float %in_interpolators %18 %185
%187 = OpLoad %v4float %186
%188 = OpLoad %int %i_0
%189 = OpAccessChain %_ptr_Input_v4float %in_interpolators %38 %188
%190 = OpLoad %v4float %189
%191 = OpFNegate %v4float %190
%192 = OpFAdd %v4float %187 %191
%193 = OpLoad %int %i_0
%194 = OpAccessChain %_ptr_Input_v4float %in_interpolators %23 %193
%195 = OpLoad %v4float %194
%196 = OpFAdd %v4float %192 %195
%197 = OpAccessChain %_ptr_Output_v4float %out_interpolators %184
OpStore %197 %196
OpBranch %180 OpBranch %180
%180 = OpLabel %180 = OpLabel
OpLoopMerge %182 %183 None %198 = OpLoad %int %i_0
OpBranch %184 %199 = OpIAdd %int %198 %38
%184 = OpLabel OpStore %i_0 %199
%185 = OpLoad %17 %179 OpBranch %177
%186 = OpSLessThan %6 %185 %108 %179 = OpLabel
OpBranchConditional %186 %181 %182
%181 = OpLabel
%187 = OpLoad %17 %179
%188 = OpLoad %17 %179
%189 = OpAccessChain %36 %52 %18 %188
%190 = OpLoad %10 %189
%191 = OpLoad %17 %179
%192 = OpAccessChain %36 %52 %41 %191
%193 = OpLoad %10 %192
%194 = OpFNegate %10 %193
%195 = OpFAdd %10 %190 %194
%196 = OpLoad %17 %179
%197 = OpAccessChain %36 %52 %23 %196
%198 = OpLoad %10 %197
%199 = OpFAdd %10 %195 %198
%200 = OpAccessChain %39 %49 %187
OpStore %200 %199
OpBranch %183
%183 = OpLabel
%201 = OpLoad %17 %179
%202 = OpIAdd %17 %201 %41
OpStore %179 %202
OpBranch %180
%182 = OpLabel
OpEmitVertex OpEmitVertex
OpEndPrimitive OpEndPrimitive
OpBranch %32 OpBranch %29
%32 = OpLabel %29 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -13,6 +13,7 @@ layout(set = 0, binding = 1) uniform consts_type {
layout(push_constant) uniform push_consts_type { layout(push_constant) uniform push_consts_type {
vec4 window_scale; vec4 window_scale;
vec4 vtx_fmt; vec4 vtx_fmt;
vec4 point_size;
vec4 alpha_test; vec4 alpha_test;
uint ps_param_gen; uint ps_param_gen;
} push_constants; } push_constants;

View File

@ -4,23 +4,31 @@
#version 450 core #version 450 core
#extension all : warn #extension all : warn
layout(push_constant) uniform push_consts_type {
vec4 window_scale;
vec4 vtx_fmt;
vec4 point_size;
vec4 alpha_test;
uint ps_param_gen;
} push_constants;
in gl_PerVertex { in gl_PerVertex {
vec4 gl_Position; vec4 gl_Position;
float gl_PointSize;
// float gl_ClipDistance[]; // float gl_ClipDistance[];
} gl_in[]; } gl_in[];
out gl_PerVertex { out gl_PerVertex {
vec4 gl_Position; vec4 gl_Position;
float gl_PointSize;
// float gl_ClipDistance[]; // float gl_ClipDistance[];
}; };
layout(location = 0) in vec4 in_interpolators[][16]; layout(location = 0) in vec4 in_interpolators[][16];
layout(location = 0) out vec4 out_interpolators[16]; layout(location = 16) in vec2 in_point_coord_unused[];
layout(location = 17) in float point_size[];
layout(location = 0) out vec4 out_interpolators[16];
layout(location = 16) out vec2 point_coord;
// TODO(benvanik): fetch default point size from register and use that if
// the VS doesn't write oPointSize.
// TODO(benvanik): clamp to min/max. // TODO(benvanik): clamp to min/max.
// TODO(benvanik): figure out how to see which interpolator gets adjusted. // TODO(benvanik): figure out how to see which interpolator gets adjusted.
@ -35,10 +43,17 @@ void main() {
vec2( 1.0, -1.0), vec2( 1.0, -1.0),
}; };
vec4 pos = gl_in[0].gl_Position; vec4 pos = gl_in[0].gl_Position;
float psize = gl_in[0].gl_PointSize; vec2 window_scaled_psize = push_constants.point_size.xy;
// Shader header writes -1.0f to pointSize by default, so any positive value
// means that it was overwritten by the translated vertex shader.
if (point_size[0] > 0.0f) {
window_scaled_psize = vec2(point_size[0]);
}
window_scaled_psize /= push_constants.window_scale.zw;
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
gl_Position = vec4(pos.xy + offsets[i] * psize, pos.zw); gl_Position = vec4(pos.xy + (offsets[i] * window_scaled_psize), pos.zw);
out_interpolators = in_interpolators[0]; out_interpolators = in_interpolators[0];
point_coord = max(offsets[i], vec2(0.0f));
EmitVertex(); EmitVertex();
} }
EndPrimitive(); EndPrimitive();

View File

@ -396,14 +396,8 @@ void VulkanCommandProcessor::PerformSwap(uint32_t frontbuffer_ptr,
submit_info.signalSemaphoreCount = 1; submit_info.signalSemaphoreCount = 1;
submit_info.pSignalSemaphores = &swap_sem; submit_info.pSignalSemaphores = &swap_sem;
if (queue_mutex_) {
std::lock_guard<std::mutex> lock(*queue_mutex_);
status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_); status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_);
CheckResult(status, "vkQueueSubmit"); CheckResult(status, "vkQueueSubmit");
} else {
status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_);
CheckResult(status, "vkQueueSubmit");
}
if (device_->is_renderdoc_attached() && capturing_) { if (device_->is_renderdoc_attached() && capturing_) {
device_->EndRenderDocFrameCapture(); device_->EndRenderDocFrameCapture();